Konvertio API
REST API for bildekonvertering. Send et bilde, få det konverterte resultatet direkte i svaret — JPG, PNG, WebP, HEIC og flere.
https://konvertio.no/verktoy/api
Introduksjon
Konvertio API lar deg konvertere bilder programmatisk. APIet er synkront: du sender en fil i én forespørsel og får den konverterte filen direkte i svaret. Ingen jobb-ID, ingen polling, ingen ekstra nedlastingssteg.
Autentisering
Alle API-kall krever en API-nøkkel i headeren X-API-Key.
X-API-Key: konv_live_din_nokkel_her
Quickstart (2 minutter)
/verktoy/api/convert med filen og ønsket format — ferdigPOST /verktoy/api/convert
Laster opp et bilde og returnerer den konverterte filen i samme svar (multipart/form-data).
Request
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
file | File | ✅ | Bildet som skal konverteres. Støttede innformater: jpg, jpeg, png, webp, heic, bmp, gif, tiff |
target | string | ✅ | Utdataformat: jpg, png, webp eller pdf |
Response 200
Selve den konverterte filen (binary) med Content-Disposition: attachment. Lagre svaret direkte til disk.
Feilsvar
Ved feil returneres JSON med feltet error, se feilkodene under.
POST /verktoy/api/pdf
PDF-operasjoner på én fil (multipart/form-data). Velg operasjon med operation. Svaret er den ferdige filen i samme kall.
Request
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
file | File | ✅ | PDF-filen som skal behandles |
operation | string | ✅ | jpg, png, compress, rotate, delete-pages, extract-pages, unlock, protect |
dpi | int | — | Kun jpg/png. Oppløsning 72–300, standard 150 |
angle | int | ✅ ved rotate | 90, 180 eller 270 grader med klokken |
pages | string | ✅ ved delete-pages / extract-pages | Sidetall og intervaller, f.eks. 2,5-7 |
password | string | ✅ ved unlock / protect | Passord for å åpne (unlock) eller nytt passord, minst 4 tegn (protect) |
Response 200
Selve resultatfilen (binary) med Content-Disposition: attachment.
Viktig for jpg/png: har PDF-en én side, får du bildefilen direkte. Har den flere sider, får du én .zip med alle sidene (side1.jpg, side2.jpg …). Sjekk Content-Type i svaret.
Eksempler
# PDF til JPG (flere sider = ZIP)
curl -X POST https://konvertio.no/verktoy/api/pdf \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-F "file=@dokument.pdf" \
-F "operation=jpg" \
-F "dpi=150" \
-o resultat.zip
# PDF til PNG
curl -X POST https://konvertio.no/verktoy/api/pdf \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-F "file=@dokument.pdf" -F "operation=png" -F "dpi=300" \
-o resultat.zip
# Komprimer PDF
curl -X POST https://konvertio.no/verktoy/api/pdf \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-F "file=@dokument.pdf" -F "operation=compress" \
-o komprimert.pdf
# Roter alle sider 90 grader
curl -X POST https://konvertio.no/verktoy/api/pdf \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-F "file=@dokument.pdf" -F "operation=rotate" -F "angle=90" \
-o rotert.pdf
# Slett side 2 og 5-7
curl -X POST https://konvertio.no/verktoy/api/pdf \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-F "file=@dokument.pdf" -F "operation=delete-pages" -F "pages=2,5-7" \
-o uten-sider.pdf
# Hent ut side 1 og 3
curl -X POST https://konvertio.no/verktoy/api/pdf \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-F "file=@dokument.pdf" -F "operation=extract-pages" -F "pages=1,3" \
-o utvalgte-sider.pdf
# Las opp passordbeskyttet PDF
curl -X POST https://konvertio.no/verktoy/api/pdf \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-F "file=@laast.pdf" -F "operation=unlock" -F "password=hemmelig" \
-o apen.pdf
# Beskytt PDF med passord
curl -X POST https://konvertio.no/verktoy/api/pdf \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-F "file=@dokument.pdf" -F "operation=protect" -F "password=hemmelig" \
-o beskyttet.pdf
Feilsvar
Ugyldig operation, manglende angle/pages/password, ugyldig sideintervall eller passordbeskyttet fil uten password gir 400 med JSON-feltet error.
POST /verktoy/api/merge
Slår sammen flere PDF-filer til én, i den rekkefølgen filene sendes (multipart/form-data). Eget endepunkt med eget kontrakt — bruk files[], ikke file.
Request
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
files[] | File[] | ✅ | Fra 2 til 20 PDF-filer. Rekkefølgen i forespørselen er rekkefølgen i resultatet |
Størrelsesgrensen for planen din gjelder summen av alle filene, ikke hver enkelt fil.
Response 200
Den sammenslåtte PDF-filen (binary) med Content-Disposition: attachment.
Eksempel
curl -X POST https://konvertio.no/verktoy/api/merge \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-F "files[]=@del1.pdf" \
-F "files[]=@del2.pdf" \
-F "files[]=@del3.pdf" \
-o sammenslatt.pdf
Feilsvar
Færre enn 2 eller flere enn 20 filer, eller en fil som ikke er PDF, gir 400. Samlet størrelse over plangrensen gir 413.
POST /verktoy/api/jobs
Tunge operasjoner (OCR og transkripsjon) tar fra sekunder til minutter. De kjøres derfor som jobber: du sender filen, får et job_id med én gang, og spør om status til jobben er ferdig. Samme mønster som hos de fleste konverterings-API-er.
Kvote: tunge operasjoner koster 5 kall hver (feltet cost i svaret). Kvoten trekkes først når jobben er fullført — mislykkede jobber koster ingenting.
Operasjoner
| operation | Inn | Ut | Beskrivelse |
|---|---|---|---|
ocr | PDF, bilde | Søkbar PDF: usynlig tekstlag legges over skannet side | |
ocr-text | PDF, bilde | TXT | Ren tekst hentet ut av skannet dokument |
transkripsjon | Lyd, video | TXT | Tale til tekst |
teksting | Lyd, video | SRT / VTT | Undertekster med tidskoder |
video | Video (mp4, mov, mkv, webm, avi m.fl.) | mp4, webm eller mp3 (kun lydspor) – velg med format. Maks 30 min per jobb. |
Request
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
file | File | ✅ | OCR: pdf, jpg, png, tiff, bmp, webp. Transkripsjon/teksting: mp3, wav, m4a, aac, ogg, opus, flac, mp4, mov, mkv, webm, avi |
operation | string | ✅ | Se tabellen over |
language | string | — | OCR: nor, eng eller nor+eng (standard). Transkripsjon: no, en, sv, da, de eller auto |
format | string | — | Kun teksting: srt (standard) eller vtt |
Response 202
Jobben er mottatt og satt i kø. Filen er ikke ferdig ennå.
{
"job_id": "3884da69-06ed-4db5-b809-9ced06910e23",
"status": "queued",
"operation": "ocr",
"cost": 5,
"status_url": "/verktoy/api/jobs/3884da69-...",
"download_url": "/verktoy/api/jobs/3884da69-.../download"
}
Grenser
Maks 5 aktive jobber per nøkkel samtidig, og maks 100 sider per OCR-jobb. Resultatfiler slettes automatisk etter 1 time.
GET /verktoy/api/jobs/{job_id}
Spør om status. Anbefalt intervall: hvert 2.–5. sekund. Statusoppslag teller ikke mot forespørselsgrensen på 10 per minutt — poll så ofte du trenger.
Mens jobben kjører
{
"job_id": "3884da69-...",
"operation": "ocr",
"status": "running",
"progress": 66,
"message": "Leser side 8 av 12...",
"eta_sec": 4,
"cost": 5
}
progress går fra 0 til 100, eta_sec er anslått gjenstående tid (justeres underveis), og message er en lesbar beskrivelse du kan vise brukeren direkte.
Når jobben er ferdig
{
"job_id": "3884da69-...",
"status": "done",
"progress": 100,
"message": "Ferdig: 12 sider (nor+eng)",
"filename": "kontrakt_ocr.pdf",
"download_url": "/verktoy/api/jobs/3884da69-.../download",
"cost": 5
}
Hvis noe gikk galt
{
"job_id": "3884da69-...",
"status": "error",
"progress": 25,
"message": "Avbrutt",
"error": "Jobben ble avbrutt av en omstart. Send filen på nytt."
}
Mulige verdier for status: queued, running, done, error. Ved error er kvoten ikke trukket.
GET /verktoy/api/jobs/{job_id}/download
Henter resultatfilen (binary) med Content-Disposition: attachment. Bare gyldig når status er done.
| Kode | Betydning |
|---|---|
200 | Filen, klar til å lagres |
409 | Jobben er ikke ferdig ennå — sjekk status_url |
410 | Filen er slettet (resultater lagres i 1 time av personvernhensyn) |
404 | Ukjent jobb, eller jobben tilhører en annen API-nøkkel |
Komplett eksempel
# 1. Send dokumentet til OCR
JOB=$(curl -s -X POST https://konvertio.no/verktoy/api/jobs \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-F "file=@kontrakt.pdf" \
-F "operation=ocr" \
-F "language=nor+eng" | grep -o '"job_id":"[^"]*"' | cut -d'"' -f4)
# 2. Vent til den er ferdig
while true; do
SVAR=$(curl -s https://konvertio.no/verktoy/api/jobs/$JOB \
-H "X-API-Key: konv_live_DIN_NOKKEL")
echo "$SVAR"
echo "$SVAR" | grep -q '"status":"done"' && break
echo "$SVAR" | grep -q '"status":"error"' && exit 1
sleep 3
done
# 3. Last ned resultatet
curl -s https://konvertio.no/verktoy/api/jobs/$JOB/download \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-o kontrakt-sokbar.pdf
Transkripsjon og teksting
# Tale til tekst
curl -X POST https://konvertio.no/verktoy/api/jobs \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-F "file=@moete.mp3" \
-F "operation=transkripsjon" \
-F "language=no"
# Undertekster med tidskoder (SRT eller VTT)
curl -X POST https://konvertio.no/verktoy/api/jobs \
-H "X-API-Key: konv_live_DIN_NOKKEL" \
-F "file=@video.mp4" \
-F "operation=teksting" \
# Video til webm (eller mp4/mp3):
curl -X POST https://konvertio.no/verktoy/api/jobs \
-H "X-API-Key: konv_live_..." \
-F "file=@video.mov" -F "operation=video" -F "format=webm"
-F "format=srt"
Feilkoder
| Kode | Betydning |
|---|---|
400 | Ugyldig forespørsel: mangler file, ustøttet innformat eller ugyldig target |
401 | Ugyldig eller manglende API-nøkkel |
202 | Jobben er mottatt og satt i kø (svaret inneholder job_id og status_url) |
409 | Jobben er ikke ferdig ennå — sjekk status_url før du laster ned |
410 | Resultatfilen er slettet (lagres i 1 time av personvernhensyn) |
413 | Filen er for stor for planen din (svaret inneholder limit_mb og plan) — eller bildet har for mange piksler (svaret inneholder limit_mp: 300) |
429 | Månedskvoten er brukt opp (svaret inneholder limit, used, remaining) — eller for mange forespørsler per minutt (svaret inneholder retry_after og headeren Retry-After) |
503 | Serveren er opptatt — prøv igjen om litt (Retry-After: 30) |
Kodeeksempler
import requests
API_KEY = "konv_live_din_nokkel"
URL = "https://konvertio.no/verktoy/api/convert"
with open("bilde.heic", "rb") as f:
r = requests.post(URL,
headers={"X-API-Key": API_KEY},
files={"file": f},
data={"target": "webp"})
if r.status_code == 200:
with open("bilde.webp", "wb") as out:
out.write(r.content)
print("✅ Lagret bilde.webp")
else:
print("Feil", r.status_code, r.json())
Rate limits og kvoter
| Grense | Verdi | Per |
|---|---|---|
| Forespørsler | 10 | minutt per nøkkel |
| API-kall | i henhold til plan (1 000 – 20 000) | måned |
Ved overskridelse returneres HTTP 429 — se feilkodene over.
Planer og API-kvoter
| Plan | Pris/mnd | API-kall/mnd | Maks fil | Prioritet |
|---|---|---|---|---|
| Lett | 79 kr | 50 | 1000 MB | Normal |
| Basis | 189 kr | 150 | 2000 MB | Hoy |
| Ubegrenset | 390 kr | 500 | ∞ | Hoyest |
| Enterprise | Kontakt kr | ∞ | ∞ | Dedikert |
API-planer for utviklere
Dedikerte planer for deg som bygger pa Konvertio API. Store volum? Kontakt oss.
- ✓ 1 000 API-kall/mnd
- ✓ Bilder: JPG, PNG, WebP, HEIC m.fl.
- ✓ Maks 100 MB per fil
- ✓ REST API, svar med en gang
- ✓ PDF: konvertering, komprimering, merge
- ✓ Video: mp4, webm, mp3
- ✓ KI: OCR, transkripsjon, teksting
- ✓ 5 000 API-kall/mnd
- ✓ Bilder: JPG, PNG, WebP, HEIC m.fl.
- ✓ Maks 500 MB per fil
- ✓ Prioritert stotte
- ✓ PDF: konvertering, komprimering, merge
- ✓ Video: mp4, webm, mp3
- ✓ KI: OCR, transkripsjon, teksting
- ✓ 20 000 API-kall/mnd
- ✓ Bilder: JPG, PNG, WebP, HEIC m.fl.
- ✓ Maks 1 GB per fil
- ✓ Hoyeste prioritet
- ✓ PDF: konvertering, komprimering, merge
- ✓ Video: mp4, webm, mp3
- ✓ KI: OCR, transkripsjon, teksting
- ✓ Ubegrenset volum
- ✓ SLA-avtale
- ✓ Dedikert kontakt
- ✓ Faktura-betaling