SPB Git forge

spb/doc-api

Public
2commits 1branches 0releases
15.7 MBsize
maindefault branch
13 days agolast push
Python 88.3% TypeScript 7.6% Shell 4.1%
32.7 KB · 1,267 lines json
Raw Blame History
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