API Reference
Convert files programmatically. Prepaid credits, no rate-limit surprises, no free tier.
Authentication
Every request needs an API key, sent as either header:
X-API-Key: dk_live_xxxxxxxxxxxxxxxxxxxxxxxx Authorization: Bearer dk_live_xxxxxxxxxxxxxxxxxxxxxxxx
Get a key by buying a credit pack on the pricing page -- it's issued instantly after checkout. Every key is prepaid: requests fail with 402 once the balance hits zero.
Pricing
One rule for every conversion, regardless of file type:
| What | Cost |
|---|---|
| Any conversion | 1 credit (covers the first 100MB and the first minute of processing) |
| Per additional 100MB of input | +1 credit |
| Per additional minute of processing | +1 credit |
In practice this means image/PDF/data conversions almost always cost exactly 1 credit, since they finish in well under a minute -- the per-minute charge is really only ever felt on longer video/audio jobs. The base/size credit is charged upfront; any per-minute overage is billed once the job finishes and actual processing time is known -- see creditsCharged in the initial response and GET /api/v1/usage for your running balance.
Priority
API-originated jobs are scheduled ahead of free browser-based conversions whenever both are waiting on the same queue lane.
Endpoints
POST /api/v1/convert
multipart/form-data with a file field, plus:
| Field | Description |
|---|---|
to | Target format extension (e.g. mp3). Required unless mode=compress. |
mode | convert (default) or compress. |
options | Optional JSON string of extra converter options (e.g. quality). |
curl -X POST https://digiutil.com/api/v1/convert \ -H "X-API-Key: dk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \ -F "file=@video.mov" \ -F "to=mp4"
Returns 202 with the job (and creditsCharged / creditsRemaining):
{
"id": "b3f1...",
"status": "queued",
"lane": "heavy",
"from": "mov",
"to": "mp4",
"creditsCharged": 1,
"creditsRemaining": 4999
}
GET /api/v1/jobs/:id
Poll for status. Returns the same job shape, with status of queued, running, done, or failed, plus progress (0-100) and downloadUrl once done.
GET /api/v1/jobs/:id/download
Streams the converted file once the job is done. Only the key that created a job can fetch its status or download.
GET /api/v1/formats
Every supported source format, grouped by medium, plus which formats support compression.
GET /api/v1/usage
Your key's current credit balance and lifetime usage.
{ "label": "Acme Corp", "credits": 4999, "totalUsed": 1 }
Errors
| Status | Meaning |
|---|---|
| 401 | Missing or invalid API key |
| 402 | Insufficient credits |
| 404 | Job not found, expired, or not owned by your key |
| 413 | File too large |
| 429 | Too many concurrent jobs on this key, or the server queue is full |
| 507 | Server temporarily low on disk space |