# This organization's rate limits and concurrent-call quotas

Source: https://docs.usetone.ai/reference/limits/get

> Two budgets that fail in different ways for different reasons.

`GET /v1/limits`
Two budgets that fail in different ways for different reasons. Exceeding the request budget is a `429 rate_limited` with a `Retry-After` — slow down. Exceeding a concurrency pool is a `429 concurrent_call_limit_reached`, which slowing down does not fix: you have to wait for calls to end. Live and test have separate budgets, and this answers for whichever key you asked with.

Requires the `read` scope.

## Response

| Field | Type | | Meaning |
|---|---|---|---|
| `concurrency` | object | required | How many calls may run at once. Two separate pools that do not borrow from each other. Exceeding one is a 429 concurrent_call_limit_reached, which is NOT solved by slowing down — you have to wait for calls to end. |
| `concurrency.agentCalls` | object | required | Calls running a Tone agent. |
| `concurrency.agentCalls.inUse` | integer | required | Calls in flight right now. Rows older than 2h are not counted — a call the carrier never resolved must not eat quota. |
| `concurrency.agentCalls.limit` | integer | required | Your ceiling for this pool. Raised per-org by support. |
| `concurrency.byoCalls` | object | required | Calls bridged to your own media stack. |
| `concurrency.byoCalls.inUse` | integer | required | Calls in flight right now. Rows older than 2h are not counted — a call the carrier never resolved must not eat quota. |
| `concurrency.byoCalls.limit` | integer | required | Your ceiling for this pool. Raised per-org by support. |
| `environment` | string | required | Which environment these numbers describe — taken from the key you asked with. Live and test have separate budgets. |
| `requests` | object | required | Your request budget. Exceeding it is a 429 rate_limited with a Retry-After — slow down and retry. |
| `requests.limitPerMinute` | integer | required | How many requests this organisation may make per minute in this environment. |
| `requests.remaining` | integer | required | Tokens left in the current window. The same figure the `RateLimit` response header carries. |

### Example response

```json
{
  "data": {
    "concurrency": {
      "agentCalls": {
        "inUse": 0,
        "limit": 0
      },
      "byoCalls": {
        "inUse": 0,
        "limit": 0
      }
    },
    "environment": "live",
    "requests": {
      "limitPerMinute": 0,
      "remaining": 0
    }
  }
}
```
