Count attempts, not just events
Ten million webhooks can become eleven or fifteen million delivery attempts once retries, timeouts, and receiver failures are included.
Webhook cost model
The cloud bill is only one part of webhook delivery cost. At 10 million webhooks per month, retries, logs, database writes, support visibility, and failure recovery usually matter more than the first HTTP request.
monthly_attempts = initial_webhooks * (1 + retry_rate)
example:
initial_webhooks = 10,000,000
retry_rate = 10%
monthly_attempts = 11,000,000
then estimate:
queue_operations
+ worker/runtime execution
+ outbound HTTP bandwidth
+ database writes for jobs and attempts
+ searchable log storage
+ monitoring and support timeTen million webhooks can become eleven or fifteen million delivery attempts once retries, timeouts, and receiver failures are included.
Searchable delivery history needs structured storage for status codes, latency, errors, payload context, and response metadata.
The largest cost is often maintaining retry workers, dashboards, support tooling, abuse controls, and incident recovery.
A simple estimate starts with initial webhooks, but production delivery is billed and operated around attempts. If 10% of endpoints fail once and retry, 10 million scheduled webhooks become 11 million HTTP attempts. If receivers are unreliable, retry volume can climb much higher.
That retry multiplier affects queues, worker execution, outbound requests, database writes, log storage, dashboard queries, and alerting. A low retry rate keeps the system boring. A noisy retry rate turns into operational drag quickly.
For a real cost model, separate the system into six buckets: queue operations, worker/runtime execution, outbound HTTP traffic, job and attempt storage, searchable logs, and support or engineering time. Lumping them together hides the expensive part.
Searchable logs are especially easy to underestimate. A support team does not only need to know that a webhook failed. They need the scheduled time, target host, status code, latency, attempt count, retry state, and enough response context to debug the integration without asking an engineer to dig through raw logs.
For a first estimate, model 100k, 1M, and 10M scheduled webhooks by attempts, not only by original jobs. With a 10% retry rate, those become 110k, 1.1M, and 11M HTTP attempts. Cloud Tasks operations, serverless invocations, database writes, and delivery logs all scale from that attempt count.
| Jobs/month | 10% retry attempts | What to watch |
|---|---|---|
| 100k | 110k | dashboard reads and basic log volume |
| 1M | 1.1M | retention, retry spikes, and database writes |
| 10M | 11M | support workflows, search, and storage growth |
Public cloud line items are useful, but they are not the whole business model. The hard cost to control is retained job data, searchable attempts, noisy endpoints, and the human time spent explaining failures.
Retry policy should be designed like a product decision, not a background detail. One retry on the free plan may be enough for basic workflows. Higher-value customers may need longer retry windows, more attempts, and richer delivery history.
That is why paid plans should not only sell volume. They should sell recovery: more retry attempts, longer history, better visibility, response details, and fewer silent failures. For the implementation side, see the webhook retry logic guide.
Building the first version is usually straightforward: a queue, a worker, and a database table. The cost appears when the system needs cancellation, idempotency, plan limits, SSRF protection, retry backoff, dashboard search, response storage, customer support views, and billing-aware controls.
Webhook Scheduler is meant for teams that want those production behaviors without owning the worker infrastructure. Your backend creates a delayed HTTP job with the Schedule Webhooks API, and the platform handles delivery attempts, retry state, logs, and dashboard monitoring.
If you process 10 million webhooks per month, do not price only against raw cloud operations. Price against reliability and support. A cheap system that hides failures becomes expensive when customers ask why an integration did not fire.
The practical question is not just how much it costs to send the HTTP requests. It is how much it costs to prove what happened when a customer, invoice, automation, or integration is waiting on the result.
The raw HTTP delivery can be manageable, but retries, searchable logs, database writes, support tooling, and engineering time can become the larger cost.
Retries turn one scheduled webhook into multiple HTTP attempts, and each attempt can create queue, compute, storage, logging, and monitoring work.
Include queue operations, worker execution, outbound HTTP traffic, job storage, delivery attempt logs, searchable history, monitoring, and support workflows.
Start with the free plan, test a real delivery, then upgrade when the workflow becomes production critical.
Model your webhook flow