Direct naar de inhoud
TransConvert

TransConvert API

Converteer afbeeldingen en documenten programmatisch via één simpel HTTP-endpoint.

image API voor afbeeldingsconversie description API voor documentconversie picture_as_pdf API voor PDF-conversie movie API voor videoconversie music_note API voor audioconversie compress API voor afbeeldingscompressie compress API voor PDF-compressie
rocket_launch

Snelstart

Van nul naar je eerste geconverteerde bestand in drie stappen.

1

Haal je API-sleutel op

Meld je aan (of upgrade een bestaand account) naar Basic, Lite, Pro of Team, en genereer daarna een sleutel via je accountpagina — je kunt hem op elk moment opnieuw bekijken.

2

Verstuur een verzoek

Stuur je bestand met POST als multipart/form-data naar het onderstaande endpoint, met je sleutel in de Authorization-header en category + target ingesteld.

3

Ontvang je bestand terug

Een 200-respons bevat de ruwe bytes van het geconverteerde bestand — sla de response body direct op. Al het andere is een JSON-foutmelding die uitlegt wat er misging.

key

Authenticatie

Voor elk verzoek is een API-sleutel vereist, verzonden als Bearer-token in de Authorization-header.

Header
Authorization: Bearer tc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Beschikbaar bij de abonnementen Basic, Lite, Pro en Team. Genereer een sleutel via je account →

Test je sleutel

Een snelle manier om te bevestigen dat een sleutel werkt voordat je echte integratiecode schrijft — dit converteert op zichzelf niets (er is geen bestand bijgevoegd), maar een 400 no_file in plaats van een 401 bevestigt dat de sleutel zelf geldig is.

curl -X POST -H "Authorization: Bearer tc_live_your_key_here" -F "category=image" https://transconvert.com/api/v1/convert.php
dns

Het endpoint

Eén enkel endpoint verwerkt elke conversie. Stuur een multipart/form-data POST-verzoek met je bestand en de onderstaande velden.

POST https://transconvert.com/api/v1/convert.php

Parameters

Field Description
AuthorizationVerplicht. "Bearer tc_live_...".
categoryVerplicht. "image" of "document" — voor comprimeren in plaats van converteren, zie Comprimeren hieronder.
targetVerplicht. De code van het uitvoerformaat, bijv. "PNG", "DOCX" — zie Ondersteunde formaten hieronder.
fileVerplicht. Het te converteren bestand (multipart-upload).
pdf_modeOptioneel, alleen voor categorie image. "pages" (standaard, rastert elke pagina) of "extract" (haalt ingesloten afbeeldingen ongewijzigd eruit) — alleen relevant als de bron een PDF is.
pdf_pagesOptioneel, alleen voor categorie image. "all" (standaard) of "first".
pdf_qualityOptioneel, alleen voor categorie image. "normal" (standaard, 150 DPI) of "high" (300 DPI).

Veelgebruikte conversies

Een snel overzicht van populaire combinaties — hetzelfde endpoint verwerkt ze allemaal, alleen met een andere category/target-combinatie.

Source → target category target
PNG → JPGimageJPG
JPG → PNGimagePNG
HEIC → JPGimageJPG
WEBP → PNGimagePNG
JPG → PDFimagePDF
PDF → JPGimageJPG
DOCX → PDFdocumentPDF
PDF → DOCXdocumentDOCX
PPTX → PDFdocumentPDF
XLSX → PDFdocumentPDF

Respons

Bij succes (200): de ruwe bytes van het geconverteerde bestand, met bijbehorende Content-Type- en Content-Disposition-headers. Bij een fout: een JSON-body in de vorm {"error": {"code": "...", "message": "..."}} met een passende HTTP-statuscode — zie Fouten hieronder.

Header Value
Content-TypeHet werkelijke MIME-type van het geconverteerde bestand (bijv. image/png, application/pdf).
Content-Dispositionattachment; filename="..." — een voorgestelde bestandsnaam, net als bij elke bestandsdownload.
Content-LengthGrootte van de response body in bytes.
compress

Comprimeren

Verklein een bestand zonder het formaat te wijzigen — hetzelfde formaat erin, hetzelfde formaat eruit. Een apart paar categorieën naast conversie, image-compress en document-compress, elk met hun eigen opties hieronder.

image-compress

Hetzelfde formaat erin, hetzelfde formaat eruit (JPG/PNG/WEBP/GIF) — target_percent geeft aan hoe klein het resultaat ten opzichte van het origineel moet worden, geen vaste kwaliteitsinstelling.

