Plans & Limits
Request quotas, data retention windows, rate limits, and endpoint limits for webhooks.cc. Compare the free and pro plans side by side with exact numbers, billing periods, and upgrade paths.
Updated Mar 2026
Plans overview
| Plan | Requests | Period | Retention | Endpoints | Teams | Price |
|---|---|---|---|---|---|---|
| Guest | 25 | 12 hours | 12 hours | Ephemeral only (12hr TTL) | — | Free (no signup) |
| Free | 50 | 24 hours | 7 days | Unlimited, never expire | — | Free |
| Pro | 100,000 | 30 days | 30 days | Unlimited, never expire | Yes | $8/month |
Every feature — webhook capture, inspection, replay, mock responses, CLI tunneling, SDK, and MCP server — works on both Free and Pro. The only feature exclusive to Pro is Teams (create teams, invite members, share endpoints).
Endpoints created by logged-in users (Free or Pro) never expire. They persist until you explicitly delete them from the dashboard, CLI, SDK, or API. Only ephemeral endpoints -- created without an account or explicitly marked ephemeral -- auto-delete after 12 hours.
How billing periods work
Guest — no account required. Ephemeral endpoints auto-delete after 12 hours along with all captured requests. Each ephemeral endpoint has a 25-request cap.
Free — billing periods activate lazily. Your 24-hour window starts when your first webhook request is captured, not when you sign up. Once the period expires, the counter resets and the next request starts a new 24-hour window.
Pro — 30-day rolling billing periods. The counter resets automatically at the end of each period. Canceled subscriptions remain active until the current period ends, then downgrade to Free.
Request quotas
Quotas limit how many webhook requests your endpoints can capture within a billing period. When your quota is exhausted, the receiver returns 429 Too Many Requests with a Retry-After header indicating when the quota resets.
Quotas are enforced atomically inside a single Postgres stored procedure — no race conditions, even under high concurrency.
sendTo calls that send webhooks directly to your handler URL do not count toward your quota.
Only requests routed through your webhooks.cc endpoint are counted.
Data retention
Captured requests are cleaned up automatically based on your plan:
- Free — requests older than 7 days are deleted daily at 01:30 UTC
- Pro — requests older than 31 days are deleted daily at 01:00 UTC
- Ephemeral — requests are deleted when the endpoint expires (12 hours after creation)
Deleted requests cannot be recovered. Export important requests as JSON or CSV from the dashboard before they expire.
Teams and shared endpoints
When you share an endpoint with a team, incoming webhooks count against your quota — not the team member viewing them. Data retention also follows the endpoint owner's plan.
Every team member must be on the Pro plan to access shared endpoints. If a member downgrades, they lose access to shared endpoints but remain in the team.
Rate limits
API routes enforce per-IP rate limits to prevent abuse. When a limit is exceeded, the API returns 429 Too Many Requests with a Retry-After header.
| Action | Limit | Window |
|---|---|---|
| Create endpoint | 30 | 10 minutes |
| Create ephemeral endpoint (guest) | 20 | 10 minutes |
| Send test webhook | 30 | 1 minute |
| Search requests | 60 | 10 minutes |
| Search count | 120 | 10 minutes |
| Device auth flows | 10 | 1 minute |
| Create team | 10 | 10 minutes |
| Send team invite | 20 | 10 minutes |
| Share endpoint with team | 30 | 10 minutes |
Other limits
| Resource | Limit |
|---|---|
| API keys per user | 10 |
| API key default TTL | 365 days |
| Mock response delay | 30,000ms (30 seconds) |
| Test webhook body size | 1 MB |
| Paginated request listing | 100 per page |
| Ephemeral endpoints (per guest) | 25 concurrent |
| SSE stream connection | 30 minutes max |
| SSE keepalive interval | 30 seconds |
| Teams per user (Pro only) | 10 |
| Members per team | 25 |