Quotas
| Plan | Calls a month | Past the quota |
|---|---|---|
| No key | None | Each paid call answers 402 with x402 terms |
| Free account key | 250 | Paid calls answer 402 with x402 terms |
| Subscription key | 10,000 | Paid calls answer 402 with x402 terms |
- Quotas are per account and reset on the 1st of each month, UTC.
- Only a delivered
200counts.X-API-Quota-Remainingon the response says what is left. - Free endpoints and free MCP tools do not count and need no key.
- There is no per-minute limit on top of the monthly quota.
Status codes
| Status | Meaning | Charged | Retry |
|---|---|---|---|
200 | The payload. | Yes, on a paid endpoint | |
400 | A parameter is missing or malformed. The error field says which. | No | After fixing the request |
401 | The API key is unknown or was revoked. | No | With a valid key |
402 | Payment required: no key was sent, or the key's quota is spent. The body carries the x402 terms and error gives the reason. | No | With a key, or with an x402 payment |
404 | Nothing matched: a ticker we do not cover, or data not computed yet. | No | No |
500 | Server error. | No | Yes |
503 | The database could not be reached. | No | Yes, after a pause |
Error bodies are JSON with an error string:
{
"error": "Provide exactly one of ?symbol= or ?name="
}
On the MCP server
A tool reports a failure as a result marked isError with a sentence of text, not as a protocol error. A premium tool that found nothing says "You were not charged" in that text.
Caching
A response paid for with an API key is sent with Cache-Control: private, no-store. Cache it yourself if you call the same thing repeatedly: most data changes at most daily.
Questions: iposignal.xyz/faq.