Short answer:
- Prefect Cloud webhooks are subject to Prefect Cloud’s API rate limits. If you exceed them you’ll get HTTP 429 with a Retry-After header.
- Prefect Server (self-hosted) does not document built‑in rate limits; any limits would come from your own gateway/load balancer.
Prefect Cloud 3.x limits by plan (requests per minute)
- Hobby: 250 rpm (~4 rps)
- Starter: 500 rpm (~8 rps)
- Team: 1,000 rpm (~17 rps)
- Pro: 2,000 rpm (~33 rps)
- Enterprise: custom
Docs:
Prefect Cloud rate limits. Webhook behavior:
Webhooks.
What happens on limit
- Exceeding the limit returns 429 Too Many Requests with a Retry-After header indicating how long to wait before retrying.
Recommendations
- Respect Retry-After and implement exponential backoff with jitter for retries.
- If you expect bursts above your plan’s rpm, buffer on your side (queue) and drip feed to Prefect within your sustained throughput budget.
- Keep payloads small and idempotent so retries are safe.
- If you regularly need more throughput, consider upgrading your plan or contact support.
If you can share whether you’re on Prefect Cloud or self-hosted Server (and your plan/expected peak rps), I can suggest concrete backoff settings and buffering targets.