Diese Seite wurde maschinell übersetzt. Einen Fehler entdeckt?Helfen Sie mit, sie zu verbessern.
Skip to content

REST-API-Referenz

Interaktive API-Dokumentation mit Beispielen für Anfragen und Antworten ist verfügbar unter http://localhost:1349/api/docs.

Maschinenlesbare Spezifikationen:

  • /api/v1/openapi.yaml - OpenAPI-3.1-Spezifikation
  • /llms.txt - LLM-freundliche Zusammenfassung
  • /llms-full.txt - Vollständige LLM-freundliche Dokumentation

Authentifizierung

Alle Endpunkte erfordern eine Authentifizierung, sofern nicht AUTH_ENABLED=false.

Sitzungs-Token

bash
# Login
curl -X POST http://localhost:1349/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"admin"}'
# Returns: {"token":"<session-token>"}

# Use token (tool routes are POST multipart)
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
  -H "Authorization: Bearer <session-token>" \
  -F "file=@photo.jpg" \
  -F 'settings={"width":800}'

Sitzungen laufen nach 7 Tagen ab (konfigurierbar über SESSION_DURATION_HOURS).

API-Schlüssel

bash
# Create a key (returns key once - store it)
curl -X POST http://localhost:1349/api/v1/api-keys \
  -H "Authorization: Bearer <session-token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"my-script"}'
# Returns: {"key":"si_<96 hex chars>","id":"...","name":"my-script"}

# Use the key
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
  -H "Authorization: Bearer si_<your-key>" \
  -F "file=@photo.jpg" \
  -F 'settings={"width":800}'

Schlüssel erhalten das Präfix si_ und werden als scrypt-Hashes gespeichert. Der Rohschlüssel wird einmal angezeigt und ist danach nie wieder abrufbar.

Auth-Endpunkte

MethodePfadZugriffBeschreibung
POST/api/auth/loginÖffentlichAnmelden, Sitzungs-Token erhalten
POST/api/auth/logoutAuthAktuelle Sitzung beenden
GET/api/auth/sessionAuthAktuelle Sitzung validieren
POST/api/auth/change-passwordAuthEigenes Passwort ändern (macht alle anderen Sitzungen + API-Schlüssel ungültig)
GET/api/auth/usersAdminAlle Benutzer auflisten
POST/api/auth/registerAdminNeuen Benutzer erstellen
PUT/api/auth/users/:idAdminBenutzerrolle oder -team aktualisieren
POST/api/auth/users/:id/reset-passwordAdminPasswort eines Benutzers zurücksetzen
DELETE/api/auth/users/:idAdminEinen Benutzer löschen
GET/api/v1/config/authÖffentlichPrüfen, ob die Authentifizierung aktiviert ist ({ authEnabled: bool })
POST/api/auth/mfa/enrollAuthTOTP-MFA-Registrierung starten. Erfordert das Enterprise-Feature mfa
POST/api/auth/mfa/verifyAuthMFA-Registrierung mit einem TOTP-Code bestätigen
POST/api/auth/mfa/completeÖffentlichEine ausstehende MFA-Login-Challenge abschließen
POST/api/auth/mfa/disableAuthMFA für den aktuellen Benutzer deaktivieren
POST/api/auth/users/:id/mfa/resetAdmin (users:manage)MFA für einen Benutzer zurücksetzen
GET/api/auth/oidc/loginÖffentlichOIDC-Login starten, wenn OIDC aktiviert ist
GET/api/auth/oidc/callbackÖffentlichOIDC-Autorisierungs-Callback
GET/api/auth/saml/metadataÖffentlichSAML-SP-Metadaten-XML, wenn SAML aktiviert ist
GET/api/auth/saml/loginÖffentlichSAML-Login starten
POST/api/auth/saml/callbackÖffentlichSAML Assertion Consumer Service

Wenn MFA für einen Benutzer aktiviert ist, gibt POST /api/auth/login statt eines Sitzungs-Tokens {"requiresMfa":true,"mfaToken":"..."} zurück. Senden Sie dieses mfaToken zusammen mit einem TOTP- oder Wiederherstellungscode an /api/auth/mfa/complete.

Berechtigungen

BerechtigungAdminBenutzer
Tools verwenden
Eigene Dateien/Pipelines/API-Schlüssel
Dateien/Pipelines/Schlüssel aller Benutzer sehen-
Einstellungen schreiben-
Benutzer & Teams verwalten-
Branding verwalten-

Health-Check

MethodePfadZugriffBeschreibung
GET/api/v1/healthÖffentlichGrundlegender Health-Check. Gibt {"status":"healthy","version":"..."} mit 200 zurück oder {"status":"unhealthy"} mit 503, wenn die Datenbank nicht erreichbar ist.
GET/api/v1/readyzÖffentlichReadiness-Probe. Prüft PostgreSQL, Redis, Speicherplatz und S3, sofern konfiguriert. Gibt 503 zurück, wenn die Instanz keinen Datenverkehr erhalten sollte.
GET/api/v1/admin/healthAdmin (system:health)Detaillierte Diagnose einschließlich Betriebszeit, Speichermodus, Datenbankstatus, Warteschlangenstatus und GPU-Verfügbarkeit.

Tools verwenden

Jedes Tool folgt demselben Muster:

bash
# Single file
curl -X POST http://localhost:1349/api/v1/tools/<section>/<toolId> \
  -H "Authorization: Bearer <token>" \
  -F "file=@input.jpg" \
  -F 'settings={"width":800,"height":600}'

# Batch (returns ZIP)
curl -X POST http://localhost:1349/api/v1/tools/<section>/<toolId>/batch \
  -H "Authorization: Bearer <token>" \
  -F "files=@a.jpg" \
  -F "files=@b.jpg" \
  -F 'settings={...}'

<section> ist einer der Werte image, video, audio, pdf oder files.

  • Der Upload ist multipart/form-data.
  • settings ist ein JSON-String mit tool-spezifischen Optionen.
  • clientJobId ist ein optionales Formularfeld für vom Aufrufer bereitgestellte Fortschrittskorrelation.
  • fileId ist ein optionales Formularfeld, das auf ein vorhandenes Element der Dateibibliothek verweist. Wenn vorhanden, wird die verarbeitete Ausgabe als neue Version gespeichert und die Antwort enthält savedFileId.
  • Schnelle Tools geben in der Regel 200-JSON zurück: {"jobId":"...","downloadUrl":"/api/v1/download/<jobId>/<filename>","originalSize":1234,"processedSize":567}. Rufen Sie die verarbeitete Datei von downloadUrl ab.
  • Jedes eingereihte Tool kann 202-JSON zurückgeben, wenn es lange läuft oder das synchrone Warte-Zeitfenster überschreitet: {"jobId":"...","async":true}. Verbinden Sie sich mit SSE für den Fortschritt und laden Sie die Datei nach Abschluss herunter (siehe Fortschrittsverfolgung).
  • Batch-Routen geben ein direkt gestreamtes ZIP-Archiv zurück (mit X-Job-Id-Header) für Tools, die im generischen Batch-Register registriert sind.

