docs: audit all 157 tool pages against live schemas

Reconcile every tool page's parameters, defaults, and response shape against the tool's Zod settings schema and executionHint in code. Notable fixes: color-palette (add count + format params, hex output, median-cut algorithm), favicon (add 5 params, was documented as having none), qr-generate (add logoDataUri), convert (add ppm/eps/tga formats), video-loudnorm (-16 LUFS not -14), smart-crop (async 202 not sync 200), images-to-video (1080x1080 square), and several output-filename and behavior-note corrections.

Also normalize API endpoint paths to /api/v1/tools/<id> (no modality segment) and standardize curl examples on the Docker API port 1349. Verified with a clean docs build.
This commit is contained in:
SnapOtter
2026-06-18 14:12:28 +08:00
parent d24e244af4
commit 8532f3227b
160 changed files with 518 additions and 441 deletions
+2 -2
View File
@@ -240,7 +240,7 @@ Analyzes the image and applies automatic corrections for exposure, contrast, whi
| `corrections.sharpness` | boolean | true | Apply sharpness correction | | `corrections.sharpness` | boolean | true | Apply sharpness correction |
| `corrections.denoise` | boolean | true | Apply denoising | | `corrections.denoise` | boolean | true | Apply denoising |
An additional analysis endpoint is available at `POST /api/v1/tools/image/image-enhancement/analyze` which returns the detected corrections without applying them. An additional analysis endpoint is available at `POST /api/v1/tools/image-enhancement/analyze` which returns the detected corrections without applying them.
## Content-Aware Resize (Seam Carving) ## Content-Aware Resize (Seam Carving)
@@ -279,7 +279,7 @@ Fixes "fake transparent" PNGs where the background was removed but left behind f
| `outputFormat` | `"png"` \| `"webp"` | `"png"` | Output image format | | `outputFormat` | `"png"` \| `"webp"` | `"png"` | Output image format |
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/transparency-fixer \ curl -X POST http://localhost:1349/api/v1/tools/transparency-fixer \
-H "Authorization: Bearer <token>" \ -H "Authorization: Bearer <token>" \
-F "file=@fake-transparent.png" \ -F "file=@fake-transparent.png" \
-F 'settings={"defringe":30,"outputFormat":"png"}' -F 'settings={"defringe":30,"outputFormat":"png"}'
+16 -16
View File
@@ -25,7 +25,7 @@ curl -X POST http://localhost:1349/api/auth/login \
# Returns: {"token":"<session-token>"} # Returns: {"token":"<session-token>"}
# Use token # Use token
curl http://localhost:1349/api/v1/tools/image/resize \ curl http://localhost:1349/api/v1/tools/resize \
-H "Authorization: Bearer <session-token>" -H "Authorization: Bearer <session-token>"
``` ```
@@ -42,7 +42,7 @@ curl -X POST http://localhost:1349/api/v1/api-keys \
# Returns: {"key":"si_<96 hex chars>","id":"...","name":"my-script"} # Returns: {"key":"si_<96 hex chars>","id":"...","name":"my-script"}
# Use the key # Use the key
curl http://localhost:1349/api/v1/tools/image/resize \ curl http://localhost:1349/api/v1/tools/resize \
-H "Authorization: Bearer si_<your-key>" -H "Authorization: Bearer si_<your-key>"
``` ```
@@ -329,7 +329,7 @@ All AI tools run on your hardware (CPU or NVIDIA GPU). No internet required.
Capture a webpage as an image. Unlike other tools, this endpoint accepts `application/json` instead of multipart form data (no file upload needed). Capture a webpage as an image. Unlike other tools, this endpoint accepts `application/json` instead of multipart form data (no file upload needed).
**Endpoint:** `POST /api/v1/tools/image/html-to-image` **Endpoint:** `POST /api/v1/tools/html-to-image`
**Content-Type:** `application/json` **Content-Type:** `application/json`
@@ -346,7 +346,7 @@ Capture a webpage as an image. Unlike other tools, this endpoint accepts `applic
**Example:** **Example:**
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \ curl -X POST http://localhost:1349/api/v1/tools/html-to-image \
-H "Authorization: Bearer $TOKEN" \ -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"url": "https://snapotter.com", "format": "png", "devicePreset": "desktop"}' -d '{"url": "https://snapotter.com", "format": "png", "devicePreset": "desktop"}'
@@ -369,24 +369,24 @@ Some tools expose additional endpoints beyond the standard `POST /api/v1/tools/<
| Method | Path | Description | | Method | Path | Description |
|--------|------|-------------| |--------|------|-------------|
| `POST` | `/api/v1/tools/image/remove-background/effects` | Apply background effects (color/gradient/blur/shadow) without re-running AI. Uses cached mask from initial removal. | | `POST` | `/api/v1/tools/remove-background/effects` | Apply background effects (color/gradient/blur/shadow) without re-running AI. Uses cached mask from initial removal. |
| `POST` | `/api/v1/tools/image/edit-metadata/inspect` | Read existing EXIF/IPTC/XMP metadata from an image | | `POST` | `/api/v1/tools/edit-metadata/inspect` | Read existing EXIF/IPTC/XMP metadata from an image |
| `POST` | `/api/v1/tools/image/strip-metadata/inspect` | Inspect metadata fields before stripping | | `POST` | `/api/v1/tools/strip-metadata/inspect` | Inspect metadata fields before stripping |
| `POST` | `/api/v1/tools/image/passport-photo/analyze` | Phase 1: AI face detection + background removal. Returns face landmarks and cached data. | | `POST` | `/api/v1/tools/passport-photo/analyze` | Phase 1: AI face detection + background removal. Returns face landmarks and cached data. |
| `POST` | `/api/v1/tools/image/passport-photo/generate` | Phase 2: Crop, resize, and tile using cached analysis. No AI re-run. | | `POST` | `/api/v1/tools/passport-photo/generate` | Phase 2: Crop, resize, and tile using cached analysis. No AI re-run. |
| `POST` | `/api/v1/tools/image/gif-tools/info` | Get GIF metadata (frame count, dimensions, duration) | | `POST` | `/api/v1/tools/gif-tools/info` | Get GIF metadata (frame count, dimensions, duration) |
| `POST` | `/api/v1/tools/pdf/pdf-to-image/info` | Get PDF metadata (page count, dimensions) | | `POST` | `/api/v1/tools/pdf-to-image/info` | Get PDF metadata (page count, dimensions) |
| `POST` | `/api/v1/tools/pdf/pdf-to-image/preview` | Generate a preview of a specific PDF page | | `POST` | `/api/v1/tools/pdf-to-image/preview` | Generate a preview of a specific PDF page |
| `POST` | `/api/v1/tools/image/svg-to-raster/batch` | Batch convert multiple SVGs to raster | | `POST` | `/api/v1/tools/svg-to-raster/batch` | Batch convert multiple SVGs to raster |
| `POST` | `/api/v1/tools/image/image-enhancement/analyze` | Analyze image quality and return enhancement recommendations | | `POST` | `/api/v1/tools/image-enhancement/analyze` | Analyze image quality and return enhancement recommendations |
| `POST` | `/api/v1/tools/image/optimize-for-web/preview` | Lightweight preview for live parameter tuning. Returns optimized image with size headers. | | `POST` | `/api/v1/tools/optimize-for-web/preview` | Lightweight preview for live parameter tuning. Returns optimized image with size headers. |
## Batch Processing ## Batch Processing
Apply any tool to multiple files at once. Returns a ZIP archive. Apply any tool to multiple files at once. Returns a ZIP archive.
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/compress/batch \ curl -X POST http://localhost:1349/api/v1/tools/compress/batch \
-H "Authorization: Bearer <token>" \ -H "Authorization: Bearer <token>" \
-F "files=@a.jpg" \ -F "files=@a.jpg" \
-F "files=@b.jpg" \ -F "files=@b.jpg" \
+1 -1
View File
@@ -139,7 +139,7 @@ Every file you process can be saved to your **Files** library. SnapOtter tracks
Every tool is accessible via HTTP: Every tool is accessible via HTTP:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/resize \ curl -X POST http://localhost:1349/api/v1/tools/resize \
-H "Authorization: Bearer si_<your-api-key>" \ -H "Authorization: Bearer si_<your-api-key>" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"width":800,"height":600,"fit":"cover"}' -F 'settings={"width":800,"height":600,"fit":"cover"}'
+2 -2
View File
@@ -8,7 +8,7 @@ Convert audio between mono and stereo layouts, or swap the left and right channe
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/audio-channels` `POST /api/v1/tools/audio-channels`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/audio-channels \ curl -X POST http://localhost:1349/api/v1/tools/audio-channels \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"mode": "stereo-to-mono"}' -F 'settings={"mode": "stereo-to-mono"}'
+3 -3
View File
@@ -8,7 +8,7 @@ View, edit, or strip audio metadata tags such as title, artist, and album (ID3 a
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/audio-metadata` `POST /api/v1/tools/audio-metadata`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -26,7 +26,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
Edit metadata tags: Edit metadata tags:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/audio-metadata \ curl -X POST http://localhost:1349/api/v1/tools/audio-metadata \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"title": "My Song", "artist": "Artist Name", "album": "Album Name"}' -F 'settings={"title": "My Song", "artist": "Artist Name", "album": "Album Name"}'
@@ -35,7 +35,7 @@ curl -X POST http://localhost:1349/api/v1/tools/audio/audio-metadata \
Strip all metadata: Strip all metadata:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/audio-metadata \ curl -X POST http://localhost:1349/api/v1/tools/audio-metadata \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"strip": true}' -F 'settings={"strip": true}'
+3 -3
View File
@@ -8,7 +8,7 @@ Speed up or slow down audio playback by applying a speed multiplier.
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/audio-speed` `POST /api/v1/tools/audio-speed`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/audio-speed \ curl -X POST http://localhost:1349/api/v1/tools/audio-speed \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"factor": 2}' -F 'settings={"factor": 2}'
@@ -41,5 +41,5 @@ curl -X POST http://localhost:1349/api/v1/tools/audio/audio-speed \
## Notes ## Notes
- A factor of `0.25` plays at quarter speed (4x longer). A factor of `4` plays at quadruple speed (4x shorter). - A factor of `0.25` plays at quarter speed (4x longer). A factor of `4` plays at quadruple speed (4x shorter).
- Pitch changes proportionally with speed. Use pitch-shift if you need to adjust pitch independently. - Pitch is preserved while speed changes (time-stretch). Use pitch-shift to adjust pitch independently.
- Output format matches the input format. - Output format matches the input format.
+2 -2
View File
@@ -8,7 +8,7 @@ Convert audio files between common formats including MP3, WAV, OGG, FLAC, and M4
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/convert-audio` `POST /api/v1/tools/convert-audio`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/convert-audio \ curl -X POST http://localhost:1349/api/v1/tools/convert-audio \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"format": "flac", "bitrateKbps": 256}' -F 'settings={"format": "flac", "bitrateKbps": 256}'
+4 -4
View File
@@ -8,7 +8,7 @@ Add fade-in and fade-out effects to the beginning and end of an audio file.
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/fade-audio` `POST /api/v1/tools/fade-audio`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/fade-audio \ curl -X POST http://localhost:1349/api/v1/tools/fade-audio \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"fadeInS": 2, "fadeOutS": 3}' -F 'settings={"fadeInS": 2, "fadeOutS": 3}'
@@ -41,6 +41,6 @@ curl -X POST http://localhost:1349/api/v1/tools/audio/fade-audio \
## Notes ## Notes
- Set either value to `0` to skip that fade direction. - Set either value to `0` to skip that fade direction. At least one must be greater than 0.
- The fade duration should not exceed the audio length. - The fade duration is clamped to the audio length if it exceeds it.
- Output format matches the input format. - Output format matches the input format.
+2 -2
View File
@@ -8,7 +8,7 @@ Combine two or more audio files into a single sequential track, concatenated in
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/merge-audio` `POST /api/v1/tools/merge-audio`
Accepts multipart form data with multiple audio files and a JSON `settings` field. Accepts multipart form data with multiple audio files and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with multiple audio files and a JSON `settings` fiel
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/merge-audio \ curl -X POST http://localhost:1349/api/v1/tools/merge-audio \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@intro.mp3" \ -F "file=@intro.mp3" \
-F "file=@main.mp3" \ -F "file=@main.mp3" \
+2 -2
View File
@@ -8,7 +8,7 @@ Reduce background noise in an audio file using FFT-based denoising with selectab
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/noise-reduction` `POST /api/v1/tools/noise-reduction`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/noise-reduction \ curl -X POST http://localhost:1349/api/v1/tools/noise-reduction \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"strength": "strong"}' -F 'settings={"strength": "strong"}'
+2 -2
View File
@@ -8,7 +8,7 @@ Even out audio loudness to broadcast standard levels using EBU R128 normalizatio
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/normalize-audio` `POST /api/v1/tools/normalize-audio`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. It applies EBU R128 loudness normaliza
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/normalize-audio \ curl -X POST http://localhost:1349/api/v1/tools/normalize-audio \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" -F "file=@audio.mp3"
``` ```
+2 -2
View File
@@ -8,7 +8,7 @@ Raise or lower the pitch of an audio file by a number of semitones without chang
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/pitch-shift` `POST /api/v1/tools/pitch-shift`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/pitch-shift \ curl -X POST http://localhost:1349/api/v1/tools/pitch-shift \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"semitones": -5}' -F 'settings={"semitones": -5}'
+2 -2
View File
@@ -8,7 +8,7 @@ Reverse an audio file so it plays backwards.
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/reverse-audio` `POST /api/v1/tools/reverse-audio`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. The entire audio file is reversed.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/reverse-audio \ curl -X POST http://localhost:1349/api/v1/tools/reverse-audio \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" -F "file=@audio.mp3"
``` ```
+2 -2
View File
@@ -8,7 +8,7 @@ Create a ringtone clip (.m4r) from any audio file by selecting a start time and
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/ringtone-maker` `POST /api/v1/tools/ringtone-maker`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/ringtone-maker \ curl -X POST http://localhost:1349/api/v1/tools/ringtone-maker \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"startS": 15, "durationS": 20}' -F 'settings={"startS": 15, "durationS": 20}'
+2 -2
View File
@@ -8,7 +8,7 @@ Detect and remove silent sections from an audio file based on a configurable thr
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/silence-removal` `POST /api/v1/tools/silence-removal`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/silence-removal \ curl -X POST http://localhost:1349/api/v1/tools/silence-removal \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"thresholdDb": -45, "minSilenceS": 1}' -F 'settings={"thresholdDb": -45, "minSilenceS": 1}'
+5 -5
View File
@@ -8,7 +8,7 @@ Split an audio file into segments by fixed time intervals, equal parts, or autom
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/split-audio` `POST /api/v1/tools/split-audio`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -27,7 +27,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
Split into 30-second segments: Split into 30-second segments:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/split-audio \ curl -X POST http://localhost:1349/api/v1/tools/split-audio \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"mode": "time", "segmentS": 30}' -F 'settings={"mode": "time", "segmentS": 30}'
@@ -36,7 +36,7 @@ curl -X POST http://localhost:1349/api/v1/tools/audio/split-audio \
Split by silence detection: Split by silence detection:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/split-audio \ curl -X POST http://localhost:1349/api/v1/tools/split-audio \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"mode": "silence", "thresholdDb": -35, "minSilenceS": 0.5}' -F 'settings={"mode": "silence", "thresholdDb": -35, "minSilenceS": 0.5}'
@@ -47,7 +47,7 @@ curl -X POST http://localhost:1349/api/v1/tools/audio/split-audio \
```json ```json
{ {
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/audio-segments.zip", "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/audio_parts.zip",
"originalSize": 4500000, "originalSize": 4500000,
"processedSize": 4600000 "processedSize": 4600000
} }
@@ -57,5 +57,5 @@ curl -X POST http://localhost:1349/api/v1/tools/audio/split-audio \
- The `downloadUrl` points to a ZIP archive containing all segments. - The `downloadUrl` points to a ZIP archive containing all segments.
- Only the parameters relevant to the chosen `mode` are used; others are ignored. - Only the parameters relevant to the chosen `mode` are used; others are ignored.
- Segment filenames are numbered sequentially (e.g. `001.mp3`, `002.mp3`). - Segment filenames are numbered sequentially (e.g. `part-000.mp3`, `part-001.mp3`).
- Output format matches the input format. - Output format matches the input format.
+2 -2
View File
@@ -8,7 +8,7 @@ Convert speech to text using AI-powered transcription (faster-whisper). Supports
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/transcribe-audio` `POST /api/v1/tools/transcribe-audio`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/transcribe-audio \ curl -X POST http://localhost:1349/api/v1/tools/transcribe-audio \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"language": "en", "outputFormat": "srt"}' -F 'settings={"language": "en", "outputFormat": "srt"}'
+2 -2
View File
@@ -8,7 +8,7 @@ Cut a section out of an audio file by specifying start and end times in seconds.
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/trim-audio` `POST /api/v1/tools/trim-audio`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/trim-audio \ curl -X POST http://localhost:1349/api/v1/tools/trim-audio \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"startS": 10, "endS": 45}' -F 'settings={"startS": 10, "endS": 45}'
+2 -2
View File
@@ -8,7 +8,7 @@ Increase or decrease the volume of an audio file by applying a fixed gain in dec
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/volume-adjust` `POST /api/v1/tools/volume-adjust`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/volume-adjust \ curl -X POST http://localhost:1349/api/v1/tools/volume-adjust \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"gainDb": 6}' -F 'settings={"gainDb": 6}'
+2 -2
View File
@@ -8,7 +8,7 @@ Generate a waveform visualization as a PNG image from an audio file, with config
## API Endpoint ## API Endpoint
`POST /api/v1/tools/audio/waveform-image` `POST /api/v1/tools/waveform-image`
Accepts multipart form data with an audio file and a JSON `settings` field. Accepts multipart form data with an audio file and a JSON `settings` field.
@@ -23,7 +23,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio/waveform-image \ curl -X POST http://localhost:1349/api/v1/tools/waveform-image \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \ -F "file=@audio.mp3" \
-F 'settings={"width": 1920, "height": 400, "color": "#e07832"}' -F 'settings={"width": 1920, "height": 400, "color": "#e07832"}'
+6 -5
View File
@@ -8,7 +8,7 @@ Create bar, line, or pie charts from CSV or JSON data. Returns a PNG image of th
## API Endpoint ## API Endpoint
`POST /api/v1/tools/data/chart-maker` `POST /api/v1/tools/chart-maker`
Accepts multipart form data with a CSV or JSON file and a JSON `settings` field. Accepts multipart form data with a CSV or JSON file and a JSON `settings` field.
@@ -24,7 +24,7 @@ Accepts multipart form data with a CSV or JSON file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/chart-maker \ curl -X POST http://localhost:1349/api/v1/tools/chart-maker \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@sales.csv" \ -F "file=@sales.csv" \
-F 'settings={"kind": "line", "title": "Monthly Sales", "width": 960, "height": 540}' -F 'settings={"kind": "line", "title": "Monthly Sales", "width": 960, "height": 540}'
@@ -35,7 +35,7 @@ curl -X POST http://localhost:1349/api/v1/tools/data/chart-maker \
```json ```json
{ {
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/sales.png", "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/sales_chart.png",
"originalSize": 1024, "originalSize": 1024,
"processedSize": 48500 "processedSize": 48500
} }
@@ -44,6 +44,7 @@ curl -X POST http://localhost:1349/api/v1/tools/data/chart-maker \
## Notes ## Notes
- Input must be a `.csv` or `.json` file. CSV files should have a header row with column names. - Input must be a `.csv` or `.json` file. CSV files should have a header row with column names.
- The first column is used as the category axis; remaining numeric columns become data series. - The first column is used as the category label; the second column must be numeric and provides the data values. Only two columns are used.
- JSON input should be an array of objects with consistent keys. - JSON input should be an array of `{label, value}` objects, or a plain object whose keys become labels and values become data points.
- Maximum 100 data points. All values must be zero or greater.
- Output is always a PNG image regardless of input format. - Output is always a PNG image regardless of input format.
+2 -2
View File
@@ -8,7 +8,7 @@ Bundle multiple files of any type into a single ZIP archive. Duplicate filenames
## API Endpoint ## API Endpoint
`POST /api/v1/tools/data/create-zip` `POST /api/v1/tools/create-zip`
Accepts multipart form data with two or more files. No settings field is required. Accepts multipart form data with two or more files. No settings field is required.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload 2--50 files of any type to bund
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/create-zip \ curl -X POST http://localhost:1349/api/v1/tools/create-zip \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@report.pdf" \ -F "file=@report.pdf" \
-F "file=@data.csv" \ -F "file=@data.csv" \
+3 -3
View File
@@ -8,7 +8,7 @@ Convert between CSV and Excel (XLSX) formats in both directions. Upload a CSV or
## API Endpoint ## API Endpoint
`POST /api/v1/tools/data/csv-excel` `POST /api/v1/tools/csv-excel`
Accepts multipart form data with a CSV, TSV, or XLSX file and a JSON `settings` field. Accepts multipart form data with a CSV, TSV, or XLSX file and a JSON `settings` field.
@@ -23,7 +23,7 @@ Accepts multipart form data with a CSV, TSV, or XLSX file and a JSON `settings`
CSV to Excel: CSV to Excel:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/csv-excel \ curl -X POST http://localhost:1349/api/v1/tools/csv-excel \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@data.csv" \ -F "file=@data.csv" \
-F 'settings={"sheet": 1}' -F 'settings={"sheet": 1}'
@@ -32,7 +32,7 @@ curl -X POST http://localhost:1349/api/v1/tools/data/csv-excel \
Excel to CSV: Excel to CSV:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/csv-excel \ curl -X POST http://localhost:1349/api/v1/tools/csv-excel \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@report.xlsx" \ -F "file=@report.xlsx" \
-F 'settings={"sheet": 2}' -F 'settings={"sheet": 2}'
+3 -3
View File
@@ -8,7 +8,7 @@ Convert between CSV and JSON formats in both directions. Upload a CSV or TSV fil
## API Endpoint ## API Endpoint
`POST /api/v1/tools/data/csv-json` `POST /api/v1/tools/csv-json`
Accepts multipart form data with a CSV, TSV, or JSON file and a JSON `settings` field. Accepts multipart form data with a CSV, TSV, or JSON file and a JSON `settings` field.
@@ -23,7 +23,7 @@ Accepts multipart form data with a CSV, TSV, or JSON file and a JSON `settings`
CSV to JSON: CSV to JSON:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/csv-json \ curl -X POST http://localhost:1349/api/v1/tools/csv-json \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@users.csv" \ -F "file=@users.csv" \
-F 'settings={"pretty": true}' -F 'settings={"pretty": true}'
@@ -32,7 +32,7 @@ curl -X POST http://localhost:1349/api/v1/tools/data/csv-json \
JSON to CSV: JSON to CSV:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/csv-json \ curl -X POST http://localhost:1349/api/v1/tools/csv-json \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@users.json" \ -F "file=@users.json" \
-F 'settings={}' -F 'settings={}'
+3 -3
View File
@@ -8,7 +8,7 @@ Safely extract files from a ZIP archive. Single-file archives return the contain
## API Endpoint ## API Endpoint
`POST /api/v1/tools/data/extract-zip` `POST /api/v1/tools/extract-zip`
Accepts multipart form data with a ZIP file. No settings field is required. Accepts multipart form data with a ZIP file. No settings field is required.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a `.zip` file to extract.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/extract-zip \ curl -X POST http://localhost:1349/api/v1/tools/extract-zip \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@archive.zip" -F "file=@archive.zip"
``` ```
@@ -29,7 +29,7 @@ curl -X POST http://localhost:1349/api/v1/tools/data/extract-zip \
```json ```json
{ {
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/archive.zip", "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/archive_extracted.zip",
"originalSize": 2800000, "originalSize": 2800000,
"processedSize": 3500000 "processedSize": 3500000
} }
+3 -3
View File
@@ -8,7 +8,7 @@ Convert between JSON and XML formats in both directions. Upload a JSON file to g
## API Endpoint ## API Endpoint
`POST /api/v1/tools/data/json-xml` `POST /api/v1/tools/json-xml`
Accepts multipart form data with a JSON or XML file and a JSON `settings` field. Accepts multipart form data with a JSON or XML file and a JSON `settings` field.
@@ -23,7 +23,7 @@ Accepts multipart form data with a JSON or XML file and a JSON `settings` field.
JSON to XML: JSON to XML:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/json-xml \ curl -X POST http://localhost:1349/api/v1/tools/json-xml \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@config.json" \ -F "file=@config.json" \
-F 'settings={"pretty": true}' -F 'settings={"pretty": true}'
@@ -32,7 +32,7 @@ curl -X POST http://localhost:1349/api/v1/tools/data/json-xml \
XML to JSON: XML to JSON:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/json-xml \ curl -X POST http://localhost:1349/api/v1/tools/json-xml \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@config.xml" \ -F "file=@config.xml" \
-F 'settings={"pretty": true}' -F 'settings={"pretty": true}'
+2 -2
View File
@@ -8,7 +8,7 @@ Combine multiple CSV or TSV files with matching columns into a single merged fil
## API Endpoint ## API Endpoint
`POST /api/v1/tools/data/merge-csvs` `POST /api/v1/tools/merge-csvs`
Accepts multipart form data with two or more CSV files. No settings field is required. Accepts multipart form data with two or more CSV files. No settings field is required.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload 2--20 CSV or TSV files with mat
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/merge-csvs \ curl -X POST http://localhost:1349/api/v1/tools/merge-csvs \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@january.csv" \ -F "file=@january.csv" \
-F "file=@february.csv" \ -F "file=@february.csv" \
+3 -3
View File
@@ -8,7 +8,7 @@ Split a large CSV or TSV file into smaller files by row count. Returns a ZIP arc
## API Endpoint ## API Endpoint
`POST /api/v1/tools/data/split-csv` `POST /api/v1/tools/split-csv`
Accepts multipart form data with a CSV file and a JSON `settings` field. Accepts multipart form data with a CSV file and a JSON `settings` field.
@@ -22,7 +22,7 @@ Accepts multipart form data with a CSV file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/split-csv \ curl -X POST http://localhost:1349/api/v1/tools/split-csv \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@large-dataset.csv" \ -F "file=@large-dataset.csv" \
-F 'settings={"rowsPerFile": 500, "keepHeader": true}' -F 'settings={"rowsPerFile": 500, "keepHeader": true}'
@@ -33,7 +33,7 @@ curl -X POST http://localhost:1349/api/v1/tools/data/split-csv \
```json ```json
{ {
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/large-dataset-split.zip", "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/large-dataset_parts.zip",
"originalSize": 1048576, "originalSize": 1048576,
"processedSize": 1050000 "processedSize": 1050000
} }
+2 -2
View File
@@ -8,7 +8,7 @@ Extract repeating elements from an XML file into a flat CSV table. The tool auto
## API Endpoint ## API Endpoint
`POST /api/v1/tools/data/xml-to-csv` `POST /api/v1/tools/xml-to-csv`
Accepts multipart form data with an XML file. No settings field is required. Accepts multipart form data with an XML file. No settings field is required.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. The repeating element is auto-detected
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/xml-to-csv \ curl -X POST http://localhost:1349/api/v1/tools/xml-to-csv \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@catalog.xml" -F "file=@catalog.xml"
``` ```
+4 -4
View File
@@ -8,7 +8,7 @@ Convert between YAML and JSON formats in both directions. Upload a YAML file to
## API Endpoint ## API Endpoint
`POST /api/v1/tools/data/yaml-json` `POST /api/v1/tools/yaml-json`
Accepts multipart form data with a YAML or JSON file. No settings field is required. Accepts multipart form data with a YAML or JSON file. No settings field is required.
@@ -21,7 +21,7 @@ This tool has no configurable parameters. The conversion direction is determined
YAML to JSON: YAML to JSON:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/yaml-json \ curl -X POST http://localhost:1349/api/v1/tools/yaml-json \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@config.yaml" -F "file=@config.yaml"
``` ```
@@ -29,7 +29,7 @@ curl -X POST http://localhost:1349/api/v1/tools/data/yaml-json \
JSON to YAML: JSON to YAML:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/data/yaml-json \ curl -X POST http://localhost:1349/api/v1/tools/yaml-json \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@config.json" -F "file=@config.json"
``` ```
@@ -49,4 +49,4 @@ curl -X POST http://localhost:1349/api/v1/tools/data/yaml-json \
- Conversion direction is auto-detected from the input file extension: `.yaml` or `.yml` produces `.json`, and `.json` produces `.yaml`. - Conversion direction is auto-detected from the input file extension: `.yaml` or `.yml` produces `.json`, and `.json` produces `.yaml`.
- Both `.yaml` and `.yml` extensions are accepted. - Both `.yaml` and `.yml` extensions are accepted.
- Multi-document YAML files (separated by `---`) are supported. - Only the first document in a multi-document YAML file is converted; additional documents separated by `---` are ignored.
+4 -4
View File
@@ -8,7 +8,7 @@ Comprehensive color adjustment tool combining brightness, contrast, exposure, sa
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/adjust-colors` `POST /api/v1/tools/adjust-colors`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -32,7 +32,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/adjust-colors \ curl -X POST http://localhost:1349/api/v1/tools/adjust-colors \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"brightness": 20, "contrast": 10, "saturation": -30, "effect": "none"}' -F 'settings={"brightness": 20, "contrast": 10, "saturation": -30, "effect": "none"}'
@@ -41,7 +41,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/adjust-colors \
Apply a warm vintage look: Apply a warm vintage look:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/adjust-colors \ curl -X POST http://localhost:1349/api/v1/tools/adjust-colors \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"temperature": 40, "saturation": -15, "contrast": 10, "effect": "sepia"}' -F 'settings={"temperature": 40, "saturation": -15, "contrast": 10, "effect": "sepia"}'
@@ -64,5 +64,5 @@ curl -X POST http://localhost:1349/api/v1/tools/image/adjust-colors \
- Adjustments are applied in this order: brightness, contrast, exposure, saturation/hue, temperature/tint, sharpness, channels, effects. - Adjustments are applied in this order: brightness, contrast, exposure, saturation/hue, temperature/tint, sharpness, channels, effects.
- Temperature uses a 3x3 color recombination matrix on the blue-orange and green-magenta axes. - Temperature uses a 3x3 color recombination matrix on the blue-orange and green-magenta axes.
- Exposure maps to Sharp's gamma function (positive brightens midtones, negative darkens them). - Exposure maps to Sharp's gamma function (positive brightens midtones, negative darkens them).
- This endpoint also responds at the legacy paths `/api/v1/tools/brightness-contrast`, `/api/v1/tools/saturation`, `/api/v1/tools/color-channels`, and `/api/v1/tools/color-effects`. - This endpoint also responds at the legacy paths `/api/v1/tools/brightness-contrast`, `/api/v1/tools/saturation`, `/api/v1/tools/color-channels`, and `/api/v1/tools/color-effects`. All use the same schema.
- Output format matches the input format. HEIC, RAW, PSD, and SVG inputs are automatically decoded before processing. - Output format matches the input format. HEIC, RAW, PSD, and SVG inputs are automatically decoded before processing.
+2 -2
View File
@@ -4,7 +4,7 @@ Expand the canvas of an image with AI-powered fill (outpainting). Extends the im
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/ai-canvas-expand` `POST /api/v1/tools/ai-canvas-expand`
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
@@ -28,7 +28,7 @@ At least one extend direction must be greater than 0.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/ai-canvas-expand \ curl -X POST http://localhost:1349/api/v1/tools/ai-canvas-expand \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"extendTop":200,"extendBottom":200,"extendLeft":100,"extendRight":100,"tier":"balanced"}' -F 'settings={"extendTop":200,"extendBottom":200,"extendLeft":100,"extendRight":100,"tier":"balanced"}'
``` ```
+2 -2
View File
@@ -8,7 +8,7 @@ Replace the background of an image with a solid color or gradient. The AI model
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/background-replace` `POST /api/v1/tools/background-replace`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -27,7 +27,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/background-replace \ curl -X POST http://localhost:1349/api/v1/tools/background-replace \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"backgroundType": "color", "color": "#2563eb", "feather": 2}' -F 'settings={"backgroundType": "color", "color": "#2563eb", "feather": 2}'
+2 -2
View File
@@ -8,7 +8,7 @@ Generate barcode images from text input. Supports Code 128, EAN-13, UPC-A, Code
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/barcode-generate` `POST /api/v1/tools/barcode-generate`
Accepts an `application/json` body (not multipart). The barcode is generated from the provided text, not from an uploaded file. Accepts an `application/json` body (not multipart). The barcode is generated from the provided text, not from an uploaded file.
@@ -24,7 +24,7 @@ Accepts an `application/json` body (not multipart). The barcode is generated fro
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/barcode-generate \ curl -X POST http://localhost:1349/api/v1/tools/barcode-generate \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"text": "5901234123457", "type": "ean13", "scale": 4}' -d '{"text": "5901234123457", "type": "ean13", "scale": 4}'
+2 -2
View File
@@ -8,7 +8,7 @@ Scan uploaded images for all types of barcodes and QR codes. Returns decoded tex
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/barcode-read` `POST /api/v1/tools/barcode-read`
Accepts multipart form data with an image file and an optional JSON `settings` field. Accepts multipart form data with an image file and an optional JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with an image file and an optional JSON `settings` f
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/barcode-read \ curl -X POST http://localhost:1349/api/v1/tools/barcode-read \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@receipt.jpg" \ -F "file=@receipt.jpg" \
-F 'settings={"tryHarder": true}' -F 'settings={"tryHarder": true}'
+3 -3
View File
@@ -4,7 +4,7 @@ Add gradient backgrounds, device frames, shadows, watermarks, and social media s
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/beautify` `POST /api/v1/tools/beautify`
## Parameters ## Parameters
@@ -33,7 +33,7 @@ Add gradient backgrounds, device frames, shadows, watermarks, and social media s
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/beautify \ curl -X POST http://localhost:1349/api/v1/tools/beautify \
-F "file=@screenshot.png" \ -F "file=@screenshot.png" \
-F 'settings={"backgroundType":"linear-gradient","gradientStops":[{"color":"#667eea","position":0},{"color":"#764ba2","position":100}],"gradientAngle":135,"padding":64,"borderRadius":12,"shadowPreset":"medium","frame":"macos-dark","socialPreset":"twitter"}' -F 'settings={"backgroundType":"linear-gradient","gradientStops":[{"color":"#667eea","position":0},{"color":"#764ba2","position":100}],"gradientAngle":135,"padding":64,"borderRadius":12,"shadowPreset":"medium","frame":"macos-dark","socialPreset":"twitter"}'
``` ```
@@ -41,7 +41,7 @@ curl -X POST http://localhost:13490/api/v1/tools/image/beautify \
### With Background Image ### With Background Image
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/beautify \ curl -X POST http://localhost:1349/api/v1/tools/beautify \
-F "file=@screenshot.png" \ -F "file=@screenshot.png" \
-F "backgroundImage=@bg-texture.jpg" \ -F "backgroundImage=@bg-texture.jpg" \
-F 'settings={"backgroundType":"image","padding":80,"borderRadius":16,"shadowPreset":"dramatic"}' -F 'settings={"backgroundType":"image","padding":80,"borderRadius":16,"shadowPreset":"dramatic"}'
+2 -2
View File
@@ -8,7 +8,7 @@ Blur the background of an image while keeping the subject sharp. The AI model is
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/blur-background` `POST /api/v1/tools/blur-background`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -23,7 +23,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/blur-background \ curl -X POST http://localhost:1349/api/v1/tools/blur-background \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"intensity": 75, "feather": 3}' -F 'settings={"intensity": 75, "feather": 3}'
+2 -2
View File
@@ -4,7 +4,7 @@ Auto-detect and blur faces in images using AI-powered face detection (MediaPipe)
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/blur-faces` `POST /api/v1/tools/blur-faces`
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
@@ -21,7 +21,7 @@ Auto-detect and blur faces in images using AI-powered face detection (MediaPipe)
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/blur-faces \ curl -X POST http://localhost:1349/api/v1/tools/blur-faces \
-F "file=@group-photo.jpg" \ -F "file=@group-photo.jpg" \
-F 'settings={"blurRadius":40,"sensitivity":0.3}' -F 'settings={"blurRadius":40,"sensitivity":0.3}'
``` ```
+2 -2
View File
@@ -4,7 +4,7 @@ Add borders, padding, rounded corners, and drop shadows to images. The tool appl
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/border` `POST /api/v1/tools/border`
## Parameters ## Parameters
@@ -25,7 +25,7 @@ Add borders, padding, rounded corners, and drop shadows to images. The tool appl
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/border \ curl -X POST http://localhost:1349/api/v1/tools/border \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"borderWidth":20,"borderColor":"#333333","cornerRadius":16,"shadow":true,"shadowBlur":25,"shadowOpacity":50}' -F 'settings={"borderWidth":20,"borderColor":"#333333","cornerRadius":16,"shadow":true,"shadowBlur":25,"shadowOpacity":50}'
``` ```
+3 -3
View File
@@ -8,7 +8,7 @@ Rename multiple files using a pattern template with placeholders for index, padd
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/bulk-rename` `POST /api/v1/tools/bulk-rename`
Accepts multipart form data with multiple files and a JSON `settings` field. Accepts multipart form data with multiple files and a JSON `settings` field.
@@ -32,7 +32,7 @@ The original file extension is always preserved.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/bulk-rename \ curl -X POST http://localhost:1349/api/v1/tools/bulk-rename \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo1.jpg" \ -F "file=@photo1.jpg" \
-F "file=@photo2.jpg" \ -F "file=@photo2.jpg" \
@@ -45,7 +45,7 @@ This produces: `vacation-1.jpg`, `vacation-2.jpg`, `vacation-3.jpg`
Using original filename: Using original filename:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/bulk-rename \ curl -X POST http://localhost:1349/api/v1/tools/bulk-rename \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@IMG_001.jpg" \ -F "file=@IMG_001.jpg" \
-F "file=@IMG_002.jpg" \ -F "file=@IMG_002.jpg" \
+2 -2
View File
@@ -8,7 +8,7 @@ Crop an image to a centered circle with transparent corners. Supports adjustable
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/circle-crop` `POST /api/v1/tools/circle-crop`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -27,7 +27,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/circle-crop \ curl -X POST http://localhost:1349/api/v1/tools/circle-crop \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"zoom": 1.2, "borderWidth": 4, "borderColor": "#333333"}' -F 'settings={"zoom": 1.2, "borderWidth": 4, "borderColor": "#333333"}'
+2 -2
View File
@@ -4,7 +4,7 @@ Combine multiple images into beautiful grid collages with 25+ templates. Support
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/collage` `POST /api/v1/tools/collage`
## Parameters ## Parameters
@@ -55,7 +55,7 @@ Combine multiple images into beautiful grid collages with 25+ templates. Support
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/collage \ curl -X POST http://localhost:1349/api/v1/tools/collage \
-F "file=@photo1.jpg" \ -F "file=@photo1.jpg" \
-F "file=@photo2.jpg" \ -F "file=@photo2.jpg" \
-F "file=@photo3.jpg" \ -F "file=@photo3.jpg" \
+2 -2
View File
@@ -8,7 +8,7 @@ Simulate color vision deficiency (CVD) to preview how images appear to people wi
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/color-blindness` `POST /api/v1/tools/color-blindness`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -34,7 +34,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/color-blindness \ curl -X POST http://localhost:1349/api/v1/tools/color-blindness \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@design.png" \ -F "file=@design.png" \
-F 'settings={"simulationType": "deuteranopia"}' -F 'settings={"simulationType": "deuteranopia"}'
+22 -13
View File
@@ -8,24 +8,24 @@ Extract the dominant colors from an image and return them as hex color values. U
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/color-palette` `POST /api/v1/tools/color-palette`
Accepts multipart form data with an image file. No settings field is needed. Accepts multipart form data with an image file and an optional JSON `settings` field.
## Parameters ## Parameters
This tool has no configurable parameters. Simply upload the image file. | Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Field | Type | Required | Description | | count | integer | No | `8` | Number of colors to extract (2-16) |
|-------|------|----------|-------------| | format | string | No | `"hex"` | Color format: `hex`, `rgb`, `hsl` |
| file | file | Yes | The image to extract colors from |
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/color-palette \ curl -X POST http://localhost:1349/api/v1/tools/color-palette \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" -F "file=@photo.jpg" \
-F 'settings={"count": 6, "format": "hex"}'
``` ```
## Example Response ## Example Response
@@ -41,6 +41,14 @@ curl -X POST http://localhost:1349/api/v1/tools/image/color-palette \
"#a0c0e0", "#a0c0e0",
"#806040" "#806040"
], ],
"hex": [
"#304080",
"#e0a060",
"#f0f0f0",
"#203020",
"#a0c0e0",
"#806040"
],
"count": 6 "count": 6
} }
``` ```
@@ -50,14 +58,15 @@ curl -X POST http://localhost:1349/api/v1/tools/image/color-palette \
| Field | Type | Description | | Field | Type | Description |
|-------|------|-------------| |-------|------|-------------|
| filename | string | Sanitized filename | | filename | string | Sanitized filename |
| colors | array | Array of hex color strings, ordered by dominance (most frequent first) | | colors | array | Array of color strings in the requested format, ordered by dominance (most frequent first) |
| hex | array | Array of hex color strings (always hex, regardless of the `format` setting) |
| count | number | Number of colors extracted | | count | number | Number of colors extracted |
## Notes ## Notes
- Returns up to 8 dominant colors, sorted by frequency (most common first). - Returns up to `count` dominant colors (default 8, range 2-16), sorted by frequency (most common first).
- The image is internally resized to 50x50 pixels for analysis, so the palette represents overall color distribution rather than small details. - The image is internally resized to 100x100 pixels for analysis, so the palette represents overall color distribution rather than small details.
- Colors are quantized to the nearest multiple of 16 to reduce noise, then similar colors (within RGB Manhattan distance of 48) are merged to avoid near-duplicate entries. - Colors are extracted using median-cut quantization, which recursively splits pixel populations along the channel with the widest range.
- The alpha channel is removed before analysis, so transparent areas are not considered. - The alpha channel is removed before analysis, so transparent areas are not considered.
- This is a read-only endpoint. It does not produce a downloadable output file or a `jobId`. - This is a read-only endpoint. It does not produce a downloadable output file or a `jobId`.
- HEIC, RAW, PSD, and SVG inputs are automatically decoded before analysis. - HEIC, RAW, PSD, and SVG inputs are automatically decoded before analysis.
+2 -2
View File
@@ -4,7 +4,7 @@ Convert black-and-white or grayscale photos to full color using AI (DDColor mode
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/colorize` `POST /api/v1/tools/colorize`
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
@@ -21,7 +21,7 @@ Convert black-and-white or grayscale photos to full color using AI (DDColor mode
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/colorize \ curl -X POST http://localhost:1349/api/v1/tools/colorize \
-F "file=@old-bw-photo.jpg" \ -F "file=@old-bw-photo.jpg" \
-F 'settings={"intensity":0.9,"model":"auto"}' -F 'settings={"intensity":0.9,"model":"auto"}'
``` ```
+2 -2
View File
@@ -8,7 +8,7 @@ Upload two images to compute a pixel-level difference map and a numerical simila
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/compare` `POST /api/v1/tools/compare`
Accepts multipart form data with **two** image files. No settings field is needed. Accepts multipart form data with **two** image files. No settings field is needed.
@@ -24,7 +24,7 @@ This tool has no configurable parameters. Upload exactly two image files.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/compare \ curl -X POST http://localhost:1349/api/v1/tools/compare \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@original.jpg" \ -F "file=@original.jpg" \
-F "file=@modified.jpg" -F "file=@modified.jpg"
+3 -3
View File
@@ -8,7 +8,7 @@ Layer an overlay image on top of a base image with configurable position, opacit
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/compose` `POST /api/v1/tools/compose`
Accepts multipart form data with **two** image files and a JSON `settings` field. Accepts multipart form data with **two** image files and a JSON `settings` field.
@@ -46,7 +46,7 @@ Accepts multipart form data with **two** image files and a JSON `settings` field
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/compose \ curl -X POST http://localhost:1349/api/v1/tools/compose \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@background.jpg" \ -F "file=@background.jpg" \
-F "overlay=@graphic.png" \ -F "overlay=@graphic.png" \
@@ -56,7 +56,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/compose \
Using multiply blend mode: Using multiply blend mode:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/compose \ curl -X POST http://localhost:1349/api/v1/tools/compose \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F "overlay=@texture.jpg" \ -F "overlay=@texture.jpg" \
+3 -3
View File
@@ -8,7 +8,7 @@ Reduce image file size by specifying a quality level or a target file size in ki
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/compress` `POST /api/v1/tools/compress`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -25,7 +25,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
Compress to quality 60: Compress to quality 60:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/compress \ curl -X POST http://localhost:1349/api/v1/tools/compress \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"mode": "quality", "quality": 60}' -F 'settings={"mode": "quality", "quality": 60}'
@@ -34,7 +34,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/compress \
Compress to target size of 200 KB: Compress to target size of 200 KB:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/compress \ curl -X POST http://localhost:1349/api/v1/tools/compress \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"mode": "targetSize", "targetSizeKb": 200}' -F 'settings={"mode": "targetSize", "targetSizeKb": 200}'
@@ -4,7 +4,7 @@ Seam carving resize that intelligently removes or adds pixels along paths of lea
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/content-aware-resize` `POST /api/v1/tools/content-aware-resize`
**Processing:** Synchronous (returns result directly) **Processing:** Synchronous (returns result directly)
@@ -15,8 +15,8 @@ Seam carving resize that intelligently removes or adds pixels along paths of lea
| Parameter | Type | Required | Default | Description | | Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------| |-----------|------|----------|---------|-------------|
| file | file | Yes | - | Image file (multipart) | | file | file | Yes | - | Image file (multipart) |
| width | integer | No | - | Target width in pixels | | width | number | No | - | Target width in pixels |
| height | integer | No | - | Target height in pixels | | height | number | No | - | Target height in pixels |
| protectFaces | boolean | No | `false` | Detect and protect faces from seam removal | | protectFaces | boolean | No | `false` | Detect and protect faces from seam removal |
| blurRadius | number | No | `4` | Pre-processing blur radius for energy calculation (0-20) | | blurRadius | number | No | `4` | Pre-processing blur radius for energy calculation (0-20) |
| sobelThreshold | number | No | `2` | Sobel edge detection threshold (1-20). Higher values make the algorithm more aggressive | | sobelThreshold | number | No | `2` | Sobel edge detection threshold (1-20). Higher values make the algorithm more aggressive |
@@ -27,7 +27,7 @@ At least one of `width`, `height`, or `square` must be specified.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/content-aware-resize \ curl -X POST http://localhost:1349/api/v1/tools/content-aware-resize \
-F "file=@landscape.jpg" \ -F "file=@landscape.jpg" \
-F 'settings={"width":800,"protectFaces":true}' -F 'settings={"width":800,"protectFaces":true}'
``` ```
+8 -5
View File
@@ -8,7 +8,7 @@ Convert images between formats. Supports common web formats as well as specializ
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/convert` `POST /api/v1/tools/convert`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -16,7 +16,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
| Parameter | Type | Required | Default | Description | | Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------| |-----------|------|----------|---------|-------------|
| format | string | Yes | - | Target format: `jpg`, `png`, `webp`, `avif`, `tiff`, `gif`, `heic`, `heif`, `jxl`, `bmp`, `ico`, `jp2`, `qoi`, `psd` | | format | string | Yes | - | Target format: `jpg`, `png`, `webp`, `avif`, `tiff`, `gif`, `heic`, `heif`, `jxl`, `bmp`, `ico`, `jp2`, `qoi`, `psd`, `ppm`, `eps`, `tga` |
| quality | number | No | - | Output quality (1-100). Applies to lossy formats like jpg, webp, avif, heic. | | quality | number | No | - | Output quality (1-100). Applies to lossy formats like jpg, webp, avif, heic. |
## Supported Output Formats ## Supported Output Formats
@@ -36,13 +36,16 @@ Accepts multipart form data with an image file and a JSON `settings` field.
| jp2 | Lossy | JPEG 2000 | | jp2 | Lossy | JPEG 2000 |
| qoi | Lossless | Quite OK Image format | | qoi | Lossless | Quite OK Image format |
| psd | Layered | Adobe Photoshop (requires ImageMagick) | | psd | Layered | Adobe Photoshop (requires ImageMagick) |
| ppm | Lossless | Portable Pixmap (PPM/PGM/PBM) |
| eps | Vector | Encapsulated PostScript |
| tga | Lossless | Targa image format |
## Example Request ## Example Request
Convert to WebP: Convert to WebP:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/convert \ curl -X POST http://localhost:1349/api/v1/tools/convert \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"format": "webp", "quality": 85}' -F 'settings={"format": "webp", "quality": 85}'
@@ -51,7 +54,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/convert \
Convert to PNG (lossless): Convert to PNG (lossless):
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/convert \ curl -X POST http://localhost:1349/api/v1/tools/convert \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"format": "png"}' -F 'settings={"format": "png"}'
@@ -73,6 +76,6 @@ curl -X POST http://localhost:1349/api/v1/tools/image/convert \
- The output filename extension is automatically updated to match the target format. - The output filename extension is automatically updated to match the target format.
- SVG inputs are rasterized at 300 DPI before conversion. - SVG inputs are rasterized at 300 DPI before conversion.
- PSD conversion requires ImageMagick to be installed on the server. - PSD conversion requires ImageMagick to be installed on the server.
- BMP, ICO, JP2, JXL, and QOI use specialized CLI encoders and bypass Sharp processing. - BMP, EPS, ICO, JP2, JXL, PPM, QOI, and TGA use specialized CLI encoders and bypass Sharp processing.
- HEIC/HEIF encoding uses the system HEIC encoder library. - HEIC/HEIF encoding uses the system HEIC encoder library.
- Input formats are broad: JPEG, PNG, WebP, AVIF, TIFF, GIF, HEIC, RAW (CR2, NEF, ARW, etc.), PSD, SVG, BMP, and more. - Input formats are broad: JPEG, PNG, WebP, AVIF, TIFF, GIF, HEIC, RAW (CR2, NEF, ARW, etc.), PSD, SVG, BMP, and more.
+3 -3
View File
@@ -8,7 +8,7 @@ Crop images by defining a rectangular region using position and size. Supports b
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/crop` `POST /api/v1/tools/crop`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -25,7 +25,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/crop \ curl -X POST http://localhost:1349/api/v1/tools/crop \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"left": 100, "top": 50, "width": 800, "height": 600}' -F 'settings={"left": 100, "top": 50, "width": 800, "height": 600}'
@@ -34,7 +34,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/crop \
Crop using percentage values: Crop using percentage values:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/crop \ curl -X POST http://localhost:1349/api/v1/tools/crop \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"left": 10, "top": 10, "width": 80, "height": 80, "unit": "percent"}' -F 'settings={"left": 10, "top": 10, "width": 80, "height": 80, "unit": "percent"}'
+2 -2
View File
@@ -8,7 +8,7 @@ Apply a two-color duotone effect to an image. The image is converted to grayscal
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/duotone` `POST /api/v1/tools/duotone`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -23,7 +23,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/duotone \ curl -X POST http://localhost:1349/api/v1/tools/duotone \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"shadow": "#0f172a", "highlight": "#f97316", "intensity": 80}' -F 'settings={"shadow": "#0f172a", "highlight": "#f97316", "intensity": 80}'
+6 -6
View File
@@ -10,13 +10,13 @@ Edit image metadata fields including EXIF, IPTC, GPS coordinates, dates, and key
### Edit Metadata ### Edit Metadata
`POST /api/v1/tools/image/edit-metadata` `POST /api/v1/tools/edit-metadata`
Writes metadata fields to the image and returns the modified file. Writes metadata fields to the image and returns the modified file.
### Inspect Metadata ### Inspect Metadata
`POST /api/v1/tools/image/edit-metadata/inspect` `POST /api/v1/tools/edit-metadata/inspect`
Returns the full metadata from the image via ExifTool as JSON. Does not modify the image. Returns the full metadata from the image via ExifTool as JSON. Does not modify the image.
@@ -52,7 +52,7 @@ Returns the full metadata from the image via ExifTool as JSON. Does not modify t
Set author and copyright: Set author and copyright:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \ curl -X POST http://localhost:1349/api/v1/tools/edit-metadata \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"author": "Jane Smith", "copyright": "2024 Jane Smith"}' -F 'settings={"author": "Jane Smith", "copyright": "2024 Jane Smith"}'
@@ -61,7 +61,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \
Set GPS coordinates: Set GPS coordinates:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \ curl -X POST http://localhost:1349/api/v1/tools/edit-metadata \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"gpsLatitude": 48.8566, "gpsLongitude": 2.3522, "gpsAltitude": 35}' -F 'settings={"gpsLatitude": 48.8566, "gpsLongitude": 2.3522, "gpsAltitude": 35}'
@@ -70,7 +70,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \
Remove GPS and add keywords: Remove GPS and add keywords:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \ curl -X POST http://localhost:1349/api/v1/tools/edit-metadata \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"clearGps": true, "keywords": ["landscape", "sunset"], "keywordsMode": "add"}' -F 'settings={"clearGps": true, "keywords": ["landscape", "sunset"], "keywordsMode": "add"}'
@@ -79,7 +79,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \
Inspect metadata: Inspect metadata:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata/inspect \ curl -X POST http://localhost:1349/api/v1/tools/edit-metadata/inspect \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" -F "file=@photo.jpg"
``` ```
+2 -2
View File
@@ -4,7 +4,7 @@ Restore and enhance faces in images using AI models (GFPGAN/CodeFormer).
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/enhance-faces` `POST /api/v1/tools/enhance-faces`
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
@@ -23,7 +23,7 @@ Restore and enhance faces in images using AI models (GFPGAN/CodeFormer).
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/enhance-faces \ curl -X POST http://localhost:1349/api/v1/tools/enhance-faces \
-F "file=@portrait.jpg" \ -F "file=@portrait.jpg" \
-F 'settings={"model":"codeformer","strength":0.7,"onlyCenterFace":false}' -F 'settings={"model":"codeformer","strength":0.7,"onlyCenterFace":false}'
``` ```
+2 -2
View File
@@ -4,7 +4,7 @@ Remove unwanted objects from images using AI inpainting (LaMa model). Accepts an
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/erase-object` `POST /api/v1/tools/erase-object`
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
@@ -22,7 +22,7 @@ Remove unwanted objects from images using AI inpainting (LaMa model). Accepts an
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/erase-object \ curl -X POST http://localhost:1349/api/v1/tools/erase-object \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F "mask=@mask.png" \ -F "mask=@mask.png" \
-F "format=png" \ -F "format=png" \
+14 -7
View File
@@ -8,13 +8,19 @@ Generate a complete set of favicon and app icon files from a source image. Produ
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/favicon` `POST /api/v1/tools/favicon`
Accepts multipart form data with one or more image files. No settings are required. Accepts multipart form data with one or more image files and an optional JSON `settings` field.
## Parameters ## Parameters
This tool has no configurable parameters. It generates all standard sizes automatically. | Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| background | string | No | - | Background hex color (e.g. `"#ffffff"`). When set, the icon is flattened onto this color. |
| padding | integer | No | `0` | Padding percentage around the icon content (0 to 40) |
| radius | integer | No | `0` | Corner radius percentage for rounded icons (0 to 50) |
| sizes | integer[] | No | - | Restrict output to specific pixel sizes (e.g. `[16, 32, 180]`). Omit to generate all standard sizes. |
| themeColor | string | No | `"#ffffff"` | Theme color hex for the web manifest |
## Generated Files ## Generated Files
@@ -34,18 +40,19 @@ For each input image, the following files are produced:
## Example Request ## Example Request
Single source image: Single source image with rounded corners and padding:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/favicon \ curl -X POST http://localhost:1349/api/v1/tools/favicon \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@logo.png" -F "file=@logo.png" \
-F 'settings={"padding": 10, "radius": 20, "themeColor": "#0a0a0a"}'
``` ```
Multiple source images (each gets its own set in a subfolder): Multiple source images (each gets its own set in a subfolder):
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/favicon \ curl -X POST http://localhost:1349/api/v1/tools/favicon \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@logo-light.png" \ -F "file=@logo-light.png" \
-F "file=@logo-dark.png" -F "file=@logo-dark.png"
+2 -2
View File
@@ -8,7 +8,7 @@ Upload multiple images to detect duplicates and near-duplicates using perceptual
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/find-duplicates` `POST /api/v1/tools/find-duplicates`
Accepts multipart form data with multiple image files and an optional JSON `settings` field. Accepts multipart form data with multiple image files and an optional JSON `settings` field.
@@ -25,7 +25,7 @@ Upload at least 2 image files in the multipart request (all using the `file` fie
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/find-duplicates \ curl -X POST http://localhost:1349/api/v1/tools/find-duplicates \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo1.jpg" \ -F "file=@photo1.jpg" \
-F "file=@photo2.jpg" \ -F "file=@photo2.jpg" \
+7 -7
View File
@@ -4,7 +4,7 @@ Resize, optimize, change speed, reverse, extract frames, and rotate animated GIF
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/gif-tools` `POST /api/v1/tools/gif-tools`
## Parameters ## Parameters
@@ -60,7 +60,7 @@ Resize, optimize, change speed, reverse, extract frames, and rotate animated GIF
### Resize ### Resize
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools \ curl -X POST http://localhost:1349/api/v1/tools/gif-tools \
-F "file=@animation.gif" \ -F "file=@animation.gif" \
-F 'settings={"mode":"resize","percentage":50}' -F 'settings={"mode":"resize","percentage":50}'
``` ```
@@ -68,7 +68,7 @@ curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools \
### Optimize ### Optimize
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools \ curl -X POST http://localhost:1349/api/v1/tools/gif-tools \
-F "file=@large.gif" \ -F "file=@large.gif" \
-F 'settings={"mode":"optimize","colors":128,"effort":9}' -F 'settings={"mode":"optimize","colors":128,"effort":9}'
``` ```
@@ -76,7 +76,7 @@ curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools \
### Speed Up ### Speed Up
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools \ curl -X POST http://localhost:1349/api/v1/tools/gif-tools \
-F "file=@animation.gif" \ -F "file=@animation.gif" \
-F 'settings={"mode":"speed","speedFactor":2.0}' -F 'settings={"mode":"speed","speedFactor":2.0}'
``` ```
@@ -84,7 +84,7 @@ curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools \
### Extract Single Frame ### Extract Single Frame
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools \ curl -X POST http://localhost:1349/api/v1/tools/gif-tools \
-F "file=@animation.gif" \ -F "file=@animation.gif" \
-F 'settings={"mode":"extract","extractMode":"single","frameNumber":5,"extractFormat":"png"}' -F 'settings={"mode":"extract","extractMode":"single","frameNumber":5,"extractFormat":"png"}'
``` ```
@@ -102,14 +102,14 @@ curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools \
## Info Sub-Route ## Info Sub-Route
`POST /api/v1/tools/image/gif-tools/info` `POST /api/v1/tools/gif-tools/info`
Returns metadata about an animated GIF without processing it. Returns metadata about an animated GIF without processing it.
### Info Request ### Info Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools/info \ curl -X POST http://localhost:1349/api/v1/tools/gif-tools/info \
-F "file=@animation.gif" -F "file=@animation.gif"
``` ```
+2 -2
View File
@@ -8,7 +8,7 @@ Convert animated GIF files to WebP and vice versa, preserving all frames and ani
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/gif-webp` `POST /api/v1/tools/gif-webp`
Accepts multipart form data with a GIF or WebP file and a JSON `settings` field. Accepts multipart form data with a GIF or WebP file and a JSON `settings` field.
@@ -23,7 +23,7 @@ Accepts multipart form data with a GIF or WebP file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/gif-webp \ curl -X POST http://localhost:1349/api/v1/tools/gif-webp \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@animation.gif" \ -F "file=@animation.gif" \
-F 'settings={"quality": 85, "resizePercent": 50}' -F 'settings={"quality": 85, "resizePercent": 50}'
+2 -2
View File
@@ -8,7 +8,7 @@ Generate an RGB histogram chart from an image. Returns a PNG histogram image alo
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/histogram` `POST /api/v1/tools/histogram`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/histogram \ curl -X POST http://localhost:1349/api/v1/tools/histogram \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"scale": "linear"}' -F 'settings={"scale": "linear"}'
+3 -3
View File
@@ -8,7 +8,7 @@ Capture a webpage URL or raw HTML content as a screenshot image. Supports device
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/html-to-image` `POST /api/v1/tools/html-to-image`
Accepts a **JSON body** (not multipart). No file upload is needed. Accepts a **JSON body** (not multipart). No file upload is needed.
@@ -41,7 +41,7 @@ Either `url` or `html` must be provided, but not both.
Capture a webpage: Capture a webpage:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \ curl -X POST http://localhost:1349/api/v1/tools/html-to-image \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"url": "https://example.com", "format": "png", "fullPage": true, "devicePreset": "desktop"}' -d '{"url": "https://example.com", "format": "png", "fullPage": true, "devicePreset": "desktop"}'
@@ -50,7 +50,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \
Render HTML content: Render HTML content:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \ curl -X POST http://localhost:1349/api/v1/tools/html-to-image \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"html": "<div style=\"padding: 20px; background: #f0f0f0;\"><h1>Hello</h1></div>", "format": "png"}' -d '{"html": "<div style=\"padding: 20px; background: #f0f0f0;\"><h1>Hello</h1></div>", "format": "png"}'
+5 -5
View File
@@ -4,7 +4,7 @@ One-click auto-improve with smart analysis. Analyzes the image and applies expos
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/image-enhancement` `POST /api/v1/tools/image-enhancement`
**Processing:** Synchronous (uses `createToolRoute` factory, returns result directly) **Processing:** Synchronous (uses `createToolRoute` factory, returns result directly)
@@ -34,7 +34,7 @@ One-click auto-improve with smart analysis. Analyzes the image and applies expos
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/image-enhancement \ curl -X POST http://localhost:1349/api/v1/tools/image-enhancement \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"mode":"portrait","intensity":70,"corrections":{"exposure":true,"contrast":true,"sharpness":false}}' -F 'settings={"mode":"portrait","intensity":70,"corrections":{"exposure":true,"contrast":true,"sharpness":false}}'
``` ```
@@ -44,7 +44,7 @@ curl -X POST http://localhost:13490/api/v1/tools/image/image-enhancement \
```json ```json
{ {
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/{jobId}/photo_enhanced.jpg", "downloadUrl": "/api/v1/download/{jobId}/photo.jpg",
"originalSize": 300000, "originalSize": 300000,
"processedSize": 310000 "processedSize": 310000
} }
@@ -52,7 +52,7 @@ curl -X POST http://localhost:13490/api/v1/tools/image/image-enhancement \
## Analyze Endpoint ## Analyze Endpoint
`POST /api/v1/tools/image/image-enhancement/analyze` `POST /api/v1/tools/image-enhancement/analyze`
Analyzes an image and returns correction recommendations without applying them. Analyzes an image and returns correction recommendations without applying them.
@@ -65,7 +65,7 @@ Analyzes an image and returns correction recommendations without applying them.
### Example Request ### Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/image-enhancement/analyze \ curl -X POST http://localhost:1349/api/v1/tools/image-enhancement/analyze \
-F "file=@photo.jpg" -F "file=@photo.jpg"
``` ```
+2 -2
View File
@@ -8,7 +8,7 @@ Pad an image to a target aspect ratio by adding a solid color, transparent, or b
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/image-pad` `POST /api/v1/tools/image-pad`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -26,7 +26,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/image-pad \ curl -X POST http://localhost:1349/api/v1/tools/image-pad \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"target": "16:9", "background": "blur", "padding": 5}' -F 'settings={"target": "16:9", "background": "blur", "padding": 5}'
+3 -3
View File
@@ -8,7 +8,7 @@ Convert one or more images to base64-encoded strings and data URIs. Supports opt
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/image-to-base64` `POST /api/v1/tools/image-to-base64`
Accepts multipart form data with one or more image files and an optional JSON `settings` field. Accepts multipart form data with one or more image files and an optional JSON `settings` field.
@@ -24,7 +24,7 @@ Accepts multipart form data with one or more image files and an optional JSON `s
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \ curl -X POST http://localhost:1349/api/v1/tools/image-to-base64 \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@icon.png" \ -F "file=@icon.png" \
-F 'settings={"outputFormat": "webp", "quality": 80, "maxWidth": 200}' -F 'settings={"outputFormat": "webp", "quality": 80, "maxWidth": 200}'
@@ -33,7 +33,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \
Multiple files: Multiple files:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \ curl -X POST http://localhost:1349/api/v1/tools/image-to-base64 \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@icon1.png" \ -F "file=@icon1.png" \
-F "file=@icon2.png" \ -F "file=@icon2.png" \
+4 -4
View File
@@ -8,7 +8,7 @@ Combine one or more images into a PDF document. Supports multiple page sizes, or
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/image-to-pdf` `POST /api/v1/tools/image-to-pdf`
Accepts multipart form data with one or more image files and a JSON `settings` field. Accepts multipart form data with one or more image files and a JSON `settings` field.
@@ -36,7 +36,7 @@ Minimum target size is 50 KB.
Basic multi-image PDF: Basic multi-image PDF:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \ curl -X POST http://localhost:1349/api/v1/tools/image-to-pdf \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@page1.jpg" \ -F "file=@page1.jpg" \
-F "file=@page2.jpg" \ -F "file=@page2.jpg" \
@@ -47,7 +47,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \
With file size target: With file size target:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \ curl -X POST http://localhost:1349/api/v1/tools/image-to-pdf \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@scan1.jpg" \ -F "file=@scan1.jpg" \
-F "file=@scan2.jpg" \ -F "file=@scan2.jpg" \
@@ -57,7 +57,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \
One PDF per image: One PDF per image:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \ curl -X POST http://localhost:1349/api/v1/tools/image-to-pdf \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo1.jpg" \ -F "file=@photo1.jpg" \
-F "file=@photo2.jpg" \ -F "file=@photo2.jpg" \
+2 -2
View File
@@ -8,7 +8,7 @@ Read-only analysis tool that returns comprehensive image metadata including dime
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/info` `POST /api/v1/tools/info`
Accepts multipart form data with an image file. No settings field is needed. Accepts multipart form data with an image file. No settings field is needed.
@@ -23,7 +23,7 @@ This tool has no configurable parameters. Simply upload the image file.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/info \ curl -X POST http://localhost:1349/api/v1/tools/info \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" -F "file=@photo.jpg"
``` ```
+4 -4
View File
@@ -8,7 +8,7 @@ Generate a tiny low-quality image placeholder (LQIP) from a source image. Return
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/lqip-placeholder` `POST /api/v1/tools/lqip-placeholder`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -25,7 +25,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/lqip-placeholder \ curl -X POST http://localhost:1349/api/v1/tools/lqip-placeholder \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"width": 20, "strategy": "blur", "format": "webp"}' -F 'settings={"width": 20, "strategy": "blur", "format": "webp"}'
@@ -44,8 +44,8 @@ curl -X POST http://localhost:1349/api/v1/tools/image/lqip-placeholder \
"height": 13, "height": 13,
"bytes": 280, "bytes": 280,
"strategy": "blur", "strategy": "blur",
"html": "<img src=\"data:image/webp;base64,UklGR...\" width=\"20\" height=\"13\" alt=\"\" />", "html": "<img src=\"data:image/webp;base64,UklGR...\" />",
"css": "background-image: url(data:image/webp;base64,UklGR...);" "css": "background-image:url('data:image/webp;base64,UklGR...');background-size:cover;background-position:center;"
} }
``` ```
+3 -3
View File
@@ -8,7 +8,7 @@ Create memes using built-in templates or custom images. Add text with classic me
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/meme-generator` `POST /api/v1/tools/meme-generator`
Accepts either: Accepts either:
- **Multipart form data** with an image file and a JSON `settings` field (custom image mode) - **Multipart form data** with an image file and a JSON `settings` field (custom image mode)
@@ -52,7 +52,7 @@ Each entry in the `textBoxes` array should have:
Custom image with top and bottom text: Custom image with top and bottom text:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/meme-generator \ curl -X POST http://localhost:1349/api/v1/tools/meme-generator \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"textLayout": "top-bottom", "textBoxes": [{"id": "top", "text": "When the code works"}, {"id": "bottom", "text": "On the first try"}], "fontFamily": "anton", "allCaps": true}' -F 'settings={"textLayout": "top-bottom", "textBoxes": [{"id": "top", "text": "When the code works"}, {"id": "bottom", "text": "On the first try"}], "fontFamily": "anton", "allCaps": true}'
@@ -61,7 +61,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/meme-generator \
Using a built-in template (JSON body, no file upload): Using a built-in template (JSON body, no file upload):
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/meme-generator \ curl -X POST http://localhost:1349/api/v1/tools/meme-generator \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"templateId": "drake", "textBoxes": [{"id": "top", "text": "Manual testing"}, {"id": "bottom", "text": "Automated tests"}]}' -d '{"templateId": "drake", "textBoxes": [{"id": "top", "text": "Manual testing"}, {"id": "bottom", "text": "Automated tests"}]}'
+6 -2
View File
@@ -1,10 +1,14 @@
---
description: AI-powered noise and grain removal with multi-tier quality options.
---
# Noise Removal # Noise Removal
AI-powered noise and grain removal with multi-tier quality options, using the Python sidecar (SCUNet model). AI-powered noise and grain removal with multi-tier quality options, using the Python sidecar (SCUNet model).
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/noise-removal` `POST /api/v1/tools/noise-removal`
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
@@ -25,7 +29,7 @@ AI-powered noise and grain removal with multi-tier quality options, using the Py
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/noise-removal \ curl -X POST http://localhost:1349/api/v1/tools/noise-removal \
-F "file=@noisy-photo.jpg" \ -F "file=@noisy-photo.jpg" \
-F 'settings={"tier":"quality","strength":60,"detailPreservation":70,"colorNoise":40}' -F 'settings={"tier":"quality","strength":60,"detailPreservation":70,"colorNoise":40}'
``` ```
+6 -2
View File
@@ -1,10 +1,14 @@
---
description: Extract text from images using AI-powered optical character recognition.
---
# OCR / Text Extraction # OCR / Text Extraction
Extract text from images using AI-powered optical character recognition. Supports multiple languages and quality tiers. Extract text from images using AI-powered optical character recognition. Supports multiple languages and quality tiers.
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/ocr` `POST /api/v1/tools/ocr`
**Processing:** Synchronous (returns extracted text directly, though progress is reported via SSE if a `clientJobId` is provided) **Processing:** Synchronous (returns extracted text directly, though progress is reported via SSE if a `clientJobId` is provided)
@@ -23,7 +27,7 @@ Extract text from images using AI-powered optical character recognition. Support
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/ocr \ curl -X POST http://localhost:1349/api/v1/tools/ocr \
-F "file=@document.png" \ -F "file=@document.png" \
-F 'settings={"quality":"best","language":"en","enhance":true}' -F 'settings={"quality":"best","language":"en","enhance":true}'
``` ```
+5 -5
View File
@@ -8,11 +8,11 @@ Optimize images for web delivery in a single step. Combines format conversion, q
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/optimize-for-web` `POST /api/v1/tools/optimize-for-web`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
A live preview endpoint is also available at `POST /api/v1/tools/image/optimize-for-web/preview`, which returns the processed image directly as binary (no workspace creation) for real-time parameter tuning. A live preview endpoint is also available at `POST /api/v1/tools/optimize-for-web/preview`, which returns the processed image directly as binary (no workspace creation) for real-time parameter tuning.
## Parameters ## Parameters
@@ -28,7 +28,7 @@ A live preview endpoint is also available at `POST /api/v1/tools/image/optimize-
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/optimize-for-web \ curl -X POST http://localhost:1349/api/v1/tools/optimize-for-web \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"format": "webp", "quality": 75, "maxWidth": 1920}' -F 'settings={"format": "webp", "quality": 75, "maxWidth": 1920}'
@@ -37,7 +37,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/optimize-for-web \
Optimize for AVIF with aggressive compression: Optimize for AVIF with aggressive compression:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/optimize-for-web \ curl -X POST http://localhost:1349/api/v1/tools/optimize-for-web \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"format": "avif", "quality": 50, "maxWidth": 1200, "maxHeight": 800}' -F 'settings={"format": "avif", "quality": 50, "maxWidth": 1200, "maxHeight": 800}'
@@ -56,7 +56,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/optimize-for-web \
### Preview Endpoint Response ### Preview Endpoint Response
The preview endpoint (`/api/v1/tools/image/optimize-for-web/preview`) returns the binary image directly with informational headers: The preview endpoint (`/api/v1/tools/optimize-for-web/preview`) returns the binary image directly with informational headers:
- `X-Original-Size` - Original file size in bytes - `X-Original-Size` - Original file size in bytes
- `X-Processed-Size` - Processed file size in bytes - `X-Processed-Size` - Processed file size in bytes
+10 -6
View File
@@ -1,3 +1,7 @@
---
description: AI-powered passport and ID photo generator with face detection, background removal, and print sheet tiling.
---
# Passport Photo # Passport Photo
AI-powered passport and ID photo generator. Two-phase workflow: analyze (face detection + background removal) then generate (crop, resize, and tile for printing). AI-powered passport and ID photo generator. Two-phase workflow: analyze (face detection + background removal) then generate (crop, resize, and tile for printing).
@@ -12,7 +16,7 @@ This tool uses a two-phase flow with separate endpoints for analysis and generat
### Phase 1: Analyze ### Phase 1: Analyze
`POST /api/v1/tools/image/passport-photo/analyze` `POST /api/v1/tools/passport-photo/analyze`
Detects face landmarks and removes the background. Returns landmark data and a preview for the frontend to display a crop preview. Detects face landmarks and removes the background. Returns landmark data and a preview for the frontend to display a crop preview.
@@ -26,7 +30,7 @@ Detects face landmarks and removes the background. Returns landmark data and a p
#### Example Request #### Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/passport-photo/analyze \ curl -X POST http://localhost:1349/api/v1/tools/passport-photo/analyze \
-F "file=@headshot.jpg" -F "file=@headshot.jpg"
``` ```
@@ -71,7 +75,7 @@ If `clientJobId` is provided, progress is streamed (0-30% for face detection, 30
### Phase 2: Generate ### Phase 2: Generate
`POST /api/v1/tools/image/passport-photo/generate` `POST /api/v1/tools/passport-photo/generate`
Crops, resizes, and optionally tiles the photo onto a print sheet. Uses cached images from Phase 1 (no AI re-run). Crops, resizes, and optionally tiles the photo onto a print sheet. Uses cached images from Phase 1 (no AI re-run).
@@ -99,7 +103,7 @@ Crops, resizes, and optionally tiles the photo onto a print sheet. Uses cached i
#### Example Request #### Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/passport-photo/generate \ curl -X POST http://localhost:1349/api/v1/tools/passport-photo/generate \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{ -d '{
"jobId": "a1b2c3d4-...", "jobId": "a1b2c3d4-...",
@@ -145,13 +149,13 @@ curl -X POST http://localhost:13490/api/v1/tools/image/passport-photo/generate \
### Base Route ### Base Route
`POST /api/v1/tools/image/passport-photo` `POST /api/v1/tools/passport-photo`
Returns guidance to use the correct sub-endpoint. Returns guidance to use the correct sub-endpoint.
```json ```json
{ {
"error": "Use /api/v1/tools/image/passport-photo/analyze or /generate" "error": "Use /api/v1/tools/passport-photo/analyze or /generate"
} }
``` ```
+3 -3
View File
@@ -8,7 +8,7 @@ Apply a pixelation effect to an entire image or a specific rectangular region. U
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/pixelate` `POST /api/v1/tools/pixelate`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -33,7 +33,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
Pixelate the full image: Pixelate the full image:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/pixelate \ curl -X POST http://localhost:1349/api/v1/tools/pixelate \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"blockSize": 20}' -F 'settings={"blockSize": 20}'
@@ -42,7 +42,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/pixelate \
Pixelate a specific region: Pixelate a specific region:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/pixelate \ curl -X POST http://localhost:1349/api/v1/tools/pixelate \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"blockSize": 16, "region": {"left": 100, "top": 50, "width": 200, "height": 150}}' -F 'settings={"blockSize": 16, "region": {"left": 100, "top": 50, "width": 200, "height": 150}}'
+5 -3
View File
@@ -8,7 +8,7 @@ Generate QR code images from text or URLs with configurable size, error correcti
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/qr-generate` `POST /api/v1/tools/qr-generate`
Accepts a **JSON body** (not multipart). No file upload is needed. Accepts a **JSON body** (not multipart). No file upload is needed.
@@ -21,6 +21,7 @@ Accepts a **JSON body** (not multipart). No file upload is needed.
| errorCorrection | string | No | `"M"` | Error correction level: `L` (7%), `M` (15%), `Q` (25%), `H` (30%) | | errorCorrection | string | No | `"M"` | Error correction level: `L` (7%), `M` (15%), `Q` (25%), `H` (30%) |
| foreground | string | No | `"#000000"` | QR code foreground/module color in hex (`#RRGGBB`) | | foreground | string | No | `"#000000"` | QR code foreground/module color in hex (`#RRGGBB`) |
| background | string | No | `"#FFFFFF"` | QR code background color in hex (`#RRGGBB`) | | background | string | No | `"#FFFFFF"` | QR code background color in hex (`#RRGGBB`) |
| logoDataUri | string | No | - | Logo image as a data URI (`data:image/png;base64,...` or `data:image/jpeg;base64,...`, max 700 KB). Centered on the QR code at 22% of the QR size. Forces error correction to `H` |
### Error Correction Levels ### Error Correction Levels
@@ -34,7 +35,7 @@ Accepts a **JSON body** (not multipart). No file upload is needed.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/qr-generate \ curl -X POST http://localhost:1349/api/v1/tools/qr-generate \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"text": "https://snapotter.com", "size": 500, "errorCorrection": "H"}' -d '{"text": "https://snapotter.com", "size": 500, "errorCorrection": "H"}'
@@ -43,7 +44,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/qr-generate \
Branded QR code with custom colors: Branded QR code with custom colors:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/qr-generate \ curl -X POST http://localhost:1349/api/v1/tools/qr-generate \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"text": "Hello World", "size": 300, "foreground": "#1a365d", "background": "#f7fafc"}' -d '{"text": "Hello World", "size": 300, "foreground": "#1a365d", "background": "#f7fafc"}'
@@ -69,3 +70,4 @@ curl -X POST http://localhost:1349/api/v1/tools/image/qr-generate \
- A 2-module quiet zone (margin) is included around the QR code. - A 2-module quiet zone (margin) is included around the QR code.
- Maximum text length is 2000 characters. Actual capacity depends on error correction level and character encoding. - Maximum text length is 2000 characters. Actual capacity depends on error correction level and character encoding.
- Higher error correction levels allow the QR code to remain scannable even if partially obscured but reduce data capacity. - Higher error correction levels allow the QR code to remain scannable even if partially obscured but reduce data capacity.
- When a `logoDataUri` is provided, error correction is automatically forced to `H` (30%) so the QR code remains scannable despite the logo occluding the center.
+6 -2
View File
@@ -1,10 +1,14 @@
---
description: AI-powered detection and correction of red eye caused by camera flash.
---
# Red Eye Removal # Red Eye Removal
AI-powered detection and correction of red eye caused by camera flash. AI-powered detection and correction of red eye caused by camera flash.
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/red-eye-removal` `POST /api/v1/tools/red-eye-removal`
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
@@ -23,7 +27,7 @@ AI-powered detection and correction of red eye caused by camera flash.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/red-eye-removal \ curl -X POST http://localhost:1349/api/v1/tools/red-eye-removal \
-F "file=@flash-photo.jpg" \ -F "file=@flash-photo.jpg" \
-F 'settings={"sensitivity":60,"strength":80}' -F 'settings={"sensitivity":60,"strength":80}'
``` ```
+8 -4
View File
@@ -1,10 +1,14 @@
---
description: AI-powered background removal with optional effects (blur, shadow, gradient, custom background).
---
# Remove Background # Remove Background
AI-powered background removal with optional effects (blur, shadow, gradient, custom background). AI-powered background removal with optional effects (blur, shadow, gradient, custom background).
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/remove-background` `POST /api/v1/tools/remove-background`
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
@@ -32,7 +36,7 @@ AI-powered background removal with optional effects (blur, shadow, gradient, cus
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/remove-background \ curl -X POST http://localhost:1349/api/v1/tools/remove-background \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"backgroundType":"transparent","edgeRefine":2,"outputFormat":"png"}' -F 'settings={"backgroundType":"transparent","edgeRefine":2,"outputFormat":"png"}'
``` ```
@@ -76,7 +80,7 @@ data: {"phase":"processing","stage":"Removing background...","percent":50}
## Effects Endpoint (Phase 2) ## Effects Endpoint (Phase 2)
`POST /api/v1/tools/image/remove-background/effects` `POST /api/v1/tools/remove-background/effects`
Re-applies background effects without re-running the AI model. Uses cached mask and original from Phase 1. Re-applies background effects without re-running the AI model. Uses cached mask and original from Phase 1.
@@ -107,7 +111,7 @@ Re-applies background effects without re-running the AI model. Uses cached mask
### Example Request ### Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/remove-background/effects \ curl -X POST http://localhost:1349/api/v1/tools/remove-background/effects \
-F 'settings={"jobId":"a1b2c3d4-...","filename":"photo.jpg","backgroundType":"color","backgroundColor":"#FF5500","outputFormat":"png"}' -F 'settings={"jobId":"a1b2c3d4-...","filename":"photo.jpg","backgroundType":"color","backgroundColor":"#FF5500","outputFormat":"png"}'
``` ```
+3 -3
View File
@@ -8,7 +8,7 @@ Replace pixels matching a source color with a target color, or make them transpa
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/replace-color` `POST /api/v1/tools/replace-color`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -24,7 +24,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/replace-color \ curl -X POST http://localhost:1349/api/v1/tools/replace-color \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"sourceColor": "#FF0000", "targetColor": "#0000FF", "tolerance": 40}' -F 'settings={"sourceColor": "#FF0000", "targetColor": "#0000FF", "tolerance": 40}'
@@ -33,7 +33,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/replace-color \
Make a green background transparent: Make a green background transparent:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/replace-color \ curl -X POST http://localhost:1349/api/v1/tools/replace-color \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@greenscreen.png" \ -F "file=@greenscreen.png" \
-F 'settings={"sourceColor": "#00FF00", "makeTransparent": true, "tolerance": 50}' -F 'settings={"sourceColor": "#00FF00", "makeTransparent": true, "tolerance": 50}'
+3 -3
View File
@@ -8,7 +8,7 @@ Resize images by specifying exact pixel dimensions, a percentage scale factor, o
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/resize` `POST /api/v1/tools/resize`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -35,7 +35,7 @@ At least one of `width`, `height`, or `percentage` must be provided.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/resize \ curl -X POST http://localhost:1349/api/v1/tools/resize \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"width": 800, "height": 600, "fit": "contain"}' -F 'settings={"width": 800, "height": 600, "fit": "contain"}'
@@ -44,7 +44,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/resize \
Resize by percentage: Resize by percentage:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/resize \ curl -X POST http://localhost:1349/api/v1/tools/resize \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"percentage": 50}' -F 'settings={"percentage": 50}'
+2 -2
View File
@@ -4,7 +4,7 @@ Fix scratches, tears, and damage on old photos using a multi-step AI pipeline. C
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/restore-photo` `POST /api/v1/tools/restore-photo`
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
@@ -26,7 +26,7 @@ Fix scratches, tears, and damage on old photos using a multi-step AI pipeline. C
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/restore-photo \ curl -X POST http://localhost:1349/api/v1/tools/restore-photo \
-F "file=@damaged-old-photo.jpg" \ -F "file=@damaged-old-photo.jpg" \
-F 'settings={"scratchRemoval":true,"faceEnhancement":true,"fidelity":0.6,"colorize":true}' -F 'settings={"scratchRemoval":true,"faceEnhancement":true,"fidelity":0.6,"colorize":true}'
``` ```
+4 -4
View File
@@ -8,7 +8,7 @@ Rotate images by an arbitrary angle and/or flip them horizontally or vertically.
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/rotate` `POST /api/v1/tools/rotate`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -25,7 +25,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
Rotate 90 degrees clockwise: Rotate 90 degrees clockwise:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/rotate \ curl -X POST http://localhost:1349/api/v1/tools/rotate \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"angle": 90}' -F 'settings={"angle": 90}'
@@ -34,7 +34,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/rotate \
Flip horizontally: Flip horizontally:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/rotate \ curl -X POST http://localhost:1349/api/v1/tools/rotate \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"horizontal": true}' -F 'settings={"horizontal": true}'
@@ -43,7 +43,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/rotate \
Rotate and flip together: Rotate and flip together:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/rotate \ curl -X POST http://localhost:1349/api/v1/tools/rotate \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"angle": 45, "vertical": true}' -F 'settings={"angle": 45, "vertical": true}'
+3 -3
View File
@@ -8,7 +8,7 @@ Advanced sharpening tool with three methods: adaptive (smart edge-aware), unshar
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/sharpening` `POST /api/v1/tools/sharpening`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -33,7 +33,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/sharpening \ curl -X POST http://localhost:1349/api/v1/tools/sharpening \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"method": "adaptive", "sigma": 1.5}' -F 'settings={"method": "adaptive", "sigma": 1.5}'
@@ -42,7 +42,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/sharpening \
Unsharp mask with threshold to protect smooth areas: Unsharp mask with threshold to protect smooth areas:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/sharpening \ curl -X POST http://localhost:1349/api/v1/tools/sharpening \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"method": "unsharp-mask", "amount": 150, "radius": 1.5, "threshold": 10}' -F 'settings={"method": "unsharp-mask", "amount": 150, "radius": 1.5, "threshold": 10}'
+30 -8
View File
@@ -4,9 +4,9 @@ Smart subject-aware, face-aware, or trim-based cropping. Uses Sharp's attention/
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/smart-crop` `POST /api/v1/tools/smart-crop`
**Processing:** Synchronous (uses `createToolRoute` factory, returns result directly) **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
**Model bundle:** `face-detection` (200-300 MB) -- required only for `face` mode **Model bundle:** `face-detection` (200-300 MB) -- required only for `face` mode
@@ -31,19 +31,41 @@ Smart subject-aware, face-aware, or trim-based cropping. Uses Sharp's attention/
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/smart-crop \ curl -X POST http://localhost:1349/api/v1/tools/smart-crop \
-F "file=@portrait.jpg" \ -F "file=@portrait.jpg" \
-F 'settings={"mode":"face","width":1080,"height":1080,"facePreset":"head-shoulders"}' -F 'settings={"mode":"face","width":1080,"height":1080,"facePreset":"head-shoulders"}'
``` ```
## Response (200 OK) ## Response
### Initial Response (202 Accepted)
```json ```json
{ {
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/{jobId}/portrait_smartcrop.jpg", "async": true
"originalSize": 500000, }
"processedSize": 320000 ```
### Progress (SSE at `/api/v1/jobs/{jobId}/progress`)
```
event: progress
data: {"phase":"processing","percent":50}
```
### Final Result (via SSE)
```json
{
"phase": "complete",
"percent": 100,
"result": {
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/{jobId}/portrait_smartcrop.jpg",
"originalSize": 500000,
"processedSize": 320000
}
} }
``` ```
@@ -60,7 +82,7 @@ Removes uniform borders/background from the image. Optionally pads the result to
## Notes ## Notes
- This tool uses the synchronous `createToolRoute` factory, so it returns a standard response (not 202 async). - This tool uses the `createToolRoute` factory with `executionHint: "long"`, so it returns 202 with SSE progress.
- Face mode requires the `face-detection` model bundle (200-300 MB). - Face mode requires the `face-detection` model bundle (200-300 MB).
- Subject and trim modes work without any AI model bundle. - Subject and trim modes work without any AI model bundle.
- The `facePreset` determines how tightly the crop frames detected faces: `closeup` is the tightest, `half-body` is the widest. - The `facePreset` determines how tightly the crop frames detected faces: `closeup` is the tightest, `half-body` is the widest.
+2 -2
View File
@@ -4,7 +4,7 @@ Split a single image into grid tiles by column/row count or by specific pixel di
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/split` `POST /api/v1/tools/split`
## Parameters ## Parameters
@@ -20,7 +20,7 @@ Split a single image into grid tiles by column/row count or by specific pixel di
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/split \ curl -X POST http://localhost:1349/api/v1/tools/split \
-F "file=@large-image.png" \ -F "file=@large-image.png" \
-F 'settings={"columns":3,"rows":3,"outputFormat":"png"}' \ -F 'settings={"columns":3,"rows":3,"outputFormat":"png"}' \
--output split-tiles.zip --output split-tiles.zip
+2 -2
View File
@@ -8,7 +8,7 @@ Combine multiple images into a single sprite sheet grid. Each image is resized t
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/sprite-sheet` `POST /api/v1/tools/sprite-sheet`
Accepts multipart form data with two or more image files and a JSON `settings` field. Accepts multipart form data with two or more image files and a JSON `settings` field.
@@ -25,7 +25,7 @@ Accepts multipart form data with two or more image files and a JSON `settings` f
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/sprite-sheet \ curl -X POST http://localhost:1349/api/v1/tools/sprite-sheet \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@frame1.png" \ -F "file=@frame1.png" \
-F "file=@frame2.png" \ -F "file=@frame2.png" \
+2 -2
View File
@@ -4,7 +4,7 @@ Join multiple images side by side, stacked vertically, or arranged in a grid. Su
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/stitch` `POST /api/v1/tools/stitch`
## Parameters ## Parameters
@@ -24,7 +24,7 @@ Join multiple images side by side, stacked vertically, or arranged in a grid. Su
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/stitch \ curl -X POST http://localhost:1349/api/v1/tools/stitch \
-F "file=@image1.png" \ -F "file=@image1.png" \
-F "file=@image2.png" \ -F "file=@image2.png" \
-F "file=@image3.png" \ -F "file=@image3.png" \
+5 -5
View File
@@ -10,13 +10,13 @@ Remove EXIF, GPS, ICC color profiles, and XMP metadata from images. Useful for p
### Strip Metadata ### Strip Metadata
`POST /api/v1/tools/image/strip-metadata` `POST /api/v1/tools/strip-metadata`
Processes the image and returns a cleaned version with selected metadata removed. Processes the image and returns a cleaned version with selected metadata removed.
### Inspect Metadata ### Inspect Metadata
`POST /api/v1/tools/image/strip-metadata/inspect` `POST /api/v1/tools/strip-metadata/inspect`
Returns the parsed metadata as JSON without modifying the image. Useful for previewing what metadata exists before stripping. Returns the parsed metadata as JSON without modifying the image. Useful for previewing what metadata exists before stripping.
@@ -37,7 +37,7 @@ When `stripAll` is `true`, it overrides the individual flags and removes everyth
Strip all metadata: Strip all metadata:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/strip-metadata \ curl -X POST http://localhost:1349/api/v1/tools/strip-metadata \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"stripAll": true}' -F 'settings={"stripAll": true}'
@@ -46,7 +46,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/strip-metadata \
Strip only GPS data (keep camera info and color profile): Strip only GPS data (keep camera info and color profile):
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/strip-metadata \ curl -X POST http://localhost:1349/api/v1/tools/strip-metadata \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"stripAll": false, "stripGps": true}' -F 'settings={"stripAll": false, "stripGps": true}'
@@ -55,7 +55,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/strip-metadata \
Inspect metadata without modifying: Inspect metadata without modifying:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/strip-metadata/inspect \ curl -X POST http://localhost:1349/api/v1/tools/strip-metadata/inspect \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" -F "file=@photo.jpg"
``` ```
+4 -4
View File
@@ -4,7 +4,7 @@ Convert SVG files to raster image formats (PNG, JPEG, WebP, AVIF, TIFF, GIF, HEI
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/svg-to-raster` `POST /api/v1/tools/svg-to-raster`
## Parameters ## Parameters
@@ -20,7 +20,7 @@ Convert SVG files to raster image formats (PNG, JPEG, WebP, AVIF, TIFF, GIF, HEI
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/svg-to-raster \ curl -X POST http://localhost:1349/api/v1/tools/svg-to-raster \
-F "file=@logo.svg" \ -F "file=@logo.svg" \
-F 'settings={"width":1024,"dpi":300,"outputFormat":"png","backgroundColor":"#FFFFFF"}' -F 'settings={"width":1024,"dpi":300,"outputFormat":"png","backgroundColor":"#FFFFFF"}'
``` ```
@@ -39,7 +39,7 @@ curl -X POST http://localhost:13490/api/v1/tools/image/svg-to-raster \
## Batch Endpoint ## Batch Endpoint
`POST /api/v1/tools/image/svg-to-raster/batch` `POST /api/v1/tools/svg-to-raster/batch`
Convert multiple SVG files in one request. Returns a ZIP archive. Convert multiple SVG files in one request. Returns a ZIP archive.
@@ -52,7 +52,7 @@ Convert multiple SVG files in one request. Returns a ZIP archive.
### Batch Example Request ### Batch Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/svg-to-raster/batch \ curl -X POST http://localhost:1349/api/v1/tools/svg-to-raster/batch \
-F "file=@icon1.svg" \ -F "file=@icon1.svg" \
-F "file=@icon2.svg" \ -F "file=@icon2.svg" \
-F "file=@icon3.svg" \ -F "file=@icon3.svg" \
+3 -3
View File
@@ -8,7 +8,7 @@ Add styled text to images with optional drop shadow and semi-transparent backgro
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/text-overlay` `POST /api/v1/tools/text-overlay`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -27,7 +27,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/text-overlay \ curl -X POST http://localhost:1349/api/v1/tools/text-overlay \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"text": "Hello World", "fontSize": 64, "color": "#FFFFFF", "position": "bottom", "shadow": true}' -F 'settings={"text": "Hello World", "fontSize": 64, "color": "#FFFFFF", "position": "bottom", "shadow": true}'
@@ -36,7 +36,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/text-overlay \
With a background box: With a background box:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/text-overlay \ curl -X POST http://localhost:1349/api/v1/tools/text-overlay \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"text": "Caption", "fontSize": 36, "position": "bottom", "backgroundBox": true, "backgroundColor": "#000000"}' -F 'settings={"text": "Caption", "fontSize": 36, "position": "bottom", "backgroundBox": true, "backgroundColor": "#000000"}'
+2 -2
View File
@@ -4,7 +4,7 @@ Fix fake transparent PNGs in one click. Uses AI matting (BiRefNet HR Matting mod
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/transparency-fixer` `POST /api/v1/tools/transparency-fixer`
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
@@ -22,7 +22,7 @@ Fix fake transparent PNGs in one click. Uses AI matting (BiRefNet HR Matting mod
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/transparency-fixer \ curl -X POST http://localhost:1349/api/v1/tools/transparency-fixer \
-F "file=@fake-transparent.png" \ -F "file=@fake-transparent.png" \
-F 'settings={"defringe":40,"outputFormat":"png"}' -F 'settings={"defringe":40,"outputFormat":"png"}'
``` ```
+2 -2
View File
@@ -4,7 +4,7 @@ AI super-resolution enhancement using Real-ESRGAN. Upscales images 2x-4x while p
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/upscale` `POST /api/v1/tools/upscale`
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
@@ -25,7 +25,7 @@ AI super-resolution enhancement using Real-ESRGAN. Upscales images 2x-4x while p
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/upscale \ curl -X POST http://localhost:1349/api/v1/tools/upscale \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"scale":4,"model":"auto","faceEnhance":true,"format":"png"}' -F 'settings={"scale":4,"model":"auto","faceEnhance":true,"format":"png"}'
``` ```
+3 -3
View File
@@ -4,7 +4,7 @@ Vectorize raster images into SVG using tracing algorithms. Supports black-and-wh
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/vectorize` `POST /api/v1/tools/vectorize`
## Parameters ## Parameters
@@ -22,7 +22,7 @@ Vectorize raster images into SVG using tracing algorithms. Supports black-and-wh
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/vectorize \ curl -X POST http://localhost:1349/api/v1/tools/vectorize \
-F "file=@logo.png" \ -F "file=@logo.png" \
-F 'settings={"colorMode":"bw","threshold":128,"filterSpeckle":4,"pathMode":"spline"}' -F 'settings={"colorMode":"bw","threshold":128,"filterSpeckle":4,"pathMode":"spline"}'
``` ```
@@ -30,7 +30,7 @@ curl -X POST http://localhost:13490/api/v1/tools/image/vectorize \
### Color Vectorization ### Color Vectorization
```bash ```bash
curl -X POST http://localhost:13490/api/v1/tools/image/vectorize \ curl -X POST http://localhost:1349/api/v1/tools/vectorize \
-F "file=@illustration.png" \ -F "file=@illustration.png" \
-F 'settings={"colorMode":"color","colorPrecision":8,"layerDifference":6,"filterSpeckle":4}' -F 'settings={"colorMode":"color","colorPrecision":8,"layerDifference":6,"filterSpeckle":4}'
``` ```
+2 -2
View File
@@ -8,7 +8,7 @@ Add a vignette effect that darkens or tints the edges of an image. Supports adju
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/vignette` `POST /api/v1/tools/vignette`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -27,7 +27,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/vignette \ curl -X POST http://localhost:1349/api/v1/tools/vignette \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"strength": 0.7, "radius": 60, "softness": 70}' -F 'settings={"strength": 0.7, "radius": 60, "softness": 70}'
+2 -2
View File
@@ -8,7 +8,7 @@ Overlay a logo or secondary image as a watermark on a base image. The watermark
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/watermark-image` `POST /api/v1/tools/watermark-image`
Accepts multipart form data with **two** image files and a JSON `settings` field. Accepts multipart form data with **two** image files and a JSON `settings` field.
@@ -30,7 +30,7 @@ Accepts multipart form data with **two** image files and a JSON `settings` field
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/watermark-image \ curl -X POST http://localhost:1349/api/v1/tools/watermark-image \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F "watermark=@logo.png" \ -F "watermark=@logo.png" \
+3 -3
View File
@@ -8,7 +8,7 @@ Add a text watermark overlay to images. Supports single placement at corners/cen
## API Endpoint ## API Endpoint
`POST /api/v1/tools/image/watermark-text` `POST /api/v1/tools/watermark-text`
Accepts multipart form data with an image file and a JSON `settings` field. Accepts multipart form data with an image file and a JSON `settings` field.
@@ -26,7 +26,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/watermark-text \ curl -X POST http://localhost:1349/api/v1/tools/watermark-text \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"text": "SAMPLE", "fontSize": 64, "opacity": 30, "position": "center", "rotation": -30}' -F 'settings={"text": "SAMPLE", "fontSize": 64, "opacity": 30, "position": "center", "rotation": -30}'
@@ -35,7 +35,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image/watermark-text \
Tiled watermark across the entire image: Tiled watermark across the entire image:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image/watermark-text \ curl -X POST http://localhost:1349/api/v1/tools/watermark-text \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F 'settings={"text": "DRAFT", "fontSize": 36, "opacity": 20, "position": "tiled", "rotation": -45}' -F 'settings={"text": "DRAFT", "fontSize": 36, "opacity": 20, "position": "tiled", "rotation": -45}'
+2 -2
View File
@@ -8,7 +8,7 @@ Impose pages for duplex printing so the printed sheets can be folded into a book
## API Endpoint ## API Endpoint
`POST /api/v1/tools/pdf/booklet-pdf` `POST /api/v1/tools/booklet-pdf`
Accepts multipart form data with a PDF file and a JSON `settings` field. Accepts multipart form data with a PDF file and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/booklet-pdf \ curl -X POST http://localhost:1349/api/v1/tools/booklet-pdf \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \ -F "file=@document.pdf" \
-F 'settings={"perSheet": 2}' -F 'settings={"perSheet": 2}'
+4 -4
View File
@@ -8,7 +8,7 @@ Reduce PDF file size by downsampling embedded images. Choose between a quality s
## API Endpoint ## API Endpoint
`POST /api/v1/tools/pdf/compress-pdf` `POST /api/v1/tools/compress-pdf`
Accepts multipart form data with a PDF file and a JSON `settings` field. Accepts multipart form data with a PDF file and a JSON `settings` field.
@@ -17,7 +17,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field.
| Parameter | Type | Required | Default | Description | | Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------| |-----------|------|----------|---------|-------------|
| mode | string | No | `"quality"` | Compression mode: `quality` or `targetSize` | | mode | string | No | `"quality"` | Compression mode: `quality` or `targetSize` |
| quality | integer | No | - | Compression quality, 1-100 (higher = less compression). Used in `quality` mode | | quality | integer | No | `75` | Compression quality, 1-100 (higher = less compression). Used in `quality` mode |
| targetSizeKb | number | No | - | Target file size in kilobytes. Used in `targetSize` mode | | targetSizeKb | number | No | - | Target file size in kilobytes. Used in `targetSize` mode |
## Example Request ## Example Request
@@ -25,7 +25,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field.
Compress by quality: Compress by quality:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/compress-pdf \ curl -X POST http://localhost:1349/api/v1/tools/compress-pdf \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \ -F "file=@document.pdf" \
-F 'settings={"mode": "quality", "quality": 60}' -F 'settings={"mode": "quality", "quality": 60}'
@@ -34,7 +34,7 @@ curl -X POST http://localhost:1349/api/v1/tools/pdf/compress-pdf \
Compress to a target size: Compress to a target size:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/compress-pdf \ curl -X POST http://localhost:1349/api/v1/tools/compress-pdf \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \ -F "file=@document.pdf" \
-F 'settings={"mode": "targetSize", "targetSizeKb": 500}' -F 'settings={"mode": "targetSize", "targetSizeKb": 500}'
+2 -2
View File
@@ -8,7 +8,7 @@ Convert documents between Word (DOCX), OpenDocument (ODT), RTF, and plain text f
## API Endpoint ## API Endpoint
`POST /api/v1/tools/pdf/convert-document` `POST /api/v1/tools/convert-document`
Accepts multipart form data with a Word/ODT/RTF/TXT file and a JSON `settings` field. Accepts multipart form data with a Word/ODT/RTF/TXT file and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with a Word/ODT/RTF/TXT file and a JSON `settings` f
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/convert-document \ curl -X POST http://localhost:1349/api/v1/tools/convert-document \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@report.docx" \ -F "file=@report.docx" \
-F 'settings={"format": "odt"}' -F 'settings={"format": "odt"}'
+2 -2
View File
@@ -8,7 +8,7 @@ Convert presentations between PowerPoint (PPTX) and OpenDocument Presentation (O
## API Endpoint ## API Endpoint
`POST /api/v1/tools/pdf/convert-presentation` `POST /api/v1/tools/convert-presentation`
Accepts multipart form data with a PowerPoint/ODP file and a JSON `settings` field. Accepts multipart form data with a PowerPoint/ODP file and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with a PowerPoint/ODP file and a JSON `settings` fie
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/convert-presentation \ curl -X POST http://localhost:1349/api/v1/tools/convert-presentation \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@slides.pptx" \ -F "file=@slides.pptx" \
-F 'settings={"format": "odp"}' -F 'settings={"format": "odp"}'
+2 -2
View File
@@ -8,7 +8,7 @@ Convert spreadsheets between Excel (XLSX), OpenDocument Spreadsheet (ODS), and C
## API Endpoint ## API Endpoint
`POST /api/v1/tools/pdf/convert-spreadsheet` `POST /api/v1/tools/convert-spreadsheet`
Accepts multipart form data with an Excel/ODS/CSV file and a JSON `settings` field. Accepts multipart form data with an Excel/ODS/CSV file and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with an Excel/ODS/CSV file and a JSON `settings` fie
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/convert-spreadsheet \ curl -X POST http://localhost:1349/api/v1/tools/convert-spreadsheet \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@data.xlsx" \ -F "file=@data.xlsx" \
-F 'settings={"format": "csv"}' -F 'settings={"format": "csv"}'
+2 -2
View File
@@ -8,7 +8,7 @@ Crop all pages of a PDF by applying a uniform margin, trimming content from each
## API Endpoint ## API Endpoint
`POST /api/v1/tools/pdf/crop-pdf` `POST /api/v1/tools/crop-pdf`
Accepts multipart form data with a PDF file and a JSON `settings` field. Accepts multipart form data with a PDF file and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/crop-pdf \ curl -X POST http://localhost:1349/api/v1/tools/crop-pdf \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \ -F "file=@document.pdf" \
-F 'settings={"margin": 50}' -F 'settings={"margin": 50}'

Some files were not shown because too many files have changed in this diff Show More