Skip to main content

Headers

Request (client → gateway)​

HeaderUsed onPurpose
Authorization: Bearer <key>All API routesVirtual key
x-zeallm-customer-idChatEnd-user / customer for spend and customer budgets
x-zeallm-end-user-idChatAlias for customer id (lower priority)
x-zeallm-tagsChatComma-separated cost-center tags

Customer resolution: x-zeallm-customer-id → x-zeallm-end-user-id → body user. Upsert is best-effort.

Tags (chat): key tags + x-zeallm-tags + metadata.tags.

Response (gateway → client)​

HeaderChatEmbeddingsMeaning
x-zeallm-request-idYesYesreq_<24 hex> — look up in Request Logs. Sent on every response, errors included
X-Request-IdYesYesSame value as x-zeallm-request-id
x-client-request-idYesYesYour own X-Request-Id, echoed back when you send one
Retry-After429/502429/502Seconds to wait before retrying; see Error codes
x-zeallm-model-groupYesYesGroup that actually served the call
x-zeallm-fallback-fromYesYesOriginal group if fallback fired
x-zeallm-providerYes—OPENAI, AZURE_OPENAI, ANTHROPIC
x-zeallm-key-max-budgetYes*—Key max budget (6 decimal places)
x-zeallm-key-spendYes*—Key current spend (6 decimal places)

*Only when the key has an effective max budget.