This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

Dokumentacja API REST

Interaktywna dokumentacja API z przykładami żądań i odpowiedzi jest dostępna pod adresem http://localhost:1349/api/docs.

Specyfikacje odczytywalne maszynowo:

  • /api/v1/openapi.yaml - specyfikacja OpenAPI 3.1
  • /llms.txt - podsumowanie przyjazne dla LLM
  • /llms-full.txt - kompletna dokumentacja przyjazna dla LLM

Uwierzytelnianie

Wszystkie punkty końcowe wymagają uwierzytelnienia, chyba że AUTH_ENABLED=false.

Token sesji

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
curl http://localhost:1349/api/v1/tools/image/resize \
  -H "Authorization: Bearer <session-token>"

Sesje wygasają po 7 dniach (konfigurowalne za pomocą SESSION_DURATION_HOURS).

Klucze API

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 http://localhost:1349/api/v1/tools/image/resize \
  -H "Authorization: Bearer si_<your-key>"

Klucze są poprzedzone przedrostkiem si_ i przechowywane jako skróty scrypt - surowy klucz jest pokazywany raz i nigdy więcej nie można go odzyskać.

Punkty końcowe uwierzytelniania

MetodaŚcieżkaDostępOpis
POST/api/auth/loginPublicznyLogowanie, uzyskanie tokena sesji
POST/api/auth/logoutUwierzytelnionyZniszczenie bieżącej sesji
GET/api/auth/sessionUwierzytelnionyWeryfikacja bieżącej sesji
POST/api/auth/change-passwordUwierzytelnionyZmiana własnego hasła (unieważnia wszystkie inne sesje + klucze API)
GET/api/auth/usersAdministratorLista wszystkich użytkowników
POST/api/auth/registerAdministratorUtworzenie nowego użytkownika
PUT/api/auth/users/:idAdministratorAktualizacja roli lub zespołu użytkownika
POST/api/auth/users/:id/reset-passwordAdministratorZresetowanie hasła użytkownika
DELETE/api/auth/users/:idAdministratorUsunięcie użytkownika
GET/api/v1/config/authPublicznySprawdzenie, czy uwierzytelnianie jest włączone ({ authEnabled: bool })
POST/api/auth/mfa/enrollUwierzytelnionyRozpoczęcie rejestracji TOTP MFA. Wymaga funkcji enterprise mfa
POST/api/auth/mfa/verifyUwierzytelnionyPotwierdzenie rejestracji MFA kodem TOTP
POST/api/auth/mfa/completePublicznyZakończenie oczekującego wyzwania logowania MFA
POST/api/auth/mfa/disableUwierzytelnionyWyłączenie MFA dla bieżącego użytkownika
POST/api/auth/users/:id/mfa/resetAdministrator (users:manage)Zresetowanie MFA dla użytkownika
GET/api/auth/oidc/loginPublicznyRozpoczęcie logowania OIDC, gdy OIDC jest włączony
GET/api/auth/oidc/callbackPublicznyWywołanie zwrotne autoryzacji OIDC
GET/api/auth/saml/metadataPublicznyMetadane XML SAML SP, gdy SAML jest włączony
GET/api/auth/saml/loginPublicznyRozpoczęcie logowania SAML
POST/api/auth/saml/callbackPublicznyUsługa konsumenta asercji SAML

Gdy MFA jest włączone dla użytkownika, POST /api/auth/login zwraca {"requiresMfa":true,"mfaToken":"...","mfaRequired":true|false} zamiast tokena sesji. Wyślij ten mfaToken wraz z kodem TOTP lub kodem odzyskiwania do /api/auth/mfa/complete.

Uprawnienia

UprawnienieAdministratorUżytkownik
Korzystanie z narzędzi
Własne pliki/potoki/klucze API
Podgląd plików/potoków/kluczy wszystkich użytkowników-
Zapis ustawień-
Zarządzanie użytkownikami i zespołami-
Zarządzanie marką-

Kontrola stanu

MetodaŚcieżkaDostępOpis
GET/api/v1/healthPublicznyPodstawowa kontrola stanu. Zwraca {"status":"healthy","version":"..."} z kodem 200 lub {"status":"unhealthy"} z kodem 503, jeśli baza danych jest nieosiągalna.
GET/api/v1/readyzPublicznySonda gotowości. Sprawdza PostgreSQL, Redis, miejsce na dysku oraz S3, gdy jest skonfigurowane. Zwraca 503, gdy instancja nie powinna odbierać ruchu.
GET/api/v1/admin/healthAdministrator (system:health)Szczegółowa diagnostyka obejmująca czas działania, tryb przechowywania, stan bazy danych, stan kolejki i dostępność GPU.

Korzystanie z narzędzi

Każde narzędzie działa według tego samego wzorca:

bash
# Single file
curl -X POST http://localhost:1349/api/v1/tools/<section>/<toolId> \
  -H "Authorization: Bearer <token>" \
  -F "[email protected]" \
  -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 "[email protected]" \
  -F "[email protected]" \
  -F 'settings={...}'

<section> jest jednym z image, video, audio, pdf lub files.

  • Przesyłany plik ma pole multipart/form-data.
  • settings to ciąg JSON z opcjami specyficznymi dla narzędzia.
  • clientJobId to opcjonalne pole formularza służące do korelacji postępu dostarczanej przez wywołującego.
  • fileId to opcjonalne pole formularza odwołujące się do istniejącego elementu biblioteki plików. Gdy jest obecne, przetworzony wynik jest zapisywany jako nowa wersja, a odpowiedź zawiera savedFileId.
  • Szybkie narzędzia zwykle zwracają JSON z kodem 200: {"jobId":"...","downloadUrl":"/api/v1/download/<jobId>/<filename>","originalSize":1234,"processedSize":567}. Pobierz przetworzony plik z downloadUrl.
  • Każde narzędzie w kolejce może zwrócić JSON z kodem 202, jeśli działa długo lub przekracza okno synchronicznego oczekiwania: {"jobId":"...","async":true}. Połącz się z SSE, aby śledzić postęp, a następnie pobierz plik po zakończeniu (zobacz Śledzenie postępu).
  • Trasy wsadowe zwracają archiwum ZIP przesyłane bezpośrednio strumieniowo (z nagłówkiem X-Job-Id) dla narzędzi zarejestrowanych w ogólnym rejestrze wsadowym.

