Documentation · Rate limits
Rate limits
Per-key limits for REST and WebSocket, the usage headers on every response, and what happens when you hit a limit.
The numbers
| Limit | Founding | Type |
|---|---|---|
| Sustained rate (REST) | 2 req/sec | Hard |
| Burst (REST) | 10 req/sec for 60s rolling | Hard |
| Monthly quota | 250,000 requests | Soft |
| Concurrent WS connections | 3 per key | Hard |
| WS subscriptions per connection | 500 markets | Soft |
| Historical depth | Every event since coverage began · growing weekly | Hard |
| Export endpoint | 10,000 rows/call, 50 exports/day | Soft |
| Concurrent in-flight HTTP | 10 | Soft |
For context: a client polling /v1/eventsevery 15 seconds uses about 175,000 calls a month (comfortably inside the quota), and if you're on the WebSocket, you don't need to poll at all. If your use case genuinely needs more, talk to us.
Soft vs hardSoft limits surface a 429 with
Retry-After and a warning email at 80% utilisation. Hard limits return 429 immediately and stay in 429 until the window resets. Founding-tier limits are an early-access benefit for our first group of customers.Headers on every response
Every REST response carries the current quota state. Your client can back off without parsing the body.
httphttp
HTTP/1.1 200 OK Content-Type: application/json X-Vera-Tier: founding X-Vera-Quota-Limit: 250000 X-Vera-Quota-Remaining: 231047 X-Vera-Quota-Reset: 2026-07-01T00:00:00Z X-Vera-Rate-Limit: 2 X-Vera-Rate-Remaining: 1 X-Vera-Burst-Remaining: 8 X-Vera-Burst-Reset: 2026-06-10T20:14:18Z
What 429 looks like
httphttp
HTTP/1.1 429 Too Many Requests Retry-After: 12 Content-Type: application/json { 0