Skip to main content
POST
/
api
/
v2
/
stt
Speech-to-Text
curl --request POST \
  --url https://api.example.com/api/v2/stt \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "<string>",
  "language": "<string>",
  "diarize": true
}
'
STT uses a dedicated multipart endpoint POST /api/v2/stt, not the standard /generate endpoint.

Request

curl -X POST https://neuralbox.top/api/v2/stt \
  -H "Authorization: Bearer nb_YOUR_API_KEY" \
  -F "audio=@recording.mp3" \
  -F "model=whisper" \
  -F "language=en"
Authorization
string
required
Authorization: Bearer nb_YOUR_API_KEY
audio
file
required
Audio file. Supported formats: mp3, mp4, wav, m4a, ogg, flac, webm. Max size: 25 MB.
model
string
default:"whisper"
STT model slug. See table below.
language
string
Language code (e.g. en, ru, es). Optional — auto-detected if omitted.
diarize
boolean
default:"false"
Speaker diarization. Only supported by elevenlabs-scribe.

Models

SlugProviderTierCostNotes
whisperOpenAIStarter2 tknFast, 99 languages
gpt-4o-transcribeOpenAIBasic+2 tknHighest accuracy
elevenlabs-scribeElevenLabsBasic+2 tknBest for meetings, supports diarization

Response

{
  "id": 18510,
  "status": "completed",
  "model_slug": "whisper",
  "result_text": "Hello and welcome to today's episode...",
  "tokens_spent": 2,
  "processing_ms": 3420
}

Diarization (who said what)

Available only with elevenlabs-scribe:
curl -X POST https://neuralbox.top/api/v2/stt \
  -H "Authorization: Bearer nb_YOUR_API_KEY" \
  -F "audio=@meeting.mp3" \
  -F "model=elevenlabs-scribe" \
  -F "diarize=true"
Response includes speaker labels in result_text:
[Speaker 1]: Hello, let's start the meeting.
[Speaker 2]: Sure, I have three points to discuss.

Code Examples

import requests

with open("audio.mp3", "rb") as f:
    response = requests.post(
        "https://neuralbox.top/api/v2/stt",
        headers={"Authorization": "Bearer nb_YOUR_API_KEY"},
        files={"audio": f},
        data={"model": "whisper", "language": "en"}
    )

print(response.json()["result_text"])