# Rate limiting

## Limits

This API apply various rate limits depending on the type of HTTP request or GraphQL query being executed, as well as the number of such requests. The rate-limiting mechanism is quite dynamic and is based on the IP address(es), error rates, HTTP headers, and the GraphQL queries.

We do not disclose the exact limits due to their complexity and our security policy. However, it's nearly impossible to reach the limits if your requests are properly formed.

When one of the numerous limits exceeds the API typically responds with

1. the HTTP status `429`&#x20;
2. the HTTP header:<br>

   ```
   Retry-After: 59
   ```
3. and a JSON body:<br>

   ```json
   {
     success: false,
     code: "TOO_MANY_REQUESTS",
     message: "Retry after 1 min",
     retrySecs: 59
   }
   ```

## Common cases

Here are the common situations when you might get yourself temporarily blocked:

* When your requests produce numerous errors, e.g. malformed header, JSON body, or a GraphQL query.
* When you send too many requests without a valid `Authorization` header.
* When you send too many requests within a very short period.
  * Most often reason - when you collect reference prices/quotes using the `quote` query for multiple currency pairs. To avoid the issue you must [send multiple GraphQL queries within a single HTTP request](https://developer.flash-payments.com/~/revisions/VVAbKd5tNL6a2Thg7Hh6/fx/quote#multiple-reference-indicative-quotes-with-a-single-http-request).

## How to unblock if you see HTTP 429 responses

Please contact our support team via the established communication channels. We will manually reset the counters for you.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.flash-payments.com/~/revisions/VVAbKd5tNL6a2Thg7Hh6/other/rate-limiting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
