How tracking limits behave
Impression and click tracking fail quietly. When you go over the limit, the event is dropped and the endpoint returns{ "success": false } with a normal 200 status, so it never throws in your
renderer. If the client IP cannot be determined, the limit is skipped (it fails open) rather than
blocking a legitimate event.
Checkout and the management API are the exceptions: exceeding their limits returns a real
429 TOO_MANY_REQUESTS error.
Rate-limit headers
A429 from a management endpoint (per-key limit) includes a Retry-After header with the number
of seconds to wait before retrying. Revinel does not emit X-RateLimit-Limit, X-RateLimit-Remaining,
or X-RateLimit-Reset today, so treat the limits above as the contract and honor Retry-After when
you get one.
You will not normally hit the tracking limits from real user traffic. The
@revinel/sdk and @revinel/react clients fire impressions and
clicks fire-and-forget with keepalive, one per view or click. The limits exist to absorb misfiring
loops and bots, not ordinary page views.