Batch processing lets you submit multiple audio files in a single API call. All jobs process concurrently. A singleDocumentation Index
Fetch the complete documentation index at: https://docs.lyrcs.ai/llms.txt
Use this file to discover all available pages before exploring further.
batch.complete webhook fires when every job is done — regardless of whether individual jobs succeeded or failed.
When to use batch vs individual jobs
| Use case | Recommendation |
|---|---|
| Releasing a multi-track album | Batch — one request, one webhook |
| Processing a catalog of 100+ songs | Batch in groups of 20 |
| Single track with a webhook | Individual job |
| Real-time single track (need result ASAP) | Individual job |
| Metadata-only for a set of tracks | Batch with align=false per job |
Submitting a batch
Batches are JSON-only — every job must useaudio_url. File uploads are not supported.
- Minimum 1 job, maximum 20 jobs per request
- Per-job fields:
audio_url(required),language(required),align(optional, defaulttrue),review(optional, defaultfalse)
Rate limit pre-flight
The rate limit check is performed before any jobs are created. If submitting N jobs would push any window over the limit, the entire batch is rejected with429 and no jobs are queued.
X-RateLimit-Remaining-* headers on any previous response to know how much headroom you have before submitting a large batch.
Polling GET /batch/[id]
The batch status progresses through:Handling partial failures
Abatch.complete webhook with status: "partial" means at least one job failed. The failed field tells you how many. Individual job entries in jobs[] have their own status field.
Metadata-only batch (align=false)
For catalog workflows where you need lyrics text but not LRC files, setalign=false per job. Processing is faster (~60s per job) and the batch completes sooner.
align=false will not include downloads in the batch.complete payload or in GET /batch/{id} responses.
Processing large catalogs
The rate limit is 1,000 jobs per day. For a catalog larger than 1,000 tracks, spread submissions across multiple days or contact api@lyrcs.ai to discuss higher limits. For 1,000 tracks:- 50 batches of 20 jobs each
- All within the daily limit
- Each batch submitted when the previous
batch.completefires (or use a queue)