# Rate Limits

## Ecommerce Platform Rate Limits

Most E-Commerce Platforms have rate limits for their APIs. As you integrate with Violet you will need to be aware of these as they will affect your system.

When you make a request to Violet, often times Violet will make a background call to an E-Commerce platform to process your request, this is especially true during the checkout flow.

In the event that Violet receives a `429 Too Many Requests` HTTP Status code from an E-Commerce Platform, you will receive the same status code in Violet's response. We recommend that you handle this status code at a top level since it is a possibility for most endpoints.

It is also important to note that because each merchant has their own store in any one of our supported platforms, rate limits are separate on a per-merchant basis. This means that given randomized traffic to your site or app, you are unlikely to hit any one merchant's rate limit unless they are extremely popular or are having a sale.

However, automated calls to the Violet API, say for example a batch process that periodically deletes all abandoned carts, will *very easily* surpass a Merchant's rate limits. Hence Violet's recommendation to have a top level handler for 429's that allows for backoff retries or possibly re-queueing.

#### Shopify

Shopify tends to have the strictest rate limits against their REST API, you can read about their rate limits and algorithm [here](https://shopify.dev/docs/api/usage/rate-limits#compare-rate-limits-by-api). Note the REST API is the one applicable in our case.

### Direct Order Submission

Since rate limits are most likely going to be an issue during checkout, we have built capabilities to allow you to minimize the chance of hitting said limits when in high volume scenarios, such as a flash sale.

We recommend using **Direct Order Submission** in most case. See the guide on using [Direct Order Submission](/prism/checkout-guides/guides/direct-order-submission.md) for more information.


---

# 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://docs.violet.io/concepts/rate-limits.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.
