Long-Form Transcription API for Large Audio and Video

Submit recordings from six seconds to 24 hours, upload files under 2 GiB, and receive structured transcripts through polling, webhooks, or chronological streamed output.

3h 12m interview.mp3

1. Submit one recording

Public URL or direct upload under 2 GiB

2. Process asynchronously

status: PENDING → COMPLETED

3. Receive structured output

Poll the job, accept a webhook, or stream chronological segments with SSE.

24h
max duration
2 GiB
max upload
202
async accepted

Built for Long-Running, Large-File Transcription

Jobs v2 separates media ingestion from transcription processing so your application does not need to hold a request open for hours of source audio.

Up to 24 Hours per Recording

Submit prerecorded audio or video from six seconds to 24 hours long.

Upload Files under 2 GiB

Send local media directly through the upload endpoint instead of publishing it at a URL first.

Public URL Ingestion

Point Jobs v2 at a publicly accessible media URL and let the service fetch the recording for you.

Asynchronous by Default

Receive a job ID immediately, then poll status, accept a webhook, or stream progress and segments.

Asynchronous Workflow

Submit Once. Let the Job Run. Collect the Transcript When It Is Ready.

Long recordings do not need a long-lived synchronous HTTP request. Jobs v2 returns a job ID so your application can choose how it wants to observe completion.

Submit

Send one public URL or direct file upload.

Receive a Job ID

A URL-based async request returns HTTP 202 with PENDING status.

Observe Progress

Poll, wait for your webhook, or enable SSE progress events.

API Example

Create a Long-Form Transcription Job with One Request

The normal URL workflow responds with a job ID and PENDING status. Retrieve the completed result later, or provide a webhook URL for delivery.

Request

cURL
curl --request POST \
  --url https://api.speechischeap.com/v2/jobs/ \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "input_url": "https://example.com/three-hour-interview.mp3",
    "webhook_url": "https://your-domain.com/transcription-webhook"
  }'

Completed Output Excerpt

JSON
{
  "id": "00000000-1111-7222-b333-444444444444-sic",
  "output": {
    "segments": [
      {
        "id": 1,
        "start": 0.0,
        "end": 24.12,
        "language": "en (99.95%)",
        "confidence": 0.987,
        "processing_duration_in_s": 0.321,
        "text": "Welcome to this long-form interview.",
        "words": null
      },
      {
        "id": 2,
        "start": 24.12,
        "end": 52.84,
        "language": "en (99.93%)",
        "confidence": 0.981,
        "processing_duration_in_s": 0.298,
        "text": "We will cover the complete story from beginning to end.",
        "words": null
      }
    ]
  },
  "status": "COMPLETED"
}

Use the URL endpoint for publicly accessible media, or send a local file to the upload endpoint. Both workflows support the same transcription options.

See Jobs v2 Parameters

Choose Your Delivery Pattern

Poll, Receive a Webhook, or Stream Chronological Output

Use the integration pattern that best fits your application instead of coupling long-form processing to one synchronous request.

Receive a Webhook

Set webhook_url when creating the job and receive the completed transcript without repeatedly polling.

Stream Progress + Segments

Set can_stream_output to receive SSE progress events and completed transcript segments in chronological order.

Long-Form Transcription for Recurring Media Workflows

Process long recordings without redesigning your application around short synchronous speech-to-text requests.

Podcasts and Interviews

Transcribe complete episodes and interviews, then add optional speaker diarization or word timestamps when needed.

Calls and Meetings

Process prerecorded conversations asynchronously while your application remains free to handle other work.

Media Archives

Submit long audio/video assets from storage and turn them into structured, searchable transcript segments.

Research and Data Pipelines

Queue independent recordings and consume completed transcripts in downstream indexing, analysis, or review systems.

Same Core Pricing

Long Recordings Do Not Need a Separate Premium Tier

Core transcription uses the same per-minute pricing as shorter Jobs v2 recordings. Optional add-ons are billed separately.

Pay as You Go

$0.002 per audio minute

1 hour: $0.12

8 hours: $0.96

24 hours: $2.88

Best for Volume

Subscriber

$20 per month

Includes 21,600 core transcription minutes (15 days of audio).

Additional core transcription minutes are billed at $0.000926 each.

You are charged only for successfully completed transcriptions.

Compare API Plans

Clear Boundaries

Long-Form Does Not Mean Unlimited or Live

Use Jobs v2 when the source media already exists and fits the documented file and duration limits.

24-Hour Maximum per Recording

Jobs v2 accepts source media between six seconds and 24 hours long.

Direct Uploads Must Be under 2 GiB

The upload endpoint is intended for large local files, but it is not unlimited object storage.

Prerecorded Media, Not Live Audio Ingestion

SSE streams processing progress/output for a submitted recording; it is not a microphone, WebSocket, or telephony audio-ingestion API.

Long-Form Transcription API Questions

Implementation details for large files and long prerecorded media.

How long can a recording be?

Jobs v2 accepts prerecorded audio or video between six seconds and 24 hours long. Direct file uploads must also be under 2 GiB.

Can I transcribe a large local file instead of hosting it somewhere?

Yes. Send the file to https://upload.speechischeap.com/v2/jobs/ as multipart/form-data. The upload endpoint accepts files under 2 GiB and reports upload progress before handing the media to the Jobs v2 transcription pipeline.

Is long-form transcription synchronous?

No. Jobs v2 is asynchronous. A normal request returns a job ID with PENDING status. Your application can poll the job endpoint, receive a webhook, or enable chronological Server-Sent Events output.

Can I stream a long-form transcript while it is being processed?

Yes. Set can_stream_output to true to receive progress events and chronological transcript segments over Server-Sent Events. Progress events are the reliable way to monitor the overall job.

What media formats can I use?

Speech is Cheap supports common audio and video formats including MP3, M4A, Opus, FLAC, WAV, MP4, WebM, and Ogg. See the supported file types for tested codec/container combinations.

Transcribe Your Next Long Recording

Choose a plan, get your API key, and submit prerecorded audio or video.