Skip to content
TutujinAPI

API reference

Speech to text (Audio Transcriptions)

Parameters, request and response examples for POST /v1/audio/transcriptions — upload audio and get text back for meeting notes, call-center QA and video subtitles. multipart/form-data, same format as the OpenAI transcription API. Requests are relayed as-is.

POST /v1/audio/transcriptions takes an audio file and returns the recognized text, either plain or as timed SRT or VTT subtitles. Common uses are meeting notes, call-center quality checks and video subtitles. The file is uploaded as multipart/form-data in the same format as the OpenAI transcription API, and the request is relayed to the model service as-is.

POSThttps://www.tutujin.com/v1/audio/transcriptions

Headers

HeaderRequiredDescription
AuthorizationYesBearer sk-..., an API key from the console
Content-TypeYesmultipart/form-data. SDKs and curl -F set it for you; do not write it by hand

Request body

ParameterTypeRequiredDescription
filefileYesAudio file, usually mp3, mp4, mpeg, mpga, m4a, wav or webm. Each file has a size limit, so split long recordings
modelstringYesModel name, e.g. whisper-1
languagestringNoAudio language as an ISO-639-1 code such as zh or en. Setting it usually improves accuracy and speed
promptstringNoHint text: product names, people's names or the end of the previous segment, to keep wording consistent
response_formatstringNojson (default), text, srt, vtt, verbose_json
temperaturenumberNo0 to 1, default 0. Usually leave it at the default
timestamp_granularities[]arrayNosegment or word, used with verbose_json to return segment or word timestamps

Request example

curl https://www.tutujin.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $TUTUJIN_API_KEY" \
  -F file=@meeting.mp3 \
  -F model="whisper-1" \
  -F language=en \
  -F prompt="Tutujin, quarterly review, customer success"

Response example

With response_format set to json:

JSON
{
  "text": "Let's start with this quarter's customer success metrics..."
}

With srt you get subtitle text you can save straight to an .srt file:

Text
1
00:00:00,000 --> 00:00:03,200
Let's start with this quarter's customer success metrics

2
00:00:03,200 --> 00:00:06,900
Overall renewals are up on last quarter
FieldDescription
textThe full recognized text
segmentsWith verbose_json: each segment with start, end (seconds) and text
languageWith verbose_json: the language the model detected

Notes

  • This endpoint is relayed as-is and has not been verified separately on this site; test it with a short clip first.
  • File extensions must match the real format. Oversized files may be rejected (413); split long recordings into 5 to 10 minute pieces and join the results in order.
  • Pass language when you know it; for mixed-language recordings, leave it out and let the model decide.
  • If product or people's names come out wrong, put them in prompt.
  • Transcription time grows with audio length, so give the client a generous timeout. Billing follows the model's price list; the Logs page in the console is the record.

Models that support this endpoint

ModelVendorCheapest groupInput ¥/1MOutput ¥/1MPer request ¥
whisper-1OpenAIStandard¥60¥60—

Prices in CNY, cheapest group for each model; updated Nov 13, 2026, 1:33 AM.

Still stuck? Add our WeChat support JsnonoChat and send the request id from the error message, and we will look into it.