Skip to main content
This walkthrough uploads an MP3, processes it with the podcast preset, and downloads the compressed .ogg result. All you need is curl.
1

Create an API key

Create a key in the dashboard under Settings → API Keys. The full key (sk_live_...) is shown once; copy it immediately, since only a hash is stored.
2

Request an upload URL

Declare the filename and size in bytes. You get back a presigned URL valid for 15 minutes.
3

PUT the file to the upload URL

Use exactly the contentType returned in the previous step: the signature is bound to it.
4

Create the audio job

Reference the upload id as audioId and pick the podcast preset.
202 Accepted
Credits are reserved now, based on file size (1 credit per started 5 MB for audio). They are refunded automatically if the job fails.
5

Wait for the job and download the result

Pass ?wait=25 to long-poll: the server holds the response until the job finishes (or 25 seconds pass), so you usually need a single call instead of a polling loop.
If the job is still running when the wait expires, just repeat the call. When it’s completed:
Download the Opus-encoded output:
outputUrl is a fresh signed URL on every read, valid for 1 hour. Results stay available for 7 days after completion.
Prefer a push model over polling? Add a webhookUrl to the job body; see Webhooks.