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.
POST /transcribe
Transcribe an audio file to text. Accepts WAV, MP3, OGG, FLAC, or base64-encoded audio.
Request (multipart/form-data)
| Parameter | Type | Description |
|---|---|---|
| audiorequired* | file | Audio file (WAV, MP3, OGG, FLAC). Max 25MB. |
| audio_base64required* | string | Base64-encoded audio (alternative to file upload). |
| languageoptional | string | BCP-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
Translate text between 500+ languages using Claude AI. Accepts plain text and returns natural, accurate translations.
Request (application/json)
| Parameter | Type | Description |
|---|---|---|
| textrequired | string | Text to translate. Up to 100,000 characters. |
| sourceoptional | string | Source language code e.g. en. Default: en. |
| targetrequired | string | Target 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.
Error Codes
| Code | HTTP | Description |
|---|---|---|
| unauthorized | 401 | Missing or invalid API key. |
| rate_limit | 429 | Monthly request limit exceeded. Upgrade your plan. |
| transcription_failed | 500 | Audio could not be transcribed. Check format and quality. |
| no_audio | 400 | No audio file or base64 data provided. |
Need help?
Email us at [email protected] — we respond within 24 hours.