Entwickler API

Eine universelle API für jeden Datei-Workflow

Converter App bietet Entwicklern eine leistungsstarke Schnittstelle zur Dateiverarbeitung. Ersetzen Sie einzelne Tools durch eine einzige API für skalierbare Dokumentenkonvertierung, Medienverarbeitung, Transkription und OCR.

Converter App API Übersicht

Die API von Converter App bietet Entwicklern eine reibungslose, universelle Schnittstelle für alle Anforderungen an die Dateiverarbeitung. Statt eine fragmentierte Sammlung einzelner Tools zu integrieren, kann Ihre Anwendung einen einzelnen, leistungsstarken Dienst aufrufen. Sie können unsere vollständige Konverter-Suite direkt in Backend-Workflows integrieren, um alles von Standard-Dateiänderungen bis hin zu anspruchsvollen Medienaufträgen zu verarbeiten.

Die öffentliche Basis URL lautet https://api.converter.app/. Die Pfade in diesem Dokument verwenden diese extern bereitgestellte API Root.

Universale Abdeckung

Greifen Sie über eine einzige, optimierte Integration auf eine vollständige Bibliothek von Konvertierungstools zu.

Zwei Verarbeitungsmodi

Wählen Sie synchrone Anfragen für sofortige Antworten oder asynchrone Jobs für große Dateien und lang laufende Aufgaben.

Auf Ihre Bedürfnisse zugeschnitten

Nehmen Sie Kontakt mit uns auf, und wir können Ihnen einen auf Ihre Bedürfnisse zugeschnittenen Plan zu einem unschlagbaren Preis anbieten.

Dokumente Bilder Audio Video Text Archive

Unterstützte Konvertierungen entdecken (kein Schlüssel erforderlich)

Verwenden Sie den öffentlichen pairs-Endpunkt als einfachsten Konnektivitätstest. Er erfordert keinen API Schlüssel und gibt die vollständige Liste der unterstützten Konvertierungspaare auf der Plattform zurück.

ABRUFEN /public/pairs

Dieser Endpunkt ist offen, damit Entwickler den universellen Konvertierungskatalog einsehen können, bevor sie einen API Schlüssel anfordern oder konfigurieren.

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

Beispielantwort

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

Authentifizierung & Zugriffskontrolle

Entwickler authentifizieren sich, indem sie ihren API Schlüssel im HTTP Header X API Key übergeben. Der öffentliche Endpunkt /public/pairs ist der einzige Endpunkt auf dieser Seite, für den kein Schlüssel erforderlich ist.

SteuerungSo funktioniert esAuswirkungen für Entwickler
X-API-KeySenden Sie den Schlüssel als HTTP Anfrage Header.Erforderlich für /pairs, /convert/sync, /convert, /progress/{jobid} und /download/{jobid}.
NutzungsquotenJeder Schlüssel hat ein numerisches Umwandlungskontingent. Das Kontingent wird verringert, wenn Umwandlungsaufgaben erstellt werden.Ein Kontingent von -1 gewährt unbegrenzte Konvertierungen. Andere Werte geben die verbleibenden zulässigen Konvertierungen an.
Erlaubte PaareKeys können auf bestimmte Konvertierungstypen wie mp42mp3 beschränkt oder für den Zugriff auf all unterstützten Paare freigeschaltet werden./pairs gibt nur die Paare zurück, für deren Verwendung Ihr Schlüssel autorisiert ist, und Konvertierungsanfragen außerhalb dieser Liste werden abgelehnt.
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 Konvertierung

BEITRAG /convert/sync

Verwenden Sie die synchrone Konvertierung, wenn Sie ein sofortiges Ergebnis in derselben HTTP Antwort wünschen. Die Anfrage bleibt geöffnet, während die API den Konvertierungsauftrag startet und auf den Abschluss wartet, bis zu 30 Minuten.

FormularfeldTypBeschreibung
target_formatZeichenfolgeDie gewünschte Ausgabedateiendung, z. B. pdf, docx, mp3 oder jpg.
filesDatei[]Eine oder mehrere hochgeladene Quelldateien. Die API ermittelt das Quellformat anhand des hochgeladenen Dateinamens.
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)

