# API Rate Limits

> Current HTTP API defaults and planned trial/paid request quotas for Option Chain, Market Structure, and Historical SQL.

## Current defaults

The current default is about **60 requests per 60 seconds per customer on each HTTP endpoint**, for both trial and paid users. It is best-effort protection, not a guaranteed global quota.

The planned limits below are **not yet active**. No effective date has been announced. The current defaults remain in effect until enforcement is rolled out and announced.

## Planned trial and paid limits

These are requests per customer, separately for each endpoint. **Both the minute and hourly limits apply** once enabled; reaching either limit triggers rate limiting.

| HTTP product | Trial requests/minute | Trial requests/hour | Paid Pro requests/minute | Paid Pro requests/hour |
| --- | ---: | ---: | ---: | ---: |
| Option Chain | 20 | 600 | 60 | 3,000 |
| Market Structure | 30 | 1,200 | 60 | 3,600 |
| Historical SQL | 5 | 100 | 10 | 300 |

- All API keys and IP addresses belonging to the same customer will share that endpoint's quota. Rotating keys or changing IP addresses will not create a new allowance.
- The three endpoints will have separate quotas, not one combined request pool.
- Enterprise limits are contract-specific. Contact Sales or Support at **support@optiondata.io** for higher-volume access.
- This planned rate policy does not change prices, subscription access, response row caps, or data freshness.

## Handling a rate-limit response

HTTP **429** means a rate or connection limit was reached. Honor the **Retry-After** response header before retrying, and use backoff instead of sending an immediate retry loop.

For Option Chain, broad/full-chain polling about every **5 minutes** and narrow symbol/expiry/strike polling every **1–2 minutes** remain the recommended intervals. A request allowance is a ceiling, not a recommendation to poll at that rate.

## Realtime WebSocket is separate

Realtime WebSocket remains limited to **5 concurrent connections per API token**. HTTP request quotas do not apply to streamed trade messages. Existing connection behavior is unchanged.

## 中文：当前默认与计划限额

当前默认：试用与付费用户均为**每个客户在每个 HTTP 端点每 60 秒约 60 次请求**。这是一线尽力防护，并非严格的全局配额。

下表是**计划限额，尚未生效**。生效日期尚未公布；在限流部署并公告前，继续适用当前默认值。

| HTTP 产品 | 试用每分钟请求数 | 试用每小时请求数 | 付费 Pro 每分钟请求数 | 付费 Pro 每小时请求数 |
| --- | ---: | ---: | ---: | ---: |
| 期权链 | 20 | 600 | 60 | 3,000 |
| 市场结构 | 30 | 1,200 | 60 | 3,600 |
| 历史 SQL | 5 | 100 | 10 | 300 |

启用后，每分钟与每小时限额将**同时适用**，按客户、按端点分别计算；任一限额用尽即触发限流。同一客户的所有 API 密钥和 IP 地址共用该端点的额度，更换密钥或 IP 不会增加额度。三个端点不是共用一个请求池。

企业限额按合同约定；如需更高调用量，请联系销售或客服 **support@optiondata.io**。此计划不改变价格、订阅权益、响应行数上限或数据时效。

收到 HTTP **429** 时，请等待 **Retry-After** 指定的时间后重试，并采用退避机制。期权链的完整链查询仍建议约每 **5 分钟**轮询；单个标的、到期或行权价等窄查询每 **1–2 分钟**即可。额度是上限，不是建议轮询频率。

实时 WebSocket 保持每个 API token 最多 **5 条并发连接**；HTTP 请求配额不适用于推送消息。