Dokumentacja narzędzi

Ustawienia wstępne konwersji

Wspólny katalog zawiera 83 dedykowane punkty końcowe ustawień wstępnych konwersji, takie jak jpg-to-png, mov-to-mp4, m4a-to-mp3, pdf-to-jpg i excel-to-csv. Ustawienia wstępne to pełnoprawne trasy narzędzi:

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

Każde ustawienie wstępne blokuje format wyjściowy i deleguje do narzędzia bazowego, takiego jak convert, convert-video, extract-audio, convert-audio, image-to-pdf, pdf-to-image, svg-to-raster lub convert-spreadsheet. Zobacz Ustawienia wstępne konwersji, aby uzyskać kompletną tabelę tras i opcjonalne ustawienia.

Podstawy

ID narzędziaNazwaKluczowe ustawienia
resizeZmiana rozmiaruwidth, height, fit (cover/contain/fill/inside/outside), percentage, withoutEnlargement, plus 23 ustawienia wstępne mediów społecznościowych
cropKadrowanieleft, top, width, height, unit (px/percent)
rotateObrót i odbicieangle, horizontal (bool), vertical (bool)
convertKonwersjaformat (jpg/png/webp/avif/tiff/gif/heic/heif), quality
compressKompresjamode (quality/targetSize), quality (1–100), targetSizeKb

Optymalizacja

ID narzędziaNazwaKluczowe ustawienia
optimize-for-webOptymalizacja pod kątem internetuformat (webp/jpeg/avif/png), quality, maxWidth, maxHeight, progressive, stripMetadata
strip-metadataUsuwanie metadanych-
edit-metadataEdycja metadanychtitle, description, author, copyright, keywords, gps (lat/lon), dateTime
bulk-renameZmiana nazw zbiorczopattern (obsługuje {n}, {date}, {original}), startIndex, padding
image-to-pdfObraz do PDFpageSize (A4/Letter/...), orientation, margin, targetSize ({value, unit})
faviconGenerator faviconpadding, backgroundColor, borderRadius - generuje wszystkie standardowe rozmiary

Korekty

ID narzędziaNazwaKluczowe ustawienia
adjust-colorsKorekta kolorówbrightness, contrast, exposure, saturation, temperature, tint, hue, sharpness, red, green, blue, effect (none/grayscale/sepia/invert)
sharpeningWyostrzaniemethod (adaptive/unsharp-mask/high-pass), sigma, m1, m2, x1, y2, y3, amount, radius, threshold, strength, kernelSize (3/5), denoise (off/light/medium/strong)
replace-colorZamiana kolorusourceColor, targetColor (zamiennik), makeTransparent, tolerance
color-blindnessSymulacja daltonizmusimulationType (protanopia/deuteranopia/tritanopia/protanomaly/deuteranomaly/tritanomaly/achromatopsia/blueConeMonochromacy, domyślnie "deuteranomaly")
duotoneDuotoneshadow (hex), highlight (hex), intensity (0-100)
pixelatePikselizacjablockSize (2-128), region ({left, top, width, height} dla częściowej pikselizacji)
vignetteWinietastrength (0.1-1), color (hex), radius, softness, roundness, centerX, centerY

Narzędzia AI

Wszystkie narzędzia AI działają na Twoim sprzęcie: domyślnie na CPU lub na NVIDIA CUDA, gdy dostępny jest obsługiwany procesor graficzny NVIDIA. Akceleracja iGPU firm Intel/AMD przez VA-API, Quick Sync lub OpenCL nie jest obecnie obsługiwana dla wnioskowania AI. Nie wymaga połączenia z internetem.

ID narzędziaNazwaModel AIKluczowe ustawienia
remove-backgroundUsuwanie tłarembg (BiRefNet / U2-Net)model, backgroundType (transparent/color/gradient/blur/image), backgroundColor, gradientColor1, gradientColor2, gradientAngle, blurEnabled, blurIntensity, shadowEnabled, shadowOpacity
upscalePowiększanie obrazuRealESRGANscale (2/4), model, faceEnhance, denoise, format, quality
erase-objectWymazywanie obiektówLaMa (ONNX)Maska wysyłana jako druga część pliku (nazwa pola mask), format, quality
ocrOCR / Ekstrakcja tekstuPaddleOCR / Tesseractquality (fast/balanced/best), language, enhance
blur-facesRozmycie twarzy / PIIMediaPipeblurRadius, sensitivity
smart-cropInteligentne kadrowanieMediaPipe + 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-enhancementPoprawa obrazuOparte na analiziemode (auto/exposure/contrast/color/sharpness), strength
enhance-facesPoprawa twarzyGFPGAN / CodeFormermodel (gfpgan/codeformer), strength, sensitivity, centerFace
colorizeKoloryzacja AIDDColorintensity, model
noise-removalUsuwanie szumówWielopoziomowe odszumianietier (quick/balanced/quality/maximum), strength, detailPreservation, colorNoise, format, quality
red-eye-removalUsuwanie efektu czerwonych oczuPunkty charakterystyczne twarzy + analiza kolorówsensitivity, strength
restore-photoRekonstrukcja zdjęćWieloetapowy potokmode (auto/light/heavy), scratchRemoval, faceEnhancement, fidelity, denoise, denoiseStrength, colorize
passport-photoZdjęcie paszportowePunkty charakterystyczne MediaPipeDwufazowy przepływ. Analiza używa multipart file; generowanie używa JSON z countryCode, bgColor, printLayout (none/4x6/a4), punktami charakterystycznymi, wymiarami obrazu
content-aware-resizeZmiana rozmiaru z zachowaniem treściWycinanie szwów (caire)width, height, protectFaces, blurRadius, sobelThreshold, square
transparency-fixerNaprawa przezroczystości PNGBiRefNet HR-mattingdefringe (0-100), outputFormat (png/webp)
background-replaceZamiana tłarembg (BiRefNet)backgroundType (color/gradient), color (hex), gradientColor1, gradientColor2, gradientAngle, feather (0-20), format (png/webp)
blur-backgroundRozmycie tłarembg (BiRefNet)intensity (1-100), feather (0-20), format (png/webp)
ai-canvas-expandRozszerzanie płótna AILaMa (outpainting)extendTop, extendRight, extendBottom, extendLeft (px), tier (fast/balanced/high), format, quality

