REST API
Bild, PDF & Dateiverarbeitung API
Wählen Sie die Operation mit toolName; finden Sie Parameter und vollständige Beispiele für jedes Werkzeug unten.
- Registrieren, überprüfen Sie Ihre E-Mail und melden Sie sich an ein kostenloses Konto.
- Öffnen Sie Einstellungen → API Schlüssel (auch im Benutzermenü verfügbar), geben Sie einen Namen ein und erstellen Sie einen Schlüssel.
- Kopieren Sie es auf Ihre serverseitige API_KEY-Umgebungsvariable. Übernehmen und ersetzen Sie einen verlorenen Schlüssel.
Authorization: Bearer $API_KEY
Uploads, Jobs, Umfragen, Downloads und Regelverwaltung benötigen einen gültigen API-Schlüssel oder eine signierte Web-Session. Verwenden Sie einen API-Schlüssel für Skripte, MCP und Automatisierung; nie setzen Sie es in Frontend-Code.
Jeder Schlüssel erlaubt bis zu 120-Anfragen/Minute standardmäßig, einschließlich der Umfrage. Jobquoten werden über das Konto und Schlüssel geteilt: kostenlose Standardeinstellungen zu 20/Tag, Pro zu 100/Tag. Lesen Sie GET /api/tools/entitlements für die tatsächliche Konfiguration.
| Anfrage senden | Eingabe / Antwort |
|---|---|
| POST /api/tools/files | multipart Felddatei → data.file.id; eine Datei pro Upload |
| POST /api/tools/jobs | {toolName, input: {fileId / fileIds, execution: "async", …}} → data.job.id |
| GET /api/tools/jobs?id=JOB_ID | data.job.status + data.job.result |
| GET /api/tools/artifacts?id=ARTIFACT_ID&download=1 | Authenticated binäre Download; ID bei data.job.result.data.artifact.id |
| DELETE /api/tools/jobs?id=JOB_ID | Abbrechen eines anhängigen Jobs; Terminal Jobs können 409 zurückgeben |
HTTP 202 (Status: akzeptiert) ist nicht beendet. Verpacken Sie alle 2 Sekunden, bis data.job.status abgeschlossen ist, gescheitert, abgesagt oder abgelaufen ist. Lesen Sie Erfolgsdaten bei data.job.result.data und Fehlerdaten bei data.job.result.error.details. Inspection gibt JSON ohne Download-Datei zurück.
Modus: must_pass benötigt jede Regel, um zu passieren; best_effort kann einen Kandidaten mit Warnungen zurückgeben. Senden Sie Inline-Regeln oder ein gespeichertes ruleId, nie beide. Single-Image-Tools akzeptieren ein fileId pro Job; erstellen Sie einen Job pro Bild.
Uploads und Artefakte dauern normalerweise 24 Stunden; Nutzung expiresAt. Setzen Sie Idempotency-Key auf die Schaffung von Arbeitsplätzen und wiederverwenden sie mit dem gleichen Körper nach Netzausfall. 25 MB kombiniert, 100 Seiten, 40 MP und bis 10 Eingaben. Pro erlaubt 100 Eingänge; Motorgrenzen gelten noch.
3. Parameter und Beispiele nach Werkzeug
validate_filePOST /api/tools/validateDatei enthält Informationen zu den Fakten und Regeln. Keine Bytes werden hochgeladen oder inspiziert. Speichert ruleId erfordert Authentifizierung.
{
"file": {
"name": "example.png",
"mimeType": "image/png",
"bytes": 180000
},
"rules": {
"maxBytes": 200000
},
"mode": "must_pass"
}Werkzeug öffnen und Code aus Ihrem Formular generierencompress_imagePOST /api/tools/jobsfileId, targetBytes (Bytes), Format, allowDownscale; rules.maxBytes kann die Ausgabe validieren.
{
"toolName": "compress_image",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"format": "jpeg",
"targetBytes": 200000,
"allowDownscale": true,
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generierenconvert_imagePOST /api/tools/jobsfileId, Format; optionaler Hintergrund (#RRGGBB) und dpi (nur JPEG/PNG).
{
"toolName": "convert_image",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"format": "webp",
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generierenresize_imagePOST /api/tools/jobsfileId, mindestens eines der Breite/Höhe (Pixel), fit (enthalten/verdecken), allowUpscale, Format, dpi.
{
"toolName": "resize_image",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"width": 1200,
"fit": "contain",
"allowUpscale": false,
"format": "jpeg",
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generierencrop_imagePOST /api/tools/jobsfileId, Ernte: {x,y,width,height} in Pixeln aus der oberen linken Ecke; Format wählt den Ausgabetyp aus.
{
"toolName": "crop_image",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"crop": {
"x": 0,
"y": 0,
"width": 200,
"height": 200
},
"format": "png",
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generierenremove_backgroundPOST /api/tools/jobsEntferne den Hintergrund und lade eine transparente PNG-Datei herunter.
{
"toolName": "remove_background",
"input": {
"fileId": "FILE_ID",
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generiereninspect_imagePOST /api/tools/jobsfileId; liefert decodierte Abmessungen, DPI und EXIF/GPS Fakten. Kein Download Artifact.
{
"toolName": "inspect_image",
"input": {
"fileId": "FILE_ID",
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generierenconvert_image_to_pdfPOST /api/tools/jobsfileIds in Seitenbestellung; pageSize (Original/a4/letter), pageOrientation (Porträt/Landschaft), marginPoints (0–144 pt), pageDpi (36–600).
{
"toolName": "convert_image_to_pdf",
"input": {
"fileIds": [
"FILE_ID_1",
"FILE_ID_2"
],
"mode": "best_effort",
"pageSize": "a4",
"pageOrientation": "portrait",
"marginPoints": 24,
"pageDpi": 150,
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generiereninspect_filePOST /api/tools/jobsfileId; gibt tatsächliche PDF Seiten, Abmessungen, Schriftarten und eingebettete Bilddaten zurück. Kein Download Artefakt.
{
"toolName": "inspect_file",
"input": {
"fileId": "FILE_ID",
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generierencompress_pdfPOST /api/tools/jobsfileId; rules.maxBytes legt das Ziel in Bytes fest. Strict-Modus scheitert bei einem Regelbericht, wenn das Ziel nicht erfüllt werden kann.
{
"toolName": "compress_pdf",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"rules": {
"maxBytes": 200000
},
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generierenmerge_pdfsPOST /api/tools/jobsfileIds, mindestens 2, in Array-Ordnung zusammengefasst; optionale Regeln validieren das Ergebnis.
{
"toolName": "merge_pdfs",
"input": {
"fileIds": [
"FILE_ID_1",
"FILE_ID_2"
],
"mode": "best_effort",
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generierensplit_pdfPOST /api/tools/jobsfileId, pageRange (z.B. 1-3,5,2) oder Seiten-Array; Seitennummern beginnen bei 1 und können neu bestellt oder wiederholt werden.
{
"toolName": "split_pdf",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"pageRange": "1-2",
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generierenrotate_pdfPOST /api/tools/jobsfileId, Rotation (90/180/270); optionale pageRange/Seiten, aufgelassen, um alle Seiten zu drehen.
{
"toolName": "rotate_pdf",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"rotation": 90,
"pageRange": "1",
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generierencreate_submission_packagePOST /api/tools/jobsfileIds, packageName, namingTemplate; kostenlose Vorlage: {index}-{name}.{ext}. Benutzerdefinierte Vorlagen erfordern Pro. ZIP enthält Dateien, Manifeste und Per-Dateien Berichte.
{
"toolName": "create_submission_package",
"input": {
"fileIds": [
"FILE_ID_1",
"FILE_ID_2"
],
"mode": "best_effort",
"packageName": "submission-package",
"namingTemplate": "{index}-{name}.{ext}",
"execution": "async"
}
}Werkzeug öffnen und Code aus Ihrem Formular generieren401: fehlende, ungültige oder entzogene Schlüssel. 403: Konto/Schlüssel fehlt Erlaubnis. 429 / rate_limited: Erforderungssatz oder Tagesquote erreicht; nur bei Wiedereintritt ausgeschaltet. invalid_input: Prüfparameter. subscription_required: Planfähigkeit erforderlich. processing_failed/rule Fehler: inspect error.details. Polling HTTP 200 allein bedeutet nicht, dass die Verarbeitung erfolgreich ist.
Der Katalog, OpenAPI und die mitgelieferten Produkte /api/tools/validate Endpunkt sind öffentlich. Die Gast-Webverarbeitung hat einen separaten Sitzungs-/IP-begrenzten Pfad, nicht anonyme Automatisierungs-Anmeldeinformationen. Dateien, Jobs, Regeln und Artefakte sind eigenverantwortlich.
Verwenden Sie /api/tools/rules (GET/POST/DELETE) für gespeicherte Regeln und GET /api/tools/jobs für die Geschichte. OpenAPI enthält vollständige Schemas. MCP und REST Share Tools und Kontoquoten. Pro Checkout und Top-ups sind noch nicht geöffnet.
# CLI: ATTACHREADY_BASE_URL + ATTACHREADY_API_KEY
node scripts/tools-cli.mjs run convert_image --input '{"fileId":"FILE_ID","format":"webp"}' --wait