Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.slng.ai/llms.txt

Use this file to discover all available pages before exploring further.

This guide covers the three ways to submit audio for batch transcription. For endpoint details and schemas, see the Batch API reference.
The Batch API is served from https://api.batch.slng.ai, not https://api.slng.ai like the rest of the SLNG API.
Prerequisites:
  • An SLNG API key
  • Audio in a supported format: wav, mp3, flac, aac, ogg, m4a, mp4, amr, mpeg

Input Methods

Method 1: File Upload

Upload the audio file directly using multipart/form-data.
curl -X POST https://api.batch.slng.ai/v1/batch/jobs \
  -H "Authorization: Bearer $API_KEY" \
  -F file=@audio.wav \
  -F transcription_config='{"language":"en"}'

Method 2: URL Input

Provide a publicly accessible HTTPS URL. The system downloads the file (max 1 GB). Supports presigned S3/GCS URLs for private files.
curl -X POST https://api.batch.slng.ai/v1/batch/jobs \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input_url": "https://example.com/audio.wav",
    "transcription_config": { "language": "en" }
  }'
FieldTypeRequiredDescription
input_urlstringyesHTTPS URL of the audio file
transcription_configobjectyesTranscription settings
job_idstringnoAlphanumeric job ID (auto-generated if omitted)
model_codestringnoModel to use (default: slng/speechmatics/batch:15.0.0)
metadataobjectnoArbitrary key-value metadata

Method 3: Presigned Upload

Use this method for large files or when you need upload progress tracking. Three steps: request a presigned URL, upload the file directly to S3, then create the job referencing the upload.
1

Request a presigned S3 upload URL

curl -X POST https://api.batch.slng.ai/v1/batch/jobs \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "presign",
    "filename": "audio.wav",
    "transcription_config": { "language": "en" }
  }'
The response contains the job_id and an upload object with url, s3_key, and expires_in (seconds):
{
  "job_id": "job8f3a...",
  "upload": {
    "url": "https://s3.amazonaws.com/...",
    "s3_key": "inputs/job8f3a.../audio.wav",
    "expires_in": 1800
  }
}
2

Upload the file to the presigned URL

curl -X PUT "<presigned_url>" --data-binary @audio.wav
3

Create the job

Reference the job_id and s3_key from step 1.
curl -X POST https://api.batch.slng.ai/v1/batch/jobs \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "job_id": "job8f3a...",
    "s3_key": "inputs/job8f3a.../audio.wav",
    "transcription_config": { "language": "en" }
  }'

Job Lifecycle

After submission, a job moves through these statuses: QUEUEDIN_PROGRESSDECODINGDONE / FAILED Poll GET /v1/batch/jobs/{jobId} until the status reaches DONE or FAILED:
curl https://api.batch.slng.ai/v1/batch/jobs/myjob123 \
  -H "Authorization: Bearer $API_KEY"
Once DONE, retrieve the transcript:
curl https://api.batch.slng.ai/v1/batch/jobs/myjob123/files \
  -H "Authorization: Bearer $API_KEY"
This returns signed download URLs for both the input audio and output transcript files (JSON and SRT).

Transcription Config

FieldTypeDefaultDescription
languagestringenLanguage code for the audio
operating_pointstringstandardAccuracy level: standard or enhanced
diarizationstringnoneSpeaker separation: none, speaker, or channel
domainstringDomain-specific language model
output_localestringLocale for formatting (dates, numbers)
enable_entitiesbooleanDetect and format entities (dates, times, addresses)
additional_vocabarrayCustom words to improve recognition
Example with diarization and enhanced accuracy:
{
  "transcription_config": {
    "language": "en",
    "operating_point": "enhanced",
    "diarization": "speaker"
  }
}

Limits

LimitValue
Max file size1 GB
Presigned upload URL expiry30 minutes
Supported audio formatswav, mp3, flac, aac, ogg, m4a, mp4, amr, mpeg
URL input schemeHTTPS only

Next Steps

Batch API reference

Endpoint details, request schemas, and response formats

Getting started

Set up your API key and make your first request