> ## Documentation Index
> Fetch the complete documentation index at: https://docs.derive.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate Limits for Integrators and Market Makers

> How the V3 rate-limit tiers apply to integrators, plus increased matching-engine limits for approved market makers.

Every request to the Derive API passes a per-wallet request budget and, for order flow, a per-instrument bucket. Integrators and market makers can qualify for higher matching-engine rate limits through the [Institutional Trading Rewards Program](/integrators/programs/institutional-trading-rewards).

The V3 rate-limit model, request classes, budget windows, and the `public/getRateLimits` introspection method are documented in full on the [Rate Limits reference page](/rate-limits). This page focuses on what changes for integrators.

## Integrator and market maker limits

Program participants qualify for the highest matching-engine rate-limit tier. There are two tiers today, based on market maker vs standard trader status:

| Type         | matching | per-instrument matching | non-matching | connections      | Burst multiplier |
| :----------- | :------- | :---------------------- | :----------- | :--------------- | :--------------- |
| Trader       | 5 TPS    | 5 TPS                   | 5 TPS        | 4× per IP        | 5×               |
| Market Maker | 500+ TPS | 10+ TPS                 | 500+ TPS     | up to 64× per IP | 5×               |

The Exchange reserves the right to add tiers assigned based on volume share and market maker rankings.

Burst requests for both REST and WebSocket refresh every 5 seconds. For example, a trader can send 5× matching requests in a single burst but must wait 5 seconds before more can be sent.

## Which requests count as matching

The following requests count as `matching` and `per-instrument matching`:

* `private/order`
* `private/replace` (counted as 1 request)
* `private/cancel`
* `private/cancel_by_nonce`
* `private/cancel_by_instrument`
* `private/cancel_by_label` (only when the `instrument_name` param is set)

`custom` rate-limited requests:

* `private/cancel_all` — 1 TPS
* `private/cancel_by_label` — 10 TPS (when `instrument_name` param is NOT set)

All other requests count as `non-matching`.

## How to apply for increased limits

Market makers are eligible for higher rate limits. To apply, contact Derive support or complete the [Institutional Trading Rewards contact form](https://forms.gle/ivDyhdSUGGWPJsJh7). Increased limits are granted alongside the fee-tier and rebate benefits of the program.

## V3 rate-limit model

The canonical rate-limit model, class semantics, error codes, and the `public/getRateLimits` runtime introspection method live on the main reference page:

<Card title="Rate Limits reference" icon="gauge" href="/rate-limits">
  Two-tier model, class definitions, budget windows, error codes, and the live `public/getRateLimits` method.
</Card>

## Related

<CardGroup cols={2}>
  <Card title="Market Maker Protections" icon="shield" href="/integrators/trading/market-maker-protections">
    MMP configuration and cancel-on-disconnect that pair with rate limits.
  </Card>

  <Card title="Error Codes" icon="triangle-exclamation" href="/error-codes">
    `-32000` and `-32100` rate-limit rejections and the retry semantics.
  </Card>
</CardGroup>


## Related topics

- [Integrators and Market Makers](/integrators/introduction.md)
- [Market Maker Protections on Derive](/integrators/trading/market-maker-protections.md)
- [Institutional Trading Rewards Program](/integrators/programs/institutional-trading-rewards.md)
