Aller au contenu principal
TransConvert

API TransConvert

Convertissez des images et des documents par programmation grâce à un point de terminaison HTTP unique et simple.

image API de conversion d’images description API de conversion de documents picture_as_pdf API de conversion PDF movie API de conversion vidéo music_note API de conversion audio compress API de compression d’images compress API de compression PDF
rocket_launch

Démarrage rapide

De zéro à votre premier fichier converti en trois étapes.

1

Obtenez votre clé API

Inscrivez-vous (ou passez un compte existant) à l’offre Basic, Lite, Pro ou Team, puis générez une clé depuis votre page de compte — vous pourrez revenir la consulter à tout moment.

2

Envoyez une requête

Envoyez votre fichier en POST vers le point de terminaison ci-dessous en multipart/form-data, avec votre clé dans l’en-tête Authorization et category + target définis.

3

Récupérez votre fichier

Une réponse 200 correspond aux octets bruts du fichier converti — enregistrez directement le corps de la réponse. Toute autre réponse est une erreur JSON expliquant ce qui s’est mal passé.

key

Authentification

Chaque requête nécessite une clé API, envoyée comme jeton Bearer dans l’en-tête Authorization.

Header
Authorization: Bearer tc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Disponible avec les offres Basic, Lite, Pro et Team. Générez une clé depuis votre compte →

Testez votre clé

Un moyen rapide de vérifier qu’une clé fonctionne avant d’écrire du code d’intégration réel — ceci seul ne convertira rien (aucun fichier joint), mais un 400 no_file plutôt qu’un 401 confirme que la clé elle-même est valide.

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

Le point de terminaison

Un seul point de terminaison gère toutes les conversions. Envoyez une requête POST multipart/form-data avec votre fichier et les champs ci-dessous.

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

Paramètres

Field Description
AuthorizationObligatoire. "Bearer tc_live_...".
categoryObligatoire. "image" ou "document" — pour compresser plutôt que convertir, voir Compression ci-dessous.
targetObligatoire. Le code du format de sortie, par ex. "PNG", "DOCX" — voir Formats pris en charge ci-dessous.
fileObligatoire. Le fichier à convertir (envoi multipart).
pdf_modeFacultatif, catégorie image uniquement. "pages" (par défaut, rastérise chaque page) ou "extract" (récupère telles quelles les images intégrées) — pertinent uniquement si la source est un PDF.
pdf_pagesFacultatif, catégorie image uniquement. "all" (par défaut) ou "first".
pdf_qualityFacultatif, catégorie image uniquement. "normal" (par défaut, 150 DPI) ou "high" (300 DPI).

Conversions courantes

Une référence rapide pour les paires les plus courantes — le même point de terminaison les gère toutes, avec simplement une combinaison category/target différente.

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

Réponse

En cas de succès (200) : les octets bruts du fichier converti, avec les en-têtes Content-Type et Content-Disposition renseignés en conséquence. En cas d’échec : un corps JSON de la forme {"error": {"code": "...", "message": "..."}} avec un code de statut HTTP correspondant — voir Erreurs ci-dessous.

Header Value
Content-TypeLe vrai type MIME du fichier converti (par ex. image/png, application/pdf).
Content-Dispositionattachment; filename="..." — un nom de fichier suggéré, comme pour tout téléchargement de fichier.
Content-LengthTaille du corps de la réponse, en octets.
compress

Compression

Réduisez la taille d’un fichier sans en changer le format — même format en entrée, même format en sortie. Une paire de catégories distincte de la conversion, image-compress et document-compress, chacune avec ses propres options ci-dessous.

image-compress

Même format en entrée, même format en sortie (JPG/PNG/WEBP/GIF) — target_percent indique la taille visée du résultat par rapport à l’original, ce n’est pas un réglage de qualité fixe.

Field Description
categoryÀ définir sur "image-compress".
target_percentFacultatif, de 1 à 100 (60 par défaut). Taille cible, en pourcentage approximatif de l’original — plus le nombre est petit, plus la compression est forte.
fileObligatoire. JPG, PNG, WEBP ou 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 en entrée, PDF en sortie, via la recompression propre à Ghostscript — ne renvoie jamais un fichier plus volumineux que celui envoyé (l’original est renvoyé tel quel si la recompression n’a pas aidé).

Field Description
categoryÀ définir sur "document-compress".
levelFacultatif : "low", "medium" (par défaut), "high" ou "none". Une compression plus forte sacrifie davantage de qualité visuelle, surtout sur les images/scans intégrés.
grayscaleFacultatif. "1" pour convertir aussi en niveaux de gris ; à omettre pour conserver la couleur.
fileObligatoire. Un PDF non ouvert/protégé par mot de passe (utilisez d’abord Déverrouiller un PDF sur le site si c’est le cas).
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-SizeLa taille du fichier envoyé, en octets, avant compression.
X-Saved-PercentEnviron de combien le résultat est plus petit que l’original, en pourcentage arrondi à l’entier (peut être 0).
movie

