Limits
Plan quotas
These are per-org, per-month limits. They reset on the first day of each billing period.
| Free | Pro | Team | |
|---|---|---|---|
| Webhooks / month | 1,000 | 50,000 | 500,000 |
| Log retention | 7 days | 30 days | 90 days |
| Projects per org | 1 | 10 | Unlimited |
| Deployments per project | 3 | 20 | Unlimited |
| Team members per org | 1 | 1 | 5 |
| Named orgs | — | 1 | Unlimited |
Overage: On Pro and Team, webhooks beyond the monthly limit are billed at £0.50 per 1,000 (rounded up). Free tier is hard-capped — the proxy returns 429 until the quota resets.
Request limits
| Limit | Value |
|---|---|
| Max request body size accepted by proxy | 10 MB |
| Max body size stored for replay | 100 KB |
| Max upstream timeout | 10 seconds |
| Max routing header value length | 256 bytes |
| Max payload path depth | 10 levels |
| Rate limit (per project, per minute) | 600 requests |
API limits
| Limit | Value |
|---|---|
| Management API rate limit | 300 requests / minute per API key |
| Max API keys per org | 20 |
| Max projects per org (Team) | 500 |
| Max deployments per project (Team) | 100 |
| Org slug length | 3–48 characters |
| Project slug length | 2–48 characters |
| Deployment label length | 1–100 characters |
| Target URL length | max 2,048 characters |
Webhook log retention
Logs are pruned daily. Free-tier orgs retain 7 days of logs; Pro 30 days; Team 90 days. Pruning happens at 03:00 UTC. Logs pruned within the last 24 hours may still appear briefly before the next pruning cycle.
Replay payloads (stored in KV) expire automatically at exactly the retention TTL — they don’t wait for the daily cron. A log entry may exist without a corresponding replay payload if the payload has expired but the log hasn’t been pruned yet.