Znak wodny i nakładka

ID narzędziaNazwaKluczowe ustawienia
watermark-textTekstowy znak wodnytext, font, fontSize, color, opacity, position, rotation, tile
watermark-imageGraficzny znak wodnyopacity, position, scale - drugi plik jest znakiem wodnym
text-overlayNakładka tekstowatext, font, fontSize, color, x, y, background, padding, borderRadius
composeKompozycja obrazux, y, opacity, blend - drugi plik jest nakładany na wierzch
meme-generatorGenerator memówtemplateId, 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. Obsługuje tryb szablonu (treść JSON z templateId) lub tryb obrazu niestandardowego (multipart z plikiem).

Narzędzia pomocnicze

ID narzędziaNazwaKluczowe ustawienia
infoInformacje o obrazie- (zwraca szerokość, wysokość, format, rozmiar, kanały, hasAlpha, DPI, EXIF)
comparePorównanie obrazówmode (side-by-side/overlay/diff), diffThreshold - drugi plik jest celem porównania
find-duplicatesWyszukiwanie duplikatówthreshold (odległość skrótu percepcyjnego, domyślnie 8) - wieloplikowe
color-palettePaleta kolorówcount (liczba dominujących kolorów), format (hex/rgb)
qr-generateGenerator kodów QRdata, size, margin, colorDark, colorLight, errorCorrectionLevel, dotStyle, cornerStyle, logo (opcjonalny plik)
barcode-readCzytnik kodów kreskowych- (automatyczne wykrywanie QR, EAN, Code128, DataMatrix itd.)
image-to-base64Obraz do Base64format (data-uri/plain), mimeType
html-to-imageHTML do obrazuurl, format (png/jpg/webp), quality, fullPage, devicePreset (desktop/tablet/mobile/custom), viewportWidth, viewportHeight
histogramHistogramscale (linear/log) - zwraca wykres histogramu RGB + statystyki dla poszczególnych kanałów
lqip-placeholderSymbol zastępczy LQIPwidth (4-64), blur, strategy (blur/pixelate/solid), format (webp/png/jpeg), quality
barcode-generateGenerator kodów kreskowychtext, type (code128/ean13/upca/code39/itf14/datamatrix), scale (1-8), includeText (bool). Treść JSON, bez przesyłania pliku.

Układ i kompozycja

