docs: section-prefix tool API endpoints

This commit is contained in:
SnapOtter
2026-06-21 00:12:59 +08:00
parent b052241c92
commit 9f0b43271c
161 changed files with 404 additions and 402 deletions
+4 -4
View File
@@ -235,13 +235,13 @@ Two-phase workflow: analyze (detect face + remove background) then generate (cro
### Phase 1: Analyze ### Phase 1: Analyze
`POST /api/v1/tools/passport-photo/analyze` `POST /api/v1/tools/image/passport-photo/analyze`
Accepts an image file (multipart). Returns face landmark data, a base64 preview, and image dimensions. Accepts an image file (multipart). Returns face landmark data, a base64 preview, and image dimensions.
### Phase 2: Generate ### Phase 2: Generate
`POST /api/v1/tools/passport-photo/generate` `POST /api/v1/tools/image/passport-photo/generate`
Accepts a JSON body with the Phase 1 results plus generation settings: Accepts a JSON body with the Phase 1 results plus generation settings:
@@ -370,7 +370,7 @@ Fixes "fake transparent" PNGs where the background was removed but left behind f
| `removeWatermark` | boolean | `false` | Apply watermark removal pre-processing (median filter) | | `removeWatermark` | boolean | `false` | Apply watermark removal pre-processing (median filter) |
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/transparency-fixer \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}'
@@ -401,7 +401,7 @@ Analyzes the image and applies automatic corrections for exposure, contrast, whi
| `corrections.denoise` | boolean | `true` | Apply denoising | | `corrections.denoise` | boolean | `true` | Apply denoising |
| `deepEnhance` | boolean | `false` | Enable AI noise removal via SCUNet (requires `upscale-enhance` bundle) | | `deepEnhance` | boolean | `false` | Enable AI noise removal via SCUNet (requires `upscale-enhance` bundle) |
An additional analysis endpoint is available at `POST /api/v1/tools/image-enhancement/analyze` which returns the detected corrections without applying them. An additional analysis endpoint is available at `POST /api/v1/tools/image/image-enhancement/analyze` which returns the detected corrections without applying them.
### Content-Aware Resize (Seam Carving) ### Content-Aware Resize (Seam Carving)
+21 -19
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/resize \ curl http://localhost:1349/api/v1/tools/image/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/resize \ curl http://localhost:1349/api/v1/tools/image/resize \
-H "Authorization: Bearer si_<your-key>" -H "Authorization: Bearer si_<your-key>"
``` ```
@@ -87,19 +87,21 @@ Every tool follows the same pattern:
```bash ```bash
# Single file # Single file
curl -X POST http://localhost:1349/api/v1/tools/<toolId> \ curl -X POST http://localhost:1349/api/v1/tools/<section>/<toolId> \
-H "Authorization: Bearer <token>" \ -H "Authorization: Bearer <token>" \
-F "file=@input.jpg" \ -F "file=@input.jpg" \
-F 'settings={"width":800,"height":600}' -F 'settings={"width":800,"height":600}'
# Batch (returns ZIP) # Batch (returns ZIP)
curl -X POST http://localhost:1349/api/v1/tools/<toolId>/batch \ curl -X POST http://localhost:1349/api/v1/tools/<section>/<toolId>/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" \
-F 'settings={...}' -F 'settings={...}'
``` ```
`<section>` is one of `image`, `video`, `audio`, `pdf`, or `files`.
- Upload is `multipart/form-data`. - Upload is `multipart/form-data`.
- `settings` is a JSON string with tool-specific options. - `settings` is a JSON string with tool-specific options.
- **Fast tools** (200) return JSON: `{"jobId":"...","downloadUrl":"/api/v1/download/<jobId>/<filename>","originalSize":1234,"processedSize":567}`. Fetch the processed file from `downloadUrl`. - **Fast tools** (200) return JSON: `{"jobId":"...","downloadUrl":"/api/v1/download/<jobId>/<filename>","originalSize":1234,"processedSize":567}`. Fetch the processed file from `downloadUrl`.
@@ -331,7 +333,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/html-to-image` **Endpoint:** `POST /api/v1/tools/image/html-to-image`
**Content-Type:** `application/json` **Content-Type:** `application/json`
@@ -348,7 +350,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/html-to-image \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}'
@@ -367,28 +369,28 @@ curl -X POST http://localhost:1349/api/v1/tools/html-to-image \
### Tool Sub-Routes ### Tool Sub-Routes
Some tools expose additional endpoints beyond the standard `POST /api/v1/tools/<toolId>`: Some tools expose additional endpoints beyond the standard `POST /api/v1/tools/<section>/<toolId>`:
| Method | Path | Description | | Method | Path | Description |
|--------|------|-------------| |--------|------|-------------|
| `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/remove-background/effects` | Apply background effects (color/gradient/blur/shadow) without re-running AI. Uses cached mask from initial removal. |
| `POST` | `/api/v1/tools/edit-metadata/inspect` | Read existing EXIF/IPTC/XMP metadata from an image | | `POST` | `/api/v1/tools/image/edit-metadata/inspect` | Read existing EXIF/IPTC/XMP metadata from an image |
| `POST` | `/api/v1/tools/strip-metadata/inspect` | Inspect metadata fields before stripping | | `POST` | `/api/v1/tools/image/strip-metadata/inspect` | Inspect metadata fields before stripping |
| `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/analyze` | Phase 1: AI face detection + background removal. Returns face landmarks and cached data. |
| `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/passport-photo/generate` | Phase 2: Crop, resize, and tile using cached analysis. No AI re-run. |
| `POST` | `/api/v1/tools/gif-tools/info` | Get GIF metadata (frame count, dimensions, duration) | | `POST` | `/api/v1/tools/image/gif-tools/info` | Get GIF metadata (frame count, dimensions, duration) |
| `POST` | `/api/v1/tools/pdf-to-image/info` | Get PDF metadata (page count, dimensions) | | `POST` | `/api/v1/tools/pdf/pdf-to-image/info` | Get PDF metadata (page count, dimensions) |
| `POST` | `/api/v1/tools/pdf-to-image/preview` | Generate a preview of a specific PDF page | | `POST` | `/api/v1/tools/pdf/pdf-to-image/preview` | Generate a preview of a specific PDF page |
| `POST` | `/api/v1/tools/svg-to-raster/batch` | Batch convert multiple SVGs to raster | | `POST` | `/api/v1/tools/image/svg-to-raster/batch` | Batch convert multiple SVGs to raster |
| `POST` | `/api/v1/tools/image-enhancement/analyze` | Analyze image quality and return enhancement recommendations | | `POST` | `/api/v1/tools/image/image-enhancement/analyze` | Analyze image quality and return enhancement recommendations |
| `POST` | `/api/v1/tools/optimize-for-web/preview` | Lightweight preview for live parameter tuning. Returns optimized image with size headers. | | `POST` | `/api/v1/tools/image/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/compress/batch \ curl -X POST http://localhost:1349/api/v1/tools/image/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
@@ -81,7 +81,7 @@ This VitePress site. Deployed to Cloudflare Pages automatically on push to `main
## How a request flows ## How a request flows
1. The user picks a tool in the web UI and uploads a file. 1. The user picks a tool in the web UI and uploads a file.
2. The frontend sends a multipart POST to `/api/v1/tools/:toolId` with the file and settings. 2. The frontend sends a multipart POST to `/api/v1/tools/:section/:toolId` with the file and settings.
3. The API route validates the input with Zod, then dispatches processing. 3. The API route validates the input with Zod, then dispatches processing.
4. For standard tools, the job is enqueued to the appropriate BullMQ pool (image, media, or docs based on modality). The in-process BullMQ worker auto-orients the image based on EXIF metadata, runs the tool's process function, and returns the result. 4. For standard tools, the job is enqueued to the appropriate BullMQ pool (image, media, or docs based on modality). The in-process BullMQ worker auto-orients the image based on EXIF metadata, runs the tool's process function, and returns the result.
5. For AI tools, the TypeScript bridge sends a request to the persistent Python dispatcher (or spawns a fresh subprocess as fallback), waits for it to finish, and reads the output file. 5. For AI tools, the TypeScript bridge sends a request to the persistent Python dispatcher (or spawns a fresh subprocess as fallback), waits for it to finish, and reads the output file.
+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/resize \ curl -X POST http://localhost:1349/api/v1/tools/image/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-channels` `POST /api/v1/tools/audio/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-channels \ curl -X POST http://localhost:1349/api/v1/tools/audio/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-metadata` `POST /api/v1/tools/audio/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-metadata \ curl -X POST http://localhost:1349/api/v1/tools/audio/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-metadata \
Strip all metadata: Strip all metadata:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/audio-metadata \ curl -X POST http://localhost:1349/api/v1/tools/audio/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}'
+2 -2
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-speed` `POST /api/v1/tools/audio/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-speed \ curl -X POST http://localhost:1349/api/v1/tools/audio/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}'
+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/convert-audio` `POST /api/v1/tools/audio/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/convert-audio \ curl -X POST http://localhost:1349/api/v1/tools/audio/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}'
+2 -2
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/fade-audio` `POST /api/v1/tools/audio/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/fade-audio \ curl -X POST http://localhost:1349/api/v1/tools/audio/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}'
+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/merge-audio` `POST /api/v1/tools/audio/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/merge-audio \ curl -X POST http://localhost:1349/api/v1/tools/audio/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/noise-reduction` `POST /api/v1/tools/audio/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/noise-reduction \ curl -X POST http://localhost:1349/api/v1/tools/audio/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/normalize-audio` `POST /api/v1/tools/audio/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/normalize-audio \ curl -X POST http://localhost:1349/api/v1/tools/audio/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/pitch-shift` `POST /api/v1/tools/audio/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/pitch-shift \ curl -X POST http://localhost:1349/api/v1/tools/audio/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/reverse-audio` `POST /api/v1/tools/audio/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/reverse-audio \ curl -X POST http://localhost:1349/api/v1/tools/audio/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/ringtone-maker` `POST /api/v1/tools/audio/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/ringtone-maker \ curl -X POST http://localhost:1349/api/v1/tools/audio/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/silence-removal` `POST /api/v1/tools/audio/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/silence-removal \ curl -X POST http://localhost:1349/api/v1/tools/audio/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}'
+3 -3
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/split-audio` `POST /api/v1/tools/audio/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/split-audio \ curl -X POST http://localhost:1349/api/v1/tools/audio/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/split-audio \
Split by silence detection: Split by silence detection:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/split-audio \ curl -X POST http://localhost:1349/api/v1/tools/audio/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}'
+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/transcribe-audio` `POST /api/v1/tools/audio/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/transcribe-audio \ curl -X POST http://localhost:1349/api/v1/tools/audio/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/trim-audio` `POST /api/v1/tools/audio/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/trim-audio \ curl -X POST http://localhost:1349/api/v1/tools/audio/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/volume-adjust` `POST /api/v1/tools/audio/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/volume-adjust \ curl -X POST http://localhost:1349/api/v1/tools/audio/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/waveform-image` `POST /api/v1/tools/audio/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/waveform-image \ curl -X POST http://localhost:1349/api/v1/tools/audio/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"}'
+2 -2
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/chart-maker` `POST /api/v1/tools/files/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/chart-maker \ curl -X POST http://localhost:1349/api/v1/tools/files/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}'
+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/convert-document` `POST /api/v1/tools/files/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/convert-document \ curl -X POST http://localhost:1349/api/v1/tools/files/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"}'
@@ -8,7 +8,7 @@ Convert presentations between PowerPoint (PPTX) and OpenDocument Presentation (O
## API Endpoint ## API Endpoint
`POST /api/v1/tools/convert-presentation` `POST /api/v1/tools/files/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/convert-presentation \ curl -X POST http://localhost:1349/api/v1/tools/files/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/convert-spreadsheet` `POST /api/v1/tools/files/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/convert-spreadsheet \ curl -X POST http://localhost:1349/api/v1/tools/files/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 @@ Bundle multiple files of any type into a single ZIP archive. Duplicate filenames
## API Endpoint ## API Endpoint
`POST /api/v1/tools/create-zip` `POST /api/v1/tools/files/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/create-zip \ curl -X POST http://localhost:1349/api/v1/tools/files/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/csv-excel` `POST /api/v1/tools/files/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/csv-excel \ curl -X POST http://localhost:1349/api/v1/tools/files/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/csv-excel \
Excel to CSV: Excel to CSV:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/csv-excel \ curl -X POST http://localhost:1349/api/v1/tools/files/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/csv-json` `POST /api/v1/tools/files/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/csv-json \ curl -X POST http://localhost:1349/api/v1/tools/files/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/csv-json \
JSON to CSV: JSON to CSV:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/csv-json \ curl -X POST http://localhost:1349/api/v1/tools/files/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={}'
+2 -2
View File
@@ -8,7 +8,7 @@ Convert an EPUB e-book to PDF, Word (DOCX), HTML, or Markdown. Remote resources
## API Endpoint ## API Endpoint
`POST /api/v1/tools/epub-convert` `POST /api/v1/tools/files/epub-convert`
Accepts multipart form data with an EPUB file and a JSON `settings` field. Accepts multipart form data with an EPUB file and a JSON `settings` field.
@@ -21,7 +21,7 @@ Accepts multipart form data with an EPUB file and a JSON `settings` field.
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/epub-convert \ curl -X POST http://localhost:1349/api/v1/tools/files/epub-convert \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@book.epub" \ -F "file=@book.epub" \
-F 'settings={"format": "pdf"}' -F 'settings={"format": "pdf"}'
+2 -2
View File
@@ -8,7 +8,7 @@ Convert Excel, OpenDocument, or CSV spreadsheets to PDF. Wide sheets may paginat
## API Endpoint ## API Endpoint
`POST /api/v1/tools/excel-to-pdf` `POST /api/v1/tools/files/excel-to-pdf`
Accepts multipart form data with an Excel/ODS/CSV file. Accepts multipart form data with an Excel/ODS/CSV file.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a spreadsheet and it will be co
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/excel-to-pdf \ curl -X POST http://localhost:1349/api/v1/tools/files/excel-to-pdf \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@budget.xlsx" -F "file=@budget.xlsx"
``` ```
+2 -2
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/extract-zip` `POST /api/v1/tools/files/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/extract-zip \ curl -X POST http://localhost:1349/api/v1/tools/files/extract-zip \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@archive.zip" -F "file=@archive.zip"
``` ```
+2 -2
View File
@@ -8,7 +8,7 @@ Convert an HTML file to a styled PDF document. Remote resources (external images
## API Endpoint ## API Endpoint
`POST /api/v1/tools/html-to-pdf` `POST /api/v1/tools/files/html-to-pdf`
Accepts multipart form data with an HTML file. Accepts multipart form data with an HTML file.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload an HTML file and it will be con
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/html-to-pdf \ curl -X POST http://localhost:1349/api/v1/tools/files/html-to-pdf \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@page.html" -F "file=@page.html"
``` ```
+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/json-xml` `POST /api/v1/tools/files/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/json-xml \ curl -X POST http://localhost:1349/api/v1/tools/files/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/json-xml \
XML to JSON: XML to JSON:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/json-xml \ curl -X POST http://localhost:1349/api/v1/tools/files/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 @@ Convert a Markdown file to a Word document (DOCX), preserving headings, lists, c
## API Endpoint ## API Endpoint
`POST /api/v1/tools/markdown-to-docx` `POST /api/v1/tools/files/markdown-to-docx`
Accepts multipart form data with a Markdown file. Accepts multipart form data with a Markdown file.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a Markdown file and it will be
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/markdown-to-docx \ curl -X POST http://localhost:1349/api/v1/tools/files/markdown-to-docx \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@README.md" -F "file=@README.md"
``` ```
+2 -2
View File
@@ -8,7 +8,7 @@ Convert a Markdown file to a standalone HTML page. Remote images referenced in t
## API Endpoint ## API Endpoint
`POST /api/v1/tools/markdown-to-html` `POST /api/v1/tools/files/markdown-to-html`
Accepts multipart form data with a Markdown file. Accepts multipart form data with a Markdown file.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a Markdown file and it will be
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/markdown-to-html \ curl -X POST http://localhost:1349/api/v1/tools/files/markdown-to-html \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@notes.md" -F "file=@notes.md"
``` ```
+2 -2
View File
@@ -8,7 +8,7 @@ Convert a Markdown file to a styled PDF document. Remote resources are disabled
## API Endpoint ## API Endpoint
`POST /api/v1/tools/markdown-to-pdf` `POST /api/v1/tools/files/markdown-to-pdf`
Accepts multipart form data with a Markdown file. Accepts multipart form data with a Markdown file.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a Markdown file and it will be
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/markdown-to-pdf \ curl -X POST http://localhost:1349/api/v1/tools/files/markdown-to-pdf \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@document.md" -F "file=@document.md"
``` ```
+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/merge-csvs` `POST /api/v1/tools/files/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/merge-csvs \ curl -X POST http://localhost:1349/api/v1/tools/files/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" \
+2 -2
View File
@@ -8,7 +8,7 @@ Convert PowerPoint or OpenDocument presentations to PDF, with one slide per page
## API Endpoint ## API Endpoint
`POST /api/v1/tools/powerpoint-to-pdf` `POST /api/v1/tools/files/powerpoint-to-pdf`
Accepts multipart form data with a PowerPoint/ODP file. Accepts multipart form data with a PowerPoint/ODP file.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a presentation and it will be c
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/powerpoint-to-pdf \ curl -X POST http://localhost:1349/api/v1/tools/files/powerpoint-to-pdf \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@slides.pptx" -F "file=@slides.pptx"
``` ```
+2 -2
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/split-csv` `POST /api/v1/tools/files/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/split-csv \ curl -X POST http://localhost:1349/api/v1/tools/files/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}'
+2 -2
View File
@@ -8,7 +8,7 @@ Convert Word documents, Markdown, HTML, or plain text files into the EPUB e-book
## API Endpoint ## API Endpoint
`POST /api/v1/tools/to-epub` `POST /api/v1/tools/files/to-epub`
Accepts multipart form data with a Word/Markdown/HTML/TXT file. Accepts multipart form data with a Word/Markdown/HTML/TXT file.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a document and it will be conve
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/to-epub \ curl -X POST http://localhost:1349/api/v1/tools/files/to-epub \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@manuscript.docx" -F "file=@manuscript.docx"
``` ```
+2 -2
View File
@@ -8,7 +8,7 @@ Convert Word documents, OpenDocument text, RTF, or plain text files to PDF.
## API Endpoint ## API Endpoint
`POST /api/v1/tools/word-to-pdf` `POST /api/v1/tools/files/word-to-pdf`
Accepts multipart form data with a Word/ODT/RTF/TXT file. Accepts multipart form data with a Word/ODT/RTF/TXT file.
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a document and it will be conve
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/word-to-pdf \ curl -X POST http://localhost:1349/api/v1/tools/files/word-to-pdf \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@report.docx" -F "file=@report.docx"
``` ```
+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/xml-to-csv` `POST /api/v1/tools/files/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/xml-to-csv \ curl -X POST http://localhost:1349/api/v1/tools/files/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"
``` ```
+3 -3
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/yaml-json` `POST /api/v1/tools/files/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/yaml-json \ curl -X POST http://localhost:1349/api/v1/tools/files/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/yaml-json \
JSON to YAML: JSON to YAML:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/yaml-json \ curl -X POST http://localhost:1349/api/v1/tools/files/yaml-json \
-H "Authorization: Bearer si_your-api-key" \ -H "Authorization: Bearer si_your-api-key" \
-F "file=@config.json" -F "file=@config.json"
``` ```
+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/adjust-colors` `POST /api/v1/tools/image/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/adjust-colors \ curl -X POST http://localhost:1349/api/v1/tools/image/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/adjust-colors \
Apply a warm vintage look: Apply a warm vintage look:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/adjust-colors \ curl -X POST http://localhost:1349/api/v1/tools/image/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/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`. All use the same schema. - This endpoint also responds at the legacy paths `/api/v1/tools/image/brightness-contrast`, `/api/v1/tools/image/saturation`, `/api/v1/tools/image/color-channels`, and `/api/v1/tools/image/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/ai-canvas-expand` `POST /api/v1/tools/image/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:1349/api/v1/tools/ai-canvas-expand \ curl -X POST http://localhost:1349/api/v1/tools/image/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/background-replace` `POST /api/v1/tools/image/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/background-replace \ curl -X POST http://localhost:1349/api/v1/tools/image/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/barcode-generate` `POST /api/v1/tools/image/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/barcode-generate \ curl -X POST http://localhost:1349/api/v1/tools/image/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/barcode-read` `POST /api/v1/tools/image/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/barcode-read \ curl -X POST http://localhost:1349/api/v1/tools/image/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/beautify` `POST /api/v1/tools/image/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:1349/api/v1/tools/beautify \ curl -X POST http://localhost:1349/api/v1/tools/image/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:1349/api/v1/tools/beautify \
### With Background Image ### With Background Image
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/beautify \ curl -X POST http://localhost:1349/api/v1/tools/image/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/blur-background` `POST /api/v1/tools/image/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/blur-background \ curl -X POST http://localhost:1349/api/v1/tools/image/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/blur-faces` `POST /api/v1/tools/image/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:1349/api/v1/tools/blur-faces \ curl -X POST http://localhost:1349/api/v1/tools/image/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/border` `POST /api/v1/tools/image/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:1349/api/v1/tools/border \ curl -X POST http://localhost:1349/api/v1/tools/image/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/bulk-rename` `POST /api/v1/tools/image/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/bulk-rename \ curl -X POST http://localhost:1349/api/v1/tools/image/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/bulk-rename \ curl -X POST http://localhost:1349/api/v1/tools/image/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/circle-crop` `POST /api/v1/tools/image/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/circle-crop \ curl -X POST http://localhost:1349/api/v1/tools/image/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/collage` `POST /api/v1/tools/image/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:1349/api/v1/tools/collage \ curl -X POST http://localhost:1349/api/v1/tools/image/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/color-blindness` `POST /api/v1/tools/image/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/color-blindness \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}'
+2 -2
View File
@@ -8,7 +8,7 @@ Extract the dominant colors from an image and return them as hex color values. U
## API Endpoint ## API Endpoint
`POST /api/v1/tools/color-palette` `POST /api/v1/tools/image/color-palette`
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.
@@ -22,7 +22,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/color-palette \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}' -F 'settings={"count": 6, "format": "hex"}'
+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/colorize` `POST /api/v1/tools/image/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:1349/api/v1/tools/colorize \ curl -X POST http://localhost:1349/api/v1/tools/image/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/compare` `POST /api/v1/tools/image/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/compare \ curl -X POST http://localhost:1349/api/v1/tools/image/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/compose` `POST /api/v1/tools/image/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/compose \ curl -X POST http://localhost:1349/api/v1/tools/image/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/compose \
Using multiply blend mode: Using multiply blend mode:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/compose \ curl -X POST http://localhost:1349/api/v1/tools/image/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/compress` `POST /api/v1/tools/image/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/compress \ curl -X POST http://localhost:1349/api/v1/tools/image/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/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/compress \ curl -X POST http://localhost:1349/api/v1/tools/image/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/content-aware-resize` `POST /api/v1/tools/image/content-aware-resize`
**Processing:** Synchronous (returns result directly) **Processing:** Synchronous (returns result directly)
@@ -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:1349/api/v1/tools/content-aware-resize \ curl -X POST http://localhost:1349/api/v1/tools/image/content-aware-resize \
-F "file=@landscape.jpg" \ -F "file=@landscape.jpg" \
-F 'settings={"width":800,"protectFaces":true}' -F 'settings={"width":800,"protectFaces":true}'
``` ```
+3 -3
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/convert` `POST /api/v1/tools/image/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.
@@ -45,7 +45,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
Convert to WebP: Convert to WebP:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/convert \ curl -X POST http://localhost:1349/api/v1/tools/image/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}'
@@ -54,7 +54,7 @@ curl -X POST http://localhost:1349/api/v1/tools/convert \
Convert to PNG (lossless): Convert to PNG (lossless):
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/convert \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}'
+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/crop` `POST /api/v1/tools/image/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/crop \ curl -X POST http://localhost:1349/api/v1/tools/image/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/crop \
Crop using percentage values: Crop using percentage values:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/crop \ curl -X POST http://localhost:1349/api/v1/tools/image/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/duotone` `POST /api/v1/tools/image/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/duotone \ curl -X POST http://localhost:1349/api/v1/tools/image/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/edit-metadata` `POST /api/v1/tools/image/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/edit-metadata/inspect` `POST /api/v1/tools/image/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/edit-metadata \ curl -X POST http://localhost:1349/api/v1/tools/image/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/edit-metadata \
Set GPS coordinates: Set GPS coordinates:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/edit-metadata \ curl -X POST http://localhost:1349/api/v1/tools/image/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/edit-metadata \
Remove GPS and add keywords: Remove GPS and add keywords:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/edit-metadata \ curl -X POST http://localhost:1349/api/v1/tools/image/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/edit-metadata \
Inspect metadata: Inspect metadata:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/edit-metadata/inspect \ curl -X POST http://localhost:1349/api/v1/tools/image/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/enhance-faces` `POST /api/v1/tools/image/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:1349/api/v1/tools/enhance-faces \ curl -X POST http://localhost:1349/api/v1/tools/image/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/erase-object` `POST /api/v1/tools/image/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:1349/api/v1/tools/erase-object \ curl -X POST http://localhost:1349/api/v1/tools/image/erase-object \
-F "file=@photo.jpg" \ -F "file=@photo.jpg" \
-F "mask=@mask.png" \ -F "mask=@mask.png" \
-F "format=png" \ -F "format=png" \
+3 -3
View File
@@ -8,7 +8,7 @@ Generate a complete set of favicon and app icon files from a source image. Produ
## API Endpoint ## API Endpoint
`POST /api/v1/tools/favicon` `POST /api/v1/tools/image/favicon`
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.
@@ -43,7 +43,7 @@ For each input image, the following files are produced:
Single source image with rounded corners and padding: Single source image with rounded corners and padding:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/favicon \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}' -F 'settings={"padding": 10, "radius": 20, "themeColor": "#0a0a0a"}'
@@ -52,7 +52,7 @@ curl -X POST http://localhost:1349/api/v1/tools/favicon \
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/favicon \ curl -X POST http://localhost:1349/api/v1/tools/image/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/find-duplicates` `POST /api/v1/tools/image/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/find-duplicates \ curl -X POST http://localhost:1349/api/v1/tools/image/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/gif-tools` `POST /api/v1/tools/image/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:1349/api/v1/tools/gif-tools \ curl -X POST http://localhost:1349/api/v1/tools/image/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:1349/api/v1/tools/gif-tools \
### Optimize ### Optimize
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/gif-tools \ curl -X POST http://localhost:1349/api/v1/tools/image/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:1349/api/v1/tools/gif-tools \
### Speed Up ### Speed Up
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/gif-tools \ curl -X POST http://localhost:1349/api/v1/tools/image/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:1349/api/v1/tools/gif-tools \
### Extract Single Frame ### Extract Single Frame
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/gif-tools \ curl -X POST http://localhost:1349/api/v1/tools/image/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:1349/api/v1/tools/gif-tools \
## Info Sub-Route ## Info Sub-Route
`POST /api/v1/tools/gif-tools/info` `POST /api/v1/tools/image/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:1349/api/v1/tools/gif-tools/info \ curl -X POST http://localhost:1349/api/v1/tools/image/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/gif-webp` `POST /api/v1/tools/image/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/gif-webp \ curl -X POST http://localhost:1349/api/v1/tools/image/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/histogram` `POST /api/v1/tools/image/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/histogram \ curl -X POST http://localhost:1349/api/v1/tools/image/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/html-to-image` `POST /api/v1/tools/image/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/html-to-image \ curl -X POST http://localhost:1349/api/v1/tools/image/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/html-to-image \
Render HTML content: Render HTML content:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/html-to-image \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}'
+4 -4
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-enhancement` `POST /api/v1/tools/image/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:1349/api/v1/tools/image-enhancement \ curl -X POST http://localhost:1349/api/v1/tools/image/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}}'
``` ```
@@ -52,7 +52,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image-enhancement \
## Analyze Endpoint ## Analyze Endpoint
`POST /api/v1/tools/image-enhancement/analyze` `POST /api/v1/tools/image/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:1349/api/v1/tools/image-enhancement/analyze \ curl -X POST http://localhost:1349/api/v1/tools/image/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-pad` `POST /api/v1/tools/image/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-pad \ curl -X POST http://localhost:1349/api/v1/tools/image/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-to-base64` `POST /api/v1/tools/image/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-to-base64 \ curl -X POST http://localhost:1349/api/v1/tools/image/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-to-base64 \
Multiple files: Multiple files:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image-to-base64 \ curl -X POST http://localhost:1349/api/v1/tools/image/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-to-pdf` `POST /api/v1/tools/image/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-to-pdf \ curl -X POST http://localhost:1349/api/v1/tools/image/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-to-pdf \
With file size target: With file size target:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image-to-pdf \ curl -X POST http://localhost:1349/api/v1/tools/image/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-to-pdf \
One PDF per image: One PDF per image:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/image-to-pdf \ curl -X POST http://localhost:1349/api/v1/tools/image/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/info` `POST /api/v1/tools/image/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/info \ curl -X POST http://localhost:1349/api/v1/tools/image/info \
-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
@@ -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/lqip-placeholder` `POST /api/v1/tools/image/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/lqip-placeholder \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}'
+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/meme-generator` `POST /api/v1/tools/image/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/meme-generator \ curl -X POST http://localhost:1349/api/v1/tools/image/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/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/meme-generator \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}]}'
+2 -2
View File
@@ -8,7 +8,7 @@ AI-powered noise and grain removal with multi-tier quality options, using the Py
## API Endpoint ## API Endpoint
`POST /api/v1/tools/noise-removal` `POST /api/v1/tools/image/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)
@@ -29,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:1349/api/v1/tools/noise-removal \ curl -X POST http://localhost:1349/api/v1/tools/image/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}'
``` ```
+2 -2
View File
@@ -8,7 +8,7 @@ Extract text from images using AI-powered optical character recognition. Support
## API Endpoint ## API Endpoint
`POST /api/v1/tools/ocr` `POST /api/v1/tools/image/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)
@@ -27,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:1349/api/v1/tools/ocr \ curl -X POST http://localhost:1349/api/v1/tools/image/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/optimize-for-web` `POST /api/v1/tools/image/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/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/image/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/optimize-for-we
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/optimize-for-web \ curl -X POST http://localhost:1349/api/v1/tools/image/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/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/optimize-for-web \ curl -X POST http://localhost:1349/api/v1/tools/image/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/optimize-for-web \
### Preview Endpoint Response ### Preview Endpoint Response
The preview endpoint (`/api/v1/tools/optimize-for-web/preview`) returns the binary image directly with informational headers: The preview endpoint (`/api/v1/tools/image/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
+6 -6
View File
@@ -16,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/passport-photo/analyze` `POST /api/v1/tools/image/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.
@@ -30,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:1349/api/v1/tools/passport-photo/analyze \ curl -X POST http://localhost:1349/api/v1/tools/image/passport-photo/analyze \
-F "file=@headshot.jpg" -F "file=@headshot.jpg"
``` ```
@@ -75,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/passport-photo/generate` `POST /api/v1/tools/image/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).
@@ -103,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:1349/api/v1/tools/passport-photo/generate \ curl -X POST http://localhost:1349/api/v1/tools/image/passport-photo/generate \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{ -d '{
"jobId": "a1b2c3d4-...", "jobId": "a1b2c3d4-...",
@@ -149,13 +149,13 @@ curl -X POST http://localhost:1349/api/v1/tools/passport-photo/generate \
### Base Route ### Base Route
`POST /api/v1/tools/passport-photo` `POST /api/v1/tools/image/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/passport-photo/analyze or /generate" "error": "Use /api/v1/tools/image/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/pixelate` `POST /api/v1/tools/image/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/pixelate \ curl -X POST http://localhost:1349/api/v1/tools/image/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/pixelate \
Pixelate a specific region: Pixelate a specific region:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/pixelate \ curl -X POST http://localhost:1349/api/v1/tools/image/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}}'
+3 -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/qr-generate` `POST /api/v1/tools/image/qr-generate`
Accepts a **JSON body** (not multipart). No file upload is needed. Accepts a **JSON body** (not multipart). No file upload is needed.
@@ -35,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/qr-generate \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}'
@@ -44,7 +44,7 @@ curl -X POST http://localhost:1349/api/v1/tools/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/qr-generate \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}'
+2 -2
View File
@@ -8,7 +8,7 @@ AI-powered detection and correction of red eye caused by camera flash.
## API Endpoint ## API Endpoint
`POST /api/v1/tools/red-eye-removal` `POST /api/v1/tools/image/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)
@@ -27,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:1349/api/v1/tools/red-eye-removal \ curl -X POST http://localhost:1349/api/v1/tools/image/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}'
``` ```
+4 -4
View File
@@ -8,7 +8,7 @@ AI-powered background removal with optional effects (blur, shadow, gradient, cus
## API Endpoint ## API Endpoint
`POST /api/v1/tools/remove-background` `POST /api/v1/tools/image/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)
@@ -36,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:1349/api/v1/tools/remove-background \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}'
``` ```
@@ -80,7 +80,7 @@ data: {"phase":"processing","stage":"Removing background...","percent":50}
## Effects Endpoint (Phase 2) ## Effects Endpoint (Phase 2)
`POST /api/v1/tools/remove-background/effects` `POST /api/v1/tools/image/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.
@@ -111,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:1349/api/v1/tools/remove-background/effects \ curl -X POST http://localhost:1349/api/v1/tools/image/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/replace-color` `POST /api/v1/tools/image/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/replace-color \ curl -X POST http://localhost:1349/api/v1/tools/image/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/replace-color \
Make a green background transparent: Make a green background transparent:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/replace-color \ curl -X POST http://localhost:1349/api/v1/tools/image/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/resize` `POST /api/v1/tools/image/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/resize \ curl -X POST http://localhost:1349/api/v1/tools/image/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/resize \
Resize by percentage: Resize by percentage:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/resize \ curl -X POST http://localhost:1349/api/v1/tools/image/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/restore-photo` `POST /api/v1/tools/image/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:1349/api/v1/tools/restore-photo \ curl -X POST http://localhost:1349/api/v1/tools/image/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/rotate` `POST /api/v1/tools/image/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/rotate \ curl -X POST http://localhost:1349/api/v1/tools/image/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/rotate \
Flip horizontally: Flip horizontally:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/rotate \ curl -X POST http://localhost:1349/api/v1/tools/image/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/rotate \
Rotate and flip together: Rotate and flip together:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/rotate \ curl -X POST http://localhost:1349/api/v1/tools/image/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/sharpening` `POST /api/v1/tools/image/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/sharpening \ curl -X POST http://localhost:1349/api/v1/tools/image/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/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/sharpening \ curl -X POST http://localhost:1349/api/v1/tools/image/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}'
+2 -2
View File
@@ -4,7 +4,7 @@ Smart subject-aware, face-aware, or trim-based cropping. Uses Sharp's attention/
## API Endpoint ## API Endpoint
`POST /api/v1/tools/smart-crop` `POST /api/v1/tools/image/smart-crop`
**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)
@@ -31,7 +31,7 @@ Smart subject-aware, face-aware, or trim-based cropping. Uses Sharp's attention/
## Example Request ## Example Request
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/smart-crop \ curl -X POST http://localhost:1349/api/v1/tools/image/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"}'
``` ```
+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/split` `POST /api/v1/tools/image/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:1349/api/v1/tools/split \ curl -X POST http://localhost:1349/api/v1/tools/image/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/sprite-sheet` `POST /api/v1/tools/image/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/sprite-sheet \ curl -X POST http://localhost:1349/api/v1/tools/image/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/stitch` `POST /api/v1/tools/image/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:1349/api/v1/tools/stitch \ curl -X POST http://localhost:1349/api/v1/tools/image/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/strip-metadata` `POST /api/v1/tools/image/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/strip-metadata/inspect` `POST /api/v1/tools/image/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/strip-metadata \ curl -X POST http://localhost:1349/api/v1/tools/image/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/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/strip-metadata \ curl -X POST http://localhost:1349/api/v1/tools/image/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/strip-metadata \
Inspect metadata without modifying: Inspect metadata without modifying:
```bash ```bash
curl -X POST http://localhost:1349/api/v1/tools/strip-metadata/inspect \ curl -X POST http://localhost:1349/api/v1/tools/image/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/svg-to-raster` `POST /api/v1/tools/image/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:1349/api/v1/tools/svg-to-raster \ curl -X POST http://localhost:1349/api/v1/tools/image/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:1349/api/v1/tools/svg-to-raster \
## Batch Endpoint ## Batch Endpoint
`POST /api/v1/tools/svg-to-raster/batch` `POST /api/v1/tools/image/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:1349/api/v1/tools/svg-to-raster/batch \ curl -X POST http://localhost:1349/api/v1/tools/image/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" \

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