For AI agents: a documentation index is available at /llms.txt. Markdown versions of all pages can be requested by appending `.md` to the URL, or by setting the `Accept` header to `text/markdown`.
Skip to main content
Transcription API

Create a new job

POST https://eu1.asr.api.speechmatics.com/v2/jobs

Authentication

  • bearerAuth Authorization: Bearer <token>

    Your API key, or a temporary key (JWT).

Query parameters

wait
integer
optional

Note: Only available on SaaS on Cloud. Number of seconds to block until the job reaches a terminal state before responding. Capped server-side. When set, the response includes a status field reporting the outcome, and on done the transcript is embedded under the requested format key when available. When omitted, the request returns as soon as the job is created and status is not included.

format
"json-v2" | "txt" | "srt"
optional

Note: Only available on SaaS on Cloud, and only applies when wait is set. Format of the transcript embedded in the response when the job finishes within wait. Defaults to json-v2.

Header parameters

X-SM-Processing-Data
string
optional

Note: Only available for on-prem JSON dictionary of processing settings for the job worker. Currently supports parallel_engines (integer), which controls the number of engines the worker can use in parallel for this job, and user_id (string), which is the user id for this job. Example: {"parallel_engines": 4}

Request body

required
multipart/form-data
config
JobConfig

The job's configuration, sent as a JSON string.

data_file
string<binary>
optional

The data file to be processed. Alternatively the data file can be fetched from a url specified in JobConfig.

Responses

OK

application/json application/vnd.speechmatics.v2+json
id
string

The unique ID assigned to the job. Keep a record of this for later retrieval of your completed job.

status
enumone of
optional

Note: Only available on SaaS on Cloud. Present only when the wait query parameter is set. Reports the outcome of the wait, which is distinct from the job lifecycle status returned by GET /jobs/{jobid}.

json-v2
RetrieveTranscriptResponse
optional
txt
string
optional

Note: Only available on SaaS on Cloud. The transcript in plain text, embedded when status is done and format was txt. Best-effort: if absent, fetch it from GET /jobs/{jobid}/transcript.

srt
string
optional

Note: Only available on SaaS on Cloud. The transcript in SRT format, embedded when status is done and format was srt. Best-effort: if absent, fetch it from GET /jobs/{jobid}/transcript.

Request

import { openAsBlob } from "node:fs";
import { BatchClient } from "@speechmatics/batch-client";

const client = new BatchClient({ apiKey: "YOUR_API_KEY", appId: "my-app" });

// In a browser, pass a File from a file input instead.
const file = new File([await openAsBlob("example.wav")], "example.wav");

const { id } = await client.createTranscriptionJob(file, {
transcription_config: { language: "en", model: "enhanced" },
});
console.log(id);

Responses