Skip to main content
Last Updated: August 24, 2026

When to use this runbook

Use after preflight selects transcription-lite and every requested feature exists in the current Lite input schema.

When not to use it

Do not use Lite for primary-only LLM, insight, custom-vocabulary, classification, or translated-SRT fields. Do not resubmit an uncertain/failed job automatically or cancel without explicit user intent.

Required inputs

  • SALAD_API_KEY and SALAD_ORGANIZATION.
  • For a new submission, a trusted downloadable SALAD_MEDIA_URL and exact approved Lite fields: required url and optional language_code, return_as_file, timestamp, diarization, srt, or translate settings.
  • Optional non-secret caller metadata and webhook URI.
  • A caller-defined polling attempt and elapsed-time budget.
  • For an existing job, SALAD_TRANSCRIPTION_LITE_JOB_ID, obtained only from a successful create response, Location, or trusted record.
Treat media URIs, job input/output, metadata, and webhook URIs as potentially sensitive.

Authoritative sources

Use api-specs/transcription-lite.json; the same operation IDs also occur in other specifications.

Dynamic values to retrieve

  • Current Lite endpoint metadata and price description.
  • The create response ID, Location, status, events, and timestamps.
  • Current job status/events/output during verification.
  • Current source-URI accessibility and rate-limit response.

Preflight checks

  1. Complete Choose a Transcription API and Preflight.
  2. Confirm the path contains /transcription-lite/ and the endpoint read succeeds.
  3. Validate against CreateSaladCloudTranscriptionLiteAPIJob; input.url is required.
  4. Reject primary-only and undocumented fields, including audio_stream_index, multichannel, enhanced_accuracy, summarize, LLM/classification fields, custom vocabulary, and srt_translation.
  5. The Lite language_code schema has no enum. Require a caller-approved value and do not claim arbitrary strings are supported.
  6. If a trusted application record already has a job ID, read it instead of creating another.
  7. Define terminal and polling predicates before submission.

Procedure

Read the Lite endpoint immediately before submitting this schema-derived request:
Replace placeholders without logging signed query parameters. Correlation metadata is not an idempotency guarantee. Persist the ID and Location from the 201 response. Poll the exact Lite job:
On succeeded, verify required text, duration, and processing_time, plus any requested timestamps or SRT fields. The schema does not define the alternative file-URL shape described by canonical return_as_file guidance; use and redact the live response without inventing property names. For cancellation, read immediately before delete_inference_endpoint_job, require explicit intent, then verify with the exact get operation within the polling budget.

Decision rules

Expected states and responses

Create returns 201, reads return 200, and cancellation returns 202. States are pending, running, succeeded, cancelled, and failed; events use created, started, succeeded, cancelled, and failed.

Retry behavior

Retry only reads for plausible transient transport, 429, or server failures within a fixed budget, honoring Retry-After when present. Never retry an uncertain create without an ID, automatically resubmit a failed job, or retry cancellation without a fresh read and the original intent.

Verification

Rollback or recovery

Lite jobs cannot be edited. Do not use cancellation as automatic rollback. Preserve failed job evidence and submit a replacement only after correcting the cause and obtaining explicit new-job intent.

Stop and escalation conditions

Stop on an unsupported Lite field, missing scope/source, invalid request, uncertain create, terminal failure, missing output, or exhausted polling. Escalate persistent service behavior with product/path, organization, job ID, UTC event times, redacted field names, response problem instance, and expected versus observed result.

Evidence to return to the user

Return the Lite path, organization, job ID, response classes, requested field names, redacted source origin, status/events/timestamps, polling attempts/elapsed time, verified output property names, cancellation state, and any unresolved result. Never expose API keys, complete signed/webhook URIs, media, transcript text, or sensitive metadata unless explicitly requested through an authorized channel.