Tools-Referenz

Konvertierungs-Presets

Der gemeinsame Katalog enthält 83 dedizierte Konvertierungs-Preset-Endpunkte wie jpg-to-png, mov-to-mp4, m4a-to-mp3, pdf-to-jpg und excel-to-csv. Presets sind vollwertige Tool-Routen:

POST /api/v1/tools/<section>/<presetId>

Jedes Preset legt das Ausgabeformat fest und delegiert an ein Basis-Tool wie convert, convert-video, extract-audio, convert-audio, image-to-pdf, pdf-to-image, svg-to-raster oder convert-spreadsheet. Die vollständige Routentabelle und die optionalen Einstellungen finden Sie unter Konvertierungs-Presets.

Grundlagen

Tool-IDNameWichtige Einstellungen
resizeGröße ändernwidth, height, fit (cover/contain/fill/inside/outside), percentage, withoutEnlargement, plus 23 Social-Media-Presets
cropZuschneidenleft, top, width, height, unit (px/Prozent)
rotateDrehen & Spiegelnangle, horizontal (bool), vertical (bool)
convertKonvertierenformat (jpg/png/webp/avif/tiff/gif/heic/heif), quality
compressKomprimierenmode (quality/targetSize), quality (1–100), targetSizeKb

Optimierung

Tool-IDNameWichtige Einstellungen
optimize-for-webFür Web optimierenformat (webp/jpeg/avif/png), quality, maxWidth, maxHeight, progressive, stripMetadata
strip-metadataMetadaten entfernen-
edit-metadataMetadaten bearbeitentitle, description, author, copyright, keywords, gps (lat/lon), dateTime
bulk-renameMassen-Umbenennungpattern (unterstützt {n}, {date}, {original}), startIndex, padding
image-to-pdfBild zu PDFpageSize (A4/Letter/...), orientation, margin, targetSize ({value, unit})
faviconFavicon-Generatorpadding, backgroundColor, borderRadius - generiert alle Standardgrößen

Anpassungen

Tool-IDNameWichtige Einstellungen
adjust-colorsFarben anpassenbrightness, contrast, exposure, saturation, temperature, tint, hue, sharpness, red, green, blue, effect (none/grayscale/sepia/invert)
sharpeningSchärfenmethod (adaptive/unsharp-mask/high-pass), sigma, m1, m2, x1, y2, y3, amount, radius, threshold, strength, kernelSize (3/5), denoise (off/light/medium/strong)
replace-colorFarbe ersetzensourceColor, targetColor (Ersatz), makeTransparent, tolerance
color-blindnessFarbenblindheits-SimulationsimulationType (protanopia/deuteranopia/tritanopia/protanomaly/deuteranomaly/tritanomaly/achromatopsia/blueConeMonochromacy, Standard "deuteranomaly")
duotoneDuotoneshadow (hex), highlight (hex), intensity (0-100)
pixelateVerpixelnblockSize (2-128), region ({left, top, width, height} für teilweise Verpixelung)
vignetteVignettestrength (0.1-1), color (hex), radius, softness, roundness, centerX, centerY

KI-Tools

Alle KI-Tools laufen auf Ihrer Hardware: standardmäßig auf der CPU oder auf NVIDIA CUDA, wenn eine unterstützte NVIDIA-GPU verfügbar ist. Intel/AMD-iGPU-Beschleunigung über VA-API, Quick Sync oder OpenCL wird für KI-Inferenz derzeit nicht unterstützt. Keine Internetverbindung erforderlich.

Tool-IDNameKI-ModellWichtige Einstellungen
remove-backgroundHintergrund entfernenrembg (BiRefNet / U2-Net)model, backgroundType (transparent/color/gradient/blur/image), backgroundColor, gradientColor1, gradientColor2, gradientAngle, blurEnabled, blurIntensity, shadowEnabled, shadowOpacity
upscaleBild-HochskalierungRealESRGANscale (2/4), model, faceEnhance, denoise, format, quality
erase-objectObjekt-RadiererLaMa (ONNX)Maske als zweiter Datei-Teil gesendet (Feldname mask), format, quality
ocrOCR / TextextraktionTesseract (schnell); RapidOCR + PP-OCR ONNX (ausgewogen/am besten)quality (schnell/ausgewogen/am besten), language, enhance
blur-facesGesichts-/PII-UnschärfeMediaPipeblurRadius, sensitivity
smart-cropSmart CropMediaPipe + Sharpmode (subject/face/trim), strategy (attention/entropy), width, height, padding, facePreset (closeup/head-shoulders/upper-body/half-body), sensitivity, threshold, padToSquare, padColor, targetSize, quality
image-enhancementBildverbesserungAnalysebasiertmode (auto/exposure/contrast/color/sharpness), strength
enhance-facesGesichtsverbesserungGFPGAN / CodeFormermodel (gfpgan/codeformer), strength, sensitivity, centerFace
colorizeKI-KolorierungDDColorintensity, model
noise-removalRauschentfernungGestufte Entrauschungtier (quick/balanced/quality/maximum), strength, detailPreservation, colorNoise, format, quality
red-eye-removalRote-Augen-EntfernungGesichts-Landmarken + Farbanalysesensitivity, strength
restore-photoFotorestaurierungMehrstufige Pipelinemode (auto/light/heavy), scratchRemoval, faceEnhancement, fidelity, denoise, denoiseStrength, colorize
passport-photoPassfotoMediaPipe-LandmarkenZweiphasiger Ablauf. Die Analyse verwendet multipart file; die Generierung verwendet JSON mit countryCode, bgColor, printLayout (none/4x6/a4), Landmarken, Bildabmessungen
content-aware-resizeInhaltsbasierte GrößenänderungSeam Carving (caire)width, height, protectFaces, blurRadius, sobelThreshold, square
transparency-fixerPNG-Transparenz-KorrekturBiRefNet HR-Mattingdefringe (0-100), outputFormat (png/webp)
background-replaceHintergrund ersetzenrembg (BiRefNet)backgroundType (color/gradient), color (hex), gradientColor1, gradientColor2, gradientAngle, feather (0-20), format (png/webp)
blur-backgroundHintergrund weichzeichnenrembg (BiRefNet)intensity (1-100), feather (0-20), format (png/webp)
ai-canvas-expandKI-Leinwand-ErweiterungLaMa (Outpainting)extendTop, extendRight, extendBottom, extendLeft (px), tier (fast/balanced/high), format, quality