Die Antwort streamt die konvertierte Datei direkt. Wenn die Konvertierung mehrere Dateien erzeugt, gibt die API ein .zip-Archiv zurück.

3. Asynchrone Konvertierung

POST /convert

Verwenden Sie die asynchrone Konvertierung für große Dateien, die Verarbeitung mehrerer Dateien auf einmal, lang laufende Audio- oder Videokonvertierungen oder Produktionsanwendungen, die Upload-Anfragen nicht offen halten sollten, während die Verarbeitung läuft.

FormularfeldTypBeschreibung
target_formatZeichenketteDas gewünschte Ausgabeformat. Quelle und Ziel bilden das Konvertierungspaar, zum Beispiel mp42mp3.
filesdatei[]Eine oder mehrere Dateien zum Konvertieren.

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

Erfolgsantwort

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

4. Statusverfolgung

ABRUFEN /progress/{jobid}

Rufen Sie diesen Endpunkt nach dem Erstellen eines asynchronen Auftrags regelmäßig ab. Er gibt den Auftragsstatus, einen numerischen Fortschrittswert von 0.0 bis 1.0 sowie Fehlerdetails zurück, falls die Konvertierung fehlgeschlagen ist.

HeaderBeschreibung
X-API-KeyIhr Developer API Schlüssel.
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
}

Mögliche Status sind processing, completed und failed. Der Fortschritt ist eine Zahl zwischen 0.0 und 1.0.

5. Dateiabruf

HERUNTERLADEN /download/{jobid}

Sobald ein asynchroner Auftrag den Status completed erreicht, rufen Sie die konvertierte Ausgabe mit demselben API Schlüssel ab, der zum Erstellen des Auftrags verwendet wurde.

ErgebnistypVerhalten
Einzelne AusgabedateiDie API streamt die konvertierte Datei direkt.
resultfile-ManifestWenn der Auftrag ein Ergebnis-Manifest bereitstellt, gibt die API die in diesem Manifest angegebene Datei zurück.
Mehrere AusgabedateienDie API packt die erzeugten Dateien on the fly in ein .zip-Archiv.
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)

Zusammenfassung des Entwickler-Workflows

Die API unterstützt zwei Integrationsmuster, sodass Entwickler für jeden Anwendungsfall das passende Verhalten wählen können.

AblaufAnforderungsmusterAm besten für
Schneller SynchronisierungsablaufPOST /convert/sync gibt die konvertierte Datei in derselben Antwort zurück.Kleine Dateien, Kommandozeilen-Skripte, Prototypen und einfache serverseitige Automatisierungen.
Robuster asynchroner AblaufPOST /convert, dann GET /progress/{jobid} abfragen, dann GET /download/{jobid} aufrufen.Große Video- oder Audiodateien, Stapelkonvertierung, Backends für Webanwendungen und produktionsreife Systeme mit Wiederholungsversuchen.

Beispiel für asynchronen Ablauf

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

Fehlerantworten

Fehler werden als JSON mit einem detail-Feld und unter Verwendung der standardmäßigen HTTP Statuscodes zurückgegeben.

StatusHäufige Ursache
400Fehlende Dateien, fehlendes target_format, nicht unterstütztes Job ID Format oder ungültige Anfrageeingabe.
401Fehlender oder ungültiger X API Key.
403Der API Schlüssel darf das angeforderte Konvertierungspaar nicht verwenden.
404Die angeforderte Aufgabe oder die erzeugte Ergebnisdatei ist nicht verfügbar.
409Die Konvertierung wird noch verarbeitet, wenn ein Download angefordert wird.
429Der API Schlüssel hat kein verbleibendes Kontingent.
500Die Konvertierung konnte aufgrund eines serverseitigen Verarbeitungsfehlers nicht vorbereitet oder abgeschlossen werden.
{
  "detail": "This API key is not authorized for mp42mp3 conversions."
}