# Rate Limits

J-Quants API has rate limits (usage frequency restrictions) in place to ensure stable service operation.\
If you send requests exceeding the limit within a certain period, API usage will be temporarily restricted.

## Rate Limits by Plan

The maximum number of requests per minute varies depending on your subscription plan.

| Plan         | Limit (Requests / min) |
| :----------- | :--------------------- |
| **Free**     | 5                      |
| **Light**    | 60                     |
| **Standard** | 120                    |
| **Premium**  | 500                    |

※ The above are the basic limit values and may be adjusted depending on system conditions.

## Rate Limits by Endpoint

For the following endpoints, individual limits apply regardless of your plan.

| Endpoint                                                     | Limit (Requests / min) |
| :----------------------------------------------------------- | :--------------------- |
| **Financial Data (Summary only)** (`/v2/fins/summary`)       | 60                     |
| **Financial Statement Data (BS/PL/CF)** (`/v2/fins/details`) | 60                     |

## Rate Limits for Add-on

If you have an add-on subscription, separate rate limits apply to add-on-specific APIs.

| Add-on                               | Limit (Requests / min) |
| :----------------------------------- | :--------------------- |
| **Stock Prices (minute-OHLC, Tick)** | 60                     |
| **TDnet/Company Disclosure**         | 100                    |

※ Add-on-specific APIs have limits independent of plan rate limits.

## When Limits Are Exceeded

If you make requests exceeding the rate limit, the API will return HTTP status code `429 Too Many Requests`.

### Temporary Access Restriction

If you **significantly exceed** the rate limit and continue making requests, access may be completely blocked for approximately 5 minutes.\
During this time, all requests will result in errors, so it is recommended to implement controls such as retrying with appropriate intervals on the application side.

## Best Practices

- **Efficient Data Retrieval**:
  - Use query parameters to retrieve only the necessary data and reduce unnecessary requests.
  - Many APIs allow you to retrieve data for all issues by specifying only the date. Avoid retrieving data for one issue at a time across all dates.
  - Please use the [file download feature](/en/spec/bulk) for bulk retrieval of historical data.

- **Error Handling**: If status code `429` is returned, do not retry immediately, but wait for a certain period before resuming requests.