Wasserzeichen & Overlay

Tool-IDNameWichtige Einstellungen
watermark-textText-Wasserzeichentext, font, fontSize, color, opacity, position, rotation, tile
watermark-imageBild-Wasserzeichenopacity, position, scale - die zweite Datei ist das Wasserzeichen
text-overlayText-Overlaytext, font, fontSize, color, x, y, background, padding, borderRadius
composeBildkompositionx, y, opacity, blend - die zweite Datei wird darübergelegt
meme-generatorMeme-GeneratortemplateId, textLayout (top-bottom/top-only/bottom-only/center/side-by-side), textBoxes ([{id, text}]), fontFamily (anton/arial-black/comic-sans/montserrat/bebas-neue/permanent-marker/roboto), fontSize, textColor, strokeColor, textAlign, allCaps. Unterstützt den Vorlagenmodus (JSON-Body mit templateId) oder den benutzerdefinierten Bildmodus (multipart mit Datei).

Dienstprogramme

Tool-IDNameWichtige Einstellungen
infoBildinformationen- (gibt Breite, Höhe, Format, Größe, Kanäle, hasAlpha, DPI, EXIF zurück)
compareBildvergleichmode (side-by-side/overlay/diff), diffThreshold - die zweite Datei ist das Vergleichsziel
find-duplicatesDuplikate findenthreshold (Abstand des perzeptuellen Hashs, Standard 8) - Mehrfachdatei
color-paletteFarbpalettecount (Anzahl der dominanten Farben), format (hex/rgb)
qr-generateQR-Code-Generatordata, size, margin, colorDark, colorLight, errorCorrectionLevel, dotStyle, cornerStyle, logo (optionale Datei)
barcode-readBarcode-Leser- (erkennt automatisch QR, EAN, Code128, DataMatrix usw.)
image-to-base64Bild zu Base64format (data-uri/plain), mimeType
html-to-imageHTML zu Bildurl, format (png/jpg/webp), quality, fullPage, devicePreset (desktop/tablet/mobile/custom), viewportWidth, viewportHeight
histogramHistogrammscale (linear/log) - gibt RGB-Histogramm-Diagramm + Statistiken pro Kanal zurück
lqip-placeholderLQIP-Platzhalterwidth (4-64), blur, strategy (blur/pixelate/solid), format (webp/png/jpeg), quality
barcode-generateBarcode-Generatortext, type (code128/ean13/upca/code39/itf14/datamatrix), scale (1-8), includeText (bool). JSON-Body, kein Datei-Upload.

Layout & Komposition

Tool-IDNameWichtige Einstellungen
collageCollage / Rastertemplate (25+ Layouts), gap, backgroundColor, borderRadius - Mehrfachdatei
stitchZusammenfügen / Kombinierendirection (horizontal/vertical/grid), gap, backgroundColor, alignment - Mehrfachdatei
splitBildaufteilungmode (grid/rows/cols), rows, cols, tileWidth, tileHeight
borderRand & Rahmenwidth, color, style (solid/gradient/pattern), borderRadius, padding, shadow
beautifyScreenshot verschönernbackgroundType (solid/linear-gradient/radial-gradient/image/transparent), gradientStops, padding, borderRadius, shadowPreset, frame (none/macos-light/macos-dark/windows-light/windows-dark/browser-light/browser-dark/iphone/macbook/ipad/...), socialPreset (none/twitter/linkedin/instagram-square/instagram-story/facebook/producthunt), watermarkText, outputFormat
circle-cropKreis-Zuschnittzoom (1-5), offsetX, offsetY, borderWidth, borderColor, background (transparent/hex), outputSize
image-padBild auffüllentarget (16:9/9:16/1:1/4:3/3:4/custom), ratioW, ratioH, background (color/transparent/blur), color (hex), padding (0-50%)
sprite-sheetSprite-Sheetcolumns (1-16), padding, background (hex), format (png/webp/jpeg), quality - Mehrfachdatei (2-64 Bilder)

Format & Konvertierung

Tool-IDNameWichtige Einstellungen
svg-to-rasterSVG zu Rasterformat (png/jpeg/webp/avif/tiff/gif/heif), width, height, scale, dpi, background
vectorizeBild zu SVGcolorMode (bw/color), threshold, colorPrecision, filterSpeckle, pathMode (none/polygon/spline)
gif-toolsGIF-Toolsaction (resize/optimize/reverse/speed/extract-frames/rotate/add-text), aktionsspezifische Parameter
gif-webpGIF/WebP-Konverterquality (1-100), lossless (bool), resizePercent (10-100)

Video-Tools

Tool-IDNameWichtige Einstellungen
convert-videoVideo konvertierenformat (mp4/mov/webm/avi/mkv), quality (high/balanced/small)
compress-videoVideo komprimierenquality (light/balanced/strong), resolution (original/1080p/720p/480p)
trim-videoVideo zuschneidenstartS, endS, precise (bool, bildgenauer Schnitt)
mute-videoVideo stummschalten-
video-to-gifVideo zu GIFfps (1-30), width, startS, durationS (max. 60s)
resize-videoVideo-Größe ändernwidth, height, preset (custom/2160p/1440p/1080p/720p/480p/360p)
crop-videoVideo zuschneiden (Crop)width, height, x, y
rotate-videoVideo drehentransform (cw90/ccw90/180/hflip/vflip)
change-fpsFPS ändernfps (1-120)
video-colorVideo-Farbebrightness, contrast, saturation, gamma
video-speedVideo-Geschwindigkeitfactor (0.25-4), keepPitch (bool)
reverse-videoVideo umkehren- (max. 5 Minuten)
video-loudnormAudio normalisieren- (EBU R128)
aspect-padSeitenverhältnis auffüllentarget (16:9/9:16/1:1/4:3/3:4), color (hex)
blur-padUnschärfe-Auffüllungtarget (16:9/9:16/1:1/4:3/3:4), blur (2-50)
watermark-videoVideo mit Wasserzeichentext, position, fontSize, opacity, color
stabilize-videoVideo stabilisierensmoothing (5-60, in Frames)
gif-to-videoGIF zu Videoformat (mp4/webm/mov)
video-to-webpVideo zu WebPfps, width, quality, loop (bool)
video-to-framesVideo zu Framesmode (all/nth/timestamps), n, timestamps, format (png/jpg)
merge-videosVideos zusammenführen- (Mehrfachdatei, auf die Auflösung des ersten Videos normalisiert)
replace-audioAudio ersetzen- (Video- + Audiodatei, zwei Dateien)
burn-subtitlesUntertitel einbrennenfontSize (8-72) - Video- + Untertiteldatei
embed-subtitlesUntertitel einbettenlanguage (ISO-639-2/B-Code) - Video- + Untertiteldatei
extract-subtitlesUntertitel extrahieren- (gibt SRT aus)
images-to-videoBilder zu VideosecondsPerImage (0.5-10), resolution (1080p/720p/square), fps - Mehrfachdatei
video-metadataVideo-Metadaten bereinigen-
auto-subtitlesAuto-Untertitel (KI)language (auto/en/de/fr/es/zh/ja/ko/id/th/vi), format (srt/vtt)
extract-audioAudio extrahierenformat (mp3/wav/m4a/ogg)

