Skip to content

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

PlanRequestsPeriodRetentionEndpointsPrice
Guest2512 hours12 hoursEphemeral only (12hr TTL)Free (no signup)
Agent100 per agent24 hours24 hours3 at a time (24hr TTL)Free (no signup)
Free5024 hours7 daysUnlimited, never expireFree
Pro100,0001 month31 daysUnlimited, never expire$8/month
Business250,0001 month90 daysUnlimited, never expire$29/month or $290/year
Teams100,000 per seat1 month31 daysEndpoints shared to the team$12/seat/month, from 2 seats
Team Business250,000 per seat1 month90 daysEndpoints 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).

OptionPriceHow it works
Monthly blocks$2 per 25,000 a monthRaise the quota every period and renew together with the plan
One-time blocks$3 per 25,000Bought 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.

PlanParsed pagesLayouts per endpointMore pages
Free20 a month2No
Pro100 a month2No
Teams100 a month, pooled2 on endpoints shared to the teamNo
Business2,000 a month50Page blocks, page overage
Team Business2,000 a month per seat, pooled50 on endpoints shared to the teamPage 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).

OptionPriceHow it works
Monthly page blocks$5 per 1,000 a monthRaise the pages every period and renew together with the plan
One-time page blocks$8 per 1,000Bought once, never expire
Page overage$0.01 per pageOpt-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:

PlanAI assists every 30 days
Free5
Pro and Teams20
Business250
Team Business250 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.

ActionLimitWindow
Create endpoint3010 minutes
Create ephemeral endpoint (guest)2010 minutes
Send test webhook301 minute
Send test email101 minute
Send test delivery (forwarding)101 minute
Redeliver a forwarded request301 minute
Redeliver all failed (forwarding)101 minute
Search requests6010 minutes
Search count12010 minutes
Device auth flows101 minute
Create team1010 minutes
Send team invite2010 minutes
Share endpoint with team3010 minutes

Other limits

ResourceLimit
API keys per user10
API key default TTL365 days
Mock response delay30,000ms (30 seconds)
Test webhook body size1 MB
Email message size10 MB
Recipients per email20
Original email keptThe whole message, up to 10 MB
Forwarding answer timeout15 seconds
Forwarding retries8, over about a day (or 4 within an hour, or none)
Deliveries waiting per endpoint1,000
Paginated request listing100 per page
SSE stream connection30 minutes max
SSE keepalive interval30 seconds
Teams owned per user10
Members per team= purchased seats
Seats per team1,000