---
title: "Rate limits"
url: https://docs.truemarkets.co/developer-resources/rate-limits
description: "How many requests you can send, which endpoints have limits of their own, and what to do when you hit one."
---

Docs index: https://docs.truemarkets.co/llms.txt

# Rate limits

Each limit counts requests in a fixed window. A per-minute limit resets at the start of every minute, not 60 seconds after your first request.

## Every request

| Caller                                                        | Limit                                                             |
| ------------------------------------------------------------- | ----------------------------------------------------------------- |
| Organization API key                                          | 2,000 a minute per organization                                   |
| Organization API key acting for a user with `TM-On-Behalf-Of` | Also 100 a minute for each user you act for                       |
| User token                                                    | 100 a minute per user, and 1,000 a minute per IP address          |
| No token                                                      | 1,000 a minute per IP address                                     |
| Any caller of `/v1/auth`                                      | 1,000 a minute per IP address, shared with the per-IP limit above |

## Endpoints with their own limits

These endpoints also count against a stricter limit of their own.

### Orders

| Counted                                | Limit                           |
| -------------------------------------- | ------------------------------- |
| User token, per user                   | 10 a second and 120 a minute    |
| Organization API key, per organization | 100 a second and 1,200 a minute |

- [Create new order](https://docs.truemarkets.co/api/gateway/create-order): `POST /v1/gateway/orders`
- [Execute pending order](https://docs.truemarkets.co/api/gateway/execute-order): `POST /v1/gateway/orders/{id}/execute`
- [Prepare moving resting DeFi TP/SL orders to new trigger prices](https://docs.truemarkets.co/api/gateway/prepare-modify-triggers): `POST /v1/gateway/orders/modify/{id}/prepare`
- [Execute a prepared TP/SL modify](https://docs.truemarkets.co/api/gateway/execute-modify-triggers): `POST /v1/gateway/orders/modify/{id}/execute`
- [Modify an active limit order](https://docs.truemarkets.co/api/gateway/modify-order): `PATCH /v1/gateway/orders/{id}`

### Quotes

| Counted                                | Limit          |
| -------------------------------------- | -------------- |
| User token, per user                   | 120 a minute   |
| Organization API key, per organization | 1,200 a minute |
| No token, per IP address               | 120 a minute   |

- [Compute market quote](https://docs.truemarkets.co/api/gateway/compute-quote): `POST /v1/gateway/quotes`

### Money movement

| Counted                                | Limit                        |
| -------------------------------------- | ---------------------------- |
| User token, per user                   | 20 a minute and 300 a day    |
| Organization API key, per organization | 200 a minute and 3,000 a day |

- [Create new transfer](https://docs.truemarkets.co/api/gateway/create-transfer): `POST /v1/gateway/transfers`
- [Execute pending transfer](https://docs.truemarkets.co/api/gateway/execute-transfer): `POST /v1/gateway/transfers/{id}/execute`
- [Create a ramp](https://docs.truemarkets.co/api/gateway/create-ramp): `POST /v1/gateway/ramps`
- [Execute a ramp's bridge plan](https://docs.truemarkets.co/api/gateway/execute-ramp-bridge): `POST /v1/gateway/ramps/{id}/bridge/execute`
- [Prepare a ramp's on-chain transfer](https://docs.truemarkets.co/api/gateway/prepare-ramp-transfer): `POST /v1/gateway/ramps/{id}/prepare`
- [Execute a ramp's on-chain transfer](https://docs.truemarkets.co/api/gateway/execute-ramp-transfer): `POST /v1/gateway/ramps/{id}/execute`
- [Allocate funds to CeFi](https://docs.truemarkets.co/api/gateway/create-allocation): `POST /v1/gateway/custody/allocations`
- [Release funds from CeFi](https://docs.truemarkets.co/api/gateway/create-release): `POST /v1/gateway/custody/releases`
- [Add test funds (paper trading only)](https://docs.truemarkets.co/api/gateway/create-paper-deposit): `POST /v1/gateway/paper/deposits`
- [Remove test funds (paper trading only)](https://docs.truemarkets.co/api/gateway/create-paper-withdrawal): `POST /v1/gateway/paper/withdrawals`

### Keys and credentials

| Counted                                | Limit                      |
| -------------------------------------- | -------------------------- |
| User token, per user                   | 10 a minute and 50 a day   |
| Organization API key, per organization | 100 a minute and 500 a day |

- [Record a consent decision](https://docs.truemarkets.co/api/auth/oauth-consent): `POST /v1/auth/oauth/consent`
- [Revoke a connected app](https://docs.truemarkets.co/api/auth/revoke-o-auth-consent): `DELETE /v1/auth/oauth/consents/{client_id}`

### Sign-in verification

| Counted                          | Limit       |
| -------------------------------- | ----------- |
| Per IP address, for every caller | 30 a minute |

- [Exchange API key for tokens](https://docs.truemarkets.co/api/auth/exchange-api-key-token): `POST /v1/auth/api-key/token`
- [Exchange a grant for tokens](https://docs.truemarkets.co/api/auth/oauth-token): `POST /v1/auth/oauth/token`

### OAuth client registration

| Counted                          | Limit                   |
| -------------------------------- | ----------------------- |
| Per IP address, for every caller | 5 a minute and 50 a day |

- [Register an OAuth client](https://docs.truemarkets.co/api/auth/register-o-auth-client): `POST /v1/auth/oauth/register`

## When you hit a limit

We answer `429`. A limit on this page answers with an empty body. A limit inside a service answers with the [error body](https://docs.truemarkets.co/developer-resources/errors) and type `resource_exhausted`.

Responses carry these headers for the limit closest to running out:

| Header                  | Meaning                                                       |
| ----------------------- | ------------------------------------------------------------- |
| `X-RateLimit-Limit`     | The limit and its window in seconds, such as `120, 120;w=60`. |
| `X-RateLimit-Remaining` | Requests left in the window.                                  |
| `X-RateLimit-Reset`     | Seconds until the window resets.                              |

Wait for `X-RateLimit-Reset`, then retry. Your token stays valid. The headers can describe a limit that is not enforced yet.