API-Referenz
Mit der ConvertFly-REST-API konvertieren, optimieren und transformieren Sie Dateien programmatisch. Erstellen Sie Konvertierungs-Pipelines mit Jobs und Tasks: Datei importieren, verarbeiten und das Ergebnis exportieren, alles in einer einzigen Anfrage.
https://convertfly.io/api/v1Alle Endpunkte sind relativ zu dieser Basis-URL. Anfragen und Antworten verwenden JSON. Alle Zeitstempel sind in UTC im Format ISO 8601.
Authentifizierung
Jede Anfrage muss einen API-Schlüssel im Header Authorization enthalten. Schlüssel beginnen mit dem Präfix cvfly_sk_ und können in Ihrer Übersicht erstellt werden.
Authorization: Bearer cvfly_sk_live_abc123def456...Sicherheitshinweis: Legen Sie API-Schlüssel niemals im clientseitigen Code offen. Speichern Sie sie in Umgebungsvariablen und führen Sie API-Aufrufe von Ihrem Server aus.
Berechtigungen der Schlüssel
API-Schlüssel können auf bestimmte Operationen beschränkt werden. Ein Schlüssel, der ohne Liste von Berechtigungen erstellt wird, erhält die Standardberechtigungen.
| Berechtigung | Zugriff |
|---|---|
| job:read | Jobs lesen(Standard) |
| job:write | Jobs und ihre Tasks erstellen, abbrechen, erneut ausführen und löschen(Standard) |
| task:read | Tasks lesen(Standard) |
| convert | Konvertierungen ausführen(Standard) |
| api-key:read | API-Schlüssel auflisten |
| api-key:write | API-Schlüssel erstellen und widerrufen |
| webhook:read | Webhooks auflisten |
| webhook:write | Webhooks erstellen und löschen |
Schnellstart
Konvertieren Sie ein PDF in drei Schritten in DOCX: Job erstellen, auf den Abschluss warten, dann das Ergebnis herunterladen.
Konvertierungsjob erstellen
curl -X POST https://convertfly.io/api/v1/jobs \
-H "Authorization: Bearer cvfly_sk_live_abc123..." \
-H "Content-Type: application/json" \
-d '{
"tasks": {
"import-file": {
"operation": "import/url",
"url": "https://example.com/report.pdf"
},
"convert": {
"operation": "convert",
"input": ["import-file"],
"output_format": "docx"
},
"export": {
"operation": "export/url",
"input": ["convert"]
}
}
}'const res = await fetch("https://convertfly.io/api/v1/jobs", {
method: "POST",
headers: {
"Authorization": "Bearer cvfly_sk_live_abc123...",
"Content-Type": "application/json",
},
body: JSON.stringify({
tasks: {
"import-file": {
operation: "import/url",
url: "https://example.com/report.pdf",
},
convert: {
operation: "convert",
input: ["import-file"],
output_format: "docx",
},
export: {
operation: "export/url",
input: ["convert"],
},
},
}),
});
const job = await res.json();
console.log(job.id); // "cmxr9k2p0..."
console.log(job.status); // "processing"import requests
resp = requests.post(
"https://convertfly.io/api/v1/jobs",
headers={"Authorization": "Bearer cvfly_sk_live_abc123..."},
json={
"tasks": {
"import-file": {
"operation": "import/url",
"url": "https://example.com/report.pdf",
},
"convert": {
"operation": "convert",
"input": ["import-file"],
"output_format": "docx",
},
"export": {
"operation": "export/url",
"input": ["convert"],
},
}
},
)
job = resp.json()
print(job["id"]) # "cmxr9k2p0..."
print(job["status"]) # "processing"Auf den Abschluss warten
Fragen Sie den Status des Jobs regelmässig ab oder verwenden Sie Webhooks für Benachrichtigungen in Echtzeit.
curl https://convertfly.io/api/v1/jobs/job_7kX9mP2qR \
-H "Authorization: Bearer cvfly_sk_live_abc123..."{
"id": "cmxr9k2p0",
"status": "finished",
"created_at": "2026-04-03T10:30:00Z",
"tasks": [
{
"name": "export",
"operation": "export/url",
"status": "finished",
"result": {
"files": [
{ "url": "https://files.convertfly.io/d/cmv.../result.docx?e=...&s=..." }
]
}
}
]
}Ergebnis herunterladen
Verwenden Sie die URL aus dem Ergebnis des Export-Tasks. Download-Links sind 1 Stunde gültig; Dateien werden 24 Stunden nach dem Hochladen gelöscht.
curl -o result.docx "https://files.convertfly.io/d/..."Jobs
Ein Job ist ein Container für einen oder mehrere Tasks, die zusammen eine Konvertierungs-Pipeline bilden. Die Tasks eines Jobs werden in der Reihenfolge ihrer Abhängigkeiten ausgeführt: Jeder Task kann über das Feld input auf die Ausgabe eines vorherigen Tasks verweisen.
Pipeline-Konzept
Eine typische Pipeline sieht so aus: import/url -> convert -> export/url. Sie können auch mehrere Operationen verketten: Import -> Konvertierung -> Optimierung -> Wasserzeichen -> Export.
Status eines Jobs
| Status | Beschreibung |
|---|---|
| waiting | Job erstellt, zur Verarbeitung eingereiht |
| processing | Mindestens ein Task wird gerade ausgeführt |
| finished | Alle Tasks erfolgreich abgeschlossen |
| error | Ein oder mehrere Tasks sind fehlgeschlagen |
Job erstellen
/api/v1/jobstagstringOptionale Bezeichnung zur Organisation von Jobs (z. B. batch-2026-04).
tasksobjecterforderlichEine Zuordnung von Task-Namen zu Task-Definitionen. Task-Namen müssen innerhalb des Jobs eindeutig sein.
webhook_urlstringURL, die ein Ereignis job.finished oder job.failed erhält, wenn der Job abgeschlossen ist.
curl -X POST https://convertfly.io/api/v1/jobs \
-H "Authorization: Bearer cvfly_sk_..." \
-H "Content-Type: application/json" \
-d '{
"tag": "invoice-batch",
"tasks": {
"import-file": {
"operation": "import/url",
"url": "https://example.com/invoice.pdf"
},
"to-png": {
"operation": "convert",
"input": ["import-file"],
"output_format": "png",
"options": { "density": 300 }
},
"export": {
"operation": "export/url",
"input": ["to-png"]
}
}
}'{
"id": "cmxr9k2p0",
"tag": "invoice-batch",
"status": "processing",
"created_at": "2026-04-03T10:30:00Z",
"tasks": [
{ "name": "import-file", "operation": "import/url", "status": "finished" },
{ "name": "to-png", "operation": "convert", "status": "processing" },
{ "name": "export", "operation": "export/url", "status": "waiting" }
]
}Beispiel: Dateien zu einem PDF zusammenführen
Die Operation merge fasst zwei oder mehr Eingaben (PDFs und/oder Bilder) zu einem einzigen PDF zusammen. Führen Sie die Namen der Eingabe-Tasks in der gewünschten Reihenfolge im Array input auf.
curl -X POST https://convertfly.io/api/v1/jobs \
-H "Authorization: Bearer cvfly_sk_..." \
-H "Content-Type: application/json" \
-d '{
"tasks": {
"cover": {
"operation": "import/url",
"url": "https://example.com/cover.png"
},
"report": {
"operation": "import/url",
"url": "https://example.com/report.pdf"
},
"merge-all": {
"operation": "merge",
"input": ["cover", "report"]
},
"export": {
"operation": "export/url",
"input": ["merge-all"]
}
}
}'Beispiel: Website erfassen
Die Operation capture-website benötigt keinen Eingabe-Task: Sie rendert eine öffentliche URL als PDF, PNG oder JPG.
curl -X POST https://convertfly.io/api/v1/jobs \
-H "Authorization: Bearer cvfly_sk_..." \
-H "Content-Type: application/json" \
-d '{
"tasks": {
"capture": {
"operation": "capture-website",
"url": "https://example.com",
"output_format": "pdf",
"width": 1280
},
"export": {
"operation": "export/url",
"input": ["capture"]
}
}
}'Job abrufen
/api/v1/jobs/:idRuft die Details eines Jobs und den Status aller zugehörigen Tasks ab.
curl https://convertfly.io/api/v1/jobs/job_7kX9mP2qR \
-H "Authorization: Bearer cvfly_sk_..."Jobs auflisten
/api/v1/jobspageintegerSeitennummer, beginnend bei 1. Standard: 1.
limitintegerErgebnisse pro Seite, 1-100. Standard: 20.
statusstringNach Status filtern: WAITING, PROCESSING, FINISHED, ERROR.
tagstringNach Bezeichnung filtern.
curl "https://convertfly.io/api/v1/jobs?status=finished&per_page=5" \
-H "Authorization: Bearer cvfly_sk_..."{
"data": [ ... ],
"links": { "first": "?page=1&per_page=5", "last": "?page=9&per_page=5", "prev": null, "next": "?page=2&per_page=5" },
"meta": {
"page": 1,
"per_page": 5,
"total": 42
}
}Job löschen
/api/v1/jobs/:idLöscht einen Job und alle zugehörigen Dateien. Laufende Tasks werden abgebrochen. Diese Aktion kann nicht rückgängig gemacht werden.
curl -X DELETE https://convertfly.io/api/v1/jobs/job_7kX9mP2qR \
-H "Authorization: Bearer cvfly_sk_..."Auf den Abschluss warten
/api/v1/jobs/:id/waitLong-Polling-Endpunkt, der blockiert, bis der Job einen Endzustand erreicht (FINISHED oder ERROR). Nach 300 Sekunden erfolgt ein Timeout mit 202 Accepted, falls der Job noch verarbeitet wird.
curl "https://convertfly.io/api/v1/jobs/job_7kX9mP2qR/wait?timeout=120" \
-H "Authorization: Bearer cvfly_sk_..."Tasks
Tasks sind die einzelnen Schritte innerhalb eines Jobs. Jeder Task hat einen Namen (den Schlüssel im Objekt tasks), eine operation und optional ein Array input, das auf Namen vorheriger Tasks verweist.
Felder eines Tasks
| Feld | Typ | Beschreibung |
|---|---|---|
| operation | string | Die auszuführende Operation (siehe Operationen) |
| input | string[] | Namen der Tasks, deren Ausgabe als Eingabe dient |
| output_format | string | Zielformat für Konvertierungsoperationen |
| options | object | Operationsspezifische Einstellungen (Qualität, Auflösung usw.) |
Tasks eines Jobs auflisten
/api/v1/jobs/:id/tasks{
"data": [
{
"name": "import-file",
"operation": "import/url",
"status": "finished",
"result": { "file_id": "file_Xk9m..." }
},
{
"name": "convert",
"operation": "convert",
"status": "finished",
"result": { "file_id": "file_Pm3n..." }
}
]
}Task abrufen
/api/v1/jobs/:job_id/tasks/:task_nameTask abbrechen
/api/v1/jobs/:job_id/tasks/:task_name/cancelBricht einen laufenden oder wartenden Task ab. Nachgelagerte Tasks, die von ihm abhängen, werden ebenfalls abgebrochen.
Fehlgeschlagenen Task wiederholen
/api/v1/jobs/:job_id/tasks/:task_name/retryWiederholt einen Task mit dem Status ERROR. Ist der Task kostenpflichtig, werden erneut Credits verbraucht.
Datei-Upload
Es gibt drei Möglichkeiten, Dateien an ConvertFly zu übergeben. Wählen Sie diejenige, die am besten zu Ihrem Anwendungsfall passt.
Import von einer URL
Die einfachste Methode. ConvertFly lädt die Datei von einer öffentlich zugänglichen URL herunter.
{
"import-file": {
"operation": "import/url",
"url": "https://example.com/document.pdf",
"filename": "document.pdf",
"headers": {
"Authorization": "Bearer your-external-token"
}
}
}Direkter Upload (vorsignierte URL)
Für Dateien auf Ihrem lokalen Rechner. Dies erfolgt in zwei Schritten: Erstellen Sie zuerst den Task, um eine vorsignierte Upload-URL zu erhalten, und senden Sie dann Ihre Datei per PUT an diese URL.
{
"upload-file": {
"operation": "import/upload",
"filename": "photo.jpg"
}
}# The task result will contain the presigned URL
curl -X PUT "https://files.convertfly.io/convertfly-files/..." \
-H "Content-Type: image/jpeg" \
--data-binary @photo.jpgImport aus Base64
Für kleine Dateien (unter 10 MB). Betten Sie den Dateiinhalt direkt in die Anfrage ein.
{
"import-file": {
"operation": "import/base64",
"file": "JVBERi0xLjQKJcOkw7zD...",
"filename": "document.pdf"
}
}| Methode | Max. Grösse | Geeignet für |
|---|---|---|
| import/url | 5 GB | Bereits online gehostete Dateien |
| import/upload | 5 GB | Lokale Dateien, grosse Dateien |
| import/base64 | 10 MB | Kleine Dateien, direkt in der Anfrage |
Konvertierungsoptionen
Jede Operation unterstützt eigene Optionen. Hier finden Sie alle verfügbaren Operationen und die Formatpaare für Konvertierungen.
Verfügbare Operationen
| Operation | Beschreibung | Credits |
|---|---|---|
| import/upload | Datei über eine vorsignierte URL hochladen | 0 |
| import/url | Datei von einer URL importieren | 0 |
| import/base64 | Datei aus Base64-Daten importieren | 0 |
| convert | Zwischen Formaten konvertieren | 1-4 |
| optimize | Datei komprimieren/optimieren | 1 |
| thumbnail | Vorschaubild erzeugen | 1 |
| merge | Mehrere PDFs und/oder Bilder zu einem einzigen PDF zusammenführen | 1 |
| watermark | Text- oder Bildwasserzeichen zu Bildern, Videos oder PDFs hinzufügen | 1 |
| split | Seiten aus einem PDF extrahieren oder es in ein PDF pro Seite teilen (ZIP) | 1 |
| rotate | Die Seiten eines PDFs um 90, 180 oder 270 Grad drehen | 1 |
| resize | Ein Bild nach Breite, Höhe oder Prozent skalieren, Proportionen bleiben erhalten | 1 |
| gif | Einen Videoausschnitt in ein animiertes GIF umwandeln (Beginn, Dauer, fps, Breite) | 2 |
| ocr | Text in PDFs oder Bildern erkennen (14 Sprachen, dieselben wie auf der OCR-Seite) | 3 |
| capture-website | Öffentliche Website als PDF, PNG oder JPG erfassen | 1 |
| metadata | Metadaten einer Datei extrahieren | 1 |
| export/url | Signierte Download-URL erhalten | 0 |
| export/s3 | Direkt in Ihren S3-Bucket exportieren | 0 |
Unterstützte Formatpaare
Beliebte Konvertierungen. Das Format wird automatisch aus der Datei erkannt, Sie können input_format aber auch explizit angeben.
| Kategorie | Eingabeformate | Ausgabeformate |
|---|---|---|
| Dokumente | pdf, docx, doc, odt, rtf, txt, html | pdf, docx, odt, rtf, txt, html |
| Tabellen | xlsx, xls, ods, csv | xlsx, ods, csv, pdf |
| Präsentationen | pptx, ppt, odp | pptx, odp, pdf |
| Bilder | jpg, png, gif, bmp, tiff, webp, svg, heic | jpg, png, gif, bmp, tiff, webp |
| Video | mp4, avi, mov, mkv, webm | mp4, avi, mov, mkv, webm, gif |
| Audio | mp3, wav, ogg, flac, aac, m4a | mp3, wav, ogg, flac, aac |
Qualitäts- und Verarbeitungsoptionen
Übergeben Sie diese im Objekt options eines Konvertierungs-Tasks.
qualityintegerAusgabequalität für verlustbehaftete Formate (1-100). Standard: 85.
densityintegerDPI für die Konvertierung von Dokumenten in Bilder. Standard: 150.
widthintegerAuf diese Breite in Pixeln skalieren. Das Seitenverhältnis bleibt erhalten, wenn height fehlt.
heightintegerAuf diese Höhe in Pixeln skalieren. Das Seitenverhältnis bleibt erhalten, wenn width fehlt.
pagesstringSeitenbereich für Dokumentoperationen, z. B. 1-5, 1,3,5, all.
{
"convert-hq": {
"operation": "convert",
"input": ["import-file"],
"output_format": "png",
"options": {
"density": 300,
"quality": 95
}
}
}Webhooks
Registrieren Sie Webhook-URLs, um Benachrichtigungen in Echtzeit zu erhalten, wenn sich der Status von Jobs oder Tasks ändert. Alle Nutzdaten sind mit HMAC-SHA256 signiert, sodass Sie prüfen können, dass sie von ConvertFly stammen.
Webhook erstellen
/api/v1/webhooksurlstringerforderlichDie HTTPS-URL, die Webhook-Ereignisse empfängt.
eventsstring[]erforderlichZu abonnierende Ereignistypen.
curl -X POST https://convertfly.io/api/v1/webhooks \
-H "Authorization: Bearer cvfly_sk_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-app.com/webhooks/convertfly",
"events": ["job.finished", "job.failed"]
}'{
"data": {
"id": "wh_Abc123...",
"url": "https://your-app.com/webhooks/convertfly",
"events": ["job.finished", "job.failed"],
"signing_secret": "whsec_9f8e7d6c5b4a...",
"created_at": "2026-04-03T10:30:00Z"
}
}Webhooks auflisten
/api/v1/webhooksWebhook löschen
/api/v1/webhooks/:idEreignistypen
| Ereignis | Auslöser |
|---|---|
| job.finished | Alle Tasks des Jobs wurden erfolgreich abgeschlossen |
| job.failed | Ein oder mehrere Tasks sind fehlgeschlagen, der Job ist im Status ERROR |
| task.finished | Ein einzelner Task wurde abgeschlossen |
| task.failed | Ein einzelner Task ist fehlgeschlagen |
Webhook-Nutzdaten
{
"event": "job.finished",
"timestamp": "2026-04-03T10:31:15Z",
"data": {
"id": "job_7kX9mP2qR",
"status": "finished",
"tasks": { ... }
}
}Signaturen prüfen
Jede Webhook-Anfrage enthält zwei Header: X-Webhook-Signature und X-Webhook-Timestamp. Prüfen Sie diese, um sicherzustellen, dass die Nutzdaten von ConvertFly gesendet und nicht verändert wurden.
import crypto from "crypto";
function verifyWebhook(rawBody, signature, timestamp, secret) {
const signedContent = timestamp + "." + rawBody;
const expected = "v1=" + crypto
.createHmac("sha256", secret)
.update(signedContent)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature)
);
}import hmac, hashlib
def verify_webhook(raw_body: bytes, signature: str, timestamp: str, secret: str) -> bool:
signed_content = f"{timestamp}.{raw_body.decode()}"
expected = "v1=" + hmac.new(
secret.encode(), signed_content.encode(), hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, signature)API-Schlüssel
Verwalten Sie API-Schlüssel programmatisch. Sie können Schlüssel auch in der Übersicht verwalten.
API-Schlüssel erstellen
/api/v1/api-keysnamestringerforderlichEin aussagekräftiger Name für den Schlüssel.
scopesstring[]Zu erteilende Berechtigungen. Standard: ["*"] (Vollzugriff).
{
"data": {
"id": "key_Xk9m...",
"name": "production-server",
"key": "cvfly_sk_live_abc123def456...",
"scopes": ["*"],
"created_at": "2026-04-03T10:30:00Z"
}
}Wichtig: Der vollständige API-Schlüssel wird nur einmal bei der Erstellung angezeigt. Bewahren Sie ihn sicher auf, er kann später nicht mehr abgerufen werden.
API-Schlüssel auflisten
/api/v1/api-keysAPI-Schlüssel widerrufen
/api/v1/api-keys/:idMacht den Schlüssel sofort ungültig. Alle Anfragen mit diesem Schlüssel geben 401 zurück.
Ratenbegrenzung
API-Anfragen werden pro API-Schlüssel begrenzt, um eine faire Nutzung sicherzustellen. Bei Überschreitung des Limits geben Anfragen 429 Too Many Requests zurück.
Standardlimit
Jeder API-Schlüssel erlaubt 100 Anfragen pro Stunde. Das aktuelle Limit und das Zeitfenster eines Schlüssels werden beim Auflisten Ihrer Schlüssel als rate_limit und rate_limit_window (Sekunden) zurückgegeben. Kontaktieren Sie uns, wenn Ihre Integration ein höheres Limit benötigt.
Antwort-Header
Jede Antwort auf eine mit einem API-Schlüssel gestellte Anfrage enthält diese Header:
X-RateLimit-LimitHeaderMaximal zulässige Anfragen im aktuellen Zeitfenster.
X-RateLimit-RemainingHeaderVerbleibende Anfragen im aktuellen Zeitfenster.
X-RateLimit-ResetHeaderUnix-Zeitstempel, zu dem das Zeitfenster zurückgesetzt wird.
Retry-AfterHeaderWartezeit in Sekunden vor einem erneuten Versuch (nur bei Antworten mit 429).
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1743681600
Retry-After: 3600
{
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. 100 requests per 3600s allowed."
}Fehler
ConvertFly verwendet die üblichen HTTP-Statuscodes. Alle Fehlerantworten folgen einem einheitlichen Format mit einem maschinenlesbaren code und einer für Menschen lesbaren message.
Format der Fehlerantwort
{
"code": "INVALID_DATA",
"message": "Missing required field: output_format",
"details": {
"field": "output_format",
"reason": "required"
}
}Fehlercodes
| Code | HTTP | Beschreibung |
|---|---|---|
| INVALID_DATA | 400 | Ungültiger Anfragetext oder ungültige Parameter |
| UNAUTHENTICATED | 401 | Fehlender oder ungültiger API-Schlüssel |
| FORBIDDEN | 403 | Dem API-Schlüssel fehlt die für diese Operation erforderliche Berechtigung |
| NOT_FOUND | 404 | Die Ressource existiert nicht oder wurde gelöscht |
| CONFLICT | 409 | Die Ressource existiert bereits oder die Operation steht im Konflikt mit dem aktuellen Zustand |
| PAYLOAD_TOO_LARGE | 413 | Der Anfragetext überschreitet die maximal zulässige Grösse |
| UNSUPPORTED_FORMAT | 422 | Die angeforderte Konvertierung wird nicht unterstützt |
| RATE_LIMIT_EXCEEDED | 429 | Anfragelimit überschritten, siehe Ratenbegrenzung |
| INSUFFICIENT_CREDITS | 402 | Nicht genügend Credits für diese Operation |
| SERVER_ERROR | 500 | Interner Serverfehler, erneut versuchen oder Support kontaktieren |
| UNAVAILABLE | 503 | Dienst vorübergehend nicht verfügbar, bitte gleich erneut versuchen |
Umgang mit Fehlern
const res = await fetch("https://convertfly.io/api/v1/jobs", {
method: "POST",
headers: {
"Authorization": "Bearer cvfly_sk_...",
"Content-Type": "application/json",
},
body: JSON.stringify({ tasks: { /* ... */ } }),
});
if (!res.ok) {
const error = await res.json();
console.error(`[${error.code}] ${error.message}`);
// "[INVALID_DATA] Missing required field: output_format"
return;
}
const { data: job } = await res.json();Credits
Jede Operation kostet eine bestimmte Anzahl Credits. Import- und Exportoperationen sind kostenlos. Ihr verbleibendes Guthaben ist in jeder API-Antwort im Header X-Credits-Remaining enthalten.
Kosten in Credits nach Konvertierungsart
| Operation | Kosten | Beispiele |
|---|---|---|
| Import / Export | Kostenlos | import/url, import/upload, export/url, export/s3 |
| Bildkonvertierung | 1 Credit | jpg in png, webp in gif, heic in jpg |
| Audiokonvertierung | 1 Credit | mp3 in wav, flac in aac |
| Dokument in PDF | 1 Credit | txt in pdf, html in pdf, md in pdf |
| Office in PDF | 2 Credits | docx in pdf, pptx in pdf, xlsx in pdf |
| Videokonvertierung | 2 Credits | mp4 in webm, mov in mp4 |
| PDF in Office | 4 Credits | pdf in docx, pdf in pptx |
| Optimieren | 1 Credit | Bilder, PDFs komprimieren |
| Vorschaubild | 1 Credit | Vorschaubild erzeugen |
| Zusammenführen | 1 Credit | Mehrere PDFs zusammenführen |
| Wasserzeichen | 1 Credit | Text-/Bildüberlagerung hinzufügen |
| PDF teilen | 1 Credit | Seiten 1-3, 7 extrahieren oder eine Datei pro Seite |
| PDF drehen | 1 Credit | Alle Seiten oder eine Auswahl drehen |
| Bild skalieren | 1 Credit | 1200 px breit, 50 Prozent |
| GIF erstellen | 2 Credits | mp4-Ausschnitt zu gif, gleicher Preis wie eine Videokonvertierung |
| Website erfassen | 1 Credit | Eine URL als PDF oder Bild rendern |
| OCR | 3 Credits | Gescanntes PDF durchsuchbar machen |
| Metadaten | 1 Credit | Dateiinformationen extrahieren |
Guthaben prüfen
Jede API-Antwort enthält den Header X-Credits-Remaining mit Ihrem aktuellen Guthaben.
HTTP/1.1 201 Created
Content-Type: application/json
X-Credits-Remaining: 9847
X-Credits-Used: 2Reicht Ihr Guthaben nicht aus, um einen Job abzuschliessen, gibt die API 402 mit dem Fehlercode INSUFFICIENT_CREDITS zurück. Laden Sie Credits in Ihrer Abrechnungsübersicht auf.
Testumgebung
Mit Testschlüsseln (Sandbox) können Sie eine Integration vollständig entwickeln und testen, ohne Credits zu verbrauchen. Erstellen Sie einen Schlüssel mit "sandbox": true; er beginnt mit cf_test_ statt cvfly_sk_. Alles funktioniert wie in der Produktion, mit drei Unterschieden.
| Credits | Werden nie belastet. Ihr Guthaben bleibt unverändert. |
| Dateigrösse | Eingaben sind auf 5 MB begrenzt. |
| Ausgabe | Bilder, Videos und PDFs tragen ein Wasserzeichen „ConvertFly SANDBOX“. |
curl -X POST https://convertfly.io/api/v1/api-keys \
-H "Authorization: Bearer YOUR_LIVE_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Sandbox", "sandbox": true}'
# Response includes: "key": "cf_test_...", "is_sandbox": trueBereit, loszulegen?
Erstellen Sie Ihr kostenloses Konto und testen Sie die API kostenlos mit einem Testschlüssel.