> TickerLayer documentation for AI agents and LLMs, the Markdown version of https://tickerlayer.com/docs/limits
> REST base URL https://api.tickerlayer.com, API key in the `x-api-key` header. WebSocket wss://stream.tickerlayer.com?apiKey=YOUR_API_KEY.
> Any docs page reads as Markdown at its URL plus `.md`. Index: https://tickerlayer.com/llms.txt · Full API reference: https://tickerlayer.com/llms-full.txt

# Rate limits

Every account has a monthly REST quota, a per-second request limit and WebSocket allowances. Your dashboard shows the values applied to your account.

## Limits by plan

| Limit | Free | Individual | Business |
| --- | --- | --- | --- |
| REST calls per month | 3,000 every 30 days | 250K per feed | 25M per feed |
| REST requests per second | 10 | 10 | 100 |
| WebSocket connections | Not included | 1 per feed | 10 per feed |
| WebSocket symbols | Not included | 10 per feed | Unlimited |

The Free quota renews every 30 days, counted from the day you signed up; paid quotas follow your billing period. Your dashboard shows the next reset date. The per-second limit applies to the whole account, not to each feed, and every response reports yours in `X-RateLimit-Limit`. Bars over a date range (`/agg/{symbol}/{multiplier}/{timespan}/{from}/{to}`) run at up to 10 a second on every self-serve plan. WebSocket comes with a paid plan: a Free account can ask for a 7-day trial from the dashboard (streaming only, 1 connection and 10 symbols per feed, US stocks for stocks, reviewed by our team), and an upgrade without access is refused with `403` and `WS_NOT_INCLUDED`. Higher limits are available on request.

## WebSocket limits

- **Connections:** How many sockets your account can hold open at the same time.
- **Distinct symbols:** How many different symbols you can stream at once, across all connections and channels. Business has no account-wide cap: each connection carries up to 200, so a larger universe spreads across your connections.
- **Symbols per subscribe:** Up to 500 in one `subscribe` message, on every plan, within the symbol limit of each connection. Send more messages for more symbols.

Allowances follow your plan and data packages, and the limits of several feeds on one account combine. See [Subscriptions](https://tickerlayer.com/docs/websocket/subscriptions) and [troubleshooting](https://tickerlayer.com/docs/websocket/troubleshooting) for what happens when a limit is reached.

## Rate limit headers

| Header | Meaning |
| --- | --- |
| `X-RateLimit-Limit` | Requests allowed per second for your account. |
| `X-RateLimit-Remaining` | Requests left in the current one-second window. |
| `X-RateLimit-Policy` | The same limit as `limit;w=window`, for example `50;w=1`. |
| `Retry-After` | On a `429` only: whole seconds to wait before retrying. |

Every authenticated REST response carries these, so you can pace requests before a `429`. The monthly quota is not in the headers: the dashboard and the `429` body report it.

## Rate limit responses

A request over a limit returns `429 Too Many Requests` with a JSON body that names the limit; the per-second limit also sends `Retry-After`. A request stopped by the per-second limit does not count against the month. Body shapes are in the [Errors reference](https://tickerlayer.com/docs/errors).