Audio-Tools

Tool-IDNameWichtige Einstellungen
convert-audioAudio konvertierenformat (mp3/wav/ogg/flac/m4a), bitrateKbps (32-320)
trim-audioAudio zuschneidenstartS, endS
volume-adjustLautstärke anpassengainDb (-30 bis 30)
normalize-audioAudio normalisieren- (EBU R128, -16 LUFS)
fade-audioAudio ein-/ausblendenfadeInS (0-30), fadeOutS (0-30)
reverse-audioAudio umkehren-
audio-speedAudio-Geschwindigkeitfactor (0.25-4)
pitch-shiftTonhöhe verschiebensemitones (-12 bis 12)
audio-channelsAudio-Kanälemode (stereo-to-mono/mono-to-stereo/swap)
silence-removalStille entfernenthresholdDb (-80 bis -20), minSilenceS (0.1-5)
noise-reductionRauschunterdrückungstrength (light/medium/strong)
merge-audioAudio zusammenführenformat (mp3/wav/flac/m4a) - Mehrfachdatei
split-audioAudio aufteilenmode (time/parts/silence), segmentS, parts, thresholdDb, minSilenceS
ringtone-makerKlingelton-ErstellerstartS, durationS (1-30)
waveform-imageWellenform-Bildwidth, height, color (hex)
audio-metadataAudio-Metadatenstrip (bool), title, artist, album
transcribe-audioAudio transkribieren (KI)language (auto/en/de/fr/es/zh/ja/ko/id/th/vi), outputFormat (txt/srt/vtt)

Dokument-Tools

Tool-IDNameWichtige Einstellungen
merge-pdfPDFs zusammenführen- (Mehrfachdatei, bis zu 20 PDFs)
split-pdfPDF aufteilenmode (range/every), range, everyN (1-500)
compress-pdfPDF komprimierenmode (quality/targetSize), quality (1-100), targetSizeKb
rotate-pdfPDF drehenangle (90/180/270), range (Seitenbereich)
extract-pagesSeiten extrahierenrange (qpdf-Syntax, z.B. "1-5,8,10-z")
remove-pagesSeiten entfernenpages (zu entfernender qpdf-Bereich)
organize-pdfPDF organisierenorder (qpdf-Seitenreihenfolge, z.B. "3,1,2,5-z")
protect-pdfPDF schützenuserPassword, ownerPassword (AES-256)
unlock-pdfPDF entsperrenpassword
repair-pdfPDF reparieren-
linearize-pdfPDF für Web optimieren- (linearisieren für schnelle Web-Anzeige)
grayscale-pdfPDF in Graustufen-
pdfa-convertPDF/A konvertieren- (Archiv-PDF/A-2)
crop-pdfPDF zuschneidenmargin (0-2000 Punkte)
nup-pdfN-up PDFperSheet (2/3/4/8/9/12/16)
booklet-pdfBroschüren-PDFperSheet (2/4/6/8)
watermark-pdfPDF mit Wasserzeichentext, position, fontSize, opacity, rotation
pdf-page-numbersPDF-Seitenzahlenposition (bl/bc/br/tl/tc/tr), fontSize
flatten-pdfPDF reduzieren (Flatten)- (fixiert Formulare und Anmerkungen)
redact-pdfPDF schwärzen (Redact)terms (string[]), caseSensitive (bool)
sign-pdfPDF signierenBenutzerdefinierte multipart-Route mit PDF file, Signaturdateien sig0, sig1 und placements JSON-Array
pdf-to-textPDF zu Text-
pdf-to-wordPDF zu Word-
pdf-metadataPDF-Metadatentitle, author, subject, keywords
convert-documentDokument konvertierenformat (docx/odt/rtf/txt)
convert-presentationPräsentation konvertierenformat (pptx/odp)
convert-spreadsheetTabellenkalkulation konvertierenformat (xlsx/ods/csv)
excel-to-pdfExcel zu PDF-
word-to-pdfWord zu PDF-
powerpoint-to-pdfPowerPoint zu PDF-
html-to-pdfHTML zu PDF- (Remote-Ressourcen deaktiviert)
markdown-to-docxMarkdown zu Word-
markdown-to-htmlMarkdown zu HTML-
markdown-to-pdfMarkdown zu PDF- (Remote-Ressourcen deaktiviert)
epub-convertEPUB konvertierenformat (pdf/docx/html/md)
to-epubZu EPUB konvertieren- (akzeptiert .docx, .md, .html, .txt)
ocr-pdfPDF-OCR (KI)quality (fast/balanced/best), language (auto/en/de/fr/es/zh/ja/ko), pages
pdf-to-imagePDF zu Bildpages (all/range), format, dpi, quality
pdf-to-jpgPDF zu JPGpages, dpi, quality, colorMode
pdf-to-pngPDF zu PNGpages, dpi, quality, colorMode
pdf-to-tiffPDF zu TIFFpages, dpi, quality, colorMode

Datei-Tools

Tool-IDNameWichtige Einstellungen
chart-makerDiagramm-Erstellerkind (bar/line/pie), title, width, height
csv-excelCSV zu Excelsheet (Arbeitsblattnummer für XLSX-Eingabe) - bidirektional
csv-jsonCSV zu JSONpretty (bool) - bidirektional
json-xmlJSON zu XMLpretty (bool) - bidirektional
split-csvCSV aufteilenrowsPerFile (1-1000000), keepHeader (bool)
merge-csvsCSVs zusammenführen- (Mehrfachdatei, übereinstimmende Spalten)
yaml-jsonYAML / JSON- (bidirektional)
xml-to-csvXML zu CSV- (findet automatisch sich wiederholende Elemente)
excel-to-csvExcel zu CSVdediziertes Konvertierungs-Preset, gestützt auf convert-spreadsheet
create-zipZIP erstellen- (Mehrfachdatei, 2-50 Dateien)
extract-zipZIP extrahieren- (Bomben-geschützt)

