Pricing
One rate for every job. No plans, no minimum and no cap.
- Billed
- Monthly, by card. Sooner if unbilled usage reaches USD 50.
- Charged for
- Processing and probe requests that succeed. An async job is charged when it completes, even if its webhook can’t be delivered.
- Never charged
- Requests that fail, are rejected or rate-limited, time out or are cancelled. File and directory calls.
- Rounding
- Each request is metered to nine decimal places. Only the invoice rounds, to the cent.
How a job is measured
(input GB + output GB) × processing seconds = GB-seconds
Processing seconds are counted on a reference machine, so a job costs the same whichever machine runs it. Every response returns the job’s GB-seconds and the amount charged. A GB is 1,073,741,824 bytes.
Worked examples
| Job | Input | Output | Seconds | GB-seconds | USD |
|---|---|---|---|---|---|
| Compress a talk recording | 1.2 GB | 0.35 GB | 42 | 65.100 | 0.8671 |
| Trim a clip without re-encoding | 0.8 GB | 0.1 GB | 2.5 | 2.250 | 0.0300 |
| One thumbnail from a long video | 2 GB | 0.0005 GB | 2 | 4.001 | 0.0533 |
| A short GIF from a clip | 0.05 GB | 0.012 GB | 8 | 0.496 | 0.0066 |
| Extract the audio as MP3 | 0.4 GB | 0.012 GB | 7 | 2.884 | 0.0384 |
Limits
Questions
How is a job priced?
By its GB-seconds: (input GB + output GB) × processing seconds, at USD 0.01332 per GB-second. Every response returns the job’s GB-seconds and the amount charged.
Are failed jobs charged?
No. Requests that fail, are rejected or rate-limited, time out or are cancelled are not charged, and neither are file and directory calls.
Is there a free tier?
No. There is no free tier, no plan and no minimum: you pay USD 0.01332 per GB-second for the jobs that succeed, and nothing else.
Do you keep my files?
Only while their directory lives: 24 hours by default, 7 days at most, or until you delete them. After that, one billing line per charged request remains, with no file names.
Can I use my existing FFmpeg options?
Yes. Inputs and outputs take FFmpeg’s own options, and filters work as they do on the command line. A few that would read or write files, or reach the network, outside the task are refused.
Is there a usage cap?
No. Limits keep the service stable (300 requests a minute per key, 50 jobs at once per account), but there is no cap on usage or spend.
How do I get results for long jobs?
Use the async endpoint. It answers at once with a job id; read the result with GET /job/{jobId}, or give a webhook_url and receive it when the job ends. A job may run for up to 60 min.