API développeur

Une API universelle pour tous vos flux de travail de fichiers

Converter App propose aux développeurs une interface de traitement de fichiers haute performance. Remplacez les outils séparés par une API unique pour une conversion de documents, un traitement multimédia, une transcription et une OCR évolutifs.

Aperçu de l’API de Converter App

L’API Converter App offre aux développeurs une interface universelle et fluide pour tous les besoins de traitement de fichiers. Au lieu d’intégrer une collection fragmentée d’outils séparés, votre application peut appeler un service unique et haute performance. Vous pouvez intégrer directement notre suite complète de conversion dans les workflows backend pour gérer aussi bien les conversions de fichiers standard que les tâches multimédias les plus exigeantes.

L’URL de base publique est https://api.converter.app/. Les chemins de ce document utilisent cette racine d’API servie publiquement.

Prise en charge universelle

Accédez à une bibliothèque complète d’outils de conversion grâce à une intégration simplifiée.

Deux modes de traitement

Choisissez des requêtes synchrones pour des réponses immédiates ou des tâches asynchrones pour les gros fichiers et les opérations de longue durée.

Adapté à vos besoins

Contactez-nous et nous pourrons vous proposer une offre adaptée à vos besoins à un tarif imbattable.

Documents Images Audio Vidéo Texte Archives

Découvrez les conversions prises en charge (aucune clé requise)

Utilisez le point de terminaison public des paires comme test de connectivité le plus simple. Il ne nécessite pas de clé API et renvoie la liste complète des paires de conversion prises en charge disponibles sur la plateforme.

OBTENIR /public/pairs

Ce point de terminaison est ouvert afin que les développeurs puissent consulter le catalogue universel de conversion avant de demander ou de configurer une clé API.

curl "https://api.converter.app/public/pairs"

JavaScript

const response = await fetch('https://api.converter.app/public/pairs');
const pairs = await response.json();
console.log(pairs.supported_pairs);

Python

import requests

response = requests.get('https://api.converter.app/public/pairs')
response.raise_for_status()
pairs = response.json()
print(pairs['supported_pairs'])

Exemple de réponse

{
  "supported_pairs": [
    { "from": "mp3", "to": "text" },
    { "from": "mp4", "to": "mp3" },
    { "from": "mov", "to": "mp4" },
    { "from": "wav", "to": "mp3" },
    { "from": "mkv", "to": "mp4" }
  ]
}

Authentification & contrôle d’accès

Les développeurs s’authentifient en transmettant leur clé API dans l’en-tête HTTP X API Key. Le point de terminaison public /public/pairs est le seul point de terminaison de cette page qui ne nécessite pas de clé.

ContrôleComment ça fonctionne Impact sur les développeurs
X-API-KeyEnvoyez la clé dans un en-tête de requête HTTP.Requis pour /pairs, /convert/sync, /convert, /progress/{jobid} et /download/{jobid}.
Quotas d’utilisationChaque clé dispose d’un quota numérique de conversion. Ce quota diminue lorsque des tâches de conversion sont créées.Un quota de -1 accorde un nombre illimité de conversions. Les autres valeurs représentent le nombre de conversions restantes autorisées.
Paires autoriséesLes clés peuvent être restreintes à des types de conversion spécifiques, tels que mp42mp3, ou bénéficier d’un accès à all les paires prises en charge./pairs renvoie uniquement les paires que votre clé est autorisée à utiliser, et les requêtes de conversion en dehors de cette liste sont rejetées.
curl "https://api.converter.app/pairs" \
  -H "X-API-Key: YOUR_API_KEY"

JavaScript

const response = await fetch('https://api.converter.app/pairs', {
  headers: {
    'X-API-Key': apiKey
  }
});

const pairs = await response.json();
console.log(pairs);

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
response = requests.get('https://api.converter.app/pairs', headers=headers)
response.raise_for_status()
print(response.json())

2. Conversion synchrone

POST /convert/sync

Utilisez la conversion synchrone lorsque vous souhaitez obtenir un résultat immédiat dans la même réponse HTTP. La requête reste ouverte pendant que l’API lance la tâche de conversion et attend sa fin, pendant jusqu’à 30 minutes.