HTML zu Bild

Eine Webseite als Bild erfassen. Anders als andere Tools akzeptiert dieser Endpunkt application/json statt multipart-Formulardaten (kein Datei-Upload erforderlich).

Endpunkt: POST /api/v1/tools/image/html-to-image

Content-Type: application/json

ParameterTypStandardBeschreibung
urlstring(erforderlich)Zu erfassende URL (nur http/https)
formatstring"png"Ausgabeformat: jpg, png, webp
qualitynumber90Qualität 1-100 (nur JPG/WebP)
fullPagebooleanfalseVollständige scrollbare Seite erfassen
devicePresetstring"desktop"desktop, tablet, mobile, custom
viewportWidthnumber1280Benutzerdefinierte Viewport-Breite 320-3840
viewportHeightnumber720Benutzerdefinierte Viewport-Höhe 320-2160

Beispiel:

bash
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://snapotter.com", "format": "png", "devicePreset": "desktop"}'

Antwort:

json
{
  "jobId": "uuid",
  "downloadUrl": "/api/v1/download/{jobId}/screenshot.png",
  "originalSize": 0,
  "processedSize": 54321
}

Tool-Unterrouten

Einige Tools stellen zusätzliche Endpunkte über die Standard-POST /api/v1/tools/<section>/<toolId> hinaus bereit:

MethodePfadBeschreibung
GET/api/v1/tools/popularBeliebte Tool-IDs zurückgeben, mit Rückfall auf eine kuratierte Standardliste, wenn Nutzungsdaten spärlich sind
POST/api/v1/tools/image/remove-background/effectsHintergrundeffekte (color/gradient/blur/shadow) anwenden, ohne die KI erneut auszuführen. Verwendet die zwischengespeicherte Maske aus der ursprünglichen Entfernung.
POST/api/v1/tools/image/edit-metadata/inspectVorhandene EXIF/IPTC/XMP-Metadaten aus einem Bild lesen
POST/api/v1/tools/image/strip-metadata/inspectMetadatenfelder vor dem Entfernen prüfen
POST/api/v1/tools/image/passport-photo/analyzePhase 1: KI-Gesichtserkennung + Hintergrundentfernung. Gibt Gesichts-Landmarken und zwischengespeicherte Daten zurück.
POST/api/v1/tools/image/passport-photo/generatePhase 2: Zuschneiden, Größe ändern und Kacheln mit zwischengespeicherter Analyse. Keine erneute KI-Ausführung.
POST/api/v1/tools/image/gif-tools/infoGIF-Metadaten abrufen (Frame-Anzahl, Abmessungen, Dauer)
POST/api/v1/tools/pdf/pdf-to-image/infoPDF-Metadaten abrufen (Seitenanzahl, Abmessungen)
POST/api/v1/tools/pdf/pdf-to-image/previewEine Vorschau einer bestimmten PDF-Seite erzeugen
POST/api/v1/tools/pdf/pdf-to-jpg/infoPDF-Metadaten für das dedizierte JPG-Preset abrufen
POST/api/v1/tools/pdf/pdf-to-jpg/previewEine JPG-Preset-PDF-Seitenvorschau erzeugen
POST/api/v1/tools/pdf/pdf-to-png/infoPDF-Metadaten für das dedizierte PNG-Preset abrufen
POST/api/v1/tools/pdf/pdf-to-png/previewEine PNG-Preset-PDF-Seitenvorschau erzeugen
POST/api/v1/tools/pdf/pdf-to-tiff/infoPDF-Metadaten für das dedizierte TIFF-Preset abrufen
POST/api/v1/tools/pdf/pdf-to-tiff/previewEine TIFF-Preset-PDF-Seitenvorschau erzeugen
POST/api/v1/tools/image/svg-to-raster/batchMehrere SVGs im Stapel in Raster konvertieren
POST/api/v1/tools/image/image-enhancement/analyzeBildqualität analysieren und Verbesserungsempfehlungen zurückgeben
POST/api/v1/tools/image/optimize-for-web/previewLeichtgewichtige Vorschau für die Live-Parameteranpassung. Gibt ein optimiertes Bild mit Größen-Headern zurück.

Stapelverarbeitung

Wenden Sie ein generisches batch-fähiges Tool auf mehrere Dateien gleichzeitig an. Gibt ein ZIP-Archiv zurück. Benutzerdefinierte Mehrfachdatei- oder mehrstufige Routen wie PDF-Signierung und PDF-zu-Bild-Preset-Routen verwenden ihren eigenen Endpunkt-Vertrag anstelle der generischen /batch-Route.

Das Tool ocr-pdf unterstützt diese generische /batch-Route.

bash
curl -X POST http://localhost:1349/api/v1/tools/image/compress/batch \
  -H "Authorization: Bearer <token>" \
  -F "files=@a.jpg" \
  -F "files=@b.jpg" \
  -F "files=@c.jpg" \
  -F 'settings={"quality":80}'

Die Nebenläufigkeit wird durch CONCURRENT_JOBS gesteuert (Standard: automatisch anhand der CPU-Kerne erkannt). MAX_BATCH_SIZE begrenzt die Anzahl der Dateien pro Stapel (Standard: 100; 0 für unbegrenzt setzen).

Pipelines

Eine Pipeline ausführen

bash
# Single file
curl -X POST http://localhost:1349/api/v1/pipeline/execute \
  -H "Authorization: Bearer <token>" \
  -F "file=@input.jpg" \
  -F 'pipeline={"steps":[
    {"toolId":"resize","settings":{"width":1200}},
    {"toolId":"compress","settings":{"quality":80}},
    {"toolId":"watermark-text","settings":{"text":"© 2025"}}
  ]}'

# Batch (multiple files → ZIP)
curl -X POST http://localhost:1349/api/v1/pipeline/batch \
  -H "Authorization: Bearer <token>" \
  -F "files=@a.jpg" \
  -F "files=@b.jpg" \
  -F 'pipeline={"steps":[{"toolId":"resize","settings":{"width":800}}]}'

Die Ausgabe jedes Schritts ist die Eingabe des nächsten Schritts. Pipelines erlauben standardmäßig 20 Schritte, konfigurierbar über MAX_PIPELINE_STEPS. Setzen Sie MAX_PIPELINE_STEPS=0, um das Limit aufzuheben.

Pipelines speichern und verwalten

