Rhombus API Rate Limits & Webhooks — Developer Guide
This guide covers what you need to know to build reliable integrations with the Rhombus API, including how rate limiting works, how to handle throttled responses, and how to configure and consume webhooks.API Rate Limits
All API requests authenticated via API key or OAuth token are subject to rate limiting. Limits are enforced per credential and per organization.Authentication Methods
Both methods share the same rate limiting behavior described below.
What Happens When You Hit the Limit
When your request is rate limited, the API returns:Handling a 429 Response
- Read the
Retry-Afterheader. It tells you how many seconds to wait before retrying. - Pause requests for the duration specified (60 seconds).
- Retry your request after the wait period.
Recommended Client-Side Strategy
Exponential backoff with jitter is the most resilient approach for any integration:
Example implementation (pseudocode):
Key Points
- Rate limits are evaluated per API key / OAuth token per organization.
- The
Retry-Afterheader is always present on 429 responses — always prefer it over hardcoded delays. - Server errors (5xx) are transient and safe to retry with backoff. Client errors (4xx other than 429) indicate a problem with your request and should not be retried.
- The rate limiting system is fail-open — if the rate limit service itself is unavailable, your request will be allowed through. Do not rely on this behavior; design your integration to respect limits.
Webhooks
Webhooks allow your application to receive real-time event notifications via HTTP POST to a URL you configure. Webhook delivery, retry, and backoff are handled entirely server-side — your responsibility is to register your endpoint and process incoming payloads.Webhook Types
Configuration
Each webhook is identified by its destination URL and includes:
You can register multiple webhooks per type. Each URL can be independently enabled or disabled.
Webhook Lifecycle
Delivery Behavior
The server manages delivery with built-in backoff:- Successful delivery (2xx): Event is marked as delivered. A configurable backoff window prevents duplicate deliveries for the same event type.
- Rate limited (429): The server enters a backoff period for your webhook URL and retries later.
- Gone (410): Your webhook is marked as inactive. Re-register if your endpoint returns to service.
- Other failures (non-2xx): The server logs the error and retries according to its backoff schedule.
Building a Reliable Webhook Receiver
1. Respond quickly. Return a200 OK as soon as you receive the payload. Process the event asynchronously.
webhookSecret to validate that the payload came from Rhombus and has not been tampered with.
3. Handle duplicates. Webhook delivery is at-least-once. Your receiver should be idempotent — processing the same event twice should produce the same result. Use event identifiers to deduplicate.
4. Return appropriate status codes.
5. Keep your endpoint available. If your endpoint is consistently unreachable or returning errors, delivery attempts will continue with increasing backoff periods.
Alert Backoff (Notification Throttling)
Alert notifications (distinct from webhooks) have a configurable minimum interval between consecutive alerts of the same type for a given entity. This prevents alert fatigue from high-frequency events like motion detection.Configurable Intervals
This is set per policy and per activity type. During the backoff window, duplicate alerts for the same entity and activity are suppressed server-side. Alerts with new identity information (a different recognized face or license plate) bypass the backoff and are delivered immediately.