[{"data":1,"prerenderedAt":200},["ShallowReactive",2],{"reference-detail-en-transcribe_audio_api_v1_audio_transcribe_post":3,"developer-code-1qvyx6g":198,"developer-code-1pbdg4p":199},{"tag":4,"sourceTag":4,"tagSlug":5,"method":6,"path":7,"slug":8,"summary":9,"description":10,"operationId":11,"groupOrder":12,"descriptionHtml":13,"parameters":14,"requestBody":22,"responses":67,"security":185,"codeSamples":188},"Audio","audio","POST","\u002Fapi\u002Fv1\u002Faudio\u002Ftranscribe","transcribe-audio","Transcribe audio","Transcribe speech audio to text with word-level timestamps; optionally detect speaker turns\n(`diarize`) or render an SRT subtitle track (`srt`). Billing: 1 credit per started 5 minutes of\naudio, charged only on success. Synchronous — audio up to 30 minutes. Per-key concurrency is\nlimited during beta; requests beyond the limit are rejected, not queued.","transcribe_audio_api_v1_audio_transcribe_post",999,"\u003Cp>Transcribe speech audio to text with word-level timestamps; optionally detect speaker turns (\u003Ccode>diarize\u003C\u002Fcode>) or render an SRT subtitle track (\u003Ccode>srt\u003C\u002Fcode>). Billing: 1 credit per started 5 minutes of audio, charged only on success. Synchronous — audio up to 30 minutes. Per-key concurrency is limited during beta; requests beyond the limit are rejected, not queued.\u003C\u002Fp>",[15],{"name":16,"in":17,"required":18,"description":19,"type":20,"example":21},"X-API-Key","header",true,"Your VisionStory API key (`sk-vs-...`), kept server-side. Create or manage keys in [API keys](\u002Fapi-keys) (Pro plan and up).","string","sk-vs-your-api-key",{"required":18,"contentType":23,"schema":24,"example":64},"application\u002Fjson",{"type":25,"description":26,"nullable":27,"properties":28},"TranscribeRequest","",false,[29,55,60],{"name":5,"required":18,"type":30,"description":31,"nullable":27,"properties":32},"MediaRef","A media reference — provide exactly one of: `asset_id` (from the asset library, reusable across\nrequests), `url` (one-off public URL), or `inline_data` (one-off base64, not stored).",[33,38,51],{"name":34,"required":27,"type":35,"description":36,"nullable":18,"properties":37},"asset_id","string | null","Asset ID from POST \u002Fapi\u002Fv1\u002Fasset; use for materials reused across requests.",[],{"name":39,"required":27,"type":40,"description":41,"nullable":18,"properties":42},"inline_data","InlineDataModel | null","Inline base64 media data for one-off use; not added to your asset library. Images: image\u002Fjpeg, image\u002Fjpg, image\u002Fpng, image\u002Fwebp, image\u002Fbmp, image\u002Ftiff, image\u002Fgif; audio: audio\u002Fwav, audio\u002Fx-wav, audio\u002Fwave, audio\u002Fmpeg, audio\u002Fmp3; video: video\u002Fmp4, video\u002Fquicktime, video\u002Fmov.",[43,47],{"name":44,"required":18,"type":20,"description":45,"nullable":27,"properties":46},"data","The file's raw bytes encoded as a base64 string (no `data:` URI prefix).",[],{"name":48,"required":18,"type":20,"description":49,"nullable":27,"properties":50},"mime_type","MIME type of the inline data; the gateway uses it to tell image \u002F audio \u002F video apart. The accepted set depends on the endpoint — see the field carrying this object. Talking video accepts audio ['audio\u002Favi', 'audio\u002Fmpeg', 'audio\u002Fmp3', 'audio\u002Fmp4', 'audio\u002Fm4a', 'audio\u002Fwav'] and images ['image\u002Fjpeg', 'image\u002Fjpg', 'image\u002Fpng', 'image\u002Fwebp', 'image\u002Fheic'].",[],{"name":52,"required":27,"type":35,"description":53,"nullable":18,"properties":54},"url","Publicly accessible media URL for one-off use; not added to your asset library.",[],{"name":56,"required":27,"type":57,"description":58,"nullable":27,"default":27,"properties":59},"diarize","boolean","Set true to detect speaker turns; each word then carries a `speaker` label.",[],{"name":61,"required":27,"type":57,"description":62,"nullable":27,"default":27,"properties":63},"srt","Set true to also return an SRT subtitle rendering of the transcript.",[],{"audio":65,"diarize":18,"srt":18},{"url":66},"https:\u002F\u002Fexample.com\u002Fmedia\u002Finterview.mp3",[68,157],{"status":69,"description":70,"contentType":23,"schema":71,"example":133,"examples":147,"headers":156},"200","Successful Response",{"type":72,"description":26,"nullable":27,"properties":73},"BaseSuccessResponse_TranscribeResponse_",[74,123,128],{"name":44,"required":18,"type":75,"description":76,"nullable":18,"properties":77},"TranscribeResponse | null","The endpoint-specific payload. See this endpoint's response schema for its fields; null only when the operation returns no payload.",[78,84,89,93,96,100],{"name":79,"required":27,"type":80,"description":81,"nullable":27,"default":82,"properties":83},"cost_credit","integer","Credits charged for this request.",0,[],{"name":85,"required":27,"type":86,"description":87,"nullable":27,"default":82,"properties":88},"duration_sec","number","Duration of the input audio in seconds.",[],{"name":90,"required":27,"type":20,"description":91,"nullable":27,"default":26,"properties":92},"language","Detected language code of the audio, e.g. `en`; may be empty.",[],{"name":61,"required":27,"type":20,"description":94,"nullable":27,"default":26,"properties":95},"SRT subtitle text; empty unless `srt: true` was requested.",[],{"name":97,"required":18,"type":20,"description":98,"nullable":27,"properties":99},"text","Full transcript text.",[],{"name":101,"required":27,"type":102,"description":103,"nullable":27,"properties":104,"items":105},"words","WordDto[]","Word-level timestamps.",[],{"type":106,"description":26,"nullable":27,"properties":107},"WordDto",[108,112,116,120],{"name":109,"required":18,"type":86,"description":110,"nullable":27,"properties":111},"end_sec","Word end time in seconds.",[],{"name":113,"required":27,"type":35,"description":114,"nullable":18,"properties":115},"speaker","Speaker label, present only when `diarize` was requested.",[],{"name":117,"required":18,"type":86,"description":118,"nullable":27,"properties":119},"start_sec","Word start time in seconds.",[],{"name":97,"required":18,"type":20,"description":121,"nullable":27,"properties":122},"The word as written.",[],{"name":124,"required":27,"type":20,"description":125,"nullable":27,"default":126,"properties":127},"message","Human-readable status message; `\"success\"` on a successful call.","success",[],{"name":129,"required":18,"type":130,"description":131,"nullable":27,"properties":132},"server_time","string · date-time","Server-side timestamp when the response was produced, in ISO 8601 format (UTC).",[],{"data":134,"message":126,"server_time":146},{"cost_credit":135,"duration_sec":135,"language":136,"srt":137,"text":138,"words":139},1,"en","1\n00:00:00,000 --> 00:00:01,000\nHello world\n","Hello world",[140,144],{"end_sec":141,"speaker":142,"start_sec":82,"text":143},0.5,"speaker_0","Hello",{"end_sec":135,"speaker":142,"start_sec":141,"text":145},"world","2026-09-04T00:00:00Z",[148],{"name":126,"description":149,"summary":150,"value":151},"Examples illustrate the response structure, not live account data or a pricing quote. IDs and URLs are placeholders. Query model discovery and cost endpoints for current availability and prices.","Successful response",{"data":152,"message":126,"server_time":146},{"cost_credit":135,"duration_sec":135,"language":136,"srt":137,"text":138,"words":153},[154,155],{"end_sec":141,"speaker":142,"start_sec":82,"text":143},{"end_sec":135,"speaker":142,"start_sec":141,"text":145},[],{"status":158,"description":159,"contentType":23,"schema":160,"example":182,"headers":184},"default","Error response. All failures share one envelope: an `error` object with a numeric `code`, a human-readable `message`, an optional `details` string, and an optional `hint` giving an actionable next step (useful for AI agents).",{"type":161,"description":26,"nullable":27,"properties":162},"ErrorResponse",[163],{"name":164,"required":18,"type":165,"description":26,"nullable":27,"properties":166},"error","ErrorDetail",[167,171,175,179],{"name":168,"required":18,"type":80,"description":169,"nullable":27,"properties":170},"code","Machine-readable error code. Mirrors the HTTP status for transport-level failures (e.g. 401, 404, 422, 500) and may carry a business-specific code otherwise.",[],{"name":172,"required":27,"type":35,"description":173,"nullable":18,"properties":174},"details","Optional structured detail about the failure, e.g. a JSON string of per-field validation errors on a 422. Absent when there is nothing extra to report.",[],{"name":176,"required":27,"type":35,"description":177,"nullable":18,"properties":178},"hint","Actionable next step for resolving the error, written for both humans and AI agents (e.g. how to fix the request, or where to obtain an API key). May be absent.",[],{"name":124,"required":18,"type":20,"description":180,"nullable":27,"properties":181},"Human-readable explanation of what went wrong. Safe to log or surface to end users; not localized.",[],{"error":183},{"code":135,"message":20,"details":20,"hint":20},[],[186],{"APIKeyHeader":187},[],[189,192,195],{"lang":190,"source":191},"SDK","from visionstory import VisionStoryClient\n\nclient = VisionStoryClient.from_env()\ntranscript = client.transcribe_audio(\n    audio_url=\"https:\u002F\u002Fexample.com\u002Fmedia\u002Finterview.mp3\",\n    diarize=True,\n    srt=True,\n)\nprint(transcript)",{"lang":193,"source":194},"REST","import os\nimport requests\n\nresponse = requests.post(\n    \"https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Faudio\u002Ftranscribe\",\n    headers={\"X-API-Key\": os.environ[\"VISIONSTORY_API_KEY\"]},\n    json={\n      \"audio\": {\n        \"url\": \"https:\u002F\u002Fexample.com\u002Fmedia\u002Finterview.mp3\"\n      },\n      \"diarize\": True,\n      \"srt\": True\n    },\n)\nresponse.raise_for_status()\nprint(response.json())",{"lang":196,"source":197},"cURL","curl --request POST 'https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Faudio\u002Ftranscribe' \\\n  --header 'X-API-Key: $VISIONSTORY_API_KEY' \\\n  --header 'Content-Type: application\u002Fjson' \\\n  --data '{\n  \"audio\": {\n    \"url\": \"https:\u002F\u002Fexample.com\u002Fmedia\u002Finterview.mp3\"\n  },\n  \"diarize\": true,\n  \"srt\": true\n}'","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FF7B72\">from\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> visionstory \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">import\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> VisionStoryClient\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">client \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> VisionStoryClient.from_env()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">transcript \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> client.transcribe_audio(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">    audio_url\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"https:\u002F\u002Fexample.com\u002Fmedia\u002Finterview.mp3\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">    diarize\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">True\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">    srt\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">True\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79C0FF\">print\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">(transcript)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"data\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"cost_credit\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">1\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"duration_sec\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">1\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"language\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"en\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"srt\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"1\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">\\n\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">00:00:00,000 --> 00:00:01,000\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">\\n\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">Hello world\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">\\n\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"text\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"Hello world\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"words\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: [\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">      {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"end_sec\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">0.5\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"speaker\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"speaker_0\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"start_sec\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">0\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"text\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"Hello\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">      },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">      {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"end_sec\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">1\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"speaker\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"speaker_0\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"start_sec\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">0.5\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"text\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"world\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">      }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">    ]\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">  },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"message\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"success\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"server_time\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"2026-09-04T00:00:00Z\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",1790231924758]