apyhub
Back
▣ INGESTION KIT

Convert Speech to Text API

Hosted on ApyHub

What it does

The Speech to Text API transcribes WAV audio into plain text. Upload a WAV file (up to 100 MB per request) to /file, or send a public WAV url to /url, along with a language code such as en-US, de-DE or es-ES. The response is a JSON object with the full transcription in a data field.

Use it as an audio transcription API for voice notes, support calls, interviews, meetings and podcasts, so spoken content becomes searchable, easy to summarize or ready to index. Developers call this speech to text API from Python, Node.js or any language that can send an HTTP request, or as a voice to text API inside apps that record audio.

It returns the text only, without timestamps, speaker labels or confidence scores. The input must be WAV: MP3 files are rejected, so convert them first with the MP3 to WAV Converter API. For audio inside a video, use the Audio Extractor from Video API. If you need subtitles with timestamps, use the Speech to Text and Subtitles API.

To turn text back into speech, use the Text to Speech API. AI agents can also call it through ApyHub MCP.

▣ ENDPOINT 01 / 02
POST
Transcribe WAV file to text
https://api.eu.apyhub.com/apyhub/transcribe-speech-to-text/file

QUICKSTART

GUIDE

Quickstart

Upload a WAV file and the locale to transcribe speech to text.

curl -X POST "https://api.eu.apyhub.com/apyhub/transcribe-speech-to-text/file" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/audio.wav" \
  -F "language=en-US"

What you'll get back

Returns a JSON object with a data string field containing the transcription result.

{
  "data": "Hello, welcome to the meeting."
}
TRY ITLIVE · 750 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*
WAV audio file.
Azure locale (e.g. en-US).

About this endpoint

What it does

Uploads a WAV audio file and a language locale, then returns the transcription as a string.

Request Body

ParameterTypeDescription
fileBinaryWAV audio file.
languageStringAzure locale (e.g. en-US).

Response

Returns a JSON object with a data string field containing the transcribed text. The success response is a JSON object with one top-level field: data (string).

FieldTypeDescription
dataStringThe transcribed text from the WAV audio file.
ParameterTypeDescription
dataStringThe transcribed text extracted from the submitted audio.

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ ENDPOINT 02 / 02
POST
Transcribe WAV from URL to text
https://api.eu.apyhub.com/apyhub/transcribe-speech-to-text/url

QUICKSTART

GUIDE

Quickstart

Send the audio file URL and its language code to transcribe speech to text.

curl -X POST "https://api.eu.apyhub.com/apyhub/transcribe-speech-to-text/url" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://assets.apyhub.com/samples/sample-speech.mp3",
    "language": "en-US"
  }'

What you'll get back

Returns a JSON object with a data string field containing the transcribed text.

{
  "data": "Hello, this is a sample transcription."
}
TRY ITLIVE · 750 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*

About this endpoint

What it does

Transcribes a WAV audio file from a URL into text. Send the source file URL and language, and the response returns the transcription as a string.

Request Body

ParameterTypeDescription
urlStringThe WAV file URL to transcribe. Must be a valid URI.
languageStringThe language code for transcription, such as en-US.

Response

Returns a JSON object with a data string field containing the transcription result.

FieldTypeDescription
dataStringThe transcribed text from the WAV audio file.
ParameterTypeDescription
dataStringThe transcribed text extracted from the audio at the supplied URL.
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.