Field Description
categoryStel in op "image-compress".
target_percentOptioneel, 1–100 (standaard 60). Doelgrootte als ruw percentage van het origineel — kleinere getallen comprimeren sterker.
fileVerplicht. JPG, PNG, WEBP of GIF.
cURL
curl -X POST \
  https://transconvert.com/api/v1/convert.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=image-compress" \
  -F "target_percent=50" \
  -F "file=@photo.jpg" \
  -o compressed.jpg

document-compress

PDF erin, PDF eruit, via Ghostscripts eigen hercompressie — levert nooit een bestand op dat groter is dan het geüploade bestand (valt terug op het origineel als hercompressie niet hielp).

Field Description
categoryStel in op "document-compress".
levelOptioneel: "low", "medium" (standaard), "high" of "none". Hogere compressie gaat ten koste van meer visuele kwaliteit, vooral bij ingesloten afbeeldingen/scans.
grayscaleOptioneel. "1" om ook naar grijswaarden te converteren; laat weg voor volledige kleur.
fileVerplicht. Een PDF die niet open-/wachtwoordbeveiligd is (gebruik anders eerst PDF Ontgrendelen op de website).
cURL
curl -X POST \
  https://transconvert.com/api/v1/convert.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=document-compress" \
  -F "level=high" \
  -F "file=@report.pdf" \
  -o compressed.pdf
Header Value
X-Original-SizeDe grootte van het geüploade bestand in bytes, vóór compressie.
X-Saved-PercentRuwe schatting van hoeveel kleiner het resultaat is dan het origineel, als geheel percentage (kan 0 zijn).
movie

Video & audio (asynchroon)

Video- en audioconversies kunnen minuten duren — te lang om één synchrone aanvraag open te houden. Deze gebruiken daarom een submit-then-poll-flow in plaats van het bovenstaande endpoint. Dien een bestand in, ontvang direct een job_id terug, en vraag daarna de status op totdat de conversie klaar is.

Een taak indienen

Dezelfde multipart POST-vorm als het hoofdendpoint, op een andere URL.

POST https://transconvert.com/api/v1/convert-async.php
Field Description
AuthorizationVerplicht. "Bearer tc_live_...".
category"video" of "audio".
targetVerplicht — bijv. "MP4", "MOV", "MP3", "WAV".
fileVerplicht. Het te converteren bestand (multipart-upload).
webhook_urlOptioneel. Een http(s)-URL waarnaar het jobresultaat wordt gepost zodra het klaar is, in plaats van alleen job-status.php te pollen. Moet naar een publiek adres resolven.
cURL
curl -X POST \
  https://transconvert.com/api/v1/convert-async.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=video" \
  -F "target=MP4" \
  -F "file=@clip.mov"

Antwoord (202 Accepted)

{ "job_id": "job_242e1555d78d166807aa56502f15d118", "status": "queued" }

Status opvragen

Vraag dit elke paar seconden op met de job_id die je hebt teruggekregen. "status" is queued, processing, completed of failed.

GET https://transconvert.com/api/v1/job-status.php?job_id=job_...
{
  "job_id": "job_242e1555d78d166807aa56502f15d118",
  "status": "completed",
  "category": "video",
  "target_format": "MP4",
  "created_at": "2026-08-26 19:17:47",
  "download_url": "/api/v1/job-status.php?job_id=job_...&download=1",
  "filename": "clip.mp4"
}

Webhooks (optioneel)

Als u bij het indienen een webhook_url heeft opgegeven, posten we dezelfde JSON-body daar één keer heen zodra de job klaar is — succes of mislukking — met een paar nieuwe pogingen als uw endpoint niet reageert. job-status.php blijft sowieso als terugval werken.

POST your webhook_url
{
  "job_id": "job_242e1555d78d166807aa56502f15d118",
  "status": "completed",
  "category": "video",
  "target_format": "MP4",
  "created_at": "2026-08-26 19:17:47",
  "download_url": "https://transconvert.com/api/v1/job-status.php?job_id=job_...&download=1",
  "filename": "clip.mp4"
}

Het resultaat downloaden

Zodra de status "completed" is, bevat het antwoord een download_url — dezelfde status-URL met &download=1 toegevoegd. Deze opvragen stuurt vervolgens de ruwe bytes van het geconverteerde bestand, met dezelfde headers als elk ander endpoint op deze pagina. Het resultaat wordt verwijderd zodra het is gedownload, of automatisch na een korte bewaartermijn als het nooit wordt gedownload.

