Python 88.3%
TypeScript 7.6%
Shell 4.1%
1[2 {3 "provider": "anthropic",4 "name": "anthropic-beta",5 "direction": "request",6 "required": "no",7 "description": "Comma-separated beta feature names, header may be repeated; unknown → 400. SDKs: `betas=[...]`; CLI: `--beta a,b`. Full list in the models/beta fragment (46 values documented).",8 "example": "anthropic-beta: context-management-2025-06-27,fast-mode-2026-02-01",9 "status": [10 "DOCUMENTED",11 "LIVE_VERIFIED"12 ],13 "source": "https://platform.claude.com/docs/en/api/beta-headers",14 "_fragment": "generated/fragments/headers/anthropic-headers.json"15 },16 {17 "provider": "anthropic",18 "name": "x-api-key",19 "direction": "request",20 "required": "yes (unless Authorization)",21 "description": "Console API key. Described as the legacy fallback for Authorization but still fully supported (used by the SDKs and this atlas). Invalid → 401 'invalid x-api-key'.",22 "example": "x-api-key: sk-ant-…",23 "status": [24 "DOCUMENTED",25 "LIVE_VERIFIED"26 ],27 "source": "https://platform.claude.com/docs/en/api/overview",28 "_fragment": "generated/fragments/headers/anthropic-headers.json"29 },30 {31 "provider": "anthropic",32 "name": "Authorization",33 "direction": "request",34 "required": "yes (unless x-api-key)",35 "description": "`Bearer <token>`: API key, or short-lived access token from POST /v1/oauth/token (Workload Identity Federation) or `ant auth login` (OAuth). SDKs: `auth_token` / ANTHROPIC_AUTH_TOKEN.",36 "example": "Authorization: Bearer <token>",37 "status": [38 "DOCUMENTED"39 ],40 "source": "https://platform.claude.com/docs/en/api/overview",41 "_fragment": "generated/fragments/headers/anthropic-headers.json"42 },43 {44 "provider": "anthropic",45 "name": "anthropic-version",46 "direction": "request",47 "required": "yes",48 "description": "API version date. Only `2023-06-01` is current; live: `2020-01-01` → 400 'is not a valid version', `2023-01-01` → 400 'not allowed for this endpoint' (Messages). SDKs send 2023-06-01 automatically.",49 "example": "anthropic-version: 2023-06-01",50 "status": [51 "DOCUMENTED",52 "LIVE_VERIFIED"53 ],54 "source": "https://platform.claude.com/docs/en/api/versioning",55 "_fragment": "generated/fragments/headers/anthropic-headers.json"56 },57 {58 "provider": "anthropic",59 "name": "content-type",60 "direction": "request",61 "required": "yes (with body)",62 "description": "application/json. Malformed JSON → 400 'The request body is not valid JSON'.",63 "example": "content-type: application/json",64 "status": [65 "DOCUMENTED",66 "LIVE_VERIFIED"67 ],68 "source": "https://platform.claude.com/docs/en/api/overview",69 "_fragment": "generated/fragments/headers/anthropic-headers.json"70 },71 {72 "provider": "anthropic",73 "name": "accept",74 "direction": "request",75 "required": "no",76 "description": "Not required; streaming responses are text/event-stream regardless.",77 "example": "accept: text/event-stream",78 "status": [79 "LIVE_DISCOVERED"80 ],81 "source": "https://platform.claude.com/docs/en/api/overview",82 "_fragment": "generated/fragments/headers/anthropic-headers.json"83 },84 {85 "provider": "anthropic",86 "name": "anthropic-workspace-id",87 "direction": "request",88 "required": "required for multi-workspace keys",89 "description": "Workspace to act in (wrkspc_…); optional otherwise; not used with WIF.",90 "example": "anthropic-workspace-id: wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",91 "status": [92 "DOCUMENTED"93 ],94 "source": "https://platform.claude.com/docs/en/api/overview",95 "_fragment": "generated/fragments/headers/anthropic-headers.json"96 },97 {98 "provider": "anthropic",99 "name": "anthropic-user-profile-id",100 "direction": "request",101 "required": "no (beta)",102 "description": "Attribute the request to a user profile (requires a user-profiles-* beta header).",103 "example": "anthropic-user-profile-id: …",104 "status": [105 "DOCUMENTED",106 "BETA"107 ],108 "source": "https://platform.claude.com/docs/en/api/messages",109 "_fragment": "generated/fragments/headers/anthropic-headers.json"110 },111 {112 "provider": "anthropic",113 "name": "request-id",114 "direction": "response",115 "required": "always",116 "description": "Unique request id (req_…), also `request_id` in error bodies; SDKs expose `_request_id`. Present on 200 and error responses (live).",117 "example": "request-id: req_011CfBxdcLppPJYpctgsTcu6",118 "status": [119 "DOCUMENTED",120 "LIVE_VERIFIED"121 ],122 "source": "https://platform.claude.com/docs/en/api/errors",123 "_fragment": "generated/fragments/headers/anthropic-headers.json"124 },125 {126 "provider": "anthropic",127 "name": "anthropic-organization-id",128 "direction": "response",129 "required": "when authenticated",130 "description": "Organization id of the credential. Live: present on 200/400/404, absent on 401 and unknown-path 404.",131 "example": "anthropic-organization-id: <uuid>",132 "status": [133 "DOCUMENTED",134 "LIVE_VERIFIED"135 ],136 "source": "https://platform.claude.com/docs/en/api/overview",137 "_fragment": "generated/fragments/headers/anthropic-headers.json"138 },139 {140 "provider": "anthropic",141 "name": "anthropic-workspace-id",142 "direction": "response",143 "required": "when resolvable",144 "description": "Workspace the credential resolved to; absent for Admin API or non-workspace credentials. Not observed on our default-workspace key.",145 "example": "anthropic-workspace-id: wrkspc_…",146 "status": [147 "DOCUMENTED"148 ],149 "source": "https://platform.claude.com/docs/en/api/overview",150 "_fragment": "generated/fragments/headers/anthropic-headers.json"151 },152 {153 "provider": "anthropic",154 "name": "x-should-retry",155 "direction": "response",156 "required": "on errors",157 "description": "Undocumented in the header tables: `false` on every 4xx observed; the SDKs read it (true/false) to override retry decisions.",158 "example": "x-should-retry: false",159 "status": [160 "LIVE_DISCOVERED"161 ],162 "source": "https://platform.claude.com/docs/en/api/overview",163 "_fragment": "generated/fragments/headers/anthropic-headers.json"164 },165 {166 "provider": "anthropic",167 "name": "retry-after",168 "direction": "response",169 "required": "on 429/529",170 "description": "Seconds to wait before retrying; absent on tier spend-cap 429.",171 "example": "retry-after: 8",172 "status": [173 "DOCUMENTED"174 ],175 "source": "https://platform.claude.com/docs/en/api/rate-limits",176 "_fragment": "generated/fragments/headers/anthropic-headers.json"177 },178 {179 "provider": "anthropic",180 "name": "anthropic-ratelimit-requests-limit / -remaining / -reset",181 "direction": "response",182 "required": "on 200 (Messages)",183 "description": "Requests-per-minute bucket; reset is RFC 3339. Live: 10000 / 9999 / 2026-09-19T01:50:53Z.",184 "example": "anthropic-ratelimit-requests-limit: 10000",185 "status": [186 "DOCUMENTED",187 "LIVE_VERIFIED"188 ],189 "source": "https://platform.claude.com/docs/en/api/rate-limits",190 "_fragment": "generated/fragments/headers/anthropic-headers.json"191 },192 {193 "provider": "anthropic",194 "name": "anthropic-ratelimit-tokens-limit / -remaining / -reset",195 "direction": "response",196 "required": "on 200",197 "description": "Most restrictive token bucket in effect (rounded to nearest thousand). Live: 12000000.",198 "example": "anthropic-ratelimit-tokens-limit: 12000000",199 "status": [200 "DOCUMENTED",201 "LIVE_VERIFIED"202 ],203 "source": "https://platform.claude.com/docs/en/api/rate-limits",204 "_fragment": "generated/fragments/headers/anthropic-headers.json"205 },206 {207 "provider": "anthropic",208 "name": "anthropic-ratelimit-input-tokens-limit / -remaining / -reset",209 "direction": "response",210 "required": "on 200",211 "description": "Input-token bucket. Live: 10000000.",212 "example": "anthropic-ratelimit-input-tokens-remaining: 10000000",213 "status": [214 "DOCUMENTED",215 "LIVE_VERIFIED"216 ],217 "source": "https://platform.claude.com/docs/en/api/rate-limits",218 "_fragment": "generated/fragments/headers/anthropic-headers.json"219 },220 {221 "provider": "anthropic",222 "name": "anthropic-ratelimit-output-tokens-limit / -remaining / -reset",223 "direction": "response",224 "required": "on 200",225 "description": "Output-token bucket. Live: 2000000.",226 "example": "anthropic-ratelimit-output-tokens-limit: 2000000",227 "status": [228 "DOCUMENTED",229 "LIVE_VERIFIED"230 ],231 "source": "https://platform.claude.com/docs/en/api/rate-limits",232 "_fragment": "generated/fragments/headers/anthropic-headers.json"233 },234 {235 "provider": "anthropic",236 "name": "anthropic-priority-input-tokens-limit / -remaining / -reset",237 "direction": "response",238 "required": "Priority Tier only",239 "description": "Priority Tier input-token capacity; presence signals the request was eligible for Priority Tier.",240 "example": "anthropic-priority-input-tokens-limit: …",241 "status": [242 "DOCUMENTED"243 ],244 "source": "https://platform.claude.com/docs/en/api/rate-limits",245 "_fragment": "generated/fragments/headers/anthropic-headers.json"246 },247 {248 "provider": "anthropic",249 "name": "anthropic-priority-output-tokens-limit / -remaining / -reset",250 "direction": "response",251 "required": "Priority Tier only",252 "description": "Priority Tier output-token capacity.",253 "example": "anthropic-priority-output-tokens-limit: …",254 "status": [255 "DOCUMENTED"256 ],257 "source": "https://platform.claude.com/docs/en/api/rate-limits",258 "_fragment": "generated/fragments/headers/anthropic-headers.json"259 },260 {261 "provider": "anthropic",262 "name": "cf-ray",263 "direction": "response",264 "required": "always",265 "description": "Cloudflare edge id (requests traverse Cloudflare; 413 is returned by Cloudflare).",266 "example": "CF-RAY: a3d4f1316811a314-YUL",267 "status": [268 "LIVE_DISCOVERED"269 ],270 "source": "https://platform.claude.com/docs/en/api/errors",271 "_fragment": "generated/fragments/headers/anthropic-headers.json"272 },273 {274 "provider": "anthropic",275 "name": "x-amzn-requestid",276 "direction": "response",277 "required": "Claude Platform on AWS only",278 "description": "AWS request id alongside request-id.",279 "example": "x-amzn-requestid: …",280 "status": [281 "DOCUMENTED"282 ],283 "source": "https://platform.claude.com/docs/en/api/errors",284 "_fragment": "generated/fragments/headers/anthropic-headers.json"285 },286 {287 "provider": "anthropic",288 "name": "content-type: text/event-stream",289 "direction": "response",290 "required": "when stream=true",291 "description": "SSE stream: named events (`event: <type>` + `data: <json>`), no `data: [DONE]` since version 2023-06-01.",292 "example": "content-type: text/event-stream",293 "status": [294 "DOCUMENTED",295 "LIVE_VERIFIED"296 ],297 "source": "https://platform.claude.com/docs/en/build-with-claude/streaming",298 "_fragment": "generated/fragments/headers/anthropic-headers.json"299 },300 {301 "provider": "gemini",302 "name": "x-goog-api-key",303 "direction": "request",304 "required": "yes (unless Authorization or ?key=)",305 "description": "Gemini API key (AI Studio). Preferred way to authenticate the Gemini Developer API; used by the GenAI SDKs and this atlas. Standard keys are being replaced by authorization keys (bound to a service account); standard keys rejected from September 2026. Invalid/blocked keys -> 400 INVALID_ARGUMENT 'API key not valid' or 403 PERMISSION_DENIED; leaked keys -> 'Your API key was reported as leaked'.",306 "example": "x-goog-api-key: AIza...",307 "status": [308 "DOCUMENTED",309 "LIVE_VERIFIED"310 ],311 "source": "https://ai.google.dev/gemini-api/docs/api-key",312 "_fragment": "generated/fragments/headers/gemini-headers.json"313 },314 {315 "provider": "gemini",316 "name": "key (query parameter)",317 "direction": "request",318 "required": "alternative to x-goog-api-key",319 "description": "`?key=API_KEY` query-string alternative documented in the discovery document ('Required unless you provide an OAuth 2.0 token'). Still shown in some REST reference snippets, but discouraged: keys end up in URLs, logs and referrers. Never used by this atlas.",320 "example": "GET /v1beta/models?key=AIza... (avoid)",321 "status": [322 "DOCUMENTED"323 ],324 "source": "https://ai.google.dev/api/models",325 "_fragment": "generated/fragments/headers/gemini-headers.json"326 },327 {328 "provider": "gemini",329 "name": "Authorization",330 "direction": "request",331 "required": "OpenAI-compat: yes; native API: alternative",332 "description": "`Bearer <token>`. (1) OpenAI-compatibility layer (/v1beta/openai/*) REQUIRES the Gemini API key as `Authorization: Bearer <GEMINI_API_KEY>`; sending only x-goog-api-key returns 400 INVALID_ARGUMENT 'Missing or invalid Authorization header.' (live 2026-09-19). (2) Native API: OAuth 2.0 access token (user credentials or application-default credentials, scope generative-language) for stricter access control, tuned-model / corpora permissions; gcloud ADC flow documented in oauth.md.",333 "example": "Authorization: Bearer <api key | OAuth access token>",334 "status": [335 "DOCUMENTED",336 "LIVE_VERIFIED"337 ],338 "source": "https://ai.google.dev/gemini-api/docs/openai",339 "_fragment": "generated/fragments/headers/gemini-headers.json"340 },341 {342 "provider": "gemini",343 "name": "x-goog-user-project",344 "direction": "request",345 "required": "no",346 "description": "Standard Google API header naming the Cloud project billed/quota-charged when authenticating with OAuth user credentials instead of an API key. Sent by the google-genai SDK when configured; not mentioned in Gemini docs pages.",347 "example": "x-goog-user-project: my-project-id",348 "status": [349 "UNVERIFIED"350 ],351 "source": "https://cloud.google.com/docs/authentication/rest#set-billing-project",352 "_fragment": "generated/fragments/headers/gemini-headers.json"353 },354 {355 "provider": "gemini",356 "name": "Content-Type",357 "direction": "request",358 "required": "yes for JSON bodies",359 "description": "`application/json` for all JSON methods. Resumable media upload uses `X-Goog-Upload-*` headers instead. The Batch API JSONL upload uses mime type `jsonl`.",360 "example": "Content-Type: application/json",361 "status": [362 "DOCUMENTED",363 "LIVE_VERIFIED"364 ],365 "source": "https://ai.google.dev/gemini-api/docs/quickstart",366 "_fragment": "generated/fragments/headers/gemini-headers.json"367 },368 {369 "provider": "gemini",370 "name": "alt (query parameter)",371 "direction": "request",372 "required": "for SSE streaming",373 "description": "`?alt=sse` switches streamGenerateContent / interactions streaming to Server-Sent Events (`text/event-stream`, `data: {...}` lines). Without it streamGenerateContent returns a JSON array of chunks. Discovery doc also lists alt=json|media|proto.",374 "example": "POST /v1beta/models/gemini-3.8-flash:streamGenerateContent?alt=sse",375 "status": [376 "DOCUMENTED"377 ],378 "source": "https://ai.google.dev/gemini-api/docs/text-generation",379 "_fragment": "generated/fragments/headers/gemini-headers.json"380 },381 {382 "provider": "gemini",383 "name": "x-goog-api-client",384 "direction": "request",385 "required": "no (SDK telemetry)",386 "description": "Client library identifier sent by the GenAI SDKs, e.g. `google-genai-sdk/2.24.0 gl-python/3.13` (Python) or `google-genai-sdk/2.23.0 gl-node/...` (JS). Not required for raw REST calls.",387 "example": "x-goog-api-client: google-genai-sdk/2.24.0 gl-python/3.13",388 "status": [389 "DOCUMENTED"390 ],391 "source": "https://github.com/googleapis/python-genai (_api_client.py)",392 "_fragment": "generated/fragments/headers/gemini-headers.json"393 },394 {395 "provider": "gemini",396 "name": "X-Server-Timeout",397 "direction": "request",398 "required": "no",399 "description": "Server-side timeout hint (seconds) set by the google-genai SDK from `http_options.timeout` (SDK code); relevant for long Flex / Deep Research requests.",400 "example": "X-Server-Timeout: 600",401 "status": [402 "UNVERIFIED"403 ],404 "source": "https://github.com/googleapis/python-genai (_api_client.py)",405 "_fragment": "generated/fragments/headers/gemini-headers.json"406 },407 {408 "provider": "gemini",409 "name": "X-Goog-Upload-Protocol / X-Goog-Upload-Command / X-Goog-Upload-Header-Content-Length / X-Goog-Upload-Header-Content-Type / X-Goog-Upload-Offset",410 "direction": "request",411 "required": "for resumable uploads",412 "description": "Resumable upload protocol on /upload/v1beta/files and /upload/v1beta/fileSearchStores/{store}:uploadToFileSearchStore: start with `X-Goog-Upload-Protocol: resumable`, `X-Goog-Upload-Command: start`, then `upload, finalize` to the `x-goog-upload-url` returned in the response headers.",413 "example": "X-Goog-Upload-Protocol: resumable",414 "status": [415 "DOCUMENTED"416 ],417 "source": "https://ai.google.dev/gemini-api/docs/file-search",418 "_fragment": "generated/fragments/headers/gemini-headers.json"419 },420 {421 "provider": "gemini",422 "name": "x-goog-upload-url",423 "direction": "response",424 "required": null,425 "description": "Returned by the resumable-upload `start` request; subsequent upload/finalize chunks are sent to this URL.",426 "example": "x-goog-upload-url: https://generativelanguage.googleapis.com/upload/v1beta/files?upload_id=...",427 "status": [428 "DOCUMENTED"429 ],430 "source": "https://ai.google.dev/gemini-api/docs/files",431 "_fragment": "generated/fragments/headers/gemini-headers.json"432 },433 {434 "provider": "gemini",435 "name": "X-Gemini-Service-Tier",436 "direction": "response",437 "required": null,438 "description": "Undocumented response header observed on every native generateContent response (200 and 429): the service tier that handled the request; mirrors `usageMetadata.serviceTier`. Absent on the OpenAI-compat endpoint.",439 "example": "X-Gemini-Service-Tier: standard",440 "status": [441 "LIVE_DISCOVERED"442 ],443 "source": "live probe 2026-09-19 (tmp-live/gemini-models-probe.json)",444 "_fragment": "generated/fragments/headers/gemini-headers.json"445 },446 {447 "provider": "gemini",448 "name": "Server-Timing",449 "direction": "response",450 "required": null,451 "description": "Google front-end timing, e.g. `gfet4t7; dur=87` (ms). Only timing header present; no request-id header is returned (use `responseId` in the JSON body).",452 "example": "Server-Timing: gfet4t7; dur=87",453 "status": [454 "LIVE_DISCOVERED"455 ],456 "source": "live probe 2026-09-19",457 "_fragment": "generated/fragments/headers/gemini-headers.json"458 },459 {460 "provider": "gemini",461 "name": "x-ratelimit-* / Retry-After",462 "direction": "response",463 "required": null,464 "description": "NOT exposed. Neither the docs nor live responses (200/404/429) carry rate-limit remaining/reset headers or Retry-After; the retry delay is embedded in the 429 message text ('Please retry in 54.2s').",465 "example": "(absent)",466 "status": [467 "LIVE_DISCOVERED"468 ],469 "source": "live probe 2026-09-19",470 "_fragment": "generated/fragments/headers/gemini-headers.json"471 },472 {473 "provider": "gemini",474 "name": "Content-Type",475 "direction": "response",476 "required": null,477 "description": "`application/json; charset=UTF-8` for JSON; `text/event-stream` with alt=sse; media downloads via /download/v1beta/files/{name}:download return the file's mime type.",478 "example": "Content-Type: application/json; charset=UTF-8",479 "status": [480 "LIVE_VERIFIED"481 ],482 "source": "live probe 2026-09-19",483 "_fragment": "generated/fragments/headers/gemini-headers.json"484 },485 {486 "provider": "gemini",487 "name": "Set-Cookie / P3P / Cache-Control / Expires",488 "direction": "response",489 "required": null,490 "description": "Present only on the OpenAI-compatibility endpoints (/v1beta/openai/*), which are served by a different front end; harmless but note when comparing raw responses.",491 "example": "Cache-Control: private",492 "status": [493 "LIVE_DISCOVERED"494 ],495 "source": "live probe 2026-09-19",496 "_fragment": "generated/fragments/headers/gemini-headers.json"497 },498 {499 "provider": "gemini",500 "name": "Vertex-style headers (not applicable)",501 "direction": "request",502 "required": "no",503 "description": "The Gemini Developer API has no API-version header (version is in the URL path /v1 or /v1beta) and no beta-feature header; features are gated by path version only. Gemini Enterprise Agent Platform (Vertex AI) instead uses OAuth/ADC `Authorization: Bearer` with regional hosts `https://{location}-aiplatform.googleapis.com/v1/projects/{project}/locations/{location}/publishers/google/models/{model}:generateContent`.",504 "example": "(none)",505 "status": [506 "DOCUMENTED"507 ],508 "source": "https://ai.google.dev/gemini-api/docs/api-versions",509 "_fragment": "generated/fragments/headers/gemini-headers.json"510 },511 {512 "provider": "openai",513 "name": "Authorization",514 "direction": "request",515 "required": true,516 "description": "`Bearer <credential>`: project API key (sk-proj-...), legacy user key (sk-...), service-account key, Admin API key (sk-admin-..., admin endpoints only) or a short-lived workload-identity access token. Revocation propagates within seconds; other auth-affecting updates within ~15 min.",517 "example": "Authorization: Bearer $OPENAI_API_KEY",518 "status": [519 "DOCUMENTED",520 "LIVE_VERIFIED"521 ],522 "source": "https://developers.openai.com/api/reference/overview#authentication",523 "_fragment": "generated/fragments/headers/openai-headers.json"524 },525 {526 "provider": "openai",527 "name": "OpenAI-Organization",528 "direction": "request",529 "required": false,530 "description": "Selects the billing organization for users in several orgs / legacy user keys. With a project key it must match the key's org, else 401 `mismatched_organization` (observed).",531 "example": "OpenAI-Organization: org-xxxxxxxx",532 "status": [533 "DOCUMENTED",534 "LIVE_VERIFIED"535 ],536 "source": "https://developers.openai.com/api/reference/overview#authentication",537 "_fragment": "generated/fragments/headers/openai-headers.json"538 },539 {540 "provider": "openai",541 "name": "OpenAI-Project",542 "direction": "request",543 "required": false,544 "description": "Selects the project for legacy user keys. Unknown project -> 401 `invalid_project` \"No such project\" (observed). Project keys are already project-bound.",545 "example": "OpenAI-Project: proj_xxxxxxxx",546 "status": [547 "DOCUMENTED",548 "LIVE_VERIFIED"549 ],550 "source": "https://developers.openai.com/api/reference/overview#authentication",551 "_fragment": "generated/fragments/headers/openai-headers.json"552 },553 {554 "provider": "openai",555 "name": "Content-Type",556 "direction": "request",557 "required": true,558 "description": "`application/json` for JSON endpoints (anything else -> 400 `unsupported_content_type`, observed); `multipart/form-data` for file uploads (files, uploads/parts, audio, image edits/variations, containers files); `application/sdp` for Realtime WebRTC.",559 "example": "Content-Type: application/json",560 "status": [561 "DOCUMENTED",562 "LIVE_VERIFIED"563 ],564 "source": "https://developers.openai.com/api/reference/overview",565 "_fragment": "generated/fragments/headers/openai-headers.json"566 },567 {568 "provider": "openai",569 "name": "OpenAI-Beta",570 "direction": "request",571 "required": false,572 "description": "Opt-in to beta surfaces. Values found in the docs/spec: `assistants=v2` (legacy Assistants), `agents=v1` (Agents API /v1/agents/*, 400 `invalid_beta` without it — observed by another agent), `chatkit_beta=v1` (ChatKit), `responses_multi_agent=v1` (Responses multi-agent), `workspace_agent_runs=v1`, `realtime=v1` (legacy Realtime beta). Historic `assistants=v1` retired.",573 "example": "OpenAI-Beta: agents=v1",574 "status": [575 "DOCUMENTED"576 ],577 "source": "https://developers.openai.com/api/reference/resources/beta",578 "_fragment": "generated/fragments/headers/openai-headers.json"579 },580 {581 "provider": "openai",582 "name": "X-Client-Request-Id",583 "direction": "request",584 "required": false,585 "description": "Caller-supplied correlation id logged by OpenAI for supported endpoints (chat/completions, embeddings, responses, ...). ASCII only, <= 512 chars, unique per request; violation -> 400 (observed: \"X-Client-Request-Id header contains non-ASCII characters\"). Not echoed back in response headers (observed).",586 "example": "X-Client-Request-Id: 123e4567-e89b-12d3-a456-426614174000",587 "status": [588 "DOCUMENTED",589 "LIVE_VERIFIED"590 ],591 "source": "https://developers.openai.com/api/reference/overview#supplying-your-own-request-id-with-x-client-request-id",592 "_fragment": "generated/fragments/headers/openai-headers.json"593 },594 {595 "provider": "openai",596 "name": "Idempotency-Key",597 "direction": "request",598 "required": false,599 "description": "NOT documented for the OpenAI API (no occurrence in the OpenAPI spec or docs pages). OpenAI SDKs do not send one. Deduplicate on your side (e.g. Responses `metadata`, Batch `custom_id`, webhook `webhook-id`).",600 "example": null,601 "status": [602 "UNVERIFIED"603 ],604 "source": "https://developers.openai.com/api/reference/overview",605 "_fragment": "generated/fragments/headers/openai-headers.json"606 },607 {608 "provider": "openai",609 "name": "Accept",610 "direction": "request",611 "required": false,612 "description": "`text/event-stream` is implied by `stream: true`; not required. For SSE responses the server sets `Content-Type: text/event-stream`.",613 "example": "Accept: text/event-stream",614 "status": [615 "DOCUMENTED"616 ],617 "source": "https://developers.openai.com/api/reference/resources/responses/streaming-events",618 "_fragment": "generated/fragments/headers/openai-headers.json"619 },620 {621 "provider": "openai",622 "name": "User-Agent",623 "direction": "request",624 "required": false,625 "description": "SDKs send `OpenAI/Python <ver>` / `OpenAI/JS <ver>` plus `X-Stainless-*` telemetry headers (X-Stainless-Lang, -Package-Version, -OS, -Arch, -Runtime, -Runtime-Version, X-Stainless-Retry-Count, X-Stainless-Timeout, x-stainless-read-timeout). Total request headers must stay under 64 KiB (custom values <= 60 KiB).",626 "example": "User-Agent: OpenAI/Python 3.16.2",627 "status": [628 "DOCUMENTED"629 ],630 "source": "https://developers.openai.com/api/reference/overview#request-headers",631 "_fragment": "generated/fragments/headers/openai-headers.json"632 },633 {634 "provider": "openai",635 "name": "x-request-id",636 "direction": "response",637 "required": false,638 "description": "Unique request id for support/troubleshooting. Observed formats: `req_<32 hex>` on model endpoints (chat/completions, responses, audit_logs) and a UUID on others (models, webhook_endpoints, organization/*). Absent on edge 404s (unknown URL). SDKs expose it as `response._request_id` (Python) / `_request_id` (Node).",639 "example": "x-request-id: req_b02412ebc5604692b13b994c52e5e674",640 "status": [641 "DOCUMENTED",642 "LIVE_VERIFIED"643 ],644 "source": "https://developers.openai.com/api/reference/overview#debugging-requests",645 "_fragment": "generated/fragments/headers/openai-headers.json"646 },647 {648 "provider": "openai",649 "name": "openai-processing-ms",650 "direction": "response",651 "required": false,652 "description": "Server processing time in ms (observed 2-582 ms on our probes).",653 "example": "openai-processing-ms: 396",654 "status": [655 "DOCUMENTED",656 "LIVE_VERIFIED"657 ],658 "source": "https://developers.openai.com/api/reference/overview#debugging-requests",659 "_fragment": "generated/fragments/headers/openai-headers.json"660 },661 {662 "provider": "openai",663 "name": "openai-version",664 "direction": "response",665 "required": false,666 "description": "REST API version, currently `2020-10-01` (observed on every response including 4xx).",667 "example": "openai-version: 2020-10-01",668 "status": [669 "DOCUMENTED",670 "LIVE_VERIFIED"671 ],672 "source": "https://developers.openai.com/api/reference/overview#debugging-requests",673 "_fragment": "generated/fragments/headers/openai-headers.json"674 },675 {676 "provider": "openai",677 "name": "openai-organization",678 "direction": "response",679 "required": false,680 "description": "Organization slug/id that was billed (observed on model calls and on 403 admin errors; absent on 401 auth failures and on GET /v1/models/{id}).",681 "example": "openai-organization: org-slug",682 "status": [683 "DOCUMENTED",684 "LIVE_VERIFIED"685 ],686 "source": "https://developers.openai.com/api/reference/overview#debugging-requests",687 "_fragment": "generated/fragments/headers/openai-headers.json"688 },689 {690 "provider": "openai",691 "name": "openai-project",692 "direction": "response",693 "required": false,694 "description": "Project id (`proj_...`) of the key used. Observed on chat/completions, responses errors, webhook_endpoints, organization/* 403s. Not listed in the overview page (observed only).",695 "example": "openai-project: proj_xxxxxxxx",696 "status": [697 "LIVE_DISCOVERED"698 ],699 "source": "https://developers.openai.com/api/reference/overview#debugging-requests",700 "_fragment": "generated/fragments/headers/openai-headers.json"701 },702 {703 "provider": "openai",704 "name": "x-ratelimit-limit-requests",705 "direction": "response",706 "required": false,707 "description": "RPM limit for the model/tier (observed 30000 on gpt-4.1-nano chat completion).",708 "example": "x-ratelimit-limit-requests: 30000",709 "status": [710 "DOCUMENTED",711 "LIVE_VERIFIED"712 ],713 "source": "https://developers.openai.com/api/docs/guides/rate-limits#rate-limits-in-headers",714 "_fragment": "generated/fragments/headers/openai-headers.json"715 },716 {717 "provider": "openai",718 "name": "x-ratelimit-limit-tokens",719 "direction": "response",720 "required": false,721 "description": "TPM limit (observed 150000000).",722 "example": "x-ratelimit-limit-tokens: 150000000",723 "status": [724 "DOCUMENTED",725 "LIVE_VERIFIED"726 ],727 "source": "https://developers.openai.com/api/docs/guides/rate-limits#rate-limits-in-headers",728 "_fragment": "generated/fragments/headers/openai-headers.json"729 },730 {731 "provider": "openai",732 "name": "x-ratelimit-remaining-requests",733 "direction": "response",734 "required": false,735 "description": "Requests left in the window.",736 "example": "x-ratelimit-remaining-requests: 29999",737 "status": [738 "DOCUMENTED",739 "LIVE_VERIFIED"740 ],741 "source": "https://developers.openai.com/api/docs/guides/rate-limits#rate-limits-in-headers",742 "_fragment": "generated/fragments/headers/openai-headers.json"743 },744 {745 "provider": "openai",746 "name": "x-ratelimit-remaining-tokens",747 "direction": "response",748 "required": false,749 "description": "Tokens left in the window (estimated from prompt chars + max tokens).",750 "example": "x-ratelimit-remaining-tokens: 149999995",751 "status": [752 "DOCUMENTED",753 "LIVE_VERIFIED"754 ],755 "source": "https://developers.openai.com/api/docs/guides/rate-limits#rate-limits-in-headers",756 "_fragment": "generated/fragments/headers/openai-headers.json"757 },758 {759 "provider": "openai",760 "name": "x-ratelimit-reset-requests",761 "direction": "response",762 "required": false,763 "description": "Go-style duration until the request window resets (observed `2ms`; docs sample `1s`, `6m0s`).",764 "example": "x-ratelimit-reset-requests: 2ms",765 "status": [766 "DOCUMENTED",767 "LIVE_VERIFIED"768 ],769 "source": "https://developers.openai.com/api/docs/guides/rate-limits#rate-limits-in-headers",770 "_fragment": "generated/fragments/headers/openai-headers.json"771 },772 {773 "provider": "openai",774 "name": "x-ratelimit-reset-tokens",775 "direction": "response",776 "required": false,777 "description": "Duration until the token window resets (observed `0s`).",778 "example": "x-ratelimit-reset-tokens: 0s",779 "status": [780 "DOCUMENTED",781 "LIVE_VERIFIED"782 ],783 "source": "https://developers.openai.com/api/docs/guides/rate-limits#rate-limits-in-headers",784 "_fragment": "generated/fragments/headers/openai-headers.json"785 },786 {787 "provider": "openai",788 "name": "x-ratelimit-limit-project-tokens",789 "direction": "response",790 "required": false,791 "description": "Project-scoped TPM limit; only present when a project token limit applies (not observed on our project).",792 "example": "x-ratelimit-limit-project-tokens: 60000",793 "status": [794 "DOCUMENTED"795 ],796 "source": "https://developers.openai.com/api/docs/guides/rate-limits#rate-limits-in-headers",797 "_fragment": "generated/fragments/headers/openai-headers.json"798 },799 {800 "provider": "openai",801 "name": "x-ratelimit-remaining-project-tokens",802 "direction": "response",803 "required": false,804 "description": "Remaining project-scoped tokens (conditional).",805 "example": "x-ratelimit-remaining-project-tokens: 57000",806 "status": [807 "DOCUMENTED"808 ],809 "source": "https://developers.openai.com/api/docs/guides/rate-limits#rate-limits-in-headers",810 "_fragment": "generated/fragments/headers/openai-headers.json"811 },812 {813 "provider": "openai",814 "name": "x-ratelimit-reset-project-tokens",815 "direction": "response",816 "required": false,817 "description": "Reset duration for the project token window (conditional).",818 "example": "x-ratelimit-reset-project-tokens: 3s",819 "status": [820 "DOCUMENTED"821 ],822 "source": "https://developers.openai.com/api/docs/guides/rate-limits#rate-limits-in-headers",823 "_fragment": "generated/fragments/headers/openai-headers.json"824 },825 {826 "provider": "openai",827 "name": "Retry-After",828 "direction": "response",829 "required": false,830 "description": "Minimum seconds to wait; may accompany 429 (temporary rate limit / slow_down) and 503 (server_is_overloaded). Never sent for quota/billing 429s. SDKs also honour a `retry-after-ms` header and refuse to auto-retry when the delay exceeds their cap (Python: 60 s).",831 "example": "Retry-After: 56",832 "status": [833 "DOCUMENTED"834 ],835 "source": "https://developers.openai.com/api/docs/guides/rate-limits#rate-limits-in-headers",836 "_fragment": "generated/fragments/headers/openai-headers.json"837 },838 {839 "provider": "openai",840 "name": "x-should-retry",841 "direction": "response",842 "required": false,843 "description": "Server hint honoured by the official SDKs: `true` forces a retry, `false` suppresses it (SDK source `_should_retry`). Not documented on the public docs pages.",844 "example": "x-should-retry: false",845 "status": [846 "LIVE_DISCOVERED"847 ],848 "source": "https://github.com/openai/openai-python (src/openai/_base_client.py)",849 "_fragment": "generated/fragments/headers/openai-headers.json"850 },851 {852 "provider": "openai",853 "name": "retry-after-ms",854 "direction": "response",855 "required": false,856 "description": "Millisecond variant of Retry-After parsed by the SDKs before `retry-after`.",857 "example": "retry-after-ms: 1500",858 "status": [859 "LIVE_DISCOVERED"860 ],861 "source": "https://github.com/openai/openai-python (src/openai/_base_client.py)",862 "_fragment": "generated/fragments/headers/openai-headers.json"863 },864 {865 "provider": "openai",866 "name": "CF-RAY",867 "direction": "response",868 "required": false,869 "description": "Cloudflare edge trace id (observed on every response, including the bodyless 404 for unknown URLs). Useful for support alongside x-request-id.",870 "example": "CF-RAY: a3d4e6b249d053f0-YUL",871 "status": [872 "LIVE_DISCOVERED"873 ],874 "source": "https://developers.openai.com/api/reference/overview#debugging-requests",875 "_fragment": "generated/fragments/headers/openai-headers.json"876 },877 {878 "provider": "openai",879 "name": "Location",880 "direction": "response",881 "required": false,882 "description": "Realtime WebRTC: `POST /v1/realtime/calls` returns 201 with `Location: /v1/realtime/calls/{call_id}` (call id reused for accept/reject/hangup and matches `realtime.call.incoming` webhooks).",883 "example": "Location: /v1/realtime/calls/rtc_xxx",884 "status": [885 "DOCUMENTED"886 ],887 "source": "https://developers.openai.com/api/reference/resources/realtime",888 "_fragment": "generated/fragments/headers/openai-headers.json"889 },890 {891 "provider": "openai",892 "name": "webhook-id",893 "direction": "webhook (OpenAI -> you)",894 "required": true,895 "description": "Unique delivery id (`wh_...`); use as idempotency key to deduplicate redeliveries. Part of the signed string `${webhook-id}.${webhook-timestamp}.${body}`.",896 "example": "webhook-id: wh_685342e6c53c8190a1be43f081506c52",897 "status": [898 "DOCUMENTED"899 ],900 "source": "https://developers.openai.com/api/docs/guides/webhooks#verifying-webhook-signatures",901 "_fragment": "generated/fragments/headers/openai-headers.json"902 },903 {904 "provider": "openai",905 "name": "webhook-timestamp",906 "direction": "webhook (OpenAI -> you)",907 "required": true,908 "description": "Unix seconds at send time; SDKs reject if |now - ts| > tolerance (default 300 s).",909 "example": "webhook-timestamp: 1750287078",910 "status": [911 "DOCUMENTED"912 ],913 "source": "https://developers.openai.com/api/docs/guides/webhooks#verifying-webhook-signatures",914 "_fragment": "generated/fragments/headers/openai-headers.json"915 },916 {917 "provider": "openai",918 "name": "webhook-signature",919 "direction": "webhook (OpenAI -> you)",920 "required": true,921 "description": "Standard Webhooks signature list: space-separated `v1,<base64(HMAC-SHA256(secret, id.timestamp.body))>` entries; secret is `whsec_<base64>` (decode after stripping the prefix). Multiple entries appear during secret rotation (keep_old_secret_active_for_24_hours).",922 "example": "webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=",923 "status": [924 "DOCUMENTED"925 ],926 "source": "https://developers.openai.com/api/docs/guides/webhooks#verifying-webhook-signatures",927 "_fragment": "generated/fragments/headers/openai-headers.json"928 },929 {930 "provider": "openai",931 "name": "user-agent (webhook)",932 "direction": "webhook (OpenAI -> you)",933 "required": false,934 "description": "`OpenAI/1.0 (+https://platform.openai.com/docs/webhooks)`; body Content-Type `application/json`.",935 "example": "user-agent: OpenAI/1.0 (+https://platform.openai.com/docs/webhooks)",936 "status": [937 "DOCUMENTED"938 ],939 "source": "https://developers.openai.com/api/docs/guides/webhooks#handling-webhook-requests-on-a-server",940 "_fragment": "generated/fragments/headers/openai-headers.json"941 },942 {943 "provider": "openai",944 "name": "Sec-WebSocket-Protocol / Authorization (Realtime WebSocket)",945 "direction": "request",946 "required": true,947 "description": "Realtime WebSocket (`wss://api.openai.com/v1/realtime?model=...`): server-side use `Authorization: Bearer <key>`; browsers cannot set headers so pass an ephemeral client secret via subprotocols `realtime, openai-insecure-api-key.<EPHEMERAL_KEY>` (from POST /v1/realtime/client_secrets). Legacy beta added `OpenAI-Beta: realtime=v1`.",948 "example": "Authorization: Bearer $OPENAI_API_KEY",949 "status": [950 "DOCUMENTED"951 ],952 "source": "https://developers.openai.com/api/docs/guides/realtime-conversations",953 "_fragment": "generated/fragments/headers/openai-headers.json"954 },955 {956 "provider": "xai",957 "name": "Authorization",958 "direction": "request",959 "required": "yes",960 "description": "Bearer API key (`xai-...`) for https://api.x.ai and regional/mTLS hosts; Bearer MANAGEMENT key for https://management-api.x.ai (distinct key type: an inference key on the Management API -> 401 {code:16,'Invalid bearer token. Please ensure you use a valid management key.'}). OAuth tokens are also accepted on /v1/me. Missing header -> 401 {code:'unauthenticated:no-credentials'}; malformed/incorrect key -> 400 {code:'invalid-argument','Incorrect API key provided...'} (not 401).",961 "example": "Authorization: Bearer xai-***",962 "status": [963 "DOCUMENTED",964 "LIVE_VERIFIED"965 ],966 "source": "https://docs.x.ai/developers/quickstart",967 "_fragment": "generated/fragments/headers/xai-headers.json"968 },969 {970 "provider": "xai",971 "name": "Content-Type",972 "direction": "request",973 "required": "yes for JSON POST bodies",974 "description": "application/json; multipart/form-data for file uploads and STT batch. Wrong type -> 415 Unsupported Media Type (documented).",975 "example": "Content-Type: application/json",976 "status": [977 "DOCUMENTED",978 "LIVE_VERIFIED"979 ],980 "source": "https://docs.x.ai/developers/debugging",981 "_fragment": "generated/fragments/headers/xai-headers.json"982 },983 {984 "provider": "xai",985 "name": "x-grok-conv-id",986 "direction": "request",987 "required": "no (recommended)",988 "description": "Chat Completions: conversation id used to route all requests of a conversation to the same server so the automatic prompt cache hits. Responses API equivalent is the body field `prompt_cache_key`. Not a beta header.",989 "example": "x-grok-conv-id: conv_abc123",990 "status": [991 "DOCUMENTED"992 ],993 "source": "https://docs.x.ai/developers/advanced-api-usage/prompt-caching/maximizing-cache-hits",994 "_fragment": "generated/fragments/headers/xai-headers.json"995 },996 {997 "provider": "xai",998 "name": "xai-sdk-version / xai-sdk-language",999 "direction": "request",1000 "required": "no",1001 "description": "gRPC metadata automatically added by the official Python SDK (`python/1.19.0`, `python/3.12`).",1002 "example": "xai-sdk-version: python/1.19.0",1003 "status": [1004 "LIVE_DISCOVERED"1005 ],1006 "source": "xai_sdk/client.py (installed .venv, xai-sdk 1.19.0)",1007 "_fragment": "generated/fragments/headers/xai-headers.json"1008 },1009 {1010 "provider": "xai",1011 "name": "x-request-id",1012 "direction": "response",1013 "required": "n/a",1014 "description": "UUID of the request; also equals the `id` of chat.completion objects. Present on most inference responses (absent on GET /v1/models, /v1/api-key, /v1/me in our run). Quote it in bug reports to support@x.ai.",1015 "example": "x-request-id: 0ef8d47f-e0a9-9d28-9dbf-a550f288c419",1016 "status": [1017 "LIVE_DISCOVERED"1018 ],1019 "source": "live 2026-09-19",1020 "_fragment": "generated/fragments/headers/xai-headers.json"1021 },1022 {1023 "provider": "xai",1024 "name": "x-ratelimit-limit-requests",1025 "direction": "response",1026 "required": "n/a",1027 "description": "Request budget of the key for the model (appears to be per minute: 7200 for grok-4.6/4.5, 1800 for grok-4.3/4.20/build, 1800 on POST /v1/tokenize-text). Not documented on docs.x.ai.",1028 "example": "x-ratelimit-limit-requests: 1800",1029 "status": [1030 "LIVE_DISCOVERED"1031 ],1032 "source": "live 2026-09-19",1033 "_fragment": "generated/fragments/headers/xai-headers.json"1034 },1035 {1036 "provider": "xai",1037 "name": "x-ratelimit-remaining-requests",1038 "direction": "response",1039 "required": "n/a",1040 "description": "Remaining requests in the current window (equal to the limit after each of our single probes).",1041 "example": "x-ratelimit-remaining-requests: 1800",1042 "status": [1043 "LIVE_DISCOVERED"1044 ],1045 "source": "live 2026-09-19",1046 "_fragment": "generated/fragments/headers/xai-headers.json"1047 },1048 {1049 "provider": "xai",1050 "name": "x-ratelimit-limit-tokens",1051 "direction": "response",1052 "required": "n/a",1053 "description": "Tokens-per-minute budget for the model (50000000 for grok-4.6/4.5, 10000000 for grok-4.3/4.20/build = documented Tier 0 TPM). Absent on tokenize-text and on the multi-agent Responses call.",1054 "example": "x-ratelimit-limit-tokens: 10000000",1055 "status": [1056 "LIVE_DISCOVERED"1057 ],1058 "source": "live 2026-09-19",1059 "_fragment": "generated/fragments/headers/xai-headers.json"1060 },1061 {1062 "provider": "xai",1063 "name": "x-ratelimit-remaining-tokens",1064 "direction": "response",1065 "required": "n/a",1066 "description": "Remaining TPM budget.",1067 "example": "x-ratelimit-remaining-tokens: 10000000",1068 "status": [1069 "LIVE_DISCOVERED"1070 ],1071 "source": "live 2026-09-19",1072 "_fragment": "generated/fragments/headers/xai-headers.json"1073 },1074 {1075 "provider": "xai",1076 "name": "x-zero-data-retention",1077 "direction": "response",1078 "required": "n/a",1079 "description": "\"true\" or \"false\": whether Zero Data Retention is active for the team (documented in the Security FAQ). Not observed in our run's captured header subset; GET /v1/me returned zdr_status \"no_zdr\".",1080 "example": "x-zero-data-retention: false",1081 "status": [1082 "DOCUMENTED"1083 ],1084 "source": "https://docs.x.ai/developers/faq/security",1085 "_fragment": "generated/fragments/headers/xai-headers.json"1086 },1087 {1088 "provider": "xai",1089 "name": "Server-Timing",1090 "direction": "response",1091 "required": "n/a",1092 "description": "Cloudflare timing (`cfEdge;dur=..,cfOrigin;dur=..`) - origin duration is a useful latency proxy (grok-4.6 minimal call: cfOrigin 2369 ms).",1093 "example": "Server-Timing: cfEdge;dur=68,cfOrigin;dur=2369",1094 "status": [1095 "LIVE_DISCOVERED"1096 ],1097 "source": "live 2026-09-19",1098 "_fragment": "generated/fragments/headers/xai-headers.json"1099 },1100 {1101 "provider": "xai",1102 "name": "CF-RAY",1103 "direction": "response",1104 "required": "n/a",1105 "description": "Cloudflare ray id + edge colo (…-YUL from Montreal).",1106 "example": "CF-RAY: a3d593c10dbc0682-YUL",1107 "status": [1108 "LIVE_DISCOVERED"1109 ],1110 "source": "live 2026-09-19",1111 "_fragment": "generated/fragments/headers/xai-headers.json"1112 },1113 {1114 "provider": "xai",1115 "name": "Retry-After",1116 "direction": "response",1117 "required": "n/a",1118 "description": "Not documented and not observed (no 429 triggered). Docs recommend exponential backoff on 429.",1119 "example": null,1120 "status": [1121 "UNVERIFIED"1122 ],1123 "source": "https://docs.x.ai/developers/rate-limits",1124 "_fragment": "generated/fragments/headers/xai-headers.json"1125 },1126 {1127 "provider": "xai",1128 "name": "(no versioning / beta headers)",1129 "direction": "request",1130 "required": "no",1131 "description": "xAI has no API-version header and no beta-feature headers (unlike anthropic-version / anthropic-beta or OpenAI-Beta). Features are selected by body fields (service_tier, reasoning_effort, store, prompt_cache_key, include) or by base URL.",1132 "example": null,1133 "status": [1134 "DOCUMENTED"1135 ],1136 "source": "https://docs.x.ai/developers/rest-api-reference/inference/chat-completions",1137 "_fragment": "generated/fragments/headers/xai-headers.json"1138 },1139 {1140 "provider": "xai",1141 "name": "base URLs",1142 "direction": "request",1143 "required": "n/a",1144 "description": "Global https://api.x.ai/v1 (processing region not guaranteed) · US regional https://us.api.x.ai/v1 (grok-4.6 only, 1.1x token prices, covers request handling + inference + moderation + retained data; LIVE: GET /v1/models lists only grok-4.6 at 22000/5500/66000 ticks) · https://eu-west-1.api.x.ai/v1 (UNDOCUMENTED, LIVE_DISCOVERED: GET /v1/models -> 200 listing only grok-4.3 at global prices) · mTLS https://mtls.api.x.ai (enterprise, team-level, API key still required) · WebSocket wss://api.x.ai/v1/responses, wss://api.x.ai/v1/realtime, wss://api.x.ai/v1/stt, wss://api.x.ai/v1/tts · gRPC api.x.ai:443 · Management https://management-api.x.ai · Model pages list clusters us-east-1, us-west-2, us-central-1, eu-west-1, us-saltlake-2; propagation endpoint example shows cloud9.api.x.ai and us-east-1.api.x.ai. Vertex AI and Microsoft Foundry expose Grok through their own hosts.",1145 "example": "https://us.api.x.ai/v1/responses",1146 "status": [1147 "DOCUMENTED",1148 "LIVE_VERIFIED"1149 ],1150 "source": "https://docs.x.ai/developers/advanced-api-usage/regions",1151 "_fragment": "generated/fragments/headers/xai-headers.json"1152 }1153]