Speech to text API

Send an audio file, get the transcript, subtitles (SRT or VTT) and word timings back. Up to an hour of audio for $0.05; OpenAI- and ElevenLabs-compatible.

Plans from $9 a month Sample answer (JSON)

No account to create. Failed calls are never charged.

One request

curl -H "Authorization: Bearer $API_KEY" \
  "https://agent-data-tools.revmesh2074.workers.dev/transcribe?url=https%3A%2F%2Fcommons.wikimedia.org%2Fwiki%2FSpecial%3AFilePath%2FEn-us-hello.ogg"

Python

import os, requests

r = requests.get(
    "https://agent-data-tools.revmesh2074.workers.dev/transcribe",
    params={
    "url": "https://commons.wikimedia.org/wiki/Special:FilePath/En-us-hello.ogg",
    },
    headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())

Node.js

const params = new URLSearchParams({
  url: "https://commons.wikimedia.org/wiki/Special:FilePath/En-us-hello.ogg",
});
const r = await fetch(`https://agent-data-tools.revmesh2074.workers.dev/transcribe?${params}`, {
  headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!r.ok) throw new Error(await r.text());
console.log(await r.json());

Send a file instead of a URL

curl -H "Authorization: Bearer $API_KEY" \
  -F "file=@report.pdf" -F "pages=5" \
  "https://agent-data-tools.revmesh2074.workers.dev/transcribe"

Or the raw file as the body: --data-binary @report.pdf -H "Content-Type: application/pdf". Up to 10 MB. The file is read in memory for this one request and not stored.

The answer

{
  "url": "https://commons.wikimedia.org/wiki/Special:FilePath/En-us-hello.ogg",
  "text": "Hello!",
  "language": "en",
  "durationSeconds": 0.487625,
  "wordCount": 1,
  "model": "@cf/openai/whisper-large-v3-turbo"
}

Pricing

One API key, paid by card through Stripe. $0.01 per successful call with a key; failed calls cost nothing.

$9 a month1,500 transcriptions each monthStart plan
$19 a month4,000 transcriptions each monthStart plan
$1 once100 transcriptionsBuy
$5 once500 transcriptionsBuy
$20 once2,200 transcriptionsBuy
$100 once12,500 transcriptionsBuy

A plan adds its credits each month when the payment succeeds; unused credits stay, and you can cancel at any time. Packs never expire. After paying you get your key on the next page. The same key works on every tool in the catalog. Details: credits and plans.

Inputs

NameTypeDescription
url (required)stringAbsolute http(s) URL of an audio file (max 5 MB); or POST the file itself (raw body, multipart `file` part, or base64 in JSON)
subtitlesstringsrt or vtt: also return subtitle text
timestampsstringtrue: also return timed segments and words
languagestringSpoken language code such as en, sv or de (default: detected)

What it does not do

Also on the same key

Questions

How long can a recording be?

Up to 60 minutes and 25 MB of MP3 or WAV in one call to /transcribe/long ($0.05). The file is cut into parts and the timings are joined, so subtitles cover the whole recording. Clips up to 5 MB in any common format go to /transcribe ($0.01).

Can I keep my OpenAI or ElevenLabs code?

Yes. Point the client's base URL here: POST /v1/audio/transcriptions takes OpenAI's request (file, language, response_format json, text, srt, vtt or verbose_json), and POST /v1/speech-to-text takes ElevenLabs' (file or cloud_storage_url, language_code). A prepaid key goes in Authorization: Bearer, X-API-Key or xi-api-key.

Which languages?

The 90+ languages Whisper large-v3-turbo knows, Swedish, German, Spanish and French among them. Send language=sv to skip detection.

Are my files stored?

No. A file sent in a request is held in memory for that request only. It is not stored, cached or logged.

Is there a subscription?

There is a monthly plan and there are one-off credit packs. Both give one API key; a plan adds credits each month and unused credits stay.

Guides

For AI agents

The same tool is on the MCP server https://agent-data-tools.revmesh2074.workers.dev/mcp (the first 25 successful calls are free), and an agent with a wallet can pay per call in USDC: the tool URL answers 402 Payment Required with x402 and MPP terms. Reference: tool page · OpenAPI · docs for agents.