✦ API v1 · 2026

VoiceTranslate API

Real-time speech-to-text transcription and AI-powered translation across 500+ languages. Built on the same engine powering voicetranslate.io.

Base URL: https://voicetranslate.io/api/v1

Quickstart

Get your API key below, then make your first transcription request in seconds.

curl -X POST https://voicetranslate.io/api/v1/transcribe \
  -H "Authorization: Bearer vt_your_api_key" \
  -F "[email protected]" \
  -F "language=en-US"

Response:

{
  "text": "Hello, how are you today?",
  "language": "en-US",
  "duration": 2.4,
  "confidence": 0.95,
  "words": 5,
  "model": "voicetranslate-stt-v1"
}

Authentication

All API requests require a valid API key passed in the Authorization header:

Authorization: Bearer vt_your_api_key

You can also pass it as a form field api_key or JSON field api_key.

Get your API Key

Create a free API key below. Free plan includes 1,000 requests/month.

🔑 Create API Key

Free forever. No credit card required.

✓ API Key created!
Copy this key — it won't be shown again:
⚠️ Store this securely. Never expose it in frontend code.

POST /transcribe

POST /api/v1/transcribe

Transcribe an audio file to text. Accepts WAV, MP3, OGG, FLAC, or base64-encoded audio.

Request (multipart/form-data)

ParameterTypeDescription
audiorequired*fileAudio file (WAV, MP3, OGG, FLAC). Max 25MB.
audio_base64required*stringBase64-encoded audio (alternative to file upload).
languageoptionalstringBCP-47 language code e.g. en-US, th-TH, ja-JP. Default: en-US.

* Either audio or audio_base64 is required.

Response

200 OK 401 Unauthorized 429 Rate limit
{
  "text": "สวัสดีครับ ผมชื่อพอล",
  "language": "th-TH",
  "duration": 3.2,
  "confidence": 0.95,
  "words": 4,
  "model": "voicetranslate-stt-v1"
}

Code examples

# Python
import requests

with open('audio.wav', 'rb') as f:
    response = requests.post(
        'https://voicetranslate.io/api/v1/transcribe',
        headers={'Authorization': 'Bearer vt_your_key'},
        files={'audio': f},
        data={'language': 'th-TH'}
    )
print(response.json()['text'])
// JavaScript
const formData = new FormData();
formData.append('audio', audioBlob, 'recording.wav');
formData.append('language', 'en-US');

const res = await fetch('https://voicetranslate.io/api/v1/transcribe', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer vt_your_key' },
  body: formData
});
const { text } = await res.json();

POST /translate

POST /api/v1/translate

Translate text between 500+ languages using Claude AI. Accepts plain text and returns natural, accurate translations.

Request (application/json)

ParameterTypeDescription
textrequiredstringText to translate. Up to 100,000 characters.
sourceoptionalstringSource language code e.g. en. Default: en.
targetrequiredstringTarget language code e.g. th, ja, fr.

Response

{
  "text": "Hello, how are you?",
  "translation": "สวัสดี สบายดีไหม?",
  "source": "en",
  "target": "th",
  "model": "claude-haiku-4-5"
}

Supported Languages

500+ languages supported for translation. 80+ languages for speech recognition.

🇺🇸 en-US🇹🇭 th-TH 🇯🇵 ja-JP🇨🇳 zh-CN 🇰🇷 ko-KR🇫🇷 fr-FR 🇩🇪 de-DE🇪🇸 es-ES 🇮🇳 hi-IN🇸🇦 ar-SA 🇷🇺 ru-RU🇵🇹 pt-BR 🇮🇹 it-IT🇻🇳 vi-VN 🇮🇩 id-ID+ 485 more

Error Codes

CodeHTTPDescription
unauthorized401Missing or invalid API key.
rate_limit429Monthly request limit exceeded. Upgrade your plan.
transcription_failed500Audio could not be transcribed. Check format and quality.
no_audio400No audio file or base64 data provided.

Need help?

Email us at [email protected] — we respond within 24 hours.