| Plan | Applies to | Minute limit | Daily limit | Keyed by |
| Free | /api/v1/public/* | 50 requests / 10 seconds | — | Client IP at the edge |
| Pro | Authenticated realtime API | 30 requests/minute | 20,000/day | Organization |
| Premium | Authenticated realtime API | 180 requests/minute | 150,000/day | Organization |
429 Too Many Requests:1234{ "error": "too_many_requests", "message": "Public API rate limit exceeded. Retry after 10s." }
403
(see No plan at all). They are not billed against a minute
or daily budget, so they carry none of the headers below.| Header | Meaning |
RateLimit-Limit | Plan requests per minute. |
RateLimit-Remaining | Requests left in the current minute. |
RateLimit-Reset | Seconds until the minute counter resets. |
RateLimit-Daily-Limit | Plan requests per UTC day. |
RateLimit-Daily-Remaining | Requests left today. |
RateLimit-Daily-Reset | Seconds until 00:00 UTC. |
429 Too Many Requests. It includes the same
headers, sets the exhausted remaining value to zero, and includes Retry-After
for the budget that blocked the request:123456{ "error": "rate_limited", "limit": "rpm", "message": "Organization rpm request limit exceeded; retry after 18s.", "upgrade_url": "https://adjacent.markets/subscribe" }
Retry-After seconds. upgrade_url points to the plan
catalog. It is omitted when no plan is available to buy.429 Too Many Requests with
Retry-After and the body above with "limit": "concurrency"./api/v1/public/*) shares one pool of capacity across all
anonymous callers and can return 429 with Retry-After under load:1234{ "error": "too_many_requests", "message": "The public API is at its concurrent request limit. Retry after 2s." }
Retry-After seconds on a concurrency 429.403 Forbidden:12345{ "error": "Insufficient scope: a Pro or Premium API plan is required", "status": 403, "upgrade_url": "https://adjacent.markets/subscribe" }
upgrade_url carries the same meaning as on a 429 and is likewise omitted when
no plan is available to buy. Unlike a 429, retrying does not help: nothing
resets until the organization holds a plan.