Konvertio API

REST API for file conversion. Integrate video, audio, image, document, and archive conversion directly into your app.

Base URL /priser/api/v1

Introduction

The Konvertio API lets you convert files programmatically. The API is asynchronous: you send a file, get a job_id back, poll the status, and download the result.

πŸ“€ POST /convert
β†’
πŸ”„ GET /status/{id}
β†’
⬇️ GET /download/{id}

Authentication

All API calls require an API key in the header X-API-Key.

HTTP
X-API-Key: kv_live_din_nokkel_her
πŸ’‘ Get your API key on the pricing page. Demo key for testing: kv_demo_lett_886555866155

Quickstart (5 minutes)

1
Get an API key from the pricing page
2
Send en POST til /api/v1/convert
3
Poll /api/v1/status/{port}/{job_id} til status == "done"
4
Download the file from /api/v1/download/{port}/{job_id}

POST /api/v1/convert

Uploads a file and starts conversion.

Request

ParameterTypeRequiredDescription
fileFileβœ…The file to convert (multipart/form-data)
output_formatstringβœ…Output format, e.g. mp4, pdf, mp3
qualitystringβ€”high / medium / low (standard: medium)

Response 202

JSON
{
  "job_id": "a3f8c2d1-...",
  "status": "queued",
  "status_url": "/priser/api/v1/status/5001/a3f8c2d1-...",
  "service_port": 5001
}

GET /api/v1/status/{port}/{job_id}

Check the status of a conversion job. Poll every 1–2 seconds.

Response

JSON
{
  "status": "processing",   // queued | processing | done | error
  "progress": 65,           // 0–100
  "message": "Converting… 12s / 28s",
  "output_file": null       // filename when done
}
queued processing done error

GET /api/v1/download/{port}/{job_id}

Download the converted file. Returns a binary stream with the correct Content-Type.

⚠️ Files are available according to your plan (1–90 days). Download before expiration.

GET /api/v1/formats

List of all supported input and output formats.

JSON
{
  "video":    ["mp4","avi","mov","mkv","webm","flv","wmv","gif","mp3","aac"],
  "audio":    ["mp3","wav","flac","aac","ogg","opus","m4a","wma","aiff","ac3"],
  "image":    ["jpg","png","webp","gif","bmp","tiff","ico","pdf"],
  "document": ["pdf","docx","doc","odt","rtf","txt","html","xlsx","ods","csv","pptx","odp"],
  "archive":  ["zip","tar.gz","tar.bz2","tar.xz","tar","7z"]
}

GET /api/key/info

Check the current quota status for your API key.

JSON
{
  "plan":         "basis",
  "plan_name":    "Basis",
  "calls_today":  47,
  "calls_month":  1243,
  "limit_day":    500,
  "limit_month":  10000,
  "max_file_mb":  2000,
  "priority":     "high"
}

Error codes

CodeMeaning
400Invalid request (missing field, invalid format)
401Invalid or missing API key
413File exceeds the plan's file size limit
429Quota exceeded β€” daily or monthly limit reached
503Microservice unavailable (check that it's running)

Python example

Python
import requests, time

API_KEY = "kv_demo_lett_886555866155"
BASE    = "/priser/api/v1"
HEADERS = {"X-API-Key": API_KEY}

# 1. Upload and start conversion
with open("video.mp4", "rb") as f:
    resp = requests.post(
        f"{BASE}/convert",
        headers=HEADERS,
        files={"file": f},
        data={"output_format": "mp3", "quality": "high"}
    )
job = resp.json()
port = job["service_port"]
jid  = job["job_id"]
print(f"Jobb startet: {jid}")

# 2. Poll until done
while True:
    s = requests.get(f"{BASE}/status/{port}/{jid}", headers=HEADERS).json()
    print(f"  {s['progress']}% β€” {s['message']}")
    if s["status"] == "done":
        break
    if s["status"] == "error":
        raise Exception(s["message"])
    time.sleep(1.5)

# 3. Download
r = requests.get(f"{BASE}/download/{port}/{jid}", headers=HEADERS)
with open("output.mp3", "wb") as f:
    f.write(r.content)
print("βœ… Lagret som output.mp3")

Rate limits

LimitValuePer
Uploads5minute per IP
Status polling60minute per IP
All requests120minute per IP

On exceeding the limit, HTTP 429 is returned with retry_after in seconds.

Plans and API quotas

PlanPrice/moAPI calls/moMax filePriority
Light $8.99 1000 1000 MB Normal
Basic $13.99 10000 2000 MB High
Unlimited $24.99 ∞ ∞ Highest
Enterprise Contact ∞ ∞ Dedicated
See all plans and upgrade β†’

API plans for developers

Dedicated plans for developers building on the Konvertio API. High volume? Contact us.

API Start
299/mo
1000 API calls/mo
  • βœ“ 1 000 API-kall/mnd
  • βœ“ Alle formater
  • βœ“ REST API
  • βœ“ E-poststotte
  • βœ“ Filer slettes automatisk
Popular
API Pro
990/mo
10000 API calls/mo
  • βœ“ 10 000 API-kall/mnd
  • βœ“ Fast conversion
  • βœ“ Alle formater
  • βœ“ Prioritert stotte
  • βœ“ 99,5% oppetid (mal)
Pro
API Scale
2490/mo
30000 API calls/mo
  • βœ“ 30 000 API-kall/mnd
  • βœ“ Hoyeste prioritet
  • βœ“ Alle formater
  • βœ“ Rask stotte
  • βœ“ 99,5% oppetid (mal)
API Enterprise
Contact us
Unlimited API calls/mo
  • βœ“ Unlimited volume
  • βœ“ Dedicated server
  • βœ“ SLA agreement
  • βœ“ Dedicated contact
  • βœ“ Invoice billing
Contact us