Batch API: 27/27 GA tests pass

Your audio jobs run while you sleep. We call you when they're done.

18 pro audio tools, composed into named Recipes, delivered by webhook. Submit 500 files in one call, receive a clean completion event. Same engine over a batch REST API and a conversational Chat API.

The wedge

Don't poll. We'll call you.

Submit a batch and go do something else. The moment it finishes, Scarleta POSTs a batch_completed event to the URL you supply. No polling loop to babysit, no wasted requests.

  • Fires on batch completion and on single-recipe runs.
  • SSRF-guarded: private and loopback targets are refused, no POST sent.
  • Three delivery attempts with backoff, then it stops. Idempotent, no double-POST on replay.
  • The only secret is whatever you embed in your own webhook URL.
POST your-webhook-url
{
  "event": ...,
  "batch_id": ...,
  "status": ...,
  "total_items": ...,
  "completed_items": ...,
  "failed_items": ...,
  "cancelled_items": ...,
  "actual_total_cost": ...,
  "completed_at": ...
}

Exactly nine keys, in this order. See the reference for full types.

Four ways to build on Scarleta

The Batch API is the GA-validated flagship. Every surface hits the same audio engine. Pick the shape that fits how you build.

Bulk, async: the flagship

Batch API
The GA-validated flagship developer surface. 27 of 27 acceptance tests pass. Submit up to 500 files in one call, then let a webhook call you when the batch is done.
  • Submit up to 500 files per batch; over the cap returns a coded 422.
  • Per-tenant fair concurrency: one big batch can never starve another.
  • Retry failed items by lineage, cancel mid-flight; in-flight items finish.
  • Ledger-accurate cost and honest, coded errors on every failure.
POST /v1/batchGET /v1/batch/:idGET /v1/batch/:id/results

Conversational / agent

Chat / Agent API
A real, metered developer product, not the consumer web chat UI. Give your app the same agent that picks capabilities, builds a recipe under the hood, runs it, and returns results. An async standard tier or a streaming tier.
  • Standard tier: submit a turn, then poll for the result.
  • Streaming tier: stream the conversational response as it arrives.
  • Metered per customer on the same per-second meter as everything else.
  • Same engine as the web chat. You own the front end.
POST /v1/chat → GET /v1/chat/:job_idPOST /api/chat (streaming)

An AI other AIs can use

MCP server
Connect an outside AI (Claude, ChatGPT, or your own agent) to Scarleta with a key, and it can call our audio tools natively as tool-calls instead of hand-rolled REST plumbing.
  • The full audio toolbelt, exposed over the Model Context Protocol.
  • Any MCP-capable AI connects with a customer key.
  • Separate stems, transcribe, detect key and tempo, and more. Natively.
  • Billed per use, on the same prepaid per-second meter.

Composable pipelines

Recipes
Compose capability steps into a saved, reusable pipeline, then run it over audio and let a recipe webhook call you back. Create and save your own, and discover a growing public library of recipes we curate.
  • Run a saved pipeline over audio; poll or receive a recipe-completed webhook.
  • Create, save, and reuse multi-step pipelines instead of re-wiring calls.
  • Discover a growing public library of recipes we curate (curation in progress).
  • You only ever see the public library plus your own recipes and drafts.
POST /v1/recipe/execute → GET /v1/recipe/jobs/:job_id

Honest, coded errors

Every batch failure returns a stable, documented code, never a vague 500. These are the nine you can handle for.

CodeHTTP
missing_audio_urls

empty / absent audio_urls

400
missing_recipe_id

no recipe_id

400
invalid_json

non-JSON body

400
invalid_max_retries

max_retries at or below 0, or non-integer

400
batch_too_large

more than 500 items

422
batch_not_found

unknown id / cross-tenant read

404
batch_already_final

cancel an already-terminal batch

409
batch_paid_only

free-tier key

403
workflow_binding_missing

deploy-regression guard

500

Why teams switch to Scarleta

The parts that most audio APIs get wrong.

Webhooks, not polling

Don't poll. We call you the moment a job is done, on both batch and single-recipe runs.

Composable recipes

Design a multi-step pipeline once, then run it over audio. Your own reusable workflows.

Transparent per-second pricing

$0.10 per minute, 1 token = 1 second of audio, prepaid. No seats, no subscription.

Dual access: chat and REST

The same engine behind a conversational Chat API and a clean REST / batch API. Two front doors.

No double-charge for the same audio

An owner-scoped content-hash cache means you never pay twice to re-analyze the same file in your account.

Tenant isolation, by design

Another account's batch id returns a 404. Never a data leak. Cross-tenant reads are blocked.

The full audio tool suite

Grouped by what you get out. Call any of them directly, or chain them into a recipe.

Split & isolate
stem_analysisremove_audio_element
Understand music
musical_intelligence_analysismelody_analysistempo_analysisrhythm_tracking_analysis
Understand speech & sounds
speech_analysisaudio_tagging_analysisaudio_description_analysis
Analyze the signal
spectral_analysissignal_analysisembedding_analysisalignment_analysis
Clean, transform & repurpose
noise_reductionaudio_effect_analysisextract_video_audiocreate_videocrop_audio

Self-serve keys

Get a key. Start on the free grant.

Sign up and mint a key yourself, no sales call required. Every key is validated with HMAC-SHA256. Start free, then top up when you need scale.

scar_live_*Paid, production
scar_test_*Paid, staging
sk_free_*Free, one-time 300-token grant

Pricing

$0.10/ minute of audio

Prepaid token top-ups, not a subscription. 1 token = 1 second of audio. Retries never double-charge.

  • Free tier: a one-time 300-token grant to try it.
  • Minimum top-up is $10. No seats, no monthly plan.
  • Saved cards, low-balance alerts, and auto-recharge available.

Get a key. Ship your first batch today.

Prepaid, per-second pricing. Start on the free grant, then top up when you need scale. No subscription, no seat count.

Developer / API - Scarleta | Scarleta