Rate Limits

webhook.rodeo offers three tiers designed to grow with your needs. Here's everything you need to know about limits and what each plan includes.

Tiers

FeatureFreeStarterPro
Active webhooks15Unlimited
Event rate limits10 req/min300 req/min1,500 req/min

Free plan

Perfect for personal projects and trying out webhook.rodeo:

  • 1 active webhook - Great for a single integration
  • 10 requests/minute - Suitable for low-volume webhooks
  • 30-day retention - Events deleted after 30 days
  • All core features - Forwarding, replay, Slack, etc.

Starter plan

Ideal for small teams and growing applications:

  • 5 active webhooks - Multiple integrations
  • 300 requests/minute - Handles moderate volume
  • 90-day retention - Longer event history
  • All core features - Everything from Free

Pro plan

Built for production workloads and high-volume applications:

  • Unlimited webhooks - As many as you need
  • 1,500 requests/minute - High throughput
  • Forever retention - Events never deleted
  • Priority support - Faster response times
  • All core features - Everything from Starter

Active webhook limits

Only active webhooks count toward your limit. Inactive webhooks don't count, so you can keep old webhooks around without using quota.

What happens when you hit the limit?

If you try to create or activate a webhook beyond your limit:

{
  "error": "Webhook limit reached",
  "currentCount": 5,
  "maxAllowed": 5,
  "plan": "starter",
  "message": "Starter plan allows 5 active webhooks. Upgrade to Pro for unlimited or deactivate another webhook first."
}

Your options:

  1. Deactivate an existing webhook to free up a slot
  2. Upgrade your plan for more webhooks
  3. Delete unused webhooks (permanent)

Event rate limits

Rate limits prevent abuse and ensure fair usage. Limits are per-webhook-URL, not account-wide.

How rate limiting works

webhook.rodeo uses a sliding window algorithm:

  • Counts requests in the last 60 seconds
  • Allows bursts above the average
  • Resets as old requests age out

Example (Free plan - 10/minute):

00:00 - Request 1-5 ✅ (5 requests so far)
00:30 - Request 6-10 ✅ (10 requests in 30s, still under 10/min average)
00:35 - Request 11 ❌ (exceeds 10/minute over last 60s)
01:00 - Request 12 ✅ (first 5 requests aged out, now under limit)

Rate limit responses

When you exceed your rate limit:

HTTP/1.1 429 Too Many Requests
Content-Type: application/json

{
  "error": "Rate limit exceeded",
  "limit": "10 requests per minute",
  "plan": "free",
  "retryAfter": 30
}

The retryAfter field tells you how many seconds to wait before trying again.

Upgrading for higher limits

PlanLimitUse Cases
Free10/minTesting, personal projects, low-volume webhooks
Starter300/minSmall teams, multiple webhooks, moderate volume
Pro1,500/minProduction apps, high-volume integrations, real-time systems

Need even higher limits? Contact us at support@webhook.rodeo.

Payload limits

All plans have the same payload limit: 4.5MB maximum.

Exceeding the limit

If you send a payload larger than 4.5MB:

HTTP/1.1 413 Payload Too Large
Content-Type: application/json

{
  "error": "Payload too large",
  "limit": "4.5MB",
  "received": "5.2MB"
}

The event is rejected and not stored.

Other limits

Forward timeout

Forward requests timeout after 30 seconds. If your endpoint doesn't respond, the request is aborted and recorded as failed (triggering a retry).

Retry attempts

Failed forwards are retried up to 3 times (4 total attempts including the initial one).

Was this page helpful?