MethodePfadBeschreibung
POST/api/v1/pipeline/saveEine benannte Pipeline speichern (name, description, steps[])
GET/api/v1/pipeline/listGespeicherte Pipelines auflisten (Admins sehen alle; Benutzer sehen eigene)
DELETE/api/v1/pipeline/:idLöschen (Eigentümer oder Admin)
GET/api/v1/pipeline/toolsTool-IDs auflisten, die für Pipeline-Schritte gültig sind

Fortschrittsverfolgung

Lang laufende Jobs, eingereihte Tools, Batch-Jobs und Pipelines geben Echtzeit-Fortschritt über Server-Sent Events aus. Der Fortschritts-Stream ist öffentlich und wird über die Job-ID gekennzeichnet, sodass Clients keinen Authorization-Header senden müssen, um ihn zu lesen.

bash
# Connect to the SSE stream (jobId is in the JSON response body from the tool endpoint)
curl -N http://localhost:1349/api/v1/jobs/<jobId>/progress

Ereignisformat:

data: {"jobId":"...","type":"single","phase":"processing","stage":"Upscaling","percent":42}
data: {"jobId":"...","type":"single","phase":"complete","percent":100,"result":{"downloadUrl":"/api/v1/download/..."}}
data: {"jobId":"...","type":"batch","status":"processing","completedFiles":2,"totalFiles":5,"failedFiles":0,"errors":[]}

Sie können den Abbruch eines eingereihten oder laufenden Jobs mit POST /api/v1/jobs/:jobId/cancel anfordern. Die Antwort ist {"canceled":true|false}.

Dateibibliothek

Dauerhafte Dateispeicherung mit Versionsverlauf.

MethodePfadBeschreibung
POST/api/v1/uploadDateien in den Arbeitsbereich hochladen (temporäre Verarbeitung)
POST/api/v1/files/uploadDateien in die dauerhafte Dateibibliothek hochladen
POST/api/v1/files/save-resultEin Tool-Verarbeitungsergebnis als neue Dateiversion speichern
GET/api/v1/filesGespeicherte Dateien auflisten (paginiert, mit Suche)
GET/api/v1/files/:idDateimetadaten + Versionskette abrufen
GET/api/v1/files/:id/downloadDatei herunterladen
GET/api/v1/files/:id/thumbnail300px-JPEG-Thumbnail abrufen
DELETE/api/v1/filesDateien und ihre Versionsketten massenhaft löschen (Body: { ids: [...] })
POST/api/v1/fetch-urlsRemote-URLs in den Arbeitsbereich abrufen für URL-basierte Importe
POST/api/v1/previewEine browserkompatible WebP-Vorschau erzeugen (für HEIC/HEIF/RAW-Formate)
GET/api/v1/files/:id/previewEine zwischengespeicherte oder erzeugte browserkompatible Vorschau für eine gespeicherte PDF-, Office-Dokument-, Video- oder Audiodatei streamen
POST/api/v1/preview/generateEine On-Demand-MP4- oder -MP3-Vorschau für eine hochgeladene Mediendatei erzeugen, ohne sie zuerst zu speichern
GET/api/v1/download/:jobId/:filenameEine verarbeitete Datei aus einem Arbeitsbereich herunterladen

Um ein Tool-Ergebnis automatisch in der Bibliothek zu speichern, fügen Sie fileId als multipart-Formularfeld hinzu, das auf eine vorhandene Bibliotheksdatei verweist. Das verarbeitete Ergebnis wird als neue Version gespeichert.

API-Schlüssel-Verwaltung

MethodePfadZugriffBeschreibung
POST/api/v1/api-keysAuthNeuen Schlüssel generieren - einmal angezeigt
GET/api/v1/api-keysAuthSchlüssel auflisten (Name, id, lastUsedAt - nicht der Rohschlüssel)
DELETE/api/v1/api-keys/:idAuthSchlüssel löschen

Teams

MethodePfadZugriffBeschreibung
GET/api/v1/teamsAdmin (teams:manage)Teams auflisten
POST/api/v1/teamsAdmin (teams:manage)Team erstellen
PUT/api/v1/teams/:idAdmin (teams:manage)Team umbenennen
DELETE/api/v1/teams/:idAdmin (teams:manage)Team löschen (Standard-Team oder Teams mit Mitgliedern können nicht gelöscht werden)

Einstellungen

Die Laufzeitkonfiguration verwendet eine geschlossene Menge erkannter Schlüssel. Zum Lesen ist settings:read und zum Schreiben settings:write erforderlich; Sicherheits- und Compliance-Schlüssel erfordern zusätzlich security:manage bzw. compliance:manage. Geheime Einstellungen erfordern die vollständige Administratorberechtigung, während Zugangsdaten und Zustände, die von dedizierten Endpunkten verwaltet werden, hier schreibgeschützt sind. Massenaktualisierungen werden vollständig validiert, bevor ein Wert geschrieben wird.

MethodePfadBeschreibung
GET/api/v1/settingsAlle Einstellungen abrufen
PUT/api/v1/settingsEinstellungen massenhaft aktualisieren (JSON-Body mit Schlüssel-Wert-Paaren)
GET/api/v1/settings/:keyEine bestimmte Einstellung nach Schlüssel abrufen

Beispielschlüssel: disabledTools (JSON-Array von Tool-IDs), enableExperimentalTools (boolescher Wert), loginAttemptLimit (Sicherheitsrichtlinie) und auditRetentionDays (Compliance-Richtlinie). Unbekannte Schlüssel werden abgelehnt.

Einstellungen (Preferences)

Benutzerspezifische Einstellungen sind von den Instanzeinstellungen getrennt. Jeder authentifizierte Benutzer kann seine eigene Einstellungs-Map lesen und aktualisieren.

MethodePfadBeschreibung
GET/api/v1/preferencesDie Einstellungen des aktuellen Benutzers als { "preferences": { ... } } abrufen
PUT/api/v1/preferencesEinen oder mehrere Einstellungsschlüssel für den aktuellen Benutzer per Upsert setzen

Rollen

Benutzerdefinierte Rollenverwaltung mit granularen Berechtigungen.

MethodePfadZugriffBeschreibung
GET/api/v1/rolesAdmin (audit:read)Alle Rollen mit Benutzeranzahl auflisten
POST/api/v1/rolesAdmin (security:manage)Eine benutzerdefinierte Rolle erstellen (name, description, permissions)
PUT/api/v1/roles/:idAdmin (security:manage)Eine benutzerdefinierte Rolle aktualisieren (integrierte Rollen können nicht geändert werden)
DELETE/api/v1/roles/:idAdmin (security:manage)Eine benutzerdefinierte Rolle löschen (integrierte Rollen können nicht gelöscht werden; betroffene Benutzer fallen auf die Rolle user zurück)

