Rate Limits
Understand shared member rate limits, read response headers, throttle before a 429 response, and inspect current REST capacity.
REST request capacity is shared by the member. Every user, account, and API key under that member uses the same read, write, and cancel buckets. Creating another API key does not increase the available capacity.
These limits apply only to authenticated REST operations. Public REST operations and WebSocket traffic use separate limits.
Handle a 429 Response
When a REST request exhausts its bucket, UDX returns:
429 Too Many Requests;Retry-Afterin integer seconds;Cache-Control: no-store; and- Problem Details with
type: urn:udx:problem:member-rate-limit-exceeded.
Wait for at least the Retry-After interval, then retry with a new timestamp and signature. If the mutation used an idempotency key, reuse the same UDX-Idempotency-Key. A request rejected by a rate limit is not saved as the operation’s result.
A 503 Service Unavailable means UDX could not safely evaluate whether to admit the request; it does not mean the member exhausted its capacity. Retry 503 responses with bounded exponential backoff and jitter. Do not use the human-readable detail field to decide how to recover.
Throttle Before a 429
Responses for requests that use a REST bucket include RateLimit-Policy and RateLimit headers for that bucket:
RateLimit-Policy: "read";q=30;w=2
RateLimit: "read";r=12;t=1
qis the bucket’s token capacity.wis the number of seconds required to refill an empty bucket.ris the number of tokens remaining after the request.tis the number of seconds until the bucket is full.
Use r to slow requests before receiving a 429. These headers are absent when a request does not use a REST bucket, including an idempotent replay and a 503.
The field format follows the IETF’s RateLimit header fields for HTTP draft. HTTP 429 Too Many Requests and Retry-After behavior are defined in RFC 6585.
Check Current Limits
GET /rate_limit_profile returns the member’s bucket capacity, refill rate, and cost per request. This request uses the read bucket.