Limits & Pricing
All limits reset on the first of each calendar month. Overage: new writes are blocked; existing records remain queryable.
Record limits
| Limit | Value | Notes |
|---|
| Max body size per record | 64 KB | Returns 400 if exceeded |
| Storage per tenant | 100 MB | All tiers. Prevents runaway storage costs. |
| Max title length | 256 chars | — |
| Metadata object | Arbitrary JSON | Stored, not indexed. Max 16 KB. |
Rate limits
| Limit | Value | Notes |
|---|
| Per-key request rate | 100 req/min | Sliding window via Upstash Redis |
| Burst allowance | 20 req/sec | Before rate limit kicks in |
| 429 response | { "error": "rate_limited", "retry_after": N } | Retry after N seconds |
Tier quotas
| Tier | Price | Records/mo | Agents | Queries/mo |
|---|
| Free | $0 | 1,000 | 1 | 10,000 |
| Pro | $29/mo | 50,000 | 10 | 500,000 |
| Scale | $99/mo | 500,000 | Unlimited | 5,000,000 |
What counts toward quotas
- Records: Every successful
POST /v1/record call. - Queries: Every successful
GET /v1/query call. - Classify calls: Count against record quota.
- Health checks: Free. Not counted.
What happens at quota
- At 80%: warning email (once per billing period).
- At 100%: new writes return
402 with upgrade link. Reads and queries continue working. - At 100% for Pro/Scale: contact support@ for temporary overage access.
Data retention
| Event | What happens |
|---|
| Cancellation | Key suspended. Data retained 90 days. |
| Day 83 post-cancel | "Data deletes in 7 days" warning email + export link. |
| Day 90 post-cancel | All records permanently deleted. |
| GDPR erasure request | Email support@. Processed within 30 days. |