Overview
Rate limits
Two real rate limits, several honest size caps, and nothing invented — this page documents exactly what the server enforces.
| Surface | Limit | On 429 |
|---|---|---|
POST /api/v1/errors | 300 error events per minute per app — counts events, not requests | rate_limited; drop or thin the batch and retry after a minute |
POST /api/v1/waitlist | 10 requests per minute per IP | rate_limited |
Event ingestion, SDK config, entitlements, and the Links API carry no request-rate limit today. Don't build a client that depends on that staying true — handle a 429 gracefully everywhere — but don't throttle yourself against limits that don't exist either.
Size caps
- JSON bodies: 1 MB across the API (session-replay ingestion alone allows 12 MB).
- Error ingestion: at most 20 events per request; stacks are accepted up to 64,000 characters and stored truncated to 32,000.
- Event batches: the SDK flushes at 25 events by default; server-side senders should batch similarly rather than one-request-per-event.
- Bulk link creation: 500 links per request, executed in one transaction.
- Link listing:
limitcapped at 500. - Targeting attributes: 20 keys per user, string values ≤ 200 characters.
Truncation is loud, not silent
Where a read endpoint caps a result (CSV export, activity feeds), the response says so — X-Fictura-Row-Count and X-Fictura-Truncated on exports — so a capped result never masquerades as a complete one.