Send 500 files. We call you when they're done.
Point the batch API at your catalog, pick a recipe, and Scarleta runs it across every file. Up to 500 per batch. No sitting on a polling loop: we webhook your endpoint the moment the batch finishes.
How it works
No setup, no plugins. Just ask, and get the file back.
POST your files
Send a list of audio URLs and a recipe id to POST /v1/batch. You get back a batch_id and a 202. The work runs asynchronously, up to 500 files per batch.
We process the batch
Each file runs through your recipe on Scarleta's workers. We dedupe identical files within your account, so you're never re-analyzed or re-charged for the same audio twice.
We call your webhook
When the batch finishes we POST a batch_completed event to the webhook_url you supplied, with the final counts and the actual total cost. Or fetch results yourself from GET /v1/batch/{id}/results.
Built-in storage
Every result is saved to your library, 1 TB free.
The files you bring and the batch output results you get are kept in one place, so you can come back, compare earlier versions, share a link, or ask across everything you’ve stored, whenever you want.
Recipes
Make batch output one step in a pipeline you run by name.
Chain it with other steps into a recipe you design once, then run on a single file in chat or on thousands at once.
See it in action
Send 500 files. Get called back when they're done.
Simple, transparent pricing
Only pay for the audio you actually process.
1 token = 1 second of audio, minimum 1 token per job.
More than one trick
Scarleta does a whole lot more.
The same account handles all of it. Here are a few very different things you can do with your audio.
For developers
Submit a batch
One POST submits the whole catalog. Supply a webhook_url and we call you back on completion. See the developer docs for the full verb set, error codes, and result pagination.
curl -X POST https://api.scarleta.ai/v1/batch \
-H "Authorization: Bearer scar_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"recipe_id": "rec_0001_analyze_track",
"audio_urls": [
"https://example.com/track-001.mp3",
"https://example.com/track-002.mp3"
],
"webhook_url": "https://your-app.com/hooks/scarleta"
}'
# → 202 { "batch_id": "…", "status": "IN_QUEUE" }
# Then wait for the batch_completed webhook, or poll GET /v1/batch/{batch_id}.Ship your catalog through one endpoint
Grab a key, POST your first batch, and let the completion webhook come to you. Prepaid tokens, priced per second. Top up only when you need more, no subscription.
Frequently asked questions
How many files can one batch hold?
Up to 500 audio files per batch. Send more than that in a single call and you get a clear 422 batch_too_large, so split it into multiple batches.
Do I have to poll for results?
No. Supply a webhook_url when you submit and we POST a batch_completed event to it the moment the batch finishes. If you'd rather pull, GET /v1/batch/{id} for progress and GET /v1/batch/{id}/results for per-file results.
What does it cost?
You pay per second of audio processed. 1 token per second, which works out to $0.10 per minute, from prepaid tokens. The completion webhook reports the actual total cost. Batch processing requires a paid key; new accounts start with 300 free tokens, and top-ups begin at $10. No subscription.
Will I get charged twice for the same file?
No. Within your own account we dedupe by audio content, so resubmitting a file you've already processed reuses the earlier result instead of re-analyzing and re-charging you.
Can I cancel or retry a batch?
Yes. DELETE /v1/batch/{id} cancels everything still pending (in-flight files finish), and POST /v1/batch/{id}/retry requeues just the failed files. The full verb set and error codes are in the docs.