Rate Limits & Credits
Every API key is subject to rate limits and credit allowances based on the plan it belongs to. Credits are tracked at the account level (not per key) and reset at the start of each billing cycle. All plans can use every public endpoint, so plans differ by usage capacity rather than feature access.
Limits by Plan
The table below outlines the credit allowances and rate limits for each plan:
| Plan | Credits/Month | Requests/Minute | Public API Access | Price |
|---|---|---|---|---|
| Free | 1,000 | 10 | All features | $0 |
| Starter | 150,000 | 60 | All features | $29/mo |
| Pro | 1,500,000 | 200 | All features | $149/mo |
| Business | 5,000,000 | 1,000 | All features | $299/mo |
| Enterprise | Unlimited | Unlimited | All features | Custom |
How Credits Work
Standard data requests consume 1 credit each. MoneyLine AI requests use fixed higher credit bands based on request scope and output format. Credits are tracked at the account level, so all API keys under your account share the same credit pool and the same monthly allowance.
- Standard data endpoints continue to consume 1 credit per request.
- MoneyLine AI consumes a fixed band per request, with retrieval and generation usage reported in the response metadata.
- Business tier supports overage billing at $0.00015 per credit beyond the 5M monthly allowance.
- Auto-upgrade is enabled by default, but the current server implementation treats it as a grace path rather than performing an immediate billing upgrade inside the request.
- If auto-upgrade is disabled and you exceed your limit, the API returns a
429response.
MoneyLine AI Credit Bands
| Scope | Natural | Hybrid | Structured |
|---|---|---|---|
| Small (top 5) | 20 | 27 | 17 |
| Medium (top 12) | 47 | 60 | 40 |
| Large (top 25) | 93 | 113 | 73 |
AI responses include meta.creditUsage with the total charge plus retrieval and generation shares for transparency.
429 Headers
The API does not currently emit per-request rate-limit status headers such as X-RateLimit-Remaining. When you exceed the per-minute rate limit, the server returns a Retry-After header with the number of seconds to wait before retrying.
| Header | Description |
|---|---|
| Retry-After | Returned on 429 rate-limit responses. Currently set to 60 seconds. |
Exceeding the Limit
If you exceed your per-minute rate limit or your monthly credit allowance (with auto-upgrade disabled), the API will return a 429 Too Many Requests response. For per-minute throttling, wait for the window to reset before retrying and honor the Retry-After header.
{
"success": false,
"data": null,
"meta": {
"requestId": "ml_req_ab12cd34ef56"
},
"error": {
"message": "Rate limit exceeded. 60 requests/minute allowed on Starter tier.",
"statusCode": 429
}
}