Verfügbare Berechtigungen (17): tools:use, files:own, files:all, apikeys:own, apikeys:all, pipelines:own, pipelines:all, settings:read, settings:write, users:manage, teams:manage, features:manage, system:health, audit:read, compliance:manage, webhooks:manage, security:manage.

Audit-Log

Nur für Admins verfügbarer Endpunkt zur Überprüfung sicherheitsrelevanter Aktionen.

MethodePfadZugriffBeschreibung
GET/api/v1/audit-logAdmin (audit:read)Paginiertes Audit-Log mit optionalen Filtern

Abfrageparameter:

ParameterBeschreibung
pageSeitennummer (Standard: 1)
limitEinträge pro Seite (Standard: 50, max.: 100)
actionNach Aktionstyp filtern (z.B. ROLE_CREATED, ROLE_DELETED)
ipNach Quell-IP-Adresse filtern
fromEinträge nach diesem ISO-8601-Datum filtern
toEinträge vor diesem ISO-8601-Datum filtern

Analytics

MethodePfadZugriffBeschreibung
GET/api/v1/config/analyticsÖffentlichDie effektive Analytics-Konfiguration abrufen (PostHog-Schlüssel, Sentry-DSN, Abtastrate). Schlüssel, DSN und Instanz-ID sind leer, wenn Analytics deaktiviert ist, entweder durch das Kompilierzeit-Baking oder die Instanzeinstellung analyticsEnabled.
POST/api/v1/feedbackAuthExplizites Benutzer-Feedback an das konfigurierte PostHog-Projekt als feedback_submitted übermitteln. Die Route beachtet das Analytics-Gate, begrenzt die Übermittlungsrate, entfernt Kontaktfelder, sofern contactOk nicht true ist, und akzeptiert niemals Dateiinhalte, Dateinamen, Upload-Pfade oder rohen privaten Fehlertext. Wenn Analytics deaktiviert ist, gibt sie { "ok": true, "accepted": false } zurück.
PUT/api/v1/settingsAdmin (settings:write)Den instanzweiten Opt-out setzen. Senden Sie einen JSON-Body { "analyticsEnabled": "false" }, um Analytics für alle zu deaktivieren, oder "true", um es wieder zu aktivieren.

Features / KI-Bundles

KI-Feature-Bundles verwalten (KI-Modellpakete in der Docker-Umgebung installieren/deinstallieren). Bevorzugen Sie den Tool-Level-Installationsendpunkt, wenn Sie ein Tool aus benutzerdefinierter Automatisierung aktivieren: Einige KI-Tools benötigen mehr als ein gemeinsames Bundle, und dieser Endpunkt überspringt bereits installierte Bundles und reiht nur die fehlenden ein.

OCR ist eine optionale Erweiterung und keine feste Abhängigkeit. Seine fast Tesseract-Stufe funktioniert ohne Packung; POST /api/v1/admin/features/ocr/install installiert das signierte RapidOCR-Paket für balanced und best auf Linux amd64 oder arm64. Die genaue OCR-Laufzeit verwendet CPU auf reinen CPU- und NVIDIA-Hosts und erfordert mindestens 4 GiB effektiven Speicher (das konfigurierte Container-cgroup-Limit, andernfalls Hostspeicher). SnapOtter meldet requiredMemoryBytes, effectiveMemoryBytes und einen insufficient-memory-Kompatibilitätsgrund und lehnt eine inkompatible Installation vor dem Download ab. Dieser Speicherbedarf gilt nicht für fast. Das Paket muss je nach Ziel zwischen 208 und 234 MiB heruntergeladen und zwischen 409 und 488 MiB installiert werden. Der signierte Index bindet die genauen Größen, die während der Installation erzwungen werden.

MethodePfadZugriffBeschreibung
GET/api/v1/featuresAuthAlle Feature-Bundles und ihren Installationsstatus auflisten
POST/api/v1/admin/features/:bundleId/installAdmin (features:manage)Ein Feature-Bundle installieren (asynchron, gibt jobId zur Fortschrittsverfolgung zurück)
POST/api/v1/admin/tools/:toolId/features/installAdmin (features:manage)Jedes von einem Tool benötigte Bundle installieren; gibt den Status queued/skipped pro Bundle zurück
POST/api/v1/admin/features/:bundleId/uninstallAdmin (features:manage)Ein Feature-Bundle deinstallieren und Modelldateien bereinigen
GET/api/v1/admin/features/disk-usageAdmin (features:manage)Den gesamten Speicherplatzverbrauch der KI-Modelle abrufen
POST/api/v1/admin/features/importAdmin (features:manage)Importieren Sie ein Legacy-KI-Bundle (file) oder eine signierte Offline-OCR-Version (index plus archive).

Ein Air-Gap-OCR-Import muss das signierte ocr-runtime-index.json der Version und das passende Plattformarchiv enthalten. SnapOtter wendet dieselben Ed25519-Signatur-, Artefakt-Hash-, Kompatibilitäts-, Extraktions- und Rauchtestprüfungen an, die auch bei der Online-Installation verwendet werden:

bash
curl -X POST http://localhost:1349/api/v1/admin/features/import \
  -H "Authorization: Bearer <admin-token>" \
  -F "index=@ocr-runtime-index.json" \
  -F "archive=@ocr-linux-amd64-cpu-py312.tar.gz"

Verwenden Sie das linux-arm64-cpu-py311-Archiv auf arm64. Ein signiertes Artefakt für ein anderes Ziel wird abgelehnt und nicht installiert.

Admin-Operationen

Operative Endpunkte für Observability, Support, Nutzungsberichte und Backup-Status.

MethodePfadZugriffBeschreibung
GET/api/v1/admin/log-levelAdmin (settings:write)Das aktuelle Laufzeit-Log-Level lesen
POST/api/v1/admin/log-levelAdmin (settings:write)Das Laufzeit-Log-Level ändern (fatal, error, warn, info, debug, trace oder silent)
GET/api/v1/metricsAdmin (system:health)Prometheus-Metriken im Textformat
GET/api/v1/admin/support-bundleAdmin (system:health)Ein redigiertes diagnostisches Support-Bundle-ZIP herunterladen
GET/api/v1/admin/usageAdmin (audit:read)Daten des Nutzungs-Dashboards, mit optionalem Abfrageparameter days
GET/api/v1/admin/backup-statusAdmin (system:health)Metadaten und Aktualitätsstatus des letzten Backups lesen
POST/api/v1/admin/backup-statusAdmin (system:health)Ein abgeschlossenes Backup erfassen (type, optional sizeBytes, optional notes)

Enterprise-APIs