scheduleTaakresultaten worden direct na het downloaden verwijderd, of automatisch na een korte bewaartermijn als ze nooit worden gedownload — download ze op tijd.

terminal

Voorbeelden

Hetzelfde verzoek in vier talen — kies wat bij jouw stack past. Elk voorbeeld converteert een lokale photo.jpg naar PNG en slaat het resultaat op.

TransConvert
curl -X POST \
  https://transconvert.com/api/v1/convert.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=image" \
  -F "target=PNG" \
  -F "file=@photo.jpg" \
  -o converted.png
error

Fouten

Elke fout retourneert een JSON-foutobject met een "code" waarop je code kan vertakken, plus een leesbaar "message". Sommige fouten bevatten extra velden (quota_exceeded bevat bijvoorbeeld "limit" en "used").

429 Too Many Requests
{
  "error": {
    "code": "quota_exceeded",
    "message": "Monthly API allowance of 5000 conversion-minutes reached.",
    "limit": 5000,
    "used": 5000
  }
}
Status & code When it happens
401 missing_keyEr is geen Authorization-header meegestuurd.
401 invalid_keyDe sleutel bestaat niet, of is ingetrokken.
403 account_suspendedHet account waartoe deze sleutel behoort, is geschorst.
403 plan_requiredHet account heeft het gratis abonnement — voor API-toegang is Basic, Lite, Pro of Team vereist.
400 invalid_category"category" was niet "image" of "document".
400 missing_target"target" was leeg.
400 no_fileEr is geen bestand verzonden, of de upload is mislukt — het veld moet "file" heten.
413 file_too_largeHet bestand overschrijdt de maximale uploadgrootte van je abonnement.
429 quota_exceededDe maandelijkse toewijzing conversieminuten van het abonnement is op. Wordt gereset aan het begin van de volgende kalendermaand.
429 concurrency_limitEr lopen al te veel conversies tegelijk voor dit account (gedeeld met de website) — wacht tot er één klaar is en probeer het opnieuw.
400/415/422/500/503 conversion_failedHet bestand zelf kon niet worden geconverteerd — "message" legt uit waarom. De statuscode varieert met de reden: 400/415/422 betekenen dat het bestand of target nooit zal werken, hoe vaak je het ook probeert; 500/503 duiden op een probleem aan de serverkant, en bij 503 is een korte nieuwe poging de moeite waard.
405 method_not_allowedVerkeerde HTTP-methode — dit endpoint accepteert alleen POST.
400 invalid_target"target" is geen ondersteund uitvoerformaat voor die categorie.
404 job_not_foundEr bestaat geen taak met dat id voor dit account (dit antwoord wordt ook gegeven voor de job_id van een ander account — het bestaan ervan wordt nooit onthuld).
410 result_goneDe taak is voltooid, maar het resultaat is inmiddels verwijderd (resultaten worden direct na het downloaden verwijderd, of automatisch na een korte bewaartermijn).
500 storage_failedDe server kon de upload niet opslaan voor verwerking op de achtergrond. Veilig om opnieuw te proberen.

Fouten afhandelen & opnieuw proberen

Vertak op basis van het JSON-veld "code", niet op de tekst van "message" — de formulering kan in de loop van de tijd veranderen, de code niet. Bij concurrency_limit is een korte nieuwe poging na een paar seconden de moeite waard (deze fout verdwijnt zodra een van je lopende conversies klaar is); quota_exceeded lost zichzelf pas volgende maand op, probeer het dus niet in een lus opnieuw. conversion_failed is de enige code waarbij de HTTP-status nog steeds van belang is: een 503 is een tijdelijk serverprobleem waarbij één korte nieuwe poging de moeite waard is, terwijl 400/415/422/500 betekenen dat exact die bestand/target-combinatie nooit zal slagen, hoe vaak je het ook opnieuw verstuurt. Door de bestandsgrootte vooraf aan de clientzijde te controleren, voorkom je dat je een verzoek verspilt aan een gegarandeerde file_too_large.

speed

Abonnementen & limieten

De API deelt zijn limieten met hetzelfde abonnement dat je al op de website gebruikt — er is niets apart in te stellen.

bolt

Basic

bolt2000 conversieminuten / maand

upload_fileBestanden tot 2 GB

sync_alt50 verzoek(en) tegelijk

speed30 verzoeken/minuut

bolt

Lite

bolt3000 conversieminuten / maand

upload_fileBestanden tot 4 GB

sync_alt100 verzoek(en) tegelijk

speed60 verzoeken/minuut

Meest populair
workspace_premium

Pro

