Prompt
multilingual transcription service api
Latest observation
Oct 11, 2026
OpenAI APIWeb search: off
Here’s a practical blueprint for a multilingual transcription service API.
What it should do
A good API typically supports:
- Speech-to-text for audio/video
- Multiple languages
- Language detection when unknown
- Timestamps for words/sentences
- Speaker diarization if needed
- Confidence scores
- Batch and streaming modes
- Translation optionally, if you want transcript output in a single language
Suggested API design
1) Upload audio
POST /v1/transcriptions
Request
file: audio/video filelanguage: optional, e.g.en,es,frdetect_language: booleandiarization: booleanformat:json | srt | vtt | txtmodel: optional, e.g.general,phone_call,meeting
Example response
{
"id": "tr_12345",
"status": "queued",
"language_detected": null
}
2) Check job status
GET /v1/transcriptions/{id}
Response
{
"id": "tr_12345",
"status": "completed",
"language_detected": "es",
"duration_seconds": 312.4,
"transcript": "Hola, ¿cómo estás?",
"segments": [
{
"start": 0.0,
"end": 2.1,
"speaker": "A",
"text": "Hola, "
},
{
"start": 2.1,
"end": 4.0,
"speaker": "A",
"text": "¿cómo estás?"
}
]
}
3) Download transcript
GET /v1/transcriptions/{id}/download?format=srt
Multilingual features to include
Language support
- Explicit language input:
language=ar - Auto-detection:
detect_language=true - Mixed-language transcription: return per-segment language tags
Example:
{
"segments": [
{ "start": 0.0, "end": 1.2, "language": "en", "text": "Hello" },
{ "start": 1.2, "end": 3.0, "language": "fr", "text": "Bonjour" }
]
}
Translation option
If you want transcripts in English regardless of source language:
translate_to=en
Common endpoints
POST /v1/transcriptionsGET /v1/transcriptions/{id}GET /v1/transcriptions/{id}/resultDELETE /v1/transcriptions/{id}GET /v1/languagesPOST /v1/transcriptions/streamfor live audio
Recommended response fields
idstatuslanguage_detectedconfidenceduration_secondstranscriptsegmentswordsspeaker_labelserror
Security
- API key auth:
Authorization: Bearer <token> - Rate limiting
- Signed upload URLs for large files
- Encryption at rest and in transit
Example cURL
curl -X POST https://api.example.com/v1/transcriptions \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@meeting.mp3" \
-F "detect_language=true" \
-F "diarization=true"
If you want, I can also provide:
- a full OpenAPI/Swagger spec,
- a FastAPI implementation, or
- a database schema and job queue design for this API.