FAQ
Getting started
Do I need a credit card to try it? No. The free plan gives you 10 jobs a month with no card.
Is there an SDK? No, and you do not need one. The API is HTTP and JSON; the examples are complete clients in about 40 lines.
Where do I get an API key? In the dashboard, under API keys. The full key is shown once at creation. See Authentication.
Can I call the API from a browser or a mobile app? No. A key shipped to a client is a published key. Call the API from your own backend.
Jobs
How long does a job take?
Each preset carries an estimatedProcessingTime describing encoding for a
typical source. It scales with source length, and ladder presets encode every
rung, so a five-rung HLS job takes several times a single 720p MP4.
Does the API check my file before accepting the job?
No. Creation validates the request, not the file. The source is fetched,
inspected and measured by the worker afterwards, so a job can be accepted with
201 and still fail. See Handling failures.
Can I process a file from my own private storage?
Yes, if you give us a URL we can fetch. Generate a signed URL of your own with
a lifetime that outlasts the queue, and pass that as inputUrl.
Can I cancel a job?
While it is queued or processing, yes. It does not return the quota slot.
Can I change a preset after creating a job? No. Cancel it and create a new one.
Do jobs run in the order I create them? Broadly. Two jobs are processed at a time across the service, so a queue forms under load.
Output
Why is outputUrl null on a completed job?
Either the output has been removed from storage, or the job predates the
current storage layout and cannot be signed. See
Downloading output.
Can I get a permanent link? No. Every link is signed and expires, and seven days is the ceiling. Store the job identifier and sign on demand, or copy the file to your own storage.
Why did I get a ZIP instead of a video? Streaming and thumbnail presets produce many files, so they are delivered as one archive. Unpack it before serving. See Adaptive streaming.
Can I have the output delivered to my own S3 bucket? Not directly. Download it in your webhook handler and upload it yourself.
Where does the thumbnail in the archive come from?
Every archive includes thumbnail.jpg, a frame taken from the source, so you
have a poster image without a second job.
Presets
Can I change the bitrate or resolution of a preset? No. Presets are fixed. For settings of your own, use the EDL API, which takes output settings directly.
Can I request a custom preset? Presets are part of the service configuration, not a per-account setting. Tell us what you need and we will consider adding it for everyone.
Which preset should I use? See Choosing a preset.
How do I know which presets my key can submit?
Call GET /api/v1/presets and filter on available.
Quota and billing
Is quota counted in jobs or in minutes? Jobs. One created job costs one job, whatever the source length and however many renditions the preset produces.
Does a failed job use up a job? Yes. The slot is claimed at creation and is only returned when the job could not be queued at all.
When does the counter reset? At the start of each calendar month.
What happens when I run out?
New jobs are refused with 429. Nothing is charged for going over; there is no
overage billing.
Is there a rate limit? No per-second or per-minute limit. The monthly job quota is the only limit.
What happens to my videos if I cancel? Jobs already run are unaffected, but link lifetime follows your plan at the time you ask for a link, so after a downgrade links last 4 hours. Download anything you want to keep before your paid period ends.
Webhooks
Can I set a different webhook per job?
No. One URL per account. webhookUrl is not a field on the job request.
Which events do I get?
completed and failed, and nothing else. There is no notification for
queued, processing or cancelled.
How many times do you retry?
Three attempts, with exponential backoff, on 5xx and transport failures. A
4xx stops delivery immediately. After three failures the notification is
dropped and cannot be replayed.
How long do I have to respond? Thirty seconds. Acknowledge first, then do the work.
My signature check always fails. You are almost certainly hashing a re-serialised body. Verify against the raw bytes; parsing and re-encoding changes whitespace and key order. See Webhooks.
Can I point a webhook at localhost? No. Private and internal addresses are refused, at save time and again at delivery. Use a tunnel such as ngrok during development.
Security
Where should I keep my API key? In an environment variable or a secret manager, on your server. Use a separate key per environment and per service.
How do I rotate a key? Create the new one, deploy it, then revoke the old one. Both work during the overlap.
What happens to running jobs if I revoke a key? They finish. Revoking stops new requests; it does not cancel work.
Can another account see my jobs?
No. A key sees only its own account's jobs, and reading somebody else's job
returns 404 rather than 403, so identifiers cannot be probed.