Vidéo et audio (asynchrone)

Les conversions vidéo et audio peuvent durer plusieurs minutes, trop longtemps pour maintenir ouverte une seule requête synchrone — celles-ci utilisent donc un flux d’envoi puis d’interrogation plutôt que le point de terminaison ci-dessus. Envoyez un fichier, récupérez immédiatement un job_id, puis interrogez son statut jusqu’à ce qu’il soit terminé.

Envoyer une tâche

Même structure de requête POST multipart que le point de terminaison principal, mais à une URL différente.

POST https://transconvert.com/api/v1/convert-async.php
Field Description
AuthorizationObligatoire. "Bearer tc_live_...".
category« video » ou « audio ».
targetObligatoire — par ex. « MP4 », « MOV », « MP3 », « WAV ».
fileObligatoire. Le fichier à convertir (envoi multipart).
webhook_urlFacultatif. Une URL http(s) à laquelle le résultat du job sera envoyé (POST) une fois terminé, plutôt que de simplement interroger job-status.php. Doit se résoudre à une adresse publique.
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"

Réponse (202 Accepted)

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

Interroger le statut

Interrogez cette adresse toutes les quelques secondes avec le job_id récupéré précédemment. « status » vaut queued, processing, completed ou 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 (facultatif)

Si vous avez fourni un webhook_url lors de l'envoi, nous POSTerons ce même corps JSON une fois le job terminé — succès ou échec — en réessayant quelques fois si votre point de terminaison ne répond pas. job-status.php reste disponible comme solution de repli.

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"
}

Télécharger le résultat

Une fois le statut « completed », la réponse contient un download_url — la même URL de statut avec &download=1 ajouté. Sa requête renvoie alors les octets bruts du fichier converti, avec les mêmes en-têtes que tout autre point de terminaison de cette page. Le résultat est supprimé dès qu'il est téléchargé, ou automatiquement après une courte période de conservation s'il n'est jamais téléchargé.

scheduleLes résultats des tâches sont supprimés immédiatement après le téléchargement, ou automatiquement après une courte période de conservation s'ils ne sont jamais téléchargés — téléchargez-les rapidement.

terminal

Exemples

La même requête dans quatre langages — choisissez celui qui correspond à votre stack. Chacun convertit un fichier local photo.jpg en PNG et enregistre le résultat.

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

Erreurs

