API Reference
Speech To Text Translate · HTTP Stream
https://api.shabd.tech/v1/speech-to-text-translate/streamTranscribes speech and translates the transcript — streamed as NDJSON (stt lines, then ttt lines) over one chunked connection.
Headers
x-api-keystringrequiredAPI Key for authentication
- Example:
<your-api-key>
Content-TypestringrequiredContent type of the request body
- Example:
multipart/form-data
x-request-idstringrequiredUnique request ID in UUID format
- Example:
550e8400-e29b-41d4-a716-446655440000
Request bodymultipart/form-data
filefileoptionalAudio file in WAV or PCM format. Optional when
audioUrlis supplied.audioUrlstringoptionalPublic http(s) URL to fetch the audio from, as an alternative to uploading
file. Exactly one offileoraudioUrlis required; if both are sent the uploaded file wins. The URL must be publicly reachable and the downloaded audio is subject to the same size limit as an upload.- Example:
https://example.com/audio/sample.wav
sourceLanguagestringrequiredLanguage of the speech
- Example:
english
targetLanguagestringrequiredLanguage to translate into
- Example:
tamil
sampleRatenumberoptionalSample rate of the audio in Hz (default 16000)
- Example:
16000
projectIdstringoptionalOptional project identifier
- Example:
<your-project-id-here>
stylestringoptionalTranslation style ("conversational" or "formal")
- Allowed:
conversationalformal- Default:
conversational
Responses
NDJSON stream — one JSON object per line, newline-separated. Each transcript (stt) is followed by its translation (ttt), interleaved per segment.
The
sttstream ends with acompleted: trueline (emptytranscript;start/endarenull), and a finaltttcompleted: trueline (emptytranslation) ends the stream. On failure a single error line is sent:{ "requestId": "a216e43a-9d81-444c-a9ae-3c1e400fcb02", "status": false, "completed": false, "message": "An unexpected error occurred. Please try again later." }Bodyapplication/x-ndjson
requestIdstringoptional- Example:
550e8400-e29b-41d4-a716-446655440000
modestringoptional- Example:
stt
statusbooleanoptional- Example:
true
completedbooleanoptional- Example:
false
chunkintegeroptional- Example:
1
transcriptstringoptional- Example:
hello world
translationstringoptional- Example:
வணக்கம் உலகம்
startnumber or nulloptional- Example:
0
endnumber or nulloptional- Example:
2
Example response
{ "requestId": "550e8400-e29b-41d4-a716-446655440000", "mode": "stt", "status": true, "completed": false, "chunk": 1, "transcript": "hello world", "translation": "வணக்கம் உலகம்", "start": 0, "end": 2}Bad Request
Bodyapplication/json
statusbooleanoptional- Example:
false
messagestringoptional- Example:
Invalid input parameters.
Example response
{ "status": false, "message": "Invalid input parameters."}Unauthorized Access
Bodyapplication/json
statusbooleanoptional- Example:
false
messagestringoptional- Example:
Unauthorized access.
Example response
{ "status": false, "message": "Unauthorized access."}Usage Limit Exceeded
Bodyapplication/json
statusbooleanoptional- Example:
false
messagestringoptional- Example:
Limit Exceeded
Example response
{ "status": false, "message": "Limit Exceeded"}Internal server error
Bodyapplication/json
statusbooleanoptional- Example:
false
messagestringoptional- Example:
An unexpected error occurred. Please try again later.
Example response
{ "status": false, "message": "An unexpected error occurred. Please try again later."}