Plans & Limits
Request quotas, data retention, parsed attachment pages, rate limits, and endpoint limits for webhooks.cc. Compare the Free, Pro, Business, and Teams plans side by side with exact numbers, billing periods, and plan changes.
Updated Nov 2026
Plans overview
| Plan | Requests | Period | Retention | Endpoints | Price |
|---|---|---|---|---|---|
| Guest | 25 | 12 hours | 12 hours | Ephemeral only (12hr TTL) | Free (no signup) |
| Agent | 100 per agent | 24 hours | 24 hours | 3 at a time (24hr TTL) | Free (no signup) |
| Free | 50 | 24 hours | 7 days | Unlimited, never expire | Free |
| Pro | 100,000 | 1 month | 31 days | Unlimited, never expire | $8/month |
| Business | 250,000 | 1 month | 90 days | Unlimited, never expire | $29/month or $290/year |
| Teams | 100,000 per seat | 1 month | 31 days | Endpoints shared to the team | $12/seat/month, from 2 seats |
| Team Business | 250,000 per seat | 1 month | 90 days | Endpoints shared to the team | $35/seat/month or $350/seat/year |
Free has every Pro feature except extra requests (monthly blocks, one-time blocks and overage), which need a Pro or Business account or a subscribed team. Webhook and email capture, inspection, replay, mock responses and response rules, forwarding destinations (Google Sheets included), attachment contents in deliveries, failure alerts, layouts, CLI tunneling, the TypeScript, Python and Go SDKs, and the MCP server work on every plan. Paid plans raise the volume and the retention, and Business adds attachment parsing at volume, more layouts per endpoint, a custom inbound domain, file drops to SFTP, FTP and S3, and 90-day retention (see Email parsing).
Teams and Team Business are a separate, per-team subscription rather than a tier of your personal plan. Any account (Free, Pro or Business) can create a team, and the team's own subscription decides what it can do. See Teams and shared endpoints below.
Endpoints created by logged-in users, on any plan, 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.
Agent: an AI agent that registers without an account gets a sandbox of 3 endpoints for 24 hours, with 25 requests per endpoint and 100 in all. See AI agents.
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: monthly billing periods. The counter resets automatically with each renewal. Canceled subscriptions remain active until the current period ends, then downgrade to Free.
Business: billed monthly ($29) or yearly ($290); annual billing is only offered on Business and Team Business. On monthly billing, requests and parsed pages reset with each renewal, as on Pro. On annual billing you pay once a year, and requests and parsed pages still reset every month. A canceled subscription stays active until the end of the period you paid for, then the account moves to Free.
Teams and Team Business: periods on the team itself, starting when the team subscribes. The team's pooled counter resets at the end of each period. Team Business can be billed yearly ($350 a seat); the pool and parsed pages still reset every month. A canceled team subscription stays active until the period it paid for ends, then the team is suspended.
Invoices and payment method: on the plan page, Invoices and payment method opens the customer portal of Polar, our payment provider, where you download invoices and receipts and change the card on file. Changing the plan stays on the plan page. A team's owner finds the same button under Billing on the team page.
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.
When it runs out, we email you that webhooks are being rejected, with the endpoints that have rejected any so far: on Free at most once a week, on Pro and Business at most once per billing period, after any extra requests are used up too.
Quotas are enforced atomically inside a single Postgres stored procedure, so there are no race conditions, even under high concurrency.
Emails sent to an endpoint's address count against the same quota: one request per endpoint the email is addressed to. When the quota is used up, new mail is refused with 552 5.2.2 Mailbox full, so the sender gets a bounce instead of the email disappearing. The account page shows how much of your usage was email.
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.
Extra requests
Pro and Business accounts and subscribed teams can go past the plan's quota in three ways, all in blocks of 25,000 requests. Manage them under Account > Plan and usage > Extra requests, or on the team's page (the owner).
| Option | Price | How it works |
|---|---|---|
| Monthly blocks | $2 per 25,000 a month | Raise the quota every period and renew together with the plan |
| One-time blocks | $3 per 25,000 | Bought once, kept until used, and used only after the quota and monthly blocks run out |
| Overage | $4 per 25,000 ($0.16 per 1,000) | Counted past everything else, up to a monthly maximum you set, billed at the end of the period |
Requests are used in this order: the plan's quota, monthly blocks, one-time blocks, then overage. Only when all of them are used up does the receiver answer 429 Too Many Requests.
Monthly blocks renew on the plan's renewal date. Adding blocks mid-period charges the full monthly price for them at once and adds their requests at once; removing blocks takes effect at the renewal, so you keep what you paid for until then.
One-time blocks never expire. They stay with the account when the paid plan ends, and a team keeps them while it is subscribed.
Overage costs nothing until it is used. Polar asks for a card when you turn it on, and bills the requests counted in a period together with the plan at the end of that period, never more than your maximum. Turning overage off stops it at once; what was already used is billed at the period end.
Monthly blocks and overage need a paid plan: if Pro, Business or the team's subscription is canceled they end with it, and come back if you keep the plan after all.
Changing plans
Change plans under Account > Plan and usage. Each change says before you confirm it whether it applies now or at the renewal.
- From Free, checking out starts Pro or Business (monthly or yearly) at once.
- Pro to Business, monthly, applies at once. You are charged the difference for the rest of the current period and get Business's extra requests and parsed pages in proportion for that part of it. The full allowance starts at the next renewal.
- Every other change (to annual billing, back to monthly, or down to Pro) takes effect at the renewal. Until then you keep the current plan and can undo the change.
After moving down, the old plan's retention is kept for 7 more days before the shorter one applies. One-time page blocks stay on the account; monthly page blocks and page overage end when the account leaves Business.
Data retention
Captured requests, with any stored email and attachments, are deleted automatically, within minutes after they pass your plan's retention:
- Free: 7 days
- Pro: 31 days
- Business: 90 days
- Team-billed: requests captured on an endpoint shared with an active team are kept for 31 days, or 90 days on Team Business, even when the endpoint owner is on Free
- Ephemeral: requests are deleted when the endpoint expires (12 hours after creation)
An endpoint's owner can keep its requests for fewer days than the plan, or delete each request a minute after every destination has its copy or has given up ("deliver, then delete"); see Retention. After a plan ends or moves down, its retention is kept for 7 more days before the shorter one applies.
Deleted requests cannot be recovered. Export important requests as JSON or CSV from the dashboard before they expire.
Email parsing
Layouts read each sender's emails into fields and line items on every plan. Parsing attachments is metered in pages:
- each PDF page (its text layer; there is no OCR, so a scanned page has no text to read)
- each started 1,000 rows of each sheet in a CSV, TSV, XLSX, XLS or ODS file
- each plain text attachment
Email bodies never count.
| Plan | Parsed pages | Layouts per endpoint | More pages |
|---|---|---|---|
| Free | 20 a month | 2 | No |
| Pro | 100 a month | 2 | No |
| Teams | 100 a month, pooled | 2 on endpoints shared to the team | No |
| Business | 2,000 a month | 50 | Page blocks, page overage |
| Team Business | 2,000 a month per seat, pooled | 50 on endpoints shared to the team | Page blocks, page overage |
Without pages left, emails are still captured and delivered with their attachments as files, unparsed. Free counts a month from the first parse; Pro and Business count with their request period, so on annual Business the pages reset every month too.
Page blocks and page overage
Business accounts, and Team Business teams, can parse past the included pages. Manage them under Account > Plan and usage > Parsed pages, or on the team's page (the owner).
| Option | Price | How it works |
|---|---|---|
| Monthly page blocks | $5 per 1,000 a month | Raise the pages every period and renew together with the plan |
| One-time page blocks | $8 per 1,000 | Bought once, never expire |
| Page overage | $0.01 per page | Opt-in, counted past everything else, up to a maximum you set, billed at the end of the period |
Pages are used in this order: the plan's pages, monthly page blocks, one-time page blocks, then overage.
One-time page blocks stay on the account when it leaves Business. Monthly page blocks and page overage end when the account leaves Business, or when the team leaves Team Business.
Custom inbound domains
Business includes one custom inbound domain, so mail can arrive at an address on your own domain; Team Business includes one per team. Each extra domain is $3 a month, renewed with the plan and set under Account > Domains (or on the team's page). Domains added mid-period are charged in full and count at once; fewer apply at the renewal. Extra domains end when the account leaves Business, or when the team leaves Team Business, and the domains stop receiving mail.
AI setup and repair
AI setup proposes patterns for fields and layouts, and repairs a field that stopped matching, from emails you pick. Each ask uses one AI assist, counted over 30 days:
| Plan | AI assists every 30 days |
|---|---|
| Free | 5 |
| Pro and Teams | 20 |
| Business | 250 |
| Team Business | 250 per seat, pooled |
Assists do not reset with your billing period: each one counts for 30 days from the moment it was used, then comes back. AI setup shows how many are left and when the next one comes back.
Endpoints shared with an active team (one with a subscription) count against the team's assists, as their requests count against its pool. Others, including endpoints shared with a team that is not subscribed, count against their owner's.
Teams and shared endpoints
Teams are billed per team, from 2 seats: Teams at $12/seat/month, or Team Business at $35/seat/month or $350/seat/year. Any account can create a team, but the team stays inert until its owner subscribes: the subscription, not anyone's personal plan, is what activates it.
Seats decide two things:
- The member cap: a team can hold exactly as many members as it has purchased seats (the owner occupies one). Adding a member beyond that means buying another seat first.
- The request pool: each seat adds 100,000 requests per period on Teams, or 250,000 on Team Business, to a single pool shared by the whole team.
Whose quota gets used. Once an endpoint is shared with a team that has an active subscription, its captured requests draw from that team's pool instead of the endpoint owner's personal quota, and they are retained for 31 days (90 with Team Business) regardless of the owner's plan. If an endpoint is shared with several active teams, the oldest share is billed, never more than one team per request. Endpoints that are not shared with an active team keep counting against their owner's own quota and retention.
When the pool is exhausted, the receiver returns 429 Too Many Requests with a Retry-After pointing at the team's period reset.
Team Business. Business for each seat: 250,000 requests, 2,000 parsed attachment pages and 250 AI assists per seat, pooled, with page blocks and page overage, up to 50 layouts per endpoint on endpoints shared to the team, one custom inbound domain, file drops for endpoints shared with the team, and 90-day retention for team-billed requests. Members' personal endpoints follow their own plan. Moving a team up from Teams applies at once, with the extra requests and pages for the rest of the period in proportion to what is charged; moving down waits for the renewal. See Teams.
Without an active subscription (never subscribed, or canceled and past the period end) a team is suspended: its data is kept, but invites, endpoint sharing, and member access to shared endpoints are all blocked until it subscribes again. Requests captured while a team is suspended fall back to the endpoint owner's personal quota.
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 |
| Send test email | 10 | 1 minute |
| Send test delivery (forwarding) | 10 | 1 minute |
| Redeliver a forwarded request | 30 | 1 minute |
| Redeliver all failed (forwarding) | 10 | 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 |
| Email message size | 10 MB |
| Recipients per email | 20 |
| Original email kept | The whole message, up to 10 MB |
| Forwarding answer timeout | 15 seconds |
| Forwarding retries | 8, over about a day (or 4 within an hour, or none) |
| Deliveries waiting per endpoint | 1,000 |
| Paginated request listing | 100 per page |
| SSE stream connection | 30 minutes max |
| SSE keepalive interval | 30 seconds |
| Teams owned per user | 10 |
| Members per team | = purchased seats |
| Seats per team | 1,000 |