bolt5000 conversieminuten / maand

upload_fileBestanden tot 10 GB

sync_altOnbeperkt aantal verzoeken tegelijk

speed120 verzoeken/minuut

group

Team

bolt10000 conversieminuten / maand

upload_fileBestanden tot 20 GB

sync_altOnbeperkt aantal verzoeken tegelijk

speed240 verzoeken/minuut

tollGedeeld met de maandelijkse creditpool van het team, als die er een gebruikt

Zodra een limiet per minuut geldt, bevat elk antwoord de headers X-RateLimit-Limit en X-RateLimit-Remaining; een 429-antwoord bevat ook Retry-After (in seconden) — gebruik deze om af te remmen voordat u de limiet bereikt, in plaats van pas te reageren na een 429.

layers

Ondersteunde formaten

Exact dezelfde conversie-engine als die de website gebruikt — niets is exclusief voor de API of exclusief voor de website.

image

category: image

Geaccepteerd als bron:

JPG, PNG, GIF, WEBP, BMP, AVIF, PDF, PSD, TIFF, EPS, HEIC

Beschikbaar als target:

JPG, PNG, GIF, WEBP, BMP, AVIF, PDF, ICO, PSD, TIFF, EPS

description

category: document

Geaccepteerd als bron:

PDF, DOCX, DOC, PPTX, PPT, XLSX, XLS, RTF, ODT, ODP, ODS, HTML

Beschikbaar als target:

PDF, DOCX, DOC, PPTX, PPT, XLSX, XLS, RTF, ODT, ODP, ODS

compress

category: image-compress

Bron en target (hetzelfde formaat erin, hetzelfde formaat eruit):

JPG, PNG, WEBP, GIF

compress

category: document-compress

Bron en target (hetzelfde formaat erin, hetzelfde formaat eruit):

PDF

movie

category: video (async)

Bron en target (hetzelfde formaat erin, hetzelfde formaat eruit):

MP4, MOV, AVI, MKV, WEBM

music_note

category: audio (async)

Bron en target (hetzelfde formaat erin, hetzelfde formaat eruit):

MP3, WAV, OGG, AAC, FLAC, M4A, WMA, OPUS, AIFF, AMR, AU, CAF, AC3, DTS, GSM, IRCAM, MP2, TTA, VOC, W64, WV, SPX, RM

infoVideo en audio — zowel converteren als comprimeren — zijn voorlopig alleen op de website beschikbaar: een synchrone HTTP-aanroep is niet geschikt voor een taak die enkele minuten kan duren.

help

Veelgestelde vragen

Ondersteunt de API video- of audioconversie?

Nog niet — die conversies kunnen enkele minuten duren, wat niet goed past bij een enkel synchroon HTTP-verzoek. Ze zijn vandaag al beschikbaar op de website; API-ondersteuning kan volgen als er ooit een asynchrone/taakgebaseerde versie van de API komt.

Wat gebeurt er met mijn sleutel als ik downgrade naar Gratis?

API-toegang vereist Basic, Lite, Pro of Team. Als het account overgaat naar Gratis — door opzegging, of doordat een abonnement afloopt — stoppen bestaande sleutels onmiddellijk met werken. Ze werken automatisch weer zodra het account terug is op een betaald abonnement; je hoeft geen nieuwe sleutel aan te maken.

Wanneer wordt mijn maandelijkse toewijzing gereset?

Aan het begin van elke kalendermaand, niet op je factuurdatum.

Is er een sandbox- of testmodus?

Op dit moment niet — elk verzoek telt mee voor je echte maandelijkse toewijzing. Gebruik kleine bestanden tijdens het integreren om deze te sparen.

Kan ik conversies parallel uitvoeren?

Tot aan de gelijktijdigheidslimiet van je abonnement (zie Abonnementen & limieten hierboven) — gedeeld met eventuele conversies die je tegelijkertijd ook op de website uitvoert, geen aparte toewijzing die alleen voor de API geldt.

Garandeert comprimeren een kleiner bestand?

Voor document-compress wel — het levert nooit een PDF op die groter is dan het geüploade bestand; als Ghostscripts hercompressie niet hielp, krijg je het origineel ongewijzigd terug (X-Saved-Percent toont dan 0). Voor image-compress is target_percent een doel waar de encoder naar streeft, geen harde garantie — een bron die al zwaar gecomprimeerd is, kan mogelijk niet veel verder krimpen.

Klaar om te beginnen?

Genereer een sleutel en doe je eerste verzoek in minder dan een minuut.

Haal je API-sleutel op