Resellers/End-user ID & limits
End-User ID
If one account or one API key serves many of your own end users, send the X-End-User-Id header on every request to say which end user it belongs to. When one end user keeps violating, Wokey restricts only that end user, your other users keep working, and an in-app notice tells you which one it was.
On this pageexpand_more
Sending the headerlink
curl https://api.wokey.ai/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "X-End-User-Id: u_3f8a2c1e9b7d" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"messages": [
{ "role": "user", "content": "Hello" }
]
}'- The value is your own end-user ID: 1 to 128 visible ASCII characters (letters, digits and symbols; no spaces or non-ASCII characters). Use a UUID, an internal ID, or a hash of one, never an email address, phone number or other personal information. The value you already send as OpenAI safety_identifier or Anthropic metadata.user_id works as is. For signed-out users send a session ID or leave the header out; a fixed value such as anonymous or guest makes many people one end user, restricted together.
- Chat Completions, Responses and Messages all accept it. The header is for Wokey only and is never forwarded upstream. With an SDK, add it for the whole client with default_headers (Python) or defaultHeaders (Node.js), or per request with extra_headers.
Restrictionslink
- The rules match the account-level restrictions but apply to that end user alone: repeated violations by one end user on one model within a short time first rate limit it on that model (1 concurrent request, 10 requests per minute); continued violations pause that model for the end user for 24 hours, after which it returns automatically; several paused models within 30 days pause all model calls for the end user until support restores them.
- Requests beyond an end user's rate limit return HTTP 429 rate_limit_exceeded, and requests from a paused end user return HTTP 403 request_blocked. Neither reaches the upstream or is charged. When an end user is paused you get an in-app notice with the end-user ID, the model and when access returns; notices within an hour are merged into one.
- The header never loosens the limits on your account: violations count toward your account with or without it, under the account-level restrictions. Requests from a paused end user no longer reach the upstream, so they stop counting toward your account. Requests that do trigger a violation are charged the violation handling fee as usual.
Managing in the consolelink
Enterprise and reseller accounts can review restricted end users and their refusal reasons from the last 7 days on the End users tab of the API console, and lift a rate limit or pause themselves. Each end user can be lifted this way once every 24 hours; an end user paused on every model still needs support. Contact support to enable the tab.
Invalid valueslink
An invalid value (too long, containing spaces or non-ASCII characters, or the header sent twice in one request) is treated as if the header were absent: the request completes normally, and each API key gets one in-app reminder per day.