> For the complete documentation index, see [llms.txt](https://docs.infoway.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.infoway.io/en-docs/getting-started/api-limitation/rest-api-limitation.md).

# REST API Limitation

WebSocket rate and connection caps: [WebSocket Limitation](/en-docs/getting-started/api-limitation/websocket-limitation.md). Over-limit codes: [REST API Error Codes](/en-docs/getting-started/error-codes/rest-api-error-codes.md).

### Plan-based limits

| Plan    | Limits                                                         |
| ------- | -------------------------------------------------------------- |
| Free    | All endpoints: 1 request/second, 60/minute, 86,400/day         |
| Basic   | All endpoints: 2 requests/second, 120/minute, 172,800/day      |
| Premium | All endpoints: 10 requests/second, 600/minute, 864,000/day     |
| Pro     | All endpoints: 20 requests/second, 1,200/minute, 1,728,000/day |

The live cap is `apiNumPerSec` from package info.

### Per-request quote limits

* Batch trade, depth, and candle queries accept up to 100 valid, distinct symbols. Symbols are case-sensitive; use the product list and separate codes with commas, without surrounding spaces.
* Candle requests allow up to 500 candles for one symbol. For multiple symbols, each symbol returns at most 2 candles; larger `klineNum` values are reduced to 2.
* Unknown symbols are filtered out. If all symbols are invalid, the response has `ret=508`. Response order is not guaranteed to match the request; match records by `s`.
* Market and symbol access for the Free plan depends on account permissions. If any valid requested symbol is not permitted, the entire request returns `ret=514`; the symbol is not simply skipped.

### Monthly candle archive limits

In addition to the shared request rate limit, [monthly archive downloads](/en-docs/rest-api/market-data/post-kline-archive-download.md) allow 5 successful requests per API key per UTC calendar day, shared across all markets. The allowance resets at 00:00 UTC. A request accepts up to 36 distinct months; requesting several monthly packages successfully in one request uses 1 allowance. The Free plan cannot use this endpoint.

`remaining` is the allowance left after the request, and `refreshInSeconds` is the time until reset in seconds. Each download link is valid for 3 minutes; use `expireAt` for its expiry. Invalid parameters, denied access, and missing packages do not use a successful-request allowance.

### IP-based limits

* Business API calls are gated by the API key plan, not by IP.
* Public website widgets may apply IP rate limits.
* Excessive failures can trip risk control. Contact Telegram support to unblock.