ID narzędziaNazwaKluczowe ustawienia
collageKolaż / Siatkatemplate (25+ układów), gap, backgroundColor, borderRadius - wieloplikowe
stitchZszywanie / Łączeniedirection (horizontal/vertical/grid), gap, backgroundColor, alignment - wieloplikowe
splitDzielenie obrazumode (grid/rows/cols), rows, cols, tileWidth, tileHeight
borderObramowanie i ramkawidth, color, style (solid/gradient/pattern), borderRadius, padding, shadow
beautifyUpiększanie zrzutu ekranubackgroundType (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-cropKadrowanie okrągłezoom (1-5), offsetX, offsetY, borderWidth, borderColor, background (transparent/hex), outputSize
image-padDopełnianie obrazutarget (16:9/9:16/1:1/4:3/3:4/custom), ratioW, ratioH, background (color/transparent/blur), color (hex), padding (0-50%)
sprite-sheetArkusz duszkówcolumns (1-16), padding, background (hex), format (png/webp/jpeg), quality - wieloplikowe (2-64 obrazy)

Format i konwersja

ID narzędziaNazwaKluczowe ustawienia
svg-to-rasterSVG do rastraformat (png/jpeg/webp/avif/tiff/gif/heif), width, height, scale, dpi, background
vectorizeObraz do SVGcolorMode (bw/color), threshold, colorPrecision, filterSpeckle, pathMode (none/polygon/spline)
gif-toolsNarzędzia GIFaction (resize/optimize/reverse/speed/extract-frames/rotate/add-text), parametry specyficzne dla akcji
gif-webpKonwerter GIF/WebPquality (1-100), lossless (bool), resizePercent (10-100)

Narzędzia wideo

ID narzędziaNazwaKluczowe ustawienia
convert-videoKonwersja wideoformat (mp4/mov/webm/avi/mkv), quality (high/balanced/small)
compress-videoKompresja wideoquality (light/balanced/strong), resolution (original/1080p/720p/480p)
trim-videoPrzycinanie wideostartS, endS, precise (bool, cięcie z dokładnością do klatki)
mute-videoWyciszanie wideo-
video-to-gifWideo do GIFfps (1-30), width, startS, durationS (maks. 60 s)
resize-videoZmiana rozmiaru wideowidth, height, preset (custom/2160p/1440p/1080p/720p/480p/360p)
crop-videoKadrowanie wideowidth, height, x, y
rotate-videoObrót wideotransform (cw90/ccw90/180/hflip/vflip)
change-fpsZmiana FPSfps (1-120)
video-colorKolor wideobrightness, contrast, saturation, gamma
video-speedPrędkość wideofactor (0.25-4), keepPitch (bool)
reverse-videoOdwracanie wideo- (maks. 5 minut)
video-loudnormNormalizacja dźwięku- (EBU R128)
aspect-padDopełnianie proporcjitarget (16:9/9:16/1:1/4:3/3:4), color (hex)
blur-padDopełnianie rozmyciemtarget (16:9/9:16/1:1/4:3/3:4), blur (2-50)
watermark-videoZnak wodny na wideotext, position, fontSize, opacity, color
stabilize-videoStabilizacja wideosmoothing (5-60, w klatkach)
gif-to-videoGIF do wideoformat (mp4/webm/mov)
video-to-webpWideo do WebPfps, width, quality, loop (bool)
video-to-framesWideo do klatekmode (all/nth/timestamps), n, timestamps, format (png/jpg)
merge-videosŁączenie wideo- (wieloplikowe, znormalizowane do rozdzielczości pierwszego wideo)
replace-audioZamiana dźwięku- (plik wideo + audio, dwa pliki)
burn-subtitlesWypalanie napisówfontSize (8-72) - plik wideo + napisy
embed-subtitlesOsadzanie napisówlanguage (kod ISO 639-2/B) - plik wideo + napisy
extract-subtitlesWyodrębnianie napisów- (na wyjściu SRT)
images-to-videoObrazy do wideosecondsPerImage (0.5-10), resolution (1080p/720p/square), fps - wieloplikowe
video-metadataCzyszczenie metadanych wideo-
auto-subtitlesAutomatyczne napisy (AI)language (auto/en/de/fr/es/zh/ja/ko/id/th/vi), format (srt/vtt)
extract-audioWyodrębnianie dźwiękuformat (mp3/wav/m4a/ogg)

Narzędzia audio

ID narzędziaNazwaKluczowe ustawienia
convert-audioKonwersja dźwiękuformat (mp3/wav/ogg/flac/m4a), bitrateKbps (32-320)
trim-audioPrzycinanie dźwiękustartS, endS
volume-adjustRegulacja głośnościgainDb (-30 do 30)
normalize-audioNormalizacja dźwięku- (EBU R128, -16 LUFS)
fade-audioWyciszanie/wzmacnianie dźwiękufadeInS (0-30), fadeOutS (0-30)
reverse-audioOdwracanie dźwięku-
audio-speedPrędkość dźwiękufactor (0.25-4)
pitch-shiftPrzesunięcie tonacjisemitones (-12 do 12)
audio-channelsKanały dźwiękumode (stereo-to-mono/mono-to-stereo/swap)
silence-removalUsuwanie ciszythresholdDb (-80 do -20), minSilenceS (0.1-5)
noise-reductionRedukcja szumówstrength (light/medium/strong)
merge-audioŁączenie dźwiękuformat (mp3/wav/flac/m4a) - wieloplikowe
split-audioDzielenie dźwiękumode (time/parts/silence), segmentS, parts, thresholdDb, minSilenceS
ringtone-makerTwórca dzwonkówstartS, durationS (1-30)
waveform-imageObraz przebieguwidth, height, color (hex)
audio-metadataMetadane dźwiękustrip (bool), title, artist, album
transcribe-audioTranskrypcja dźwięku (AI)language (auto/en/de/fr/es/zh/ja/ko/id/th/vi), outputFormat (txt/srt/vtt)

Narzędzia do dokumentów

ID narzędziaNazwaKluczowe ustawienia
merge-pdfŁączenie plików PDF- (wieloplikowe, do 20 plików PDF)
split-pdfDzielenie PDFmode (range/every), range, everyN (1-500)
compress-pdfKompresja PDFmode (quality/targetSize), quality (1-100), targetSizeKb
rotate-pdfObrót PDFangle (90/180/270), range (zakres stron)
extract-pagesWyodrębnianie stronrange (składnia qpdf, np. "1-5,8,10-z")
remove-pagesUsuwanie stronpages (zakres qpdf do usunięcia)
organize-pdfOrganizacja PDForder (kolejność stron qpdf, np. "3,1,2,5-z")
protect-pdfOchrona PDFuserPassword, ownerPassword (AES-256)
unlock-pdfOdblokowanie PDFpassword
repair-pdfNaprawa PDF-
linearize-pdfOptymalizacja PDF pod kątem internetu- (linearyzacja dla szybkiego przeglądania w sieci)
grayscale-pdfPDF w skali szarości-
pdfa-convertKonwersja do PDF/A- (archiwalny PDF/A-2)
crop-pdfKadrowanie PDFmargin (0-2000 punktów)
nup-pdfN-up PDFperSheet (2/3/4/8/9/12/16)
booklet-pdfBroszura PDFperSheet (2/4/6/8)
watermark-pdfZnak wodny PDFtext, position, fontSize, opacity, rotation
pdf-page-numbersNumery stron PDFposition (bl/bc/br/tl/tc/tr), fontSize
flatten-pdfSpłaszczanie PDF- (utrwala formularze i adnotacje)
redact-pdfRedakcja PDFterms (string[]), caseSensitive (bool)
sign-pdfPodpisywanie PDFNiestandardowa trasa multipart z plikiem PDF file, plikami podpisu sig0, sig1 oraz tablicą JSON placements
pdf-to-textPDF do tekstu-
pdf-to-wordPDF do Word-
pdf-metadataMetadane PDFtitle, author, subject, keywords
convert-documentKonwersja dokumentuformat (docx/odt/rtf/txt)
convert-presentationKonwersja prezentacjiformat (pptx/odp)
convert-spreadsheetKonwersja arkusza kalkulacyjnegoformat (xlsx/ods/csv)
excel-to-pdfExcel do PDF-
word-to-pdfWord do PDF-
powerpoint-to-pdfPowerPoint do PDF-
html-to-pdfHTML do PDF- (zdalne zasoby wyłączone)
markdown-to-docxMarkdown do Word-
markdown-to-htmlMarkdown do HTML-
markdown-to-pdfMarkdown do PDF- (zdalne zasoby wyłączone)
epub-convertKonwersja EPUBformat (pdf/docx/html/md)
to-epubKonwersja do EPUB- (akceptuje .docx, .md, .html, .txt)
ocr-pdfOCR PDF (AI)quality (fast/balanced/best), language (auto/en/de/fr/es/zh/ja/ko), pages
pdf-to-imagePDF do obrazupages (all/range), format, dpi, quality
pdf-to-jpgPDF do JPGpages, dpi, quality, colorMode
pdf-to-pngPDF do PNGpages, dpi, quality, colorMode
pdf-to-tiffPDF do TIFFpages, dpi, quality, colorMode

Narzędzia do plików

ID narzędziaNazwaKluczowe ustawienia
chart-makerTwórca wykresówkind (bar/line/pie), title, width, height
csv-excelCSV do Excelsheet (numer arkusza dla wejścia XLSX) - dwukierunkowe
csv-jsonCSV do JSONpretty (bool) - dwukierunkowe
json-xmlJSON do XMLpretty (bool) - dwukierunkowe
split-csvDzielenie CSVrowsPerFile (1-1000000), keepHeader (bool)
merge-csvsŁączenie plików CSV- (wieloplikowe, pasujące kolumny)
yaml-jsonYAML / JSON- (dwukierunkowe)
xml-to-csvXML do CSV- (automatyczne wyszukiwanie powtarzających się elementów)
excel-to-csvExcel do CSVdedykowane ustawienie wstępne konwersji oparte na convert-spreadsheet
create-zipUtwórz ZIP- (wieloplikowe, 2-50 plików)
extract-zipWypakuj ZIP- (ochrona przed bombą)

HTML do obrazu

Przechwyć stronę internetową jako obraz. W przeciwieństwie do innych narzędzi ten punkt końcowy przyjmuje application/json zamiast danych formularza multipart (bez potrzeby przesyłania pliku).

Punkt końcowy: POST /api/v1/tools/image/html-to-image

Content-Type: application/json

ParametrTypDomyślnieOpis
urlstring(wymagane)URL do przechwycenia (tylko http/https)
formatstring"png"Format wyjściowy: jpg, png, webp
qualitynumber90Jakość 1-100 (tylko JPG/WebP)
fullPagebooleanfalsePrzechwyć całą przewijaną stronę
devicePresetstring"desktop"desktop, tablet, mobile, custom
viewportWidthnumber1280Niestandardowa szerokość okna widoku 320-3840
viewportHeightnumber720Niestandardowa wysokość okna widoku 320-2160

Przykład:

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"}'

Odpowiedź:

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

Podtrasy narzędzi

Niektóre narzędzia udostępniają dodatkowe punkty końcowe poza standardowym POST /api/v1/tools/<section>/<toolId>:

MetodaŚcieżkaOpis
GET/api/v1/tools/popularZwraca popularne identyfikatory narzędzi, wracając do wyselekcjonowanej listy domyślnej, gdy dane o użyciu są skąpe
POST/api/v1/tools/image/remove-background/effectsZastosuj efekty tła (color/gradient/blur/shadow) bez ponownego uruchamiania AI. Używa maski z pamięci podręcznej z początkowego usunięcia.
POST/api/v1/tools/image/edit-metadata/inspectOdczytaj istniejące metadane EXIF/IPTC/XMP z obrazu
POST/api/v1/tools/image/strip-metadata/inspectSprawdź pola metadanych przed usunięciem
POST/api/v1/tools/image/passport-photo/analyzeFaza 1: Wykrywanie twarzy AI + usuwanie tła. Zwraca punkty charakterystyczne twarzy i dane z pamięci podręcznej.
POST/api/v1/tools/image/passport-photo/generateFaza 2: Kadrowanie, zmiana rozmiaru i kafelkowanie przy użyciu analizy z pamięci podręcznej. Bez ponownego uruchamiania AI.
POST/api/v1/tools/image/gif-tools/infoPobierz metadane GIF (liczba klatek, wymiary, czas trwania)
POST/api/v1/tools/pdf/pdf-to-image/infoPobierz metadane PDF (liczba stron, wymiary)
POST/api/v1/tools/pdf/pdf-to-image/previewWygeneruj podgląd konkretnej strony PDF
POST/api/v1/tools/pdf/pdf-to-jpg/infoPobierz metadane PDF dla dedykowanego ustawienia wstępnego JPG
POST/api/v1/tools/pdf/pdf-to-jpg/previewWygeneruj podgląd strony PDF z ustawieniem wstępnym JPG
POST/api/v1/tools/pdf/pdf-to-png/infoPobierz metadane PDF dla dedykowanego ustawienia wstępnego PNG
POST/api/v1/tools/pdf/pdf-to-png/previewWygeneruj podgląd strony PDF z ustawieniem wstępnym PNG
POST/api/v1/tools/pdf/pdf-to-tiff/infoPobierz metadane PDF dla dedykowanego ustawienia wstępnego TIFF
POST/api/v1/tools/pdf/pdf-to-tiff/previewWygeneruj podgląd strony PDF z ustawieniem wstępnym TIFF
POST/api/v1/tools/image/svg-to-raster/batchKonwertuj wsadowo wiele plików SVG do rastra
POST/api/v1/tools/image/image-enhancement/analyzePrzeanalizuj jakość obrazu i zwróć rekomendacje poprawy
POST/api/v1/tools/image/optimize-for-web/previewLekki podgląd do dostrajania parametrów na żywo. Zwraca zoptymalizowany obraz z nagłówkami rozmiaru.

Przetwarzanie wsadowe

Zastosuj ogólne narzędzie obsługujące tryb wsadowy do wielu plików jednocześnie. Zwraca archiwum ZIP. Niestandardowe trasy wieloplikowe lub wieloetapowe, takie jak podpisywanie PDF, OCR PDF oraz trasy ustawień wstępnych PDF-do-obrazu, używają własnego kontraktu punktu końcowego zamiast ogólnej trasy /batch.

bash
curl -X POST http://localhost:1349/api/v1/tools/image/compress/batch \
  -H "Authorization: Bearer <token>" \
  -F "[email protected]" \
  -F "[email protected]" \
  -F "[email protected]" \
  -F 'settings={"quality":80}'

Współbieżnością steruje CONCURRENT_JOBS (domyślnie: automatycznie wykrywana na podstawie rdzeni CPU). MAX_BATCH_SIZE ogranicza liczbę plików w partii (domyślnie: 100; ustaw 0 dla braku limitu).

Potoki

Wykonaj potok

bash
# Single file
curl -X POST http://localhost:1349/api/v1/pipeline/execute \
  -H "Authorization: Bearer <token>" \
  -F "[email protected]" \
  -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 "[email protected]" \
  -F "[email protected]" \
  -F 'pipeline={"steps":[{"toolId":"resize","settings":{"width":800}}]}'

Wyjście każdego kroku jest wejściem następnego kroku. Potoki domyślnie dopuszczają 20 kroków, co jest konfigurowalne za pomocą MAX_PIPELINE_STEPS. Ustaw MAX_PIPELINE_STEPS=0, aby usunąć limit.

Zapisywanie potoków i zarządzanie nimi

MetodaŚcieżkaOpis
POST/api/v1/pipeline/saveZapisz nazwany potok (name, description, steps[])
GET/api/v1/pipeline/listLista zapisanych potoków (administratorzy widzą wszystkie; użytkownicy widzą własne)
DELETE/api/v1/pipeline/:idUsuń (właściciel lub administrator)
GET/api/v1/pipeline/toolsLista identyfikatorów narzędzi ważnych dla kroków potoku

Śledzenie postępu

Długotrwałe zadania, narzędzia w kolejce, zadania wsadowe i potoki emitują postęp w czasie rzeczywistym za pomocą Server-Sent Events. Strumień postępu jest publiczny i identyfikowany przez identyfikator zadania, więc klienci nie muszą wysyłać nagłówka Authorization, aby go odczytać.

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

Format zdarzenia:

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":[]}

Możesz zażądać anulowania zadania w kolejce lub uruchomionego za pomocą POST /api/v1/jobs/:jobId/cancel. Odpowiedzią jest {"canceled":true|false}.

Biblioteka plików

Trwałe przechowywanie plików z historią wersji.

MetodaŚcieżkaOpis
POST/api/v1/uploadPrześlij pliki do obszaru roboczego (tymczasowe przetwarzanie)
POST/api/v1/files/uploadPrześlij pliki do trwałej biblioteki plików
POST/api/v1/files/save-resultZapisz wynik przetwarzania narzędzia jako nową wersję pliku
GET/api/v1/filesLista zapisanych plików (stronicowana, z wyszukiwaniem)
GET/api/v1/files/:idPobierz metadane pliku + łańcuch wersji
GET/api/v1/files/:id/downloadPobierz plik
GET/api/v1/files/:id/thumbnailPobierz miniaturę JPEG 300px
DELETE/api/v1/filesZbiorczo usuń pliki i ich łańcuchy wersji (treść: { ids: [...] })
POST/api/v1/fetch-urlsPobierz zdalne adresy URL do obszaru roboczego dla importów opartych na URL
POST/api/v1/previewWygeneruj podgląd WebP zgodny z przeglądarką (dla formatów HEIC/HEIF/RAW)
GET/api/v1/files/:id/previewPrzesyłaj strumieniowo podgląd zgodny z przeglądarką z pamięci podręcznej lub wygenerowany dla zapisanego pliku PDF, dokumentu biurowego, wideo lub audio
POST/api/v1/preview/generateWygeneruj na żądanie podgląd MP4 lub MP3 dla przesłanego pliku multimedialnego bez uprzedniego zapisywania go
GET/api/v1/download/:jobId/:filenamePobierz przetworzony plik z obszaru roboczego

Aby automatycznie zapisać wynik narzędzia w bibliotece, dołącz fileId jako pole formularza multipart odwołujące się do istniejącego pliku w bibliotece. Przetworzony wynik zostanie zapisany jako nowa wersja.

Zarządzanie kluczami API

MetodaŚcieżkaDostępOpis
POST/api/v1/api-keysUwierzytelnionyWygeneruj nowy klucz - pokazywany raz
GET/api/v1/api-keysUwierzytelnionyLista kluczy (nazwa, id, lastUsedAt - bez surowego klucza)
DELETE/api/v1/api-keys/:idUwierzytelnionyUsuń klucz

Zespoły

MetodaŚcieżkaDostępOpis
GET/api/v1/teamsAdministrator (teams:manage)Lista zespołów
POST/api/v1/teamsAdministrator (teams:manage)Utwórz zespół
PUT/api/v1/teams/:idAdministrator (teams:manage)Zmień nazwę zespołu
DELETE/api/v1/teams/:idAdministrator (teams:manage)Usuń zespół (nie można usunąć domyślnego zespołu ani zespołów z członkami)

Ustawienia

Konfiguracja klucz-wartość w czasie działania (odczyt przez każdego uwierzytelnionego użytkownika, zapis tylko przez administratora).

MetodaŚcieżkaOpis
GET/api/v1/settingsPobierz wszystkie ustawienia
PUT/api/v1/settingsZbiorczo zaktualizuj ustawienia (treść JSON z parami klucz-wartość)
GET/api/v1/settings/:keyPobierz konkretne ustawienie według klucza

Znane klucze: disabledTools (tablica JSON identyfikatorów narzędzi), enableExperimentalTools (ciąg bool), loginAttemptLimit (liczba).

Preferencje

Preferencje poszczególnych użytkowników są oddzielone od ustawień instancji. Każdy uwierzytelniony użytkownik może odczytać i zaktualizować własną mapę preferencji.

MetodaŚcieżkaOpis
GET/api/v1/preferencesPobierz preferencje bieżącego użytkownika jako { "preferences": { ... } }
PUT/api/v1/preferencesZapisz lub zaktualizuj jeden lub więcej kluczy preferencji dla bieżącego użytkownika

Role

Zarządzanie niestandardowymi rolami z granularnymi uprawnieniami.

MetodaŚcieżkaDostępOpis
GET/api/v1/rolesAdministrator (audit:read)Lista wszystkich ról z liczbą użytkowników
POST/api/v1/rolesAdministrator (security:manage)Utwórz niestandardową rolę (name, description, permissions)
PUT/api/v1/roles/:idAdministrator (security:manage)Zaktualizuj niestandardową rolę (nie można modyfikować wbudowanych ról)
DELETE/api/v1/roles/:idAdministrator (security:manage)Usuń niestandardową rolę (nie można usuwać wbudowanych ról; dotknięci użytkownicy wracają do roli user)

Dostępne uprawnienia (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.

Dziennik audytu

Punkt końcowy tylko dla administratora do przeglądania działań istotnych z punktu widzenia bezpieczeństwa.

MetodaŚcieżkaDostępOpis
GET/api/v1/audit-logAdministrator (audit:read)Stronicowany dziennik audytu z opcjonalnymi filtrami

Parametry zapytania:

ParametrOpis
pageNumer strony (domyślnie: 1)
limitWpisy na stronę (domyślnie: 50, maks.: 100)
actionFiltruj według typu akcji (np. ROLE_CREATED, ROLE_DELETED)
ipFiltruj według źródłowego adresu IP
fromFiltruj wpisy po tej dacie ISO 8601
toFiltruj wpisy przed tą datą ISO 8601

Analityka

MetodaŚcieżkaDostępOpis
GET/api/v1/config/analyticsPublicznyPobierz efektywną konfigurację analityki (klucz PostHog, DSN Sentry, częstotliwość próbkowania). Klucze, DSN i identyfikator instancji są puste, gdy analityka jest wyłączona, zarówno z powodu ustawienia w czasie kompilacji, jak i ustawienia instancji analyticsEnabled.
POST/api/v1/feedbackUwierzytelnionyPrześlij wyraźną opinię użytkownika do skonfigurowanego projektu PostHog jako feedback_submitted. Trasa respektuje bramkę analityki, ogranicza liczbę zgłoszeń, usuwa pola kontaktowe, chyba że contactOk ma wartość true, i nigdy nie akceptuje zawartości plików, nazw plików, ścieżek przesyłania ani surowego, prywatnego tekstu błędu. Gdy analityka jest wyłączona, zwraca { "ok": true, "accepted": false }.
PUT/api/v1/settingsAdministrator (settings:write)Ustaw rezygnację obejmującą całą instancję. Wyślij treść JSON { "analyticsEnabled": "false" }, aby wyłączyć analitykę dla wszystkich, lub "true", aby ją ponownie włączyć.

Funkcje / Pakiety AI

Zarządzaj pakietami funkcji AI (instaluj/odinstalowuj pakiety modeli AI w środowisku Docker). Preferuj punkt końcowy instalacji na poziomie narzędzia podczas włączania narzędzia z niestandardowej automatyzacji: niektóre narzędzia AI potrzebują więcej niż jednego współdzielonego pakietu, a ten punkt końcowy pomija już zainstalowane pakiety, kolejkując tylko brakujące.

MetodaŚcieżkaDostępOpis
GET/api/v1/featuresUwierzytelnionyLista wszystkich pakietów funkcji i ich status instalacji
POST/api/v1/admin/features/:bundleId/installAdministrator (features:manage)Zainstaluj pakiet funkcji (asynchronicznie, zwraca jobId do śledzenia postępu)
POST/api/v1/admin/tools/:toolId/features/installAdministrator (features:manage)Zainstaluj każdy pakiet wymagany przez narzędzie; zwraca status queued/skipped dla poszczególnych pakietów
POST/api/v1/admin/features/:bundleId/uninstallAdministrator (features:manage)Odinstaluj pakiet funkcji i usuń pliki modeli
GET/api/v1/admin/features/disk-usageAdministrator (features:manage)Pobierz całkowite zużycie dysku przez modele AI
POST/api/v1/admin/features/importAdministrator (features:manage)Zaimportuj archiwum pakietu AI w trybie offline

Operacje administracyjne

Operacyjne punkty końcowe do obserwowalności, wsparcia, raportowania użycia i statusu kopii zapasowej.

MetodaŚcieżkaDostępOpis
GET/api/v1/admin/log-levelAdministrator (settings:write)Odczytaj bieżący poziom logowania w czasie działania
POST/api/v1/admin/log-levelAdministrator (settings:write)Zmień poziom logowania w czasie działania (fatal, error, warn, info, debug, trace lub silent)
GET/api/v1/metricsAdministrator (system:health)Metryki Prometheus w formacie tekstowym
GET/api/v1/admin/support-bundleAdministrator (system:health)Pobierz zredagowany pakiet diagnostyczny wsparcia ZIP
GET/api/v1/admin/usageAdministrator (audit:read)Dane pulpitu użycia, z opcjonalnym parametrem zapytania days
GET/api/v1/admin/backup-statusAdministrator (system:health)Odczytaj metadane ostatniej kopii zapasowej i status aktualności
POST/api/v1/admin/backup-statusAdministrator (system:health)Zarejestruj ukończoną kopię zapasową (type, opcjonalnie sizeBytes, opcjonalnie notes)

API Enterprise

Te trasy są bramkowane licencją przez powiązaną z nimi funkcję enterprise. Nadal wymagają wymienionego uprawnienia SnapOtter.

MetodaŚcieżkaDostępOpis
GET/api/v1/enterprise/audit/exportAdministrator (audit:read)Eksportuj wpisy audytu jako JSON lub CSV z filtrami
GET/api/v1/enterprise/config/exportAdministrator (system:health)Eksportuj zredagowaną konfigurację instancji, niestandardowe role i zespoły
POST/api/v1/enterprise/config/importAdministrator (system:health)Zaimportuj konfigurację, z opcjonalnym przebiegiem próbnym
GET/api/v1/enterprise/ip-allowlistAdministrator (security:manage)Odczytaj skonfigurowaną listę dozwolonych CIDR
PUT/api/v1/enterprise/ip-allowlistAdministrator (security:manage)Zaktualizuj listę dozwolonych CIDR z ochroną przed zablokowaniem samego siebie
GET/api/v1/enterprise/legal-holdAdministrator (compliance:manage)Lista blokad prawnych użytkowników i zespołów
PUT/api/v1/enterprise/legal-holdAdministrator (compliance:manage)Zastosuj lub zwolnij blokadę prawną dla użytkownika lub zespołu
POST/api/v1/enterprise/scim/tokenAdministrator (users:manage)Wygeneruj token bearer SCIM, zwracany raz
DELETE/api/v1/enterprise/scim/tokenAdministrator (users:manage)Unieważnij bieżący token bearer SCIM
GET/api/v1/enterprise/siem/configAdministrator (webhooks:manage)Odczytaj konfigurację przekazywania SIEM
PUT/api/v1/enterprise/siem/configAdministrator (webhooks:manage)Zaktualizuj konfigurację przekazywania SIEM
GET/api/v1/enterprise/webhooksAdministrator (webhooks:manage)Lista miejsc docelowych webhooków
POST/api/v1/enterprise/webhooksAdministrator (webhooks:manage)Utwórz miejsce docelowe webhooka
PUT/api/v1/enterprise/webhooks/:indexAdministrator (webhooks:manage)Zaktualizuj miejsce docelowe webhooka
DELETE/api/v1/enterprise/webhooks/:indexAdministrator (webhooks:manage)Usuń miejsce docelowe webhooka
POST/api/v1/enterprise/webhooks/:index/testAdministrator (webhooks:manage)Wyślij testowy ładunek webhooka
POST/api/v1/enterprise/users/:id/exportAdministrator (compliance:manage)Rozpocznij zadanie eksportu użytkownika RODO
GET/api/v1/enterprise/users/:id/export/:jobIdAdministrator (compliance:manage)Odczytaj status eksportu RODO i adres URL pobierania
DELETE/api/v1/enterprise/users/:id/purgeAdministrator (compliance:manage)Trwale usuń dane użytkownika po potwierdzeniu
DELETE/api/v1/enterprise/teams/:id/purgeAdministrator (compliance:manage)Trwale usuń dane zespołu po potwierdzeniu
GET/api/v1/admin/versionAdministrator (system:health)Odczytaj metadane wersji aplikacji, kompilacji, Node i schematu
GET/api/v1/admin/migrations/pendingAdministrator (system:health)Porównaj spakowane migracje z zastosowanymi migracjami
GET/api/v1/admin/upgrade-checkAdministrator (system:health)Uruchom kontrole gotowości do aktualizacji

SCIM 2.0

Punkty końcowe wykrywania SCIM są publiczne. Punkty końcowe użytkowników i grup wymagają tokena bearer SCIM wygenerowanego powyżej.

MetodaŚcieżkaDostępOpis
GET/api/v1/scim/v2/ServiceProviderConfigPublicznyMożliwości serwera SCIM
GET/api/v1/scim/v2/SchemasPublicznyWykrywanie schematu SCIM
GET/api/v1/scim/v2/ResourceTypesPublicznyWykrywanie typu zasobu SCIM
GET/api/v1/scim/v2/UsersToken SCIMLista użytkowników, z opcjonalnym filtrem SCIM
POST/api/v1/scim/v2/UsersToken SCIMUtwórz użytkownika
GET/api/v1/scim/v2/Users/:idToken SCIMPobierz użytkownika
PUT/api/v1/scim/v2/Users/:idToken SCIMZastąp użytkownika
DELETE/api/v1/scim/v2/Users/:idToken SCIMMiękka dezaktywacja użytkownika
GET/api/v1/scim/v2/GroupsToken SCIMLista zespołów jako grup SCIM
POST/api/v1/scim/v2/GroupsToken SCIMUtwórz zespół
GET/api/v1/scim/v2/Groups/:idToken SCIMPobierz zespół
PUT/api/v1/scim/v2/Groups/:idToken SCIMZastąp zespół i członkostwo w grupie
DELETE/api/v1/scim/v2/Groups/:idToken SCIMUsuń zespół

Szablony memów

Wspierające API dla narzędzia generatora memów.

MetodaŚcieżkaDostępOpis
GET/api/v1/meme-templatesUwierzytelnionyLista wszystkich dostępnych szablonów memów z pozycjami pól tekstowych
GET/api/v1/meme-templates/full/:filenameUwierzytelnionyUdostępnij obraz szablonu w pełnym rozmiarze
GET/api/v1/meme-templates/thumbs/:filenameUwierzytelnionyUdostępnij miniaturę szablonu
GET/api/v1/meme-templates/fonts/:filenameUwierzytelnionyUdostępnij plik czcionki używany do renderowania tekstu memu

Odpowiedzi z błędami

Wszystkie błędy zwracają JSON:

json
{
  "error": "Human-readable message",
  "code": "MACHINE_READABLE_CODE"
}
StatusZnaczenie
400Nieprawidłowe żądanie / walidacja nie powiodła się
401Brak uwierzytelnienia
403Niewystarczające uprawnienia
404Nie znaleziono zasobu
413Plik zbyt duży (zobacz MAX_UPLOAD_SIZE_MB)
422Przetwarzanie nie powiodło się po walidacji
429Ograniczenie liczby żądań (zobacz RATE_LIMIT_PER_MIN)
501Wymagany pakiet funkcji AI nie jest zainstalowany (FEATURE_NOT_INSTALLED)
500Wewnętrzny błąd serwera