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:

WhatCost
Any conversion1 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:

FieldDescription
toTarget format extension (e.g. mp3). Required unless mode=compress.
modeconvert (default) or compress.
optionsOptional 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

StatusMeaning
401Missing or invalid API key
402Insufficient credits
404Job not found, expired, or not owned by your key
413File too large
429Too many concurrent jobs on this key, or the server queue is full
507Server temporarily low on disk space