Ontwikkelaars API

Één universele API voor elke bestandsworkflow

Converter App biedt ontwikkelaars een krachtige interface voor bestandsverwerking. Vervang afzonderlijke tools door één API voor schaalbare documentconversie, mediaverwerking, transcriptie en OCR.

Converter App API overzicht

De Converter App API biedt ontwikkelaars een naadloze, universele interface voor al uw bestandsverwerkingsbehoeften. In plaats van een gefragmenteerde verzameling losse tools te integreren, kan uw applicatie één hoogwaardige service aanroepen. U kunt onze volledige converter-suite rechtstreeks integreren in backend-workflows om alles af te handelen, van standaard bestandsconversies tot veeleisende mediataken.

De openbare basis URL is https://api.converter.app/. Paden in dit document gebruiken deze extern aangeboden API root.

Universele dekking

Krijg toegang tot een complete bibliotheek met conversietools via één gestroomlijnde integratie.

Twee verwerkingsmodi

Kies synchrone verzoeken voor directe reacties of asynchrone taken voor grote bestanden en langlopende taken.

Afgestemd op uw behoeften

Neem contact met ons op en wij kunnen een plan aanbieden dat is afgestemd op uw behoeften, tegen een onverslaanbaar tarief.

Documenten Afbeeldingen Audio Video Tekst Archieven

Ontdek ondersteunde conversies (geen sleutel nodig)

Gebruik het openbare pairs-eindpunt als de eenvoudigste connectiviteitstest. Hiervoor is geen API sleutel nodig en het geeft de volledige lijst met ondersteunde conversieparen terug die op het platform beschikbaar zijn.

OPHALEN /public/pairs

Dit endpoint is openbaar, zodat ontwikkelaars de universele conversiecatalogus kunnen bekijken voordat zij een API sleutel aanvragen of configureren.

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'])

Voorbeeldantwoord

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

Authenticatie & toegangsbeheer

Ontwikkelaars authenticeren zich door hun API sleutel door te geven in de HTTP header X API Key. Het openbare /public/pairs-eindpunt is het enige eindpunt op deze pagina waarvoor geen sleutel vereist is.

ControleHoe het werktImpact voor ontwikkelaars
X-API-KeyStuur de sleutel als een HTTP verzoekheader.Vereist voor /pairs, /convert/sync, /convert, /progress/{jobid} en /download/{jobid}.
GebruikslimietenElke sleutel heeft een numerieke conversiequota. De quota daalt wanneer er conversietaken worden aangemaakt.Een quotum van -1 geeft onbeperkte conversies. Andere waarden geven het aantal resterende toegestane conversies weer.
Toegestane koppelingenSleutels kunnen worden beperkt tot specifieke conversietypen, zoals mp42mp3, of toegang krijgen tot all ondersteunde combinaties./pairs geeft alleen de paren terug die uw sleutel mag gebruiken, en conversieverzoeken buiten die lijst worden geweigerd.
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. Synchrone conversie

POST /convert/sync

Gebruik synchrone conversie wanneer u direct resultaat wilt in dezelfde HTTP reactie. Het verzoek blijft open terwijl de API de conversietaak start en wacht tot deze is voltooid, maximaal 30 minuten.

FormulierveldTypeBeschrijving
target_formatstringDe gevraagde uitvoerextensie, zoals pdf, docx, mp3 of jpg.
filesfile[]Eén of meer geüploade bronbestanden. De API bepaalt het bronformaat op basis van de geüploade bestandsnaam.
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)

De respons streamt het geconverteerde bestand direct. Als de conversie meerdere bestanden oplevert, retourneert de API een .zip-archief.

3. Asynchrone conversie

POST /convert

Gebruik asynchrone conversie voor grote bestanden, batchverwerking, langdurige audio- of videotaken, of productieapplicaties die uploadverzoeken niet open moeten houden terwijl de verwerking loopt.

FormulierveldTypeenBeschrijving
target_formattekenreeksHet gewenste uitvoerformaat. De bron en het doel vormen het conversiepaar, bijvoorbeeld mp42mp3.
filesfile[]Eén of meer bestanden om te converteren.

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'])

Succesreactie

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

4. Status volgen

OPHALEN /progress/{jobid}

Peil dit eindpunt nadat u een asynchrone taak hebt aangemaakt. Het geeft de taakstatus, een numerieke voortgangswaarde van 0.0 tot 1.0 en foutdetails als de conversie is mislukt.

KoptekstBeschrijving
X-API-KeyUw developer API sleutel.
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
}

Mogelijke statussen zijn processing, completed en failed. De voortgang is een getal tussen 0.0 en 1.0.

5. Bestanden ophalen

OPHALEN /download/{jobid}

Zodra een asynchrone taak de status completed heeft bereikt, kunt u de geconverteerde uitvoer ophalen met dezelfde API sleutel als waarmee de taak is aangemaakt.

ResultaattypeGedrag
Eén uitvoerbestandDe API streamt het geconverteerde bestand rechtstreeks.
resultfile-manifestAls de taak een resultaatmanifest biedt, retourneert de API het bestand dat in dat manifest is opgegeven.
Meerdere uitvoerbestandenDe API verpakt gegenereerde bestanden direct in een .zip-archief.
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)

Samenvatting van de ontwikkelaarsworkflow

De API ondersteunt twee integratiepatronen, zodat ontwikkelaars voor elke use case het juiste gedrag kunnen kiezen.

FlowAanvraagpatroonHet beste voor
Snelle synchronisatiestructuurPOST /convert/sync geeft het geconverteerde bestand terug in dezelfde reactie.Kleine bestanden, command-line scripts, prototypes en eenvoudige server-side automatiseringen.
Robuuste asynchrone workflowPOST /convert, daarna pollt u GET /progress/{jobid}, en roept u vervolgens GET /download/{jobid} op.Grote video- of audiobestanden, batchconversie, back-ends voor webapplicaties en productiesystemen die goed omgaan met opnieuw proberen.

Voorbeeld van asynchrone workflow

# 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)

Foutmeldingen

Fouten worden geretourneerd als JSON met een detail-veld, met gebruik van standaard HTTP statuscodes.

StatusVeelvoorkomende oorzaak
400Ontbrekende bestanden, ontbrekende target_format, niet-ondersteund job ID formaat of ongeldige invoer voor het verzoek.
401Ontbrekende of ongeldige X API Key.
403De API sleutel mag het aangevraagde conversiepaar niet gebruiken.
404De aangevraagde taak of het gegenereerde resultaatbestand is niet beschikbaar.
409De conversie wordt nog verwerkt wanneer er een download wordt aangevraagd.
429De API sleutel heeft geen resterend quotum.
500De conversie kon niet worden voorbereid of voltooid vanwege een verwerkingsfout aan de serverzijde.
{
  "detail": "This API key is not authorized for mp42mp3 conversions."
}