curl --request GET \
--url https://api.batch.slng.ai/v1/batch/jobs/{jobId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.batch.slng.ai/v1/batch/jobs/{jobId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.batch.slng.ai/v1/batch/jobs/{jobId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.batch.slng.ai/v1/batch/jobs/{jobId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.batch.slng.ai/v1/batch/jobs/{jobId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.batch.slng.ai/v1/batch/jobs/{jobId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.batch.slng.ai/v1/batch/jobs/{jobId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"job_id": "myjob123",
"status": "DONE",
"model_code": "slng/speechmatics/batch:15.0.0",
"job_config": {
"type": "transcription",
"transcription_config": {
"language": "en",
"operating_point": "standard",
"diarization": "none"
},
"tracking": {
"title": "Meeting",
"reference": "ref-123"
}
},
"input_metadata": {
"size_bytes": 1543210,
"duration_seconds": 312.4,
"format": "wav",
"mime_type": "audio/wav"
},
"output_metadata": {},
"error_message": null,
"submitted_at": "2026-04-13T12:00:00Z",
"started_at": "2026-04-13T12:00:05Z",
"completed_at": "2026-04-13T12:01:30Z",
"deleted_at": null,
"expired_at": null,
"updated_at": "2026-04-13T12:01:30Z"
}{
"error": "job_id must be alphanumeric"
}{
"error": "API key id not found"
}{
"error": "Job not found"
}{
"error": "Internal server error"
}Get batch job
Returns the full details of a job (status, config, timestamps, error info). Poll until status reaches DONE or FAILED.
curl --request GET \
--url https://api.batch.slng.ai/v1/batch/jobs/{jobId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.batch.slng.ai/v1/batch/jobs/{jobId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.batch.slng.ai/v1/batch/jobs/{jobId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.batch.slng.ai/v1/batch/jobs/{jobId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.batch.slng.ai/v1/batch/jobs/{jobId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.batch.slng.ai/v1/batch/jobs/{jobId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.batch.slng.ai/v1/batch/jobs/{jobId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"job_id": "myjob123",
"status": "DONE",
"model_code": "slng/speechmatics/batch:15.0.0",
"job_config": {
"type": "transcription",
"transcription_config": {
"language": "en",
"operating_point": "standard",
"diarization": "none"
},
"tracking": {
"title": "Meeting",
"reference": "ref-123"
}
},
"input_metadata": {
"size_bytes": 1543210,
"duration_seconds": 312.4,
"format": "wav",
"mime_type": "audio/wav"
},
"output_metadata": {},
"error_message": null,
"submitted_at": "2026-04-13T12:00:00Z",
"started_at": "2026-04-13T12:00:05Z",
"completed_at": "2026-04-13T12:01:30Z",
"deleted_at": null,
"expired_at": null,
"updated_at": "2026-04-13T12:01:30Z"
}{
"error": "job_id must be alphanumeric"
}{
"error": "API key id not found"
}{
"error": "Job not found"
}{
"error": "Internal server error"
}Authorizations
API key from the SLNG dashboard.
Path Parameters
The alphanumeric job identifier.
^[a-zA-Z0-9]+$Response
Job detail.
A batch transcription job.
Alphanumeric job identifier.
Public-facing job status.
QUEUED, IN_PROGRESS, DECODING, POST_PROCESSING, DONE, FAILED, DELETED API key that submitted the job. May differ from the API key used to call this endpoint when the job was created via the dashboard.
Organisation that owns the job.
Model used (e.g. slng/speechmatics/batch:15.0.0).
Full job-config object as submitted (type, transcription_config, optional tracking, output_config).
Measured input file properties (size_bytes, duration_seconds, format, mime_type, source).
Measured output properties (populated on completion).
Error envelope for FAILED jobs. Otherwise null.
Show child attributes
Show child attributes
When the job was created.
When processing began.
When the job reached a terminal state.
When the job was deleted.
When the job was expired.
Last row update.
Was this page helpful?