Chaque échec renvoie une enveloppe d’erreur JSON avec un "code" que votre application peut tester, ainsi qu’un "message" lisible. Certaines erreurs incluent des champs supplémentaires (quota_exceeded inclut par exemple "limit" et "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_keyAucun en-tête Authorization n’a été envoyé.
401 invalid_keyLa clé n’existe pas, ou a été révoquée.
403 account_suspendedLe compte propriétaire de cette clé est suspendu.
403 plan_requiredLe compte est sur l’offre Free — l’accès à l’API nécessite Basic, Lite, Pro ou Team.
400 invalid_category"category" n’était pas "image" ni "document".
400 missing_target"target" était vide.
400 no_fileAucun fichier n’a été envoyé, ou l’envoi a échoué — le champ doit s’appeler "file".
413 file_too_largeLe fichier dépasse la taille maximale de téléversement autorisée par votre offre.
429 quota_exceededLe quota mensuel de minutes de conversion de l’offre est épuisé. Réinitialisation au début du mois calendaire suivant.
429 concurrency_limitTrop de conversions déjà en cours simultanément pour ce compte (partagé avec le site) — attendez qu’une conversion se termine, puis réessayez.
400/415/422/500/503 conversion_failedLe fichier lui-même n’a pas pu être converti — "message" en explique la raison. Le code de statut varie selon la cause : 400/415/422 signifient que le fichier ou la cible ne fonctionneront pas, peu importe le nombre de tentatives ; 500/503 signifient un problème côté serveur, et 503 en particulier mérite une brève nouvelle tentative.
405 method_not_allowedMauvaise méthode HTTP — ce point de terminaison n’accepte que POST.
400 invalid_target« target » n’est pas un format de sortie pris en charge pour cette catégorie.
404 job_not_foundAucune tâche avec cet identifiant n’existe pour ce compte (également renvoyé pour le job_id d’un autre compte — son existence n’est jamais révélée).
410 result_goneLa tâche est terminée, mais son résultat a depuis été supprimé (les résultats sont supprimés immédiatement après le téléchargement, ou automatiquement après une courte période de conservation).
500 storage_failedLe serveur n’a pas pu enregistrer le fichier envoyé pour un traitement en arrière-plan. Vous pouvez réessayer sans risque.

Gérer les erreurs et les nouvelles tentatives

Basez votre logique sur le champ JSON "code", pas sur le texte de "message" — le texte peut changer, le code non. concurrency_limit mérite une brève nouvelle tentative après quelques secondes (elle se résout dès qu’une de vos conversions en cours se termine) ; quota_exceeded ne se résoudra pas avant le mois prochain, donc ne le retentez pas en boucle. conversion_failed est le seul code où le statut HTTP compte encore : un 503 est un problème serveur temporaire qui mérite une brève nouvelle tentative, tandis que 400/415/422/500 signifient que cette combinaison précise de fichier/cible ne réussira jamais, quel que soit le nombre de tentatives. Vérifier la taille d’un fichier côté client avant l’envoi évite de gaspiller une requête pour un file_too_large garanti.

speed

Offres et limites

L’API partage ses limites avec l’offre que vous utilisez déjà sur le site — rien à configurer séparément.

bolt

Basic

bolt2000 minutes de conversion / mois

upload_fileFichiers jusqu’à 2 GB

sync_alt50 requête(s) simultanée(s)

speed30 requ\u00eates/minute

bolt

Lite

bolt3000 minutes de conversion / mois

upload_fileFichiers jusqu’à 4 GB

sync_alt100 requête(s) simultanée(s)

speed60 requ\u00eates/minute

Le plus populaire
workspace_premium

Pro

bolt5000 minutes de conversion / mois

upload_fileFichiers jusqu’à 10 GB

sync_altRequêtes simultanées illimitées

speed120 requ\u00eates/minute

group

Team

bolt10000 minutes de conversion / mois

upload_fileFichiers jusqu’à 20 GB

sync_altRequêtes simultanées illimitées

speed240 requ\u00eates/minute

tollPartagé avec le pool de crédits mensuel de l’équipe, si elle en utilise un

Dès qu’une limite par minute s’applique, chaque réponse inclut les en-têtes X-RateLimit-Limit et X-RateLimit-Remaining ; une réponse 429 inclut aussi Retry-After (en secondes) — utilisez-les pour ralentir avant d’atteindre la limite plutôt que de réagir seulement après un 429.

layers

Formats pris en charge

Exactement le même moteur de conversion que celui utilisé par le site — rien n’est exclusif à l’API ou au site.

image

category: image

Acceptés en source :

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

Disponibles en cible :

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

description

category: document

Acceptés en source :

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

Disponibles en cible :

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

compress

category: image-compress

Source et cible (même format en entrée, même format en sortie) :

JPG, PNG, WEBP, GIF

compress

category: document-compress

Source et cible (même format en entrée, même format en sortie) :

PDF

movie

category: video (async)

Source et cible (même format en entrée, même format en sortie) :

MP4, MOV, AVI, MKV, WEBM

music_note

category: audio (async)

Source et cible (même format en entrée, même format en sortie) :

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

infoLa vidéo et l’audio — conversion comme compression — restent pour l’instant réservés au site : un appel HTTP synchrone se prête mal à une tâche pouvant durer plusieurs minutes.

help

Questions fréquentes

L’API prend-elle en charge la conversion vidéo ou audio ?

Pas encore — ces conversions peuvent prendre plusieurs minutes, ce qui se prête mal à une requête HTTP synchrone unique. Elles sont disponibles dès aujourd’hui sur le site ; une prise en charge par l’API pourrait suivre s’il existe un jour une version asynchrone/à base de tâches de l’API.

Qu’arrive-t-il à ma clé si je repasse à l’offre Free ?

L’accès à l’API nécessite Basic, Lite, Pro ou Team. Si le compte repasse à Free — résiliation, ou abonnement expiré — les clés existantes cessent de fonctionner immédiatement. Elles refonctionnent automatiquement si le compte revient à une offre payante ; il n’est pas nécessaire d’en générer une nouvelle.

Quand mon quota mensuel se réinitialise-t-il ?

Au début de chaque mois calendaire, pas à votre date de facturation.

Existe-t-il un bac à sable ou un mode test ?

Pas pour l’instant — chaque requête est décomptée de votre quota mensuel réel. Utilisez de petits fichiers pendant l’intégration pour le préserver.

Puis-je lancer des conversions en parallèle ?

Jusqu’à la limite de simultanéité de votre offre (voir Offres et limites ci-dessus) — partagée avec les conversions que vous lancez en même temps sur le site, ce n’est pas un quota séparé réservé à l’API.

La compression garantit-elle un fichier plus petit ?

Pour document-compress, oui — elle ne renvoie jamais un PDF plus volumineux que celui envoyé ; si la recompression de Ghostscript n’a pas aidé, vous récupérez l’original inchangé (X-Saved-Percent affichera 0). Pour image-compress, target_percent est un objectif visé par l’encodeur, pas une garantie stricte — une source déjà fortement compressée peut ne pas rétrécir beaucoup plus.

Prêt à commencer ?

Générez une clé et effectuez votre première requête en moins d’une minute.

Obtenir votre clé API