When to use this runbook
Use after preflight selects the primarytranscribe endpoint and the user intends to submit or inspect a primary Salad
Transcription API job.
When not to use it
Do not use it fortranscription-lite, to resubmit an uncertain or failed job automatically, or to cancel a job without
explicit user intent.
Required inputs
SALAD_API_KEYandSALAD_ORGANIZATION.- For a new submission, a downloadable
SALAD_MEDIA_URLfrom trusted configuration and the exact approvedSaladCloudTranscriptionAPIInputfields. - An optional non-secret caller correlation value, webhook URI, and metadata object of at most 20 properties.
- A caller-defined polling attempt and elapsed-time budget.
- For an existing job,
SALAD_TRANSCRIPTION_JOB_ID, taken only from a successful create response,Locationheader, or trusted prior record.
Authoritative sources
Request and response shape comes from
api-specs/transcribe.json, not the similarly named operations in another spec.
Dynamic values to retrieve
- Current endpoint metadata before submission.
- The create response
id,Location, status, events, and timestamps. - Current job
status,events,update_time, andoutputon every verification read. - Current rate-limit response and
Retry-Afterwhen supplied.
Preflight checks
- Complete Choose a Transcription API and Preflight.
- Confirm the chosen path contains
/transcribe/, not/transcription-lite/. - Validate the full body against
CreateSaladCloudTranscriptionAPIJob; onlyinputis required at the top level, andinput.urlis required. - Confirm any
audio_stream_index,multichannel, orenhanced_accuracysetting is intentional. Do not send these primary-only fields to Lite. - If application state already records a job ID for this logical request, read that job instead of creating another.
- Treat caller metadata as correlation only. The API does not document an idempotency key or uniqueness guarantee.
- Define terminal success and failure predicates plus the polling budget before submitting.
Procedure
Submit once
Read the endpoint immediately before submission. This schema-derived template includes only supported primary fields:language_code for automatic detection; add
it only when the caller intends a specific Whisper language code. Replace placeholders locally without logging the
complete media URI. Do not treat client_request_id as server-side idempotency. A successful create returns 201, a
job representation, and a Location header. Persist the returned ID before doing other work.
Poll and retrieve output
succeeded, verify the requested output properties against the live
response. The schema supports text, duration, processing time, word/sentence timestamps, timestamp-source metadata, SRT,
summary, translations, custom-vocabulary output, LLM result, classification, and sentiment when their corresponding
features apply. For multichannel diarization, verify channel identifiers in the returned timestamp segments rather than
assuming the input alone took effect.
The schema does not define a file-URL output shape for return_as_file. If the live response returns one as described
by canonical guides, treat that URI as sensitive and report the observed shape rather than inventing fields.
Cancel only when authorized
Read the job immediately before cancellation. If it is already terminal, do not delete it. With explicit cancellation intent, calldelete_inference_endpoint_job, then poll get_inference_endpoint_job within the budget.
Decision rules
Expected states and responses
Create returns201; reads return 200; cancellation returns 202. Job states are pending, running, succeeded,
cancelled, and failed. Event actions are created, started, succeeded, cancelled, and failed.
A 201 proves job creation, not transcription completion. A 202 proves cancellation acceptance, not a verified
cancelled state.
Retry behavior
Retry reads for transient transport,429, or server failures using bounded backoff and Retry-After when present.
Never retry a create whose result is uncertain and lacks a returned ID. Do not resubmit failed/cancelled jobs or retry
cancellation without a fresh read and the original explicit intent.