Python 88.3%
TypeScript 7.6%
Shell 4.1%
1{2 "domain": "xai-media",3 "generated_at": "2026-09-18",4 "records": [5 {6 "provider": "xai",7 "name": "GeneratedImageResponse",8 "kind": "response",9 "description": "Body of POST /v1/images/generations and /v1/images/edits.",10 "schema": {11 "data": "GeneratedImage[] (required)",12 "usage": "MediaUsage|null"13 },14 "status": [15 "DOCUMENTED",16 "LIVE_VERIFIED"17 ],18 "example": {19 "data": [20 {21 "b64_json": "<base64 JPEG>",22 "mime_type": "image/jpeg"23 }24 ],25 "usage": {26 "cost_in_usd_ticks": 20000000027 }28 },29 "notes": null,30 "verification": {31 "method": "live_api",32 "verified_at": "2026-09-18",33 "result": "success",34 "http_status": 200,35 "request_note": "generation + edit"36 },37 "sources": [38 {39 "url": "https://docs.x.ai/developers/rest-api-reference/inference/images",40 "retrieved_at": "2026-09-18"41 }42 ],43 "last_verified": "2026-09-18"44 },45 {46 "provider": "xai",47 "name": "GeneratedImage",48 "kind": "object",49 "description": "One generated image.",50 "schema": {51 "url": "string|null (ephemeral https://imgen.x.ai/xai-imgen/xai-<uuid>.jpeg; default)",52 "b64_json": "string|null (bare base64, no data-URI prefix; when response_format=b64_json)",53 "mime_type": "string|null (image/png | image/jpeg | image/webp; live always image/jpeg)",54 "file_output": "FileOutput (only with storage_options)",55 "storage_error": "string|null",56 "respect_moderation": "boolean (xAI SDK / gRPC field; not present on the REST body observed)"57 },58 "status": [59 "DOCUMENTED",60 "LIVE_VERIFIED"61 ],62 "example": {63 "url": "https://imgen.x.ai/xai-imgen/xai-<uuid>.jpeg",64 "mime_type": "image/jpeg"65 },66 "notes": null,67 "verification": {68 "method": "live_api",69 "verified_at": "2026-09-18",70 "result": "success",71 "http_status": 200,72 "request_note": "url and b64_json variants both observed"73 },74 "sources": [75 {76 "url": "https://docs.x.ai/developers/rest-api-reference/inference/images",77 "retrieved_at": "2026-09-18"78 }79 ],80 "last_verified": "2026-09-18"81 },82 {83 "provider": "xai",84 "name": "MediaUsage",85 "kind": "object",86 "description": "Billing block on image and video responses (`usage`).",87 "schema": {88 "cost_in_usd_ticks": "integer (required; 1 USD = 1e10 ticks, 1 cent = 1e8)",89 "input_tokens": "integer|null",90 "input_tokens_details": "{cached_tokens, image_tokens, text_tokens}",91 "output_tokens": "integer|null",92 "output_tokens_details": "{image_tokens, reasoning_tokens, text_tokens}",93 "total_tokens": "integer|null"94 },95 "status": [96 "DOCUMENTED",97 "LIVE_VERIFIED"98 ],99 "example": {100 "cost_in_usd_ticks": 220000000101 },102 "notes": "Live responses contained only cost_in_usd_ticks (image $0.02 = 2e8, edit $0.022 = 2.2e8, 1-s video $0.05 = 5e8).",103 "verification": {104 "method": "live_api",105 "verified_at": "2026-09-18",106 "result": "success",107 "http_status": 200,108 "request_note": "3 media responses"109 },110 "sources": [111 {112 "url": "https://docs.x.ai/developers/rest-api-reference/inference/images",113 "retrieved_at": "2026-09-18"114 },115 {116 "url": "https://docs.x.ai/developers/cost-tracking",117 "retrieved_at": "2026-09-18"118 }119 ],120 "last_verified": "2026-09-18"121 },122 {123 "provider": "xai",124 "name": "FileOutput",125 "kind": "object",126 "description": "Stored-file reference returned when `storage_options` is set (images: data[].file_output; videos: video.file_output).",127 "schema": {128 "file_id": "string (Files API id)",129 "filename": "string",130 "expires_at": "integer|null (unix s)",131 "public_url": "string|null",132 "public_url_error": "string|null",133 "public_url_expires_at": "integer|null"134 },135 "status": [136 "DOCUMENTED"137 ],138 "example": null,139 "notes": null,140 "verification": {141 "method": "docs_only",142 "verified_at": "2026-09-18",143 "result": "not_tested",144 "http_status": null,145 "request_note": "documentation only (paid, needs media input, or enterprise-gated)"146 },147 "sources": [148 {149 "url": "https://docs.x.ai/developers/rest-api-reference/inference/images",150 "retrieved_at": "2026-09-18"151 },152 {153 "url": "https://docs.x.ai/developers/model-capabilities/imagine/files/outputs",154 "retrieved_at": "2026-09-18"155 }156 ],157 "last_verified": "2026-09-18"158 },159 {160 "provider": "xai",161 "name": "StorageOptions",162 "kind": "request object",163 "description": "`storage_options` on every Imagine request.",164 "schema": {165 "filename": "string (required)",166 "expires_after": "integer|null (≤ 2592000 s)",167 "public_url": "boolean|object"168 },169 "status": [170 "DOCUMENTED"171 ],172 "example": null,173 "notes": null,174 "verification": {175 "method": "docs_only",176 "verified_at": "2026-09-18",177 "result": "not_tested",178 "http_status": null,179 "request_note": "documentation only (paid, needs media input, or enterprise-gated)"180 },181 "sources": [182 {183 "url": "https://docs.x.ai/developers/rest-api-reference/inference/images",184 "retrieved_at": "2026-09-18"185 },186 {187 "url": "https://docs.x.ai/developers/model-capabilities/imagine/files/outputs",188 "retrieved_at": "2026-09-18"189 }190 ],191 "last_verified": "2026-09-18"192 },193 {194 "provider": "xai",195 "name": "ImageGenerationModel",196 "kind": "model record",197 "description": "Item of GET /v1/image-generation-models.",198 "schema": {199 "id": "string",200 "object": "'model'",201 "owned_by": "'xai'",202 "version": "string",203 "fingerprint": "string (fp_…)",204 "created": "integer",205 "max_prompt_length": "integer",206 "input_modalities": "string[]",207 "output_modalities": "string[]",208 "image_price": "integer (USD ticks per image, default tier)",209 "pricing": "ImagePricingTier[] (only grok-imagine-image-2.0)",210 "aliases": "string[]"211 },212 "status": [213 "DOCUMENTED",214 "LIVE_VERIFIED"215 ],216 "example": {217 "id": "grok-imagine-image-2.0",218 "image_price": 600000000,219 "pricing": [220 {221 "quality": "low",222 "resolution": "1k",223 "price_per_image": 400000000224 }225 ],226 "max_prompt_length": 64000227 },228 "notes": null,229 "verification": {230 "method": "live_api",231 "verified_at": "2026-09-18",232 "result": "success",233 "http_status": 200,234 "request_note": "3 models"235 },236 "sources": [237 {238 "url": "https://docs.x.ai/openapi.json (local copy sources/xai/openapi/openapi.json)",239 "retrieved_at": "2026-09-18"240 }241 ],242 "last_verified": "2026-09-18"243 },244 {245 "provider": "xai",246 "name": "ImagePricingTier",247 "kind": "object",248 "description": "Per-image price for one (quality, resolution) tier.",249 "schema": {250 "quality": "'low'|'medium'|'high'",251 "resolution": "'1k'|'1.5k'|'2k'",252 "price_per_image": "integer (USD ticks)"253 },254 "status": [255 "DOCUMENTED",256 "LIVE_VERIFIED"257 ],258 "example": {259 "quality": "medium",260 "resolution": "2k",261 "price_per_image": 800000000262 },263 "notes": null,264 "verification": {265 "method": "live_api",266 "verified_at": "2026-09-18",267 "result": "success",268 "http_status": 200,269 "request_note": "6 tiers on 2.0: low 4e8/5e8/6e8, medium 6e8/7e8/8e8"270 },271 "sources": [272 {273 "url": "https://docs.x.ai/openapi.json (local copy sources/xai/openapi/openapi.json)",274 "retrieved_at": "2026-09-18"275 }276 ],277 "last_verified": "2026-09-18"278 },279 {280 "provider": "xai",281 "name": "VideoGenerationModel",282 "kind": "model record",283 "description": "Item of GET /v1/video-generation-models (no price field).",284 "schema": {285 "id": "string",286 "object": "'model'",287 "owned_by": "'xai'",288 "version": "string",289 "fingerprint": "string",290 "created": "integer",291 "input_modalities": "string[] (text|image|video|audio)",292 "output_modalities": "['video']",293 "aliases": "string[]"294 },295 "status": [296 "DOCUMENTED",297 "LIVE_VERIFIED"298 ],299 "example": {300 "id": "grok-imagine-video-1.5",301 "input_modalities": [302 "text",303 "image",304 "audio"305 ],306 "aliases": [307 "grok-imagine-video-1.5-preview",308 "grok-imagine-video-1.5-2026-05-30"309 ]310 },311 "notes": null,312 "verification": {313 "method": "live_api",314 "verified_at": "2026-09-18",315 "result": "success",316 "http_status": 200,317 "request_note": "2 models"318 },319 "sources": [320 {321 "url": "https://docs.x.ai/openapi.json (local copy sources/xai/openapi/openapi.json)",322 "retrieved_at": "2026-09-18"323 }324 ],325 "last_verified": "2026-09-18"326 },327 {328 "provider": "xai",329 "name": "VideoStartResponse",330 "kind": "response",331 "description": "Body of POST /v1/videos/{generations,edits,extensions}.",332 "schema": {333 "request_id": "string (UUID; also echoed as x-request-id header)"334 },335 "status": [336 "DOCUMENTED",337 "LIVE_VERIFIED"338 ],339 "example": {340 "request_id": "60407e87-a722-92de-8eeb-9a71491aa8e1"341 },342 "notes": null,343 "verification": {344 "method": "live_api",345 "verified_at": "2026-09-18",346 "result": "success",347 "http_status": 200,348 "request_note": "generation"349 },350 "sources": [351 {352 "url": "https://docs.x.ai/developers/rest-api-reference/inference/videos",353 "retrieved_at": "2026-09-18"354 }355 ],356 "last_verified": "2026-09-18"357 },358 {359 "provider": "xai",360 "name": "VideoResponse (poll result)",361 "kind": "response",362 "description": "Body of GET /v1/videos/{request_id}. HTTP 202 while pending, 200 when done. The OpenAPI wrapper GetDeferredVideoResponse {status, response} is NOT used by REST.",363 "schema": {364 "status": "'pending'|'done'|'failed'|'expired'",365 "progress": "integer|null 0–100 (omitted when failed)",366 "video": "GeneratedVideo (done only)",367 "model": "string|null (done only)",368 "usage": "MediaUsage|null",369 "error": "VideoError (failed only)"370 },371 "status": [372 "DOCUMENTED",373 "LIVE_VERIFIED"374 ],375 "example": {376 "status": "done",377 "video": {378 "url": "https://vidgen.x.ai/xai-vidgen-bucket/xai-video-<request_id>.mp4",379 "duration": 1,380 "respect_moderation": true381 },382 "model": "grok-imagine-video",383 "usage": {384 "cost_in_usd_ticks": 500000000385 },386 "progress": 100387 },388 "notes": null,389 "verification": {390 "method": "live_api",391 "verified_at": "2026-09-18",392 "result": "success",393 "http_status": 200,394 "request_note": "202 {status:pending, progress:1} → 202 {pending, 87} → 200 done"395 },396 "sources": [397 {398 "url": "https://docs.x.ai/developers/rest-api-reference/inference/videos",399 "retrieved_at": "2026-09-18"400 },401 {402 "url": "https://docs.x.ai/developers/model-capabilities/video/generation",403 "retrieved_at": "2026-09-18"404 }405 ],406 "last_verified": "2026-09-18"407 },408 {409 "provider": "xai",410 "name": "GeneratedVideo",411 "kind": "object",412 "description": "`video` of a done poll.",413 "schema": {414 "url": "string|null (temporary; empty when respect_moderation=false)",415 "duration": "integer (s)",416 "respect_moderation": "boolean",417 "file_output": "FileOutput (with storage_options)",418 "storage_error": "string|null"419 },420 "status": [421 "DOCUMENTED",422 "LIVE_VERIFIED"423 ],424 "example": {425 "url": "https://vidgen.x.ai/…/xai-video-<id>.mp4",426 "duration": 1,427 "respect_moderation": true428 },429 "notes": null,430 "verification": {431 "method": "live_api",432 "verified_at": "2026-09-18",433 "result": "success",434 "http_status": 200,435 "request_note": "MP4 53 KB, video/mp4"436 },437 "sources": [438 {439 "url": "https://docs.x.ai/developers/rest-api-reference/inference/videos",440 "retrieved_at": "2026-09-18"441 }442 ],443 "last_verified": "2026-09-18"444 },445 {446 "provider": "xai",447 "name": "VideoError",448 "kind": "object",449 "description": "`error` of a failed poll.",450 "schema": {451 "code": "'invalid_argument'|'permission_denied'|'failed_precondition'|'service_unavailable'|'internal_error'",452 "message": "string"453 },454 "status": [455 "DOCUMENTED"456 ],457 "example": {458 "code": "invalid_argument",459 "message": "Prompt cannot be empty. Please provide a prompt."460 },461 "notes": "Auth, model-not-found and synchronous rate-limit errors are HTTP errors, never VideoError.",462 "verification": {463 "method": "docs_only",464 "verified_at": "2026-09-18",465 "result": "not_tested",466 "http_status": null,467 "request_note": "documentation only (paid, needs media input, or enterprise-gated)"468 },469 "sources": [470 {471 "url": "https://docs.x.ai/developers/rest-api-reference/inference/videos",472 "retrieved_at": "2026-09-18"473 },474 {475 "url": "https://docs.x.ai/developers/model-capabilities/video/generation",476 "retrieved_at": "2026-09-18"477 }478 ],479 "last_verified": "2026-09-18"480 },481 {482 "provider": "xai",483 "name": "ClientSecret",484 "kind": "response",485 "description": "Body of POST /v1/realtime/client_secrets.",486 "schema": {487 "value": "string (prefix xai-realtime-… / observed 'xai-real', 111 chars)",488 "expires_at": "integer (unix s)"489 },490 "status": [491 "DOCUMENTED",492 "LIVE_VERIFIED"493 ],494 "example": {495 "value": "xai-realtime-…",496 "expires_at": 1789789324497 },498 "notes": null,499 "verification": {500 "method": "live_api",501 "verified_at": "2026-09-18",502 "result": "success",503 "http_status": 200,504 "request_note": "60 s TTL"505 },506 "sources": [507 {508 "url": "https://docs.x.ai/developers/rest-api-reference/inference/voice",509 "retrieved_at": "2026-09-18"510 }511 ],512 "last_verified": "2026-09-18"513 },514 {515 "provider": "xai",516 "name": "realtime.session",517 "kind": "object",518 "description": "`session` in session.created / session.updated.",519 "schema": {520 "id": "string (32 hex)",521 "object": "'realtime.session'",522 "model": "string",523 "instructions": "string",524 "voice": "string",525 "modalities": "['audio'] observed",526 "turn_detection": "{type: 'server_vad'|null, …}",527 "tools": "array",528 "reasoning": "{effort}",529 "audio": "{input:{format:{type,rate}, transport}, output:{…}}",530 "resumption": "{enabled}",531 "replace": "object",532 "observed_only_in_session.updated": [533 "enable_noise_suppression",534 "enable_phonetic_spelling",535 "keep_context",536 "input_audio_format",537 "output_audio_format",538 "tool_choice",539 "temperature",540 "max_response_output_tokens",541 "input_audio_transcription"542 ]543 },544 "status": [545 "DOCUMENTED",546 "LIVE_VERIFIED"547 ],548 "example": {549 "id": "e4af06be…",550 "object": "realtime.session",551 "instructions": "",552 "voice": "xai_ara",553 "modalities": [554 "audio"555 ],556 "turn_detection": {557 "type": null558 },559 "tools": [],560 "model": "grok-voice-think-fast-2.0"561 },562 "notes": "Default voice reported as 'xai_ara' (docs say eve). session.updated echoes the effective config in a flatter, partly undocumented shape.",563 "verification": {564 "method": "live_api",565 "verified_at": "2026-09-18",566 "result": "success",567 "http_status": 101,568 "request_note": "text-only probe"569 },570 "sources": [571 {572 "url": "https://docs.x.ai/voice-realtime.ws.json",573 "retrieved_at": "2026-09-18"574 }575 ],576 "last_verified": "2026-09-18"577 },578 {579 "provider": "xai",580 "name": "realtime.conversation",581 "kind": "object",582 "description": "`conversation` in conversation.created.",583 "schema": {584 "id": "string (UUID; use as ?conversation_id= for resumption)",585 "object": "'realtime.conversation'"586 },587 "status": [588 "DOCUMENTED",589 "LIVE_VERIFIED"590 ],591 "example": {592 "id": "08b1471f-87d5-4963-b94e-092537a06b95",593 "object": "realtime.conversation"594 },595 "notes": null,596 "verification": {597 "method": "live_api",598 "verified_at": "2026-09-18",599 "result": "success",600 "http_status": 101,601 "request_note": "both probes"602 },603 "sources": [604 {605 "url": "https://docs.x.ai/voice-realtime.ws.json",606 "retrieved_at": "2026-09-18"607 }608 ],609 "last_verified": "2026-09-18"610 },611 {612 "provider": "xai",613 "name": "realtime.item",614 "kind": "object",615 "description": "Conversation item (conversation.item.added, response.output_item.*, response.done.output[]).",616 "schema": {617 "id": "string (UUID)",618 "object": "'realtime.item'",619 "type": "'message'|'function_call'|'function_call_output'|'force_message'",620 "status": "'in_progress'|'completed'",621 "role": "'user'|'assistant'",622 "content": "[{type:'input_text'|'output_text'|'audio'|'input_audio', text?, transcript?}]",623 "replayed": "boolean (true when replayed by session resumption)",624 "call_id/name/arguments/output": "function items"625 },626 "status": [627 "DOCUMENTED",628 "LIVE_VERIFIED"629 ],630 "example": {631 "id": "95be5a32-…",632 "object": "realtime.item",633 "type": "message",634 "status": "completed",635 "role": "user",636 "content": [637 {638 "type": "input_text",639 "text": "Reply with OK."640 }641 ],642 "replayed": false643 },644 "notes": null,645 "verification": {646 "method": "live_api",647 "verified_at": "2026-09-18",648 "result": "success",649 "http_status": 101,650 "request_note": "user + assistant items observed"651 },652 "sources": [653 {654 "url": "https://docs.x.ai/voice-realtime.ws.json",655 "retrieved_at": "2026-09-18"656 }657 ],658 "last_verified": "2026-09-18"659 },660 {661 "provider": "xai",662 "name": "realtime.response",663 "kind": "object",664 "description": "`response` in response.created / response.done.",665 "schema": {666 "id": "string (UUID)",667 "object": "'realtime.response'",668 "status": "'in_progress'|'completed'|'cancelled'|'incomplete'",669 "status_details": "string ('unimplemented' observed)",670 "output": "realtime.item[]",671 "usage": "{} (empty; real usage is top-level on response.done)",672 "metadata": "object|null"673 },674 "status": [675 "DOCUMENTED",676 "LIVE_VERIFIED"677 ],678 "example": {679 "id": "5e885467-…",680 "object": "realtime.response",681 "status": "completed",682 "status_details": "unimplemented",683 "output": [684 {685 "type": "message",686 "role": "assistant",687 "content": [688 {689 "type": "audio",690 "transcript": "OK"691 }692 ]693 }694 ],695 "usage": {}696 },697 "notes": null,698 "verification": {699 "method": "live_api",700 "verified_at": "2026-09-18",701 "result": "success",702 "http_status": 101,703 "request_note": "response.done"704 },705 "sources": [706 {707 "url": "https://docs.x.ai/voice-realtime.ws.json",708 "retrieved_at": "2026-09-18"709 }710 ],711 "last_verified": "2026-09-18"712 },713 {714 "provider": "xai",715 "name": "realtime response usage (response.done.usage)",716 "kind": "object",717 "description": "Top-level `usage` on response.done — the billing signal for Speech to Speech.",718 "schema": {719 "input_tokens": "integer",720 "input_token_details": "{text_tokens, audio_tokens, grok_tokens}",721 "output_tokens": "integer",722 "output_token_details": "{text_tokens, audio_tokens, grok_tokens}",723 "total_tokens": "integer",724 "output_audio_seconds": "number",725 "billable_audio_seconds": "integer (rounded up; × $0.08/60)"726 },727 "status": [728 "LIVE_DISCOVERED"729 ],730 "example": {731 "input_tokens": 4,732 "input_token_details": {733 "text_tokens": 4,734 "audio_tokens": 0,735 "grok_tokens": 0736 },737 "output_tokens": 37,738 "output_token_details": {739 "text_tokens": 1,740 "audio_tokens": 36,741 "grok_tokens": 0742 },743 "total_tokens": 41,744 "output_audio_seconds": 0.71,745 "billable_audio_seconds": 1746 },747 "notes": "Not in the ws.json schema (which documents only input/output/total tokens inside response.usage).",748 "verification": {749 "method": "live_api",750 "verified_at": "2026-09-18",751 "result": "success",752 "http_status": 101,753 "request_note": "text-only probe"754 },755 "sources": [756 {757 "url": "tmp-live/xai-media/voice-ws-session.json",758 "retrieved_at": "2026-09-18"759 }760 ],761 "last_verified": "2026-09-18"762 },763 {764 "provider": "xai",765 "name": "realtime audio delta extras",766 "kind": "object",767 "description": "Undocumented fields observed on response.output_audio.delta / transcript.delta.",768 "schema": {769 "rid": "string (UUID; groups deltas of one synthesis run)",770 "latency": "string seconds ('0.49' on first delta)",771 "audio_duration_ms": "integer (ms of PCM in this delta)",772 "ts": "integer unix ms",773 "start_time": "number (transcript delta)",774 "previous_item_id": "string|null (on every event)"775 },776 "status": [777 "LIVE_DISCOVERED"778 ],779 "example": {780 "audio_duration_ms": 550,781 "latency": "0.49",782 "rid": "07193536-…"783 },784 "notes": null,785 "verification": {786 "method": "live_api",787 "verified_at": "2026-09-18",788 "result": "success",789 "http_status": 101,790 "request_note": "probe"791 },792 "sources": [793 {794 "url": "tmp-live/xai-media/voice-ws-session.json",795 "retrieved_at": "2026-09-18"796 }797 ],798 "last_verified": "2026-09-18"799 },800 {801 "provider": "xai",802 "name": "Voice (built-in)",803 "kind": "object",804 "description": "Item of GET /v1/tts/voices.",805 "schema": {806 "voice_id": "string (lowercase)",807 "name": "string",808 "language": "string|null ('multilingual' live; 'en' in docs)",809 "gender": "'male'|'female' (undocumented)"810 },811 "status": [812 "DOCUMENTED",813 "LIVE_VERIFIED"814 ],815 "example": {816 "voice_id": "eve",817 "name": "Eve",818 "language": "multilingual",819 "gender": "female"820 },821 "notes": null,822 "verification": {823 "method": "live_api",824 "verified_at": "2026-09-18",825 "result": "success",826 "http_status": 200,827 "request_note": "28 voices"828 },829 "sources": [830 {831 "url": "https://docs.x.ai/developers/rest-api-reference/inference/voice",832 "retrieved_at": "2026-09-18"833 }834 ],835 "last_verified": "2026-09-18"836 },837 {838 "provider": "xai",839 "name": "TTS JSON envelope",840 "kind": "response",841 "description": "POST /v1/tts response when with_timestamps=true.",842 "schema": {843 "audio": "string base64",844 "content_type": "string (audio/mpeg …)",845 "duration": "number s",846 "audio_timestamps": "{graph_chars: string[], graph_times: [start, end][]}"847 },848 "status": [849 "DOCUMENTED",850 "LIVE_VERIFIED"851 ],852 "example": {853 "audio": "<base64>",854 "content_type": "audio/mpeg",855 "duration": 0.71,856 "audio_timestamps": {857 "graph_chars": [858 "O",859 "K",860 "."861 ],862 "graph_times": [863 [864 0.04,865 0.06866 ],867 [868 0.2,869 0.22870 ],871 [872 0.22,873 0.71874 ]875 ]876 }877 },878 "notes": "graph_times items are [start, end] arrays (guide) — the REST reference's {start, end} objects do not match the live shape.",879 "verification": {880 "method": "live_api",881 "verified_at": "2026-09-18",882 "result": "success",883 "http_status": 200,884 "request_note": "'OK.'"885 },886 "sources": [887 {888 "url": "https://docs.x.ai/developers/rest-api-reference/inference/voice",889 "retrieved_at": "2026-09-18"890 },891 {892 "url": "https://docs.x.ai/developers/model-capabilities/audio/text-to-speech",893 "retrieved_at": "2026-09-18"894 }895 ],896 "last_verified": "2026-09-18"897 },898 {899 "provider": "xai",900 "name": "STT transcript",901 "kind": "response",902 "description": "Body of POST /v1/stt.",903 "schema": {904 "text": "string",905 "language": "string (BCP-47)",906 "duration": "number s",907 "words": "[{text, start, end, confidence?, speaker?}] (omitted when empty)",908 "channels": "[{index, language, text, words[]}] (multichannel)"909 },910 "status": [911 "DOCUMENTED",912 "LIVE_VERIFIED"913 ],914 "example": {915 "text": "Okay.",916 "language": "en",917 "duration": 0.79,918 "words": [919 {920 "text": "Okay.",921 "start": 0.122,922 "end": 0.466923 }924 ]925 },926 "notes": null,927 "verification": {928 "method": "live_api",929 "verified_at": "2026-09-18",930 "result": "success",931 "http_status": 200,932 "request_note": "0.79 s clip"933 },934 "sources": [935 {936 "url": "https://docs.x.ai/developers/rest-api-reference/inference/voice",937 "retrieved_at": "2026-09-18"938 }939 ],940 "last_verified": "2026-09-18"941 },942 {943 "provider": "xai",944 "name": "STT streaming transcript.partial",945 "kind": "event payload",946 "description": "State flags: interim (is_final=false) → chunk final (is_final=true, speech_final=false) → utterance final (is_final=true, speech_final=true); end_of_turn_confidence with smart_turn.",947 "schema": {948 "type": "'transcript.partial'",949 "text": "string",950 "is_final": "boolean",951 "speech_final": "boolean",952 "words": "[{text,start,end,speaker?}]",953 "channel": "integer (multichannel)",954 "end_of_turn_confidence": "number (smart_turn)"955 },956 "status": [957 "DOCUMENTED"958 ],959 "example": null,960 "notes": null,961 "verification": {962 "method": "docs_only",963 "verified_at": "2026-09-18",964 "result": "not_tested",965 "http_status": null,966 "request_note": "documentation only (paid, needs media input, or enterprise-gated)"967 },968 "sources": [969 {970 "url": "https://docs.x.ai/stt-streaming.ws.json",971 "retrieved_at": "2026-09-18"972 }973 ],974 "last_verified": "2026-09-18"975 },976 {977 "provider": "xai",978 "name": "CustomVoice",979 "kind": "object",980 "description": "Custom (cloned) voice.",981 "schema": {982 "voice_id": "string (8 lowercase alnum)",983 "name": "string|null",984 "description": "string|null",985 "gender": "'male'|'female'|'neutral'|null",986 "accent": "string|null",987 "age": "'young'|'middle-aged'|'old'|null",988 "language": "string|null",989 "use_case": "string|null",990 "tone": "string|null",991 "created_at": "RFC 3339"992 },993 "status": [994 "DOCUMENTED"995 ],996 "example": {997 "voice_id": "nlbqfwie",998 "name": "Friendly Narrator",999 "gender": "female",1000 "language": "en",1001 "use_case": "narration",1002 "tone": "warm",1003 "created_at": "2026-04-26T18:56:34.872993+00:00"1004 },1005 "notes": null,1006 "verification": {1007 "method": "docs_only",1008 "verified_at": "2026-09-18",1009 "result": "not_tested",1010 "http_status": null,1011 "request_note": "documentation only (paid, needs media input, or enterprise-gated)"1012 },1013 "sources": [1014 {1015 "url": "https://docs.x.ai/developers/rest-api-reference/inference/voice",1016 "retrieved_at": "2026-09-18"1017 },1018 {1019 "url": "https://docs.x.ai/developers/model-capabilities/audio/custom-voices",1020 "retrieved_at": "2026-09-18"1021 }1022 ],1023 "last_verified": "2026-09-18"1024 },1025 {1026 "provider": "xai",1027 "name": "CustomVoiceList",1028 "kind": "response",1029 "description": "GET /v1/custom-voices.",1030 "schema": {1031 "voices": "CustomVoice[]",1032 "pagination_token": "string|null (absent when no more)",1033 "total_count": "integer (undocumented)",1034 "cap": "integer (undocumented; 30)"1035 },1036 "status": [1037 "DOCUMENTED",1038 "LIVE_VERIFIED"1039 ],1040 "example": {1041 "voices": [],1042 "total_count": 0,1043 "cap": 301044 },1045 "notes": null,1046 "verification": {1047 "method": "live_api",1048 "verified_at": "2026-09-18",1049 "result": "success",1050 "http_status": 200,1051 "request_note": "empty"1052 },1053 "sources": [1054 {1055 "url": "https://docs.x.ai/developers/rest-api-reference/inference/voice",1056 "retrieved_at": "2026-09-18"1057 }1058 ],1059 "last_verified": "2026-09-18"1060 },1061 {1062 "provider": "xai",1063 "name": "PhoneNumber (SIP)",1064 "kind": "object",1065 "description": "POST /v2/phone-numbers response.",1066 "schema": {1067 "phone_number": "{phone_number_id, team_id, phone_number (E.164), name, agent_id, webhook_id, origin, sip_host ('sip.voice.x.ai'), inbound_trunk_id, sip_auth:{auth_username, allowed_addresses[]}, created_at, updated_at, agent_name}",1068 "webhook": "{webhook_id, dispatch_signing_secret (returned once)}"1069 },1070 "status": [1071 "DOCUMENTED"1072 ],1073 "example": null,1074 "notes": null,1075 "verification": {1076 "method": "docs_only",1077 "verified_at": "2026-09-18",1078 "result": "not_tested",1079 "http_status": null,1080 "request_note": "documentation only (paid, needs media input, or enterprise-gated)"1081 },1082 "sources": [1083 {1084 "url": "https://docs.x.ai/developers/rest-api-reference/inference/voice",1085 "retrieved_at": "2026-09-18"1086 },1087 {1088 "url": "https://docs.x.ai/developers/model-capabilities/audio/speech-to-speech/sip",1089 "retrieved_at": "2026-09-18"1090 }1091 ],1092 "last_verified": "2026-09-18"1093 },1094 {1095 "provider": "xai",1096 "name": "Skill",1097 "kind": "object",1098 "description": "Hosted skill (OpenAPI).",1099 "schema": {1100 "id": "string",1101 "object": "'skill'",1102 "name": "string (SKILL.md frontmatter)",1103 "description": "string (frontmatter)",1104 "created_at": "integer unix s",1105 "default_version": "'1'",1106 "latest_version": "'1'"1107 },1108 "status": [1109 "DOCUMENTED",1110 "ACCOUNT_RESTRICTED"1111 ],1112 "example": null,1113 "notes": null,1114 "verification": {1115 "method": "live_api",1116 "verified_at": "2026-09-18",1117 "result": "restricted",1118 "http_status": 404,1119 "request_note": "all /v1/skills routes 404 with our key"1120 },1121 "sources": [1122 {1123 "url": "https://docs.x.ai/openapi.json (local copy sources/xai/openapi/openapi.json)",1124 "retrieved_at": "2026-09-18"1125 }1126 ],1127 "last_verified": "2026-09-18"1128 },1129 {1130 "provider": "xai",1131 "name": "SkillList",1132 "kind": "response",1133 "description": "GET /v1/skills.",1134 "schema": {1135 "object": "'list'",1136 "data": "Skill[]",1137 "first_id": "string",1138 "last_id": "string",1139 "has_more": "boolean"1140 },1141 "status": [1142 "DOCUMENTED",1143 "ACCOUNT_RESTRICTED"1144 ],1145 "example": null,1146 "notes": null,1147 "verification": {1148 "method": "docs_only",1149 "verified_at": "2026-09-18",1150 "result": "not_tested",1151 "http_status": null,1152 "request_note": "documentation only (paid, needs media input, or enterprise-gated)"1153 },1154 "sources": [1155 {1156 "url": "https://docs.x.ai/openapi.json (local copy sources/xai/openapi/openapi.json)",1157 "retrieved_at": "2026-09-18"1158 }1159 ],1160 "last_verified": "2026-09-18"1161 },1162 {1163 "provider": "xai",1164 "name": "DeletedSkill",1165 "kind": "response",1166 "description": "DELETE /v1/skills/{id}.",1167 "schema": {1168 "id": "string",1169 "object": "'skill.deleted'",1170 "deleted": "boolean"1171 },1172 "status": [1173 "DOCUMENTED",1174 "ACCOUNT_RESTRICTED"1175 ],1176 "example": null,1177 "notes": null,1178 "verification": {1179 "method": "docs_only",1180 "verified_at": "2026-09-18",1181 "result": "not_tested",1182 "http_status": null,1183 "request_note": "documentation only (paid, needs media input, or enterprise-gated)"1184 },1185 "sources": [1186 {1187 "url": "https://docs.x.ai/openapi.json (local copy sources/xai/openapi/openapi.json)",1188 "retrieved_at": "2026-09-18"1189 }1190 ],1191 "last_verified": "2026-09-18"1192 },1193 {1194 "provider": "xai",1195 "name": "LocalShellSkill",1196 "kind": "request object",1197 "description": "Skill made available to a local `shell` tool environment (ShellCall.environment.skills[]).",1198 "schema": {1199 "name": "string",1200 "description": "string",1201 "path": "string (directory containing SKILL.md)"1202 },1203 "status": [1204 "DOCUMENTED"1205 ],1206 "example": null,1207 "notes": null,1208 "verification": {1209 "method": "docs_only",1210 "verified_at": "2026-09-18",1211 "result": "not_tested",1212 "http_status": null,1213 "request_note": "documentation only (paid, needs media input, or enterprise-gated)"1214 },1215 "sources": [1216 {1217 "url": "https://docs.x.ai/openapi.json (local copy sources/xai/openapi/openapi.json)",1218 "retrieved_at": "2026-09-18"1219 }1220 ],1221 "last_verified": "2026-09-18"1222 },1223 {1224 "provider": "xai",1225 "name": "xAI error envelopes (media/voice)",1226 "kind": "error",1227 "description": "Three shapes observed on this surface.",1228 "schema": {1229 "A (most 4xx, application/json)": "{code: 'invalid-argument'|'not-found'|…, error: string}",1230 "B (routing 404, application/json)": "{error: {code: 404, message: string}}",1231 "C (body deserialization, 422 text/plain)": "'Failed to deserialize the JSON body into the target type: <field>: unknown variant `x`, expected one of …' / 'missing field `y`'"1232 },1233 "status": [1234 "LIVE_VERIFIED"1235 ],1236 "example": {1237 "A": {1238 "code": "invalid-argument",1239 "error": "The number of images to generate (n) must be between 1 and 10 inclusive."1240 },1241 "B": {1242 "error": {1243 "code": 404,1244 "message": "The requested resource was not found. Please check the URL and try again. Documentation is available at https://docs.x.ai/"1245 }1246 },1247 "C": "Failed to deserialize the JSON body into the target type: missing field `language` at line 1 column 34"1248 },1249 "notes": null,1250 "verification": {1251 "method": "live_api",1252 "verified_at": "2026-09-18",1253 "result": "success",1254 "http_status": 422,1255 "request_note": "images 7:7, n=0, png; videos 99 s, 4k, missing video; tts missing language; skills 404"1256 },1257 "sources": [1258 {1259 "url": "tmp-live/xai-media/*.json",1260 "retrieved_at": "2026-09-18"1261 }1262 ],1263 "last_verified": "2026-09-18"1264 }1265 ]1266}1267