Prerequisites
You’ll need an API key. See Authentication for how to request one.
Set your key as an environment variable:
export LYRCS_API_KEY = "lyrcs_sk_live_..."
Step 1: Submit a transcription job
Send an audio URL and the source language. The API returns a job_id immediately — processing happens asynchronously.
curl -X POST https://lyrcs.ai/api/v1/transcribe \
-H "Authorization: Bearer $LYRCS_API_KEY " \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://example.com/song.mp3",
"language": "Tamil"
}'
Response:
{
"job_id" : "a1b2c3d4-..." ,
"status" : "queued" ,
"language" : "Tamil" ,
"created_at" : "2024-01-01T00:00:00.000Z" ,
"review_required" : false ,
"align_requested" : true ,
"word_align_requested" : true
}
Use GET /api/v1/languages to see the exact accepted language name strings. Values are case-sensitive — "Tamil" works, "tamil" does not.
Step 2: Poll for completion
Poll GET /api/v1/jobs/{job_id} until status is "complete" or "failed". Jobs typically complete within 60–90 seconds.
curl https://lyrcs.ai/api/v1/jobs/a1b2c3d4-... \
-H "Authorization: Bearer $LYRCS_API_KEY "
Response when complete:
{
"job_id" : "a1b2c3d4-..." ,
"status" : "complete" ,
"language" : "Tamil" ,
"align_requested" : true ,
"word_align_requested" : true ,
"created_at" : "2024-01-01T00:00:00.000Z" ,
"completed_at" : "2024-01-01T00:01:32.000Z" ,
"duration_seconds" : 214 ,
"studio_url" : "https://lyrcs.ai/studio/a1b2c3d4-..." ,
"results" : {
"transcript" : "..." ,
"transliteration" : "..." ,
"translation" : "..." ,
"cultural_notes" : null ,
"downloads" : {
"lrc_original" : "https://lyrcs.ai/api/v1/jobs/a1b2c3d4-.../download/lrc/original" ,
"lrc_transliterated" : "https://lyrcs.ai/api/v1/jobs/a1b2c3d4-.../download/lrc/transliterated" ,
"srt_original" : "https://lyrcs.ai/api/v1/jobs/a1b2c3d4-.../download/srt/original" ,
"srt_transliterated" : "https://lyrcs.ai/api/v1/jobs/a1b2c3d4-.../download/srt/transliterated" ,
"words_original" : "https://lyrcs.ai/api/v1/jobs/a1b2c3d4-.../download/words/original" ,
"words_transliterated" : "https://lyrcs.ai/api/v1/jobs/a1b2c3d4-.../download/words/transliterated"
}
}
}
Step 3: Download lyric files
Use any of the download URLs from results.downloads. Authentication is required. In addition to LRC and SRT, words_original and words_transliterated contain per-word timestamps as a JSON array — useful for word-by-word karaoke highlight.
curl https://lyrcs.ai/api/v1/jobs/a1b2c3d4-.../download/lrc/original \
-H "Authorization: Bearer $LYRCS_API_KEY " \
-o song.lrc
The response is a plain-text .lrc file with Content-Disposition: attachment.
What’s next
Three API Modes When to use align=false, review=true, or the default pipeline.
Webhooks Receive events instead of polling. Covers all 5 event types and signature verification.
Batch Processing Submit up to 20 jobs at once with a single webhook on completion.
Error Reference All error codes, HTTP statuses, and rate limit headers.