API REFERENCE
Transcribe Audio
On this page
/api/content/transcribeTranscribe audio into text with word-level timestamps. Pass one or more audio file URLs in audio_urls. Returns the full transcript and an array of timed segments.
Authentication
x-api-key in header
bearerAuth bearer
Request
curl --request POST \
--url 'https://api.recoupable.dev/api/content/transcribe' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"audio_urls": [
"string"
]
}'Try it
Fill in the fields, send the request from your browser, and read the live response. The curl below updates as you type.
Kept in this browser tab only and cleared when it closes.
curl --request POST \
--url 'https://recoup-api.vercel.app/api/content/transcribe' \
--header 'Content-Type: application/json' \
--data '{
"audio_urls": [
"string"
]
}'Request body required
Audio transcription parameters
application/json
audio_urlsarray<string>requiredAudio file URLs to transcribe
minItems: 1
Item properties for audio_urls
string
languagestringLanguage code for transcription (e.g. en, es, fr). Defaults to en.
Default: "en"
chunk_levelstring · enumGranularity of timestamp chunks. Defaults to word-level.
Values: "none", "segment", "word"
Default: "word"
diarizebooleanEnable speaker diarization. Defaults to false.
Default: false
modelstringfal.ai model ID. Defaults to fal-ai/whisper
Responses
200Song transcribed successfully+
application/json
audioUrlstringrequiredURL of the transcribed audio
fullLyricsstringrequiredComplete transcribed lyrics as a single string
segmentsarray<ContentCreateAudioSegment>requiredTimestamped lyric segments
Item properties for segments
startnumberrequiredSegment start time in seconds
endnumberrequiredSegment end time in seconds
textstringrequiredTranscribed text for this segment
segmentCountnumberrequiredTotal number of segments returned
400Validation failed — invalid or missing request body fields+
application/json
errorstringrequiredError message describing what went wrong
401Unauthorized — invalid or missing API key+
application/json
errorstringrequiredError message describing what went wrong
500Internal server error+
application/json
errorstringrequiredError message describing what went wrong
Full specification
Download the OpenAPI file for complete schemas, constraints, and examples.
Download content.jsonView operation source
{
"description": "Transcribe audio into text with word-level timestamps. Pass one or more audio file URLs in `audio_urls`. Returns the full transcript and an array of timed segments.",
"security": [
{
"apiKeyAuth": []
},
{
"bearerAuth": []
}
],
"requestBody": {
"description": "Audio transcription parameters",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentCreateAudioRequest"
}
}
}
},
"responses": {
"200": {
"description": "Song transcribed successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentCreateAudioResponse"
}
}
}
},
"400": {
"description": "Validation failed — invalid or missing request body fields",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentErrorResponse"
}
}
}
},
"401": {
"description": "Unauthorized — invalid or missing API key",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentErrorResponse"
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentErrorResponse"
}
}
}
}
}
}