Create an async transcription job
Submit audio for batch transcription. Provide exactly one source:
either audio_url (an https URL we fetch — privacy-cleanest, the input is never stored)
or a multipart upload (multipart/form-data with an audio file part and the same fields as form fields).
Returns 202 immediately with a queued job; poll GET /v1/transcription/jobs/{id} or supply a webhook_url for a signed completion callback.
Set channel: true for stereo (dual-channel) recordings to get exact, model-free speaker separation per channel.
Requires the transcribe:jobs scope.
Authorizations
Use Authorization: Bearer pyai_live_... (or pyai_test_...).
Headers
Opt-in safe retry (JSON body path). Reusing the key with an identical body replays the original 202 response; reusing it with a different body returns 409.
255Body
https URL of the audio to transcribe.
Dual-channel (stereo) diarization: transcribe each channel separately and label speakers per channel (exact).
Single-track (mono) speaker diarization via Sortformer; words are aligned to speaker turns. Use channel instead for stereo recordings.
Format spoken numbers as digits.
json, srt, vtt https URL to POST the signed (X-PyAI-Signature) completion callback to.
Response
Job accepted
"job_aZ09..."
queued, running, completed, failed, cancelled Unix ms.
Unix ms.
Present on completed jobs (inline). Large results are offloaded to result_url instead.
Signed GET URL for an offloaded large result.
Present on failed jobs.