Diese Routen sind durch das zugehörige Enterprise-Feature lizenzgesteuert. Sie erfordern weiterhin die aufgeführte SnapOtter-Berechtigung.

Vollständiger integrierter Admin bedeutet, dass der authentifizierte Akteur die Rolle admin und den vollständigen effektiven Satz von Admin-Berechtigungen besitzt. Ein API-Schlüsselbereich, der auch nur eine Admin-Berechtigung auslässt, erfüllt die Anforderungen nicht.

MethodePfadZugriffBeschreibung
GET/api/v1/enterprise/audit/exportAdmin (audit:read)Audit-Einträge als JSON oder CSV mit Filtern exportieren
GET/api/v1/enterprise/config/exportVollständiger integrierter AdminRedigierte Instanzkonfiguration, benutzerdefinierte Rollen und Teams exportieren
POST/api/v1/enterprise/config/importVollständiger integrierter AdminKonfiguration importieren, mit optionalem Probelauf
GET/api/v1/enterprise/ip-allowlistAdmin (security:manage)Konfigurierte CIDR-Erlaubnisliste lesen
PUT/api/v1/enterprise/ip-allowlistAdmin (security:manage)CIDR-Erlaubnisliste mit Selbstsperrungs-Prävention aktualisieren
GET/api/v1/enterprise/legal-holdAdmin (compliance:manage)Legal Holds für Benutzer und Teams auflisten
PUT/api/v1/enterprise/legal-holdAdmin (compliance:manage)Einen Legal Hold auf einen Benutzer oder ein Team anwenden oder aufheben
POST/api/v1/enterprise/scim/tokenAdmin (users:manage)Ein SCIM-Bearer-Token generieren, einmal zurückgegeben
DELETE/api/v1/enterprise/scim/tokenAdmin (users:manage)Das aktuelle SCIM-Bearer-Token widerrufen
GET/api/v1/enterprise/siem/configAdmin (webhooks:manage)SIEM-Weiterleitungskonfiguration lesen
PUT/api/v1/enterprise/siem/configAdmin (webhooks:manage)SIEM-Weiterleitungskonfiguration aktualisieren
GET/api/v1/enterprise/webhooksAdmin (webhooks:manage)Webhook-Ziele auflisten
POST/api/v1/enterprise/webhooksAdmin (webhooks:manage)Ein Webhook-Ziel erstellen
PUT/api/v1/enterprise/webhooks/:indexAdmin (webhooks:manage)Ein Webhook-Ziel aktualisieren
DELETE/api/v1/enterprise/webhooks/:indexAdmin (webhooks:manage)Ein Webhook-Ziel löschen
POST/api/v1/enterprise/webhooks/:index/testAdmin (webhooks:manage)Eine Test-Webhook-Nutzlast senden
POST/api/v1/enterprise/users/:id/exportAdmin (compliance:manage)Einen GDPR-Benutzerexport-Job starten
GET/api/v1/enterprise/users/:id/export/:jobIdAdmin (compliance:manage)GDPR-Exportstatus und Download-URL lesen
DELETE/api/v1/enterprise/users/:id/purgeAdmin (compliance:manage)Die Daten eines Benutzers nach Bestätigung dauerhaft löschen
DELETE/api/v1/enterprise/teams/:id/purgeAdmin (compliance:manage)Die Daten eines Teams nach Bestätigung dauerhaft löschen
GET/api/v1/admin/versionAdmin (system:health)App-, Build-, Node- und Schema-Versionsmetadaten lesen
GET/api/v1/admin/migrations/pendingAdmin (system:health)Verpackte Migrationen mit angewendeten Migrationen vergleichen
GET/api/v1/admin/upgrade-checkAdmin (system:health)Upgrade-Bereitschaftsprüfungen ausführen

SCIM 2.0

SCIM-Discovery-Endpunkte sind öffentlich. Benutzer- und Gruppenendpunkte erfordern das oben generierte SCIM-Bearer-Token.

MethodePfadZugriffBeschreibung
GET/api/v1/scim/v2/ServiceProviderConfigÖffentlichSCIM-Server-Fähigkeiten
GET/api/v1/scim/v2/SchemasÖffentlichSCIM-Schema-Discovery
GET/api/v1/scim/v2/ResourceTypesÖffentlichSCIM-Ressourcentyp-Discovery
GET/api/v1/scim/v2/UsersSCIM-TokenBenutzer auflisten, mit optionalem SCIM-Filter
POST/api/v1/scim/v2/UsersSCIM-TokenEinen Benutzer erstellen
GET/api/v1/scim/v2/Users/:idSCIM-TokenEinen Benutzer abrufen
PUT/api/v1/scim/v2/Users/:idSCIM-TokenEinen Benutzer ersetzen
DELETE/api/v1/scim/v2/Users/:idSCIM-TokenEinen Benutzer soft deaktivieren
GET/api/v1/scim/v2/GroupsSCIM-TokenTeams als SCIM-Gruppen auflisten
POST/api/v1/scim/v2/GroupsSCIM-TokenEin Team erstellen
GET/api/v1/scim/v2/Groups/:idSCIM-TokenEin Team abrufen
PUT/api/v1/scim/v2/Groups/:idSCIM-TokenEin Team und die Gruppenmitgliedschaft ersetzen
DELETE/api/v1/scim/v2/Groups/:idSCIM-TokenEin Team löschen

Meme-Vorlagen

Unterstützende API für das Meme-Generator-Tool.

MethodePfadZugriffBeschreibung
GET/api/v1/meme-templatesAuthAlle verfügbaren Meme-Vorlagen mit Textfeld-Positionen auflisten
GET/api/v1/meme-templates/full/:filenameAuthVollständiges Vorlagenbild bereitstellen
GET/api/v1/meme-templates/thumbs/:filenameAuthVorlagen-Thumbnail bereitstellen
GET/api/v1/meme-templates/fonts/:filenameAuthSchriftdatei für das Rendering von Meme-Text bereitstellen

Fehlerantworten

Alle Fehler geben JSON zurück:

json
{
  "error": "Human-readable message",
  "code": "MACHINE_READABLE_CODE"
}
StatusBedeutung
400Ungültige Anfrage / Validierung fehlgeschlagen
401Nicht authentifiziert
403Unzureichende Berechtigungen
404Ressource nicht gefunden
413Datei zu groß (siehe MAX_UPLOAD_SIZE_MB)
422Verarbeitung nach der Validierung fehlgeschlagen
429Ratenbegrenzt (siehe RATE_LIMIT_PER_MIN)
501Erforderliches KI-Feature-Bundle ist nicht installiert (FEATURE_NOT_INSTALLED)
500Interner Serverfehler