> ## Documentation Index
> Fetch the complete documentation index at: https://docs.finseo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate Limits

> API rate limits per pricing plan.

# Rate Limits

Rate limits protect the API and ensure fair usage. Limits are applied per API key based on your plan.

<Note>
  API access requires a paid plan (Creator or higher). Free accounts cannot create API keys.
</Note>

## Limits by plan

| Plan       | Prompts   | Requests / Minute | Requests / Day |
| ---------- | --------- | ----------------- | -------------- |
| Creator    | 25        | 60                | 5,000          |
| Business   | 100       | 120               | 25,000         |
| Agency     | Unlimited | 300               | 100,000        |
| Enterprise | 500       | 600               | 200,000        |

## Prompt limits

The number of prompts you can track via the API is limited by your plan. The API enforces the same limits as the dashboard. Attempting to add a prompt beyond your limit returns an error:

```json theme={"system"}
{
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Prompt limit reached (25/25). Upgrade your plan to add more prompts."
  }
}
```

## Rate limit headers

Every API response includes rate limit information:

| Header                  | Description                               |
| ----------------------- | ----------------------------------------- |
| `X-RateLimit-Limit`     | Maximum requests per minute for your plan |
| `X-RateLimit-Remaining` | Remaining requests in current window      |
| `X-RateLimit-Reset`     | Unix timestamp when the window resets     |

## Exceeding limits

When rate limited, the API returns `429 Too Many Requests`:

```json theme={"system"}
{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Try again in 23 seconds."
  }
}
```

The response includes a `Retry-After` header with seconds to wait.

## Best practices

* Cache responses when possible — tracking data updates once daily
* Use the export endpoint for bulk data instead of many individual requests
* Implement exponential backoff on `429` responses
* Use tags to filter data server-side instead of fetching everything
