Changelog
This page lists the notable changes to the Jobs API and the x402 API, which ship together. The format is based on Keep a Changelog, and the versions follow Semantic Versioning. Changes to Upload appear under the release they shipped with, marked with the Upload version. The Edge API has its own changelog.
[2.25.1] - 2026-10-26
Fixed
- Accept
POST /v2/jobsandPOST /v2/x402/jobswithout a trailing slash, and answer/v1/jobswithout one with410 Gone. Before, these requests failed with522or404. - Deliver x402 webhooks. Before, the API failed to send them.
[2.25.0] - 2026-10-24
Removed
- Jobs v1. Requests to
/v1/jobs/and the paths below it answer410 Gonewith a link to Create a Job from a URL.
Fixed
- Return
404 Not Foundwhen an API key cancels another customer's job. See Cancel a Job. - Show
https://speechischeap.com/redactedinstead of a private job'sinput_urlin error messages and failure webhooks. - Retry the removal of a private job's segments after 12 hours when the first attempt fails.
- Report x402 refunds of USDC payments as
succeededonce the USDC returns. Before, some stayedpending. - Reject an upload that arrives incomplete. Before, Upload could create a job from a file with missing bytes. An x402 upload that arrives incomplete is refunded. (Upload 1.3.0)
- Fail an empty x402 upload as shorter than six seconds, and refund it in full. Before, the request never answered. (Upload 1.3.0)
[2.24.0] - 2026-10-24
Added
- The x402 API. Pay for a job with USDC from a wallet instead of an API key.
POST /v2/x402/jobs/quotes and pays,DELETE /v2/x402/jobs/:job_idcancels with the paying wallet, andGET /v2/jobs/:job_idreturns the result. POST https://upload.speechischeap.com/v2/x402/jobs/to upload a file for an x402 job. See x402 Upload a File. (Upload 1.2.0)
Fixed
- Accept M4A, FLAC, and Ogg Opus uploads. Before, Upload rejected them. (Upload 1.2.0)
- Transcribe uploaded M4A and MP4 files that keep their metadata at the end of the file, and Ogg files, in full. (Upload 1.2.0)
[2.23.0] - 2026-09-22
Changed
- Fail a job whose audio is shorter than six seconds or longer than 24 hours. Before, the API processed it. See Input Requirements.
[2.22.1] - 2026-07-15
Fixed
- Restore periodic progress and chronological segment streaming.
[2.21.0] - 2026-07-07
Added
GET /v2/jobs/health/inferencereports whether transcription is running normally. See API Health.
[2.18.0] - 2026-05-21
Added
is_split_channelparameter for multi-channel audio speaker parsing.
[2.15.0] - 2026-03-13
Added
- Job ID in the
initialandprogressevents of a stream.
[2.14.0] - 2026-03-10
Added
- Billing check for API keys. A key whose billing isn't active gets
402 Payment Required.
[2.13.1] - 2026-02-26
Fixed
- Fall back from
HEADtoGETwhen the API checksinput_url, so pre-signed URLs work.
[2.13.0] - 2026-02-25
Added
- The
user_agentparameter applies to the check ofinput_url.
[2.12.0] - 2026-02-25
Added
- Check that
input_urlis reachable before creating the job. An unreachable URL returns400 Bad Request.
[2.11.0] - 2026-02-01
Added
- Say how to get an API key in the
401 Unauthorizedmessage.
[2.9.0] - 2025-11-16
Added
output_formatparameter to specify output as SRT, VTT, or WebVTT.- Upload a file with
input_fileinstead of a URL. See Upload a File. (Upload 1.0.0)
Removed
- The
event:line from stream events, and the nestedoutputobject from their payload.
[2.8.0] - 2025-11-11
Added
- Support for the
can_stream_outputflag. - Redaction of transcriptions flagged as
is_privateafter 12 hours.
Removed
hotwordsandpromptinput parameters.
[2.7.0] - 2025-06-16
Added
is_privateparameter.user_agentparameter.
Removed
audiofrom theoutput.requestresponse. Useinput_urlinstead.
[2.5.0] - 2025-05-15
Added
GET /v2/jobs/authendpoint to test an API key.
[2.4.0] - 2025-05-05
Added
can_parse_speakersparameter.minimum_confidenceparameter.
[2.3.0] - 2025-04-04
Added
can_label_audioparameter.
Removed
is_multilingualparameter, because the API applies it when you don't setlanguage.
[2.2.1] - 2025-02-11
Fixed
- Call back with a
FAILEDstatus when the transcription job fails to start. - Return
400 Bad Requestwhen the request has no JSON body.
Removed
- Requirement for
webhook_url.
[2.2.0] - 2025-01-29
Fixed
- Issue where the API ignored every job parameter except
input_urlandwebhook_url.
[2.1.1] - 2025-01-10
Fixed
- Canceled jobs return the expected job ID.
[2.1.0] - 2025-01-10
Added
FAILEDjob status to indicate a failed job.- A webhook callback when a job is canceled.
- Retry for jobs whose audio URL answered
403 Forbidden.
Changed
- BREAKING: Re-running the same job incurs a charge.
- BREAKING: Failed jobs return a
FAILEDstatus.
[2.0.0] - 2024-12-26
Added
- New
/v2/endpoint. GET /v2/jobs/healthendpoint to check the health of the service.
Changed
- BREAKING:
webhook_urlis now required because jobs are asynchronous. - BREAKING: Downloading an unsuccessful transcription with
GET /v2/jobs/:job_idreturns404 Not Found. - BREAKING: Successful job requests return
202 Acceptedinstead of201 Created. - The job ID suffix is now
-sic.