Champ de formulaireTypeDescription
target_formatchaîneL’extension de sortie demandée, telle que pdf, docx, mp3 ou jpg.
filesfile[]Un ou plusieurs fichiers source importés. L’API détermine le format source à partir du nom du fichier importé.
curl -X POST "https://api.converter.app/convert/sync" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "target_format=pdf" \
  -F "files=@/path/to/document.docx" \
  -o converted.pdf

JavaScript

const form = new FormData();
form.append('target_format', 'pdf');
form.append('files', fileInput.files[0]);

const response = await fetch('https://api.converter.app/convert/sync', {
  method: 'POST',
  headers: {
    'X-API-Key': apiKey
  },
  body: form
});

const convertedFile = await response.blob();

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
data = {'target_format': 'pdf'}

with open('/path/to/document.docx', 'rb') as document:
    files = {'files': document}
    response = requests.post(
        'https://api.converter.app/convert/sync',
        headers=headers,
        data=data,
        files=files
    )

response.raise_for_status()
with open('converted.pdf', 'wb') as output:
    output.write(response.content)

La réponse diffuse directement le fichier converti en streaming. Si la conversion produit plusieurs fichiers, l’API renvoie une archive .zip.

3. Conversion asynchrone

PUBLIER /convert

Utilisez la conversion asynchrone pour les fichiers volumineux, le traitement par lot, les tâches audio ou vidéo de longue durée, ou les applications de production qui ne doivent pas maintenir les requêtes d’import ouvertes pendant l’exécution du traitement.

Champ de formulaireTypeDescription
target_formatchaîneLe format de sortie souhaité. La source et la cible forment la paire de conversion, par exemple mp42mp3.
filesfichier[]Un ou plusieurs fichiers à convertir.

cURL

curl -X POST "https://api.converter.app/convert" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "target_format=mp3" \
  -F "files=@/path/to/video.mp4"

JavaScript

const form = new FormData();
form.append('target_format', 'mp3');
form.append('files', fileInput.files[0]);

const response = await fetch('https://api.converter.app/convert', {
  method: 'POST',
  headers: {
    'X-API-Key': apiKey
  },
  body: form
});

const job = await response.json();
console.log(job.jobid, job.remaining_quota);

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
data = {'target_format': 'mp3'}

with open('/path/to/video.mp4', 'rb') as video:
    files = {'files': video}
    response = requests.post(
        'https://api.converter.app/convert',
        headers=headers,
        data=data,
        files=files
    )

response.raise_for_status()
job = response.json()
print(job['jobid'], job['remaining_quota'])

Réponse réussie

{
  "status": "success",
  "jobid": "b3f6b2e8f5c34c4ab01c93c4d1b2f9e8",
  "pair": "mp42mp3",
  "remaining_quota": 42
}

4. Suivi de l’état

OBTENIR /progress/{jobid}

Interrogez ce point de terminaison après avoir créé une tâche asynchrone. Il renvoie l’état de la tâche, une valeur numérique de progression de 0.0 à 1.0, ainsi que les détails de l’erreur si la conversion a échoué.

En-têteDescription
X-API-KeyVotre clé API développeur.
curl "https://api.converter.app/progress/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8" \
  -H "X-API-Key: YOUR_API_KEY"

JavaScript

const response = await fetch('https://api.converter.app/progress/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8', {
  headers: {
    'X-API-Key': apiKey
  }
});

const progress = await response.json();
console.log(progress.status, progress.progress);

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
response = requests.get(
    'https://api.converter.app/progress/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8',
    headers=headers
)
response.raise_for_status()
progress = response.json()
print(progress['status'], progress['progress'])
{
  "jobid": "b3f6b2e8f5c34c4ab01c93c4d1b2f9e8",
  "progress": 1.0,
  "status": "completed",
  "error": null
}

Les statuts possibles sont processing, completed et failed. La progression est un nombre compris entre 0.0 et 1.0.

5. Récupération de fichiers

OBTENIR /download/{jobid}

Une fois qu’une tâche asynchrone atteint completed, récupérez le fichier converti avec la même clé API utilisée pour créer la tâche.

Type de résultatComportement
Fichier de sortie uniqueL’API diffuse directement le fichier converti.
resultfile manifesteSi le traitement fournit un manifeste de résultat, l’API renvoie le fichier indiqué dans ce manifeste.
Plusieurs fichiers de sortieL’API regroupe les fichiers générés dans une archive .zip à la volée.
curl -L "https://api.converter.app/download/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8" \
  -H "X-API-Key: YOUR_API_KEY" \
  -o converted-output.zip

JavaScript

const response = await fetch('https://api.converter.app/download/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8', {
  headers: {
    'X-API-Key': apiKey
  }
});

const file = await response.blob();

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
response = requests.get(
    'https://api.converter.app/download/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8',
    headers=headers
)
response.raise_for_status()

with open('converted-output.zip', 'wb') as output:
    output.write(response.content)

Résumé du flux de travail du développeur

L’API prend en charge deux modèles d’intégration afin que les développeurs puissent choisir le comportement adapté à chaque cas d’utilisation.

FluxSchéma de requêteIdéal pour
Flux de synchronisation rapidePOST /convert/sync renvoie le fichier converti dans la même réponse.Petits fichiers, scripts en ligne de commande, prototypes et automatisations simples côté serveur.
Flux asynchrone robustePOST /convert, puis interrogez GET /progress/{jobid}, puis appelez GET /download/{jobid}.Grands fichiers vidéo ou audio, conversion par lot, backends d’applications web et systèmes de production adaptés aux nouvelles tentatives.

Exemple de flux asynchrone

# 1. Start the job
curl -X POST "https://api.converter.app/convert" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "target_format=mp3" \
  -F "files=@/path/to/video.mp4"

# 2. Poll until completed
curl "https://api.converter.app/progress/JOBID" \
  -H "X-API-Key: YOUR_API_KEY"

# 3. Download the finished output
curl -L "https://api.converter.app/download/JOBID" \
  -H "X-API-Key: YOUR_API_KEY" \
  -o result.mp3

JavaScript

const form = new FormData();
form.append('target_format', 'mp3');
form.append('files', fileInput.files[0]);

const createResponse = await fetch('https://api.converter.app/convert', {
  method: 'POST',
  headers: {
    'X-API-Key': apiKey
  },
  body: form
});
const job = await createResponse.json();

const progressResponse = await fetch(`https://api.converter.app/progress/${job.jobid}`, {
  headers: {
    'X-API-Key': apiKey
  }
});
const progress = await progressResponse.json();

if (progress.status === 'completed') {
  const downloadResponse = await fetch(`https://api.converter.app/download/${job.jobid}`, {
    headers: {
      'X-API-Key': apiKey
    }
  });
  const result = await downloadResponse.blob();
}

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
data = {'target_format': 'mp3'}

with open('/path/to/video.mp4', 'rb') as video:
    files = {'files': video}
    create_response = requests.post(
        'https://api.converter.app/convert',
        headers=headers,
        data=data,
        files=files
    )

create_response.raise_for_status()
job = create_response.json()

progress_response = requests.get(
    f"https://api.converter.app/progress/{job['jobid']}",
    headers=headers
)
progress_response.raise_for_status()
progress = progress_response.json()

if progress['status'] == 'completed':
    download_response = requests.get(
        f"https://api.converter.app/download/{job['jobid']}",
        headers=headers
    )
    download_response.raise_for_status()
    with open('result.mp3', 'wb') as output:
        output.write(download_response.content)

Réponses d’erreur

Les erreurs sont renvoyées au format JSON avec un champ detail, en utilisant les codes d’état HTTP standard.

StatutCause courante
400Fichiers manquants, target_format manquant, format d’ID de tâche non pris en charge ou entrée de requête invalide.
401X API Key manquant ou invalide.
403La clé API n’est pas autorisée à utiliser la paire de conversion demandée.
404Le travail demandé ou le fichier résultat généré n’est pas disponible.
409La conversion est toujours en cours lorsque le téléchargement est demandé.
429La clé API n’a plus de quota disponible.
500La conversion n’a pas pu être préparée ni terminée en raison d’une erreur de traitement côté serveur.
{
  "detail": "This API key is not authorized for mp42mp3 conversions."
}