diff --git a/apps/docs/api/ai.md b/apps/docs/api/ai.md index ee4f238d..cf49b7fe 100644 --- a/apps/docs/api/ai.md +++ b/apps/docs/api/ai.md @@ -235,13 +235,13 @@ Two-phase workflow: analyze (detect face + remove background) then generate (cro ### 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. ### 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: @@ -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) | ```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 " \ -F "file=@fake-transparent.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 | | `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) diff --git a/apps/docs/api/rest.md b/apps/docs/api/rest.md index a3d272f4..3436468f 100644 --- a/apps/docs/api/rest.md +++ b/apps/docs/api/rest.md @@ -25,7 +25,7 @@ curl -X POST http://localhost:1349/api/auth/login \ # Returns: {"token":""} # Use token -curl http://localhost:1349/api/v1/tools/resize \ +curl http://localhost:1349/api/v1/tools/image/resize \ -H "Authorization: Bearer " ``` @@ -42,7 +42,7 @@ curl -X POST http://localhost:1349/api/v1/api-keys \ # Returns: {"key":"si_<96 hex chars>","id":"...","name":"my-script"} # Use the key -curl http://localhost:1349/api/v1/tools/resize \ +curl http://localhost:1349/api/v1/tools/image/resize \ -H "Authorization: Bearer si_" ``` @@ -87,19 +87,21 @@ Every tool follows the same pattern: ```bash # Single file -curl -X POST http://localhost:1349/api/v1/tools/ \ +curl -X POST http://localhost:1349/api/v1/tools/
/ \ -H "Authorization: Bearer " \ -F "file=@input.jpg" \ -F 'settings={"width":800,"height":600}' # Batch (returns ZIP) -curl -X POST http://localhost:1349/api/v1/tools//batch \ +curl -X POST http://localhost:1349/api/v1/tools/
//batch \ -H "Authorization: Bearer " \ -F "files=@a.jpg" \ -F "files=@b.jpg" \ -F 'settings={...}' ``` +`
` is one of `image`, `video`, `audio`, `pdf`, or `files`. + - Upload is `multipart/form-data`. - `settings` is a JSON string with tool-specific options. - **Fast tools** (200) return JSON: `{"jobId":"...","downloadUrl":"/api/v1/download//","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). -**Endpoint:** `POST /api/v1/tools/html-to-image` +**Endpoint:** `POST /api/v1/tools/image/html-to-image` **Content-Type:** `application/json` @@ -348,7 +350,7 @@ Capture a webpage as an image. Unlike other tools, this endpoint accepts `applic **Example:** ```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 "Content-Type: application/json" \ -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 -Some tools expose additional endpoints beyond the standard `POST /api/v1/tools/`: +Some tools expose additional endpoints beyond the standard `POST /api/v1/tools/
/`: | 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/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/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/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-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-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/remove-background/effects` | Apply background effects (color/gradient/blur/shadow) without re-running AI. Uses cached mask from initial removal. | +| `POST` | `/api/v1/tools/image/edit-metadata/inspect` | Read existing EXIF/IPTC/XMP metadata from an image | +| `POST` | `/api/v1/tools/image/strip-metadata/inspect` | Inspect metadata fields before stripping | +| `POST` | `/api/v1/tools/image/passport-photo/analyze` | Phase 1: AI face detection + background removal. Returns face landmarks and cached data. | +| `POST` | `/api/v1/tools/image/passport-photo/generate` | Phase 2: Crop, resize, and tile using cached analysis. No AI re-run. | +| `POST` | `/api/v1/tools/image/gif-tools/info` | Get GIF metadata (frame count, dimensions, duration) | +| `POST` | `/api/v1/tools/pdf/pdf-to-image/info` | Get PDF metadata (page count, dimensions) | +| `POST` | `/api/v1/tools/pdf/pdf-to-image/preview` | Generate a preview of a specific PDF page | +| `POST` | `/api/v1/tools/image/svg-to-raster/batch` | Batch convert multiple SVGs to raster | +| `POST` | `/api/v1/tools/image/image-enhancement/analyze` | Analyze image quality and return enhancement recommendations | +| `POST` | `/api/v1/tools/image/optimize-for-web/preview` | Lightweight preview for live parameter tuning. Returns optimized image with size headers. | ## Batch Processing Apply any tool to multiple files at once. Returns a ZIP archive. ```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 " \ -F "files=@a.jpg" \ -F "files=@b.jpg" \ diff --git a/apps/docs/guide/architecture.md b/apps/docs/guide/architecture.md index 5624746c..179966fb 100644 --- a/apps/docs/guide/architecture.md +++ b/apps/docs/guide/architecture.md @@ -81,7 +81,7 @@ This VitePress site. Deployed to Cloudflare Pages automatically on push to `main ## How a request flows 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. 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. diff --git a/apps/docs/guide/getting-started.md b/apps/docs/guide/getting-started.md index 0bc36f36..b1156421 100644 --- a/apps/docs/guide/getting-started.md +++ b/apps/docs/guide/getting-started.md @@ -139,7 +139,7 @@ Every file you process can be saved to your **Files** library. SnapOtter tracks Every tool is accessible via HTTP: ```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_" \ -F "file=@photo.jpg" \ -F 'settings={"width":800,"height":600,"fit":"cover"}' diff --git a/apps/docs/tools/audio/audio-channels.md b/apps/docs/tools/audio/audio-channels.md index 95e72268..018344b0 100644 --- a/apps/docs/tools/audio/audio-channels.md +++ b/apps/docs/tools/audio/audio-channels.md @@ -8,7 +8,7 @@ Convert audio between mono and stereo layouts, or swap the left and right channe ## 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. @@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@audio.mp3" \ -F 'settings={"mode": "stereo-to-mono"}' diff --git a/apps/docs/tools/audio/audio-metadata.md b/apps/docs/tools/audio/audio-metadata.md index c992131f..dcbf30b1 100644 --- a/apps/docs/tools/audio/audio-metadata.md +++ b/apps/docs/tools/audio/audio-metadata.md @@ -8,7 +8,7 @@ View, edit, or strip audio metadata tags such as title, artist, and album (ID3 a ## 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. @@ -26,7 +26,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. Edit metadata tags: ```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" \ -F "file=@audio.mp3" \ -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: ```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" \ -F "file=@audio.mp3" \ -F 'settings={"strip": true}' diff --git a/apps/docs/tools/audio/audio-speed.md b/apps/docs/tools/audio/audio-speed.md index 182f9558..6c64aea1 100644 --- a/apps/docs/tools/audio/audio-speed.md +++ b/apps/docs/tools/audio/audio-speed.md @@ -8,7 +8,7 @@ Speed up or slow down audio playback by applying a speed multiplier. ## 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. @@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@audio.mp3" \ -F 'settings={"factor": 2}' diff --git a/apps/docs/tools/audio/convert-audio.md b/apps/docs/tools/audio/convert-audio.md index 2d413ea0..502552d7 100644 --- a/apps/docs/tools/audio/convert-audio.md +++ b/apps/docs/tools/audio/convert-audio.md @@ -8,7 +8,7 @@ Convert audio files between common formats including MP3, WAV, OGG, FLAC, and M4 ## 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. @@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@audio.mp3" \ -F 'settings={"format": "flac", "bitrateKbps": 256}' diff --git a/apps/docs/tools/audio/fade-audio.md b/apps/docs/tools/audio/fade-audio.md index 508d5577..81d7569f 100644 --- a/apps/docs/tools/audio/fade-audio.md +++ b/apps/docs/tools/audio/fade-audio.md @@ -8,7 +8,7 @@ Add fade-in and fade-out effects to the beginning and end of an audio file. ## 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. @@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@audio.mp3" \ -F 'settings={"fadeInS": 2, "fadeOutS": 3}' diff --git a/apps/docs/tools/audio/merge-audio.md b/apps/docs/tools/audio/merge-audio.md index b9af04db..3ac7798a 100644 --- a/apps/docs/tools/audio/merge-audio.md +++ b/apps/docs/tools/audio/merge-audio.md @@ -8,7 +8,7 @@ Combine two or more audio files into a single sequential track, concatenated in ## 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. @@ -21,7 +21,7 @@ Accepts multipart form data with multiple audio files and a JSON `settings` fiel ## Example Request ```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" \ -F "file=@intro.mp3" \ -F "file=@main.mp3" \ diff --git a/apps/docs/tools/audio/noise-reduction.md b/apps/docs/tools/audio/noise-reduction.md index b766353b..9f005742 100644 --- a/apps/docs/tools/audio/noise-reduction.md +++ b/apps/docs/tools/audio/noise-reduction.md @@ -8,7 +8,7 @@ Reduce background noise in an audio file using FFT-based denoising with selectab ## 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. @@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@audio.mp3" \ -F 'settings={"strength": "strong"}' diff --git a/apps/docs/tools/audio/normalize-audio.md b/apps/docs/tools/audio/normalize-audio.md index fb57610b..c56e447a 100644 --- a/apps/docs/tools/audio/normalize-audio.md +++ b/apps/docs/tools/audio/normalize-audio.md @@ -8,7 +8,7 @@ Even out audio loudness to broadcast standard levels using EBU R128 normalizatio ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. It applies EBU R128 loudness normaliza ## Example Request ```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" \ -F "file=@audio.mp3" ``` diff --git a/apps/docs/tools/audio/pitch-shift.md b/apps/docs/tools/audio/pitch-shift.md index 47e99098..a39ff129 100644 --- a/apps/docs/tools/audio/pitch-shift.md +++ b/apps/docs/tools/audio/pitch-shift.md @@ -8,7 +8,7 @@ Raise or lower the pitch of an audio file by a number of semitones without chang ## 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. @@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@audio.mp3" \ -F 'settings={"semitones": -5}' diff --git a/apps/docs/tools/audio/reverse-audio.md b/apps/docs/tools/audio/reverse-audio.md index 44c24cb7..c7d67cd8 100644 --- a/apps/docs/tools/audio/reverse-audio.md +++ b/apps/docs/tools/audio/reverse-audio.md @@ -8,7 +8,7 @@ Reverse an audio file so it plays backwards. ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. The entire audio file is reversed. ## Example Request ```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" \ -F "file=@audio.mp3" ``` diff --git a/apps/docs/tools/audio/ringtone-maker.md b/apps/docs/tools/audio/ringtone-maker.md index 5d8f276a..922a2433 100644 --- a/apps/docs/tools/audio/ringtone-maker.md +++ b/apps/docs/tools/audio/ringtone-maker.md @@ -8,7 +8,7 @@ Create a ringtone clip (.m4r) from any audio file by selecting a start time and ## 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. @@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@audio.mp3" \ -F 'settings={"startS": 15, "durationS": 20}' diff --git a/apps/docs/tools/audio/silence-removal.md b/apps/docs/tools/audio/silence-removal.md index 9734bbe6..2f14a994 100644 --- a/apps/docs/tools/audio/silence-removal.md +++ b/apps/docs/tools/audio/silence-removal.md @@ -8,7 +8,7 @@ Detect and remove silent sections from an audio file based on a configurable thr ## 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. @@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@audio.mp3" \ -F 'settings={"thresholdDb": -45, "minSilenceS": 1}' diff --git a/apps/docs/tools/audio/split-audio.md b/apps/docs/tools/audio/split-audio.md index 89a55ede..2682d4e8 100644 --- a/apps/docs/tools/audio/split-audio.md +++ b/apps/docs/tools/audio/split-audio.md @@ -8,7 +8,7 @@ Split an audio file into segments by fixed time intervals, equal parts, or autom ## 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. @@ -27,7 +27,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. Split into 30-second segments: ```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" \ -F "file=@audio.mp3" \ -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: ```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" \ -F "file=@audio.mp3" \ -F 'settings={"mode": "silence", "thresholdDb": -35, "minSilenceS": 0.5}' diff --git a/apps/docs/tools/audio/transcribe-audio.md b/apps/docs/tools/audio/transcribe-audio.md index 44269dc5..c531041c 100644 --- a/apps/docs/tools/audio/transcribe-audio.md +++ b/apps/docs/tools/audio/transcribe-audio.md @@ -8,7 +8,7 @@ Convert speech to text using AI-powered transcription (faster-whisper). Supports ## 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. @@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@audio.mp3" \ -F 'settings={"language": "en", "outputFormat": "srt"}' diff --git a/apps/docs/tools/audio/trim-audio.md b/apps/docs/tools/audio/trim-audio.md index 0cc4d0b3..92e7da30 100644 --- a/apps/docs/tools/audio/trim-audio.md +++ b/apps/docs/tools/audio/trim-audio.md @@ -8,7 +8,7 @@ Cut a section out of an audio file by specifying start and end times in seconds. ## 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. @@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@audio.mp3" \ -F 'settings={"startS": 10, "endS": 45}' diff --git a/apps/docs/tools/audio/volume-adjust.md b/apps/docs/tools/audio/volume-adjust.md index 97c1f201..1559d44b 100644 --- a/apps/docs/tools/audio/volume-adjust.md +++ b/apps/docs/tools/audio/volume-adjust.md @@ -8,7 +8,7 @@ Increase or decrease the volume of an audio file by applying a fixed gain in dec ## 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. @@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@audio.mp3" \ -F 'settings={"gainDb": 6}' diff --git a/apps/docs/tools/audio/waveform-image.md b/apps/docs/tools/audio/waveform-image.md index bb269c2d..3d66b3f7 100644 --- a/apps/docs/tools/audio/waveform-image.md +++ b/apps/docs/tools/audio/waveform-image.md @@ -8,7 +8,7 @@ Generate a waveform visualization as a PNG image from an audio file, with config ## 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. @@ -23,7 +23,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@audio.mp3" \ -F 'settings={"width": 1920, "height": 400, "color": "#e07832"}' diff --git a/apps/docs/tools/files/chart-maker.md b/apps/docs/tools/files/chart-maker.md index 73d213b5..96800916 100644 --- a/apps/docs/tools/files/chart-maker.md +++ b/apps/docs/tools/files/chart-maker.md @@ -8,7 +8,7 @@ Create bar, line, or pie charts from CSV or JSON data. Returns a PNG image of th ## 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. @@ -24,7 +24,7 @@ Accepts multipart form data with a CSV or JSON file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@sales.csv" \ -F 'settings={"kind": "line", "title": "Monthly Sales", "width": 960, "height": 540}' diff --git a/apps/docs/tools/files/convert-document.md b/apps/docs/tools/files/convert-document.md index e9cb4cd8..d633e368 100644 --- a/apps/docs/tools/files/convert-document.md +++ b/apps/docs/tools/files/convert-document.md @@ -8,7 +8,7 @@ Convert documents between Word (DOCX), OpenDocument (ODT), RTF, and plain text f ## 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. @@ -21,7 +21,7 @@ Accepts multipart form data with a Word/ODT/RTF/TXT file and a JSON `settings` f ## Example Request ```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" \ -F "file=@report.docx" \ -F 'settings={"format": "odt"}' diff --git a/apps/docs/tools/files/convert-presentation.md b/apps/docs/tools/files/convert-presentation.md index 252e3bd2..77a9123f 100644 --- a/apps/docs/tools/files/convert-presentation.md +++ b/apps/docs/tools/files/convert-presentation.md @@ -8,7 +8,7 @@ Convert presentations between PowerPoint (PPTX) and OpenDocument Presentation (O ## 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. @@ -21,7 +21,7 @@ Accepts multipart form data with a PowerPoint/ODP file and a JSON `settings` fie ## Example Request ```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" \ -F "file=@slides.pptx" \ -F 'settings={"format": "odp"}' diff --git a/apps/docs/tools/files/convert-spreadsheet.md b/apps/docs/tools/files/convert-spreadsheet.md index 20510e7d..f7bd7022 100644 --- a/apps/docs/tools/files/convert-spreadsheet.md +++ b/apps/docs/tools/files/convert-spreadsheet.md @@ -8,7 +8,7 @@ Convert spreadsheets between Excel (XLSX), OpenDocument Spreadsheet (ODS), and C ## 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. @@ -21,7 +21,7 @@ Accepts multipart form data with an Excel/ODS/CSV file and a JSON `settings` fie ## Example Request ```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" \ -F "file=@data.xlsx" \ -F 'settings={"format": "csv"}' diff --git a/apps/docs/tools/files/create-zip.md b/apps/docs/tools/files/create-zip.md index b3140c50..9f72343c 100644 --- a/apps/docs/tools/files/create-zip.md +++ b/apps/docs/tools/files/create-zip.md @@ -8,7 +8,7 @@ Bundle multiple files of any type into a single ZIP archive. Duplicate filenames ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload 2--50 files of any type to bund ## Example Request ```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" \ -F "file=@report.pdf" \ -F "file=@data.csv" \ diff --git a/apps/docs/tools/files/csv-excel.md b/apps/docs/tools/files/csv-excel.md index 446d44ce..fc91e437 100644 --- a/apps/docs/tools/files/csv-excel.md +++ b/apps/docs/tools/files/csv-excel.md @@ -8,7 +8,7 @@ Convert between CSV and Excel (XLSX) formats in both directions. Upload a CSV or ## 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. @@ -23,7 +23,7 @@ Accepts multipart form data with a CSV, TSV, or XLSX file and a JSON `settings` CSV to Excel: ```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" \ -F "file=@data.csv" \ -F 'settings={"sheet": 1}' @@ -32,7 +32,7 @@ curl -X POST http://localhost:1349/api/v1/tools/csv-excel \ Excel to CSV: ```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" \ -F "file=@report.xlsx" \ -F 'settings={"sheet": 2}' diff --git a/apps/docs/tools/files/csv-json.md b/apps/docs/tools/files/csv-json.md index 4a0b2366..d3022474 100644 --- a/apps/docs/tools/files/csv-json.md +++ b/apps/docs/tools/files/csv-json.md @@ -8,7 +8,7 @@ Convert between CSV and JSON formats in both directions. Upload a CSV or TSV fil ## 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. @@ -23,7 +23,7 @@ Accepts multipart form data with a CSV, TSV, or JSON file and a JSON `settings` CSV to JSON: ```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" \ -F "file=@users.csv" \ -F 'settings={"pretty": true}' @@ -32,7 +32,7 @@ curl -X POST http://localhost:1349/api/v1/tools/csv-json \ JSON to CSV: ```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" \ -F "file=@users.json" \ -F 'settings={}' diff --git a/apps/docs/tools/files/epub-convert.md b/apps/docs/tools/files/epub-convert.md index c511d818..d98957f2 100644 --- a/apps/docs/tools/files/epub-convert.md +++ b/apps/docs/tools/files/epub-convert.md @@ -8,7 +8,7 @@ Convert an EPUB e-book to PDF, Word (DOCX), HTML, or Markdown. Remote resources ## 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. @@ -21,7 +21,7 @@ Accepts multipart form data with an EPUB file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@book.epub" \ -F 'settings={"format": "pdf"}' diff --git a/apps/docs/tools/files/excel-to-pdf.md b/apps/docs/tools/files/excel-to-pdf.md index 6e13e9e7..bef86180 100644 --- a/apps/docs/tools/files/excel-to-pdf.md +++ b/apps/docs/tools/files/excel-to-pdf.md @@ -8,7 +8,7 @@ Convert Excel, OpenDocument, or CSV spreadsheets to PDF. Wide sheets may paginat ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a spreadsheet and it will be co ## Example Request ```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" \ -F "file=@budget.xlsx" ``` diff --git a/apps/docs/tools/files/extract-zip.md b/apps/docs/tools/files/extract-zip.md index a393cabb..9746d2c8 100644 --- a/apps/docs/tools/files/extract-zip.md +++ b/apps/docs/tools/files/extract-zip.md @@ -8,7 +8,7 @@ Safely extract files from a ZIP archive. Single-file archives return the contain ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a `.zip` file to extract. ## Example Request ```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" \ -F "file=@archive.zip" ``` diff --git a/apps/docs/tools/files/html-to-pdf.md b/apps/docs/tools/files/html-to-pdf.md index 46884dfb..7da791f4 100644 --- a/apps/docs/tools/files/html-to-pdf.md +++ b/apps/docs/tools/files/html-to-pdf.md @@ -8,7 +8,7 @@ Convert an HTML file to a styled PDF document. Remote resources (external images ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload an HTML file and it will be con ## Example Request ```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" \ -F "file=@page.html" ``` diff --git a/apps/docs/tools/files/json-xml.md b/apps/docs/tools/files/json-xml.md index 91e9f038..b3e0742e 100644 --- a/apps/docs/tools/files/json-xml.md +++ b/apps/docs/tools/files/json-xml.md @@ -8,7 +8,7 @@ Convert between JSON and XML formats in both directions. Upload a JSON file to g ## 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. @@ -23,7 +23,7 @@ Accepts multipart form data with a JSON or XML file and a JSON `settings` field. JSON to XML: ```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" \ -F "file=@config.json" \ -F 'settings={"pretty": true}' @@ -32,7 +32,7 @@ curl -X POST http://localhost:1349/api/v1/tools/json-xml \ XML to JSON: ```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" \ -F "file=@config.xml" \ -F 'settings={"pretty": true}' diff --git a/apps/docs/tools/files/markdown-to-docx.md b/apps/docs/tools/files/markdown-to-docx.md index a1d95b48..5785d82e 100644 --- a/apps/docs/tools/files/markdown-to-docx.md +++ b/apps/docs/tools/files/markdown-to-docx.md @@ -8,7 +8,7 @@ Convert a Markdown file to a Word document (DOCX), preserving headings, lists, c ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a Markdown file and it will be ## Example Request ```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" \ -F "file=@README.md" ``` diff --git a/apps/docs/tools/files/markdown-to-html.md b/apps/docs/tools/files/markdown-to-html.md index 25a5d3ee..e9bc2b49 100644 --- a/apps/docs/tools/files/markdown-to-html.md +++ b/apps/docs/tools/files/markdown-to-html.md @@ -8,7 +8,7 @@ Convert a Markdown file to a standalone HTML page. Remote images referenced in t ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a Markdown file and it will be ## Example Request ```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" \ -F "file=@notes.md" ``` diff --git a/apps/docs/tools/files/markdown-to-pdf.md b/apps/docs/tools/files/markdown-to-pdf.md index 3e6d78f8..f2025f33 100644 --- a/apps/docs/tools/files/markdown-to-pdf.md +++ b/apps/docs/tools/files/markdown-to-pdf.md @@ -8,7 +8,7 @@ Convert a Markdown file to a styled PDF document. Remote resources are disabled ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a Markdown file and it will be ## Example Request ```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" \ -F "file=@document.md" ``` diff --git a/apps/docs/tools/files/merge-csvs.md b/apps/docs/tools/files/merge-csvs.md index a804a758..569abeee 100644 --- a/apps/docs/tools/files/merge-csvs.md +++ b/apps/docs/tools/files/merge-csvs.md @@ -8,7 +8,7 @@ Combine multiple CSV or TSV files with matching columns into a single merged fil ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload 2--20 CSV or TSV files with mat ## Example Request ```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" \ -F "file=@january.csv" \ -F "file=@february.csv" \ diff --git a/apps/docs/tools/files/powerpoint-to-pdf.md b/apps/docs/tools/files/powerpoint-to-pdf.md index 3b6d643f..457a2a50 100644 --- a/apps/docs/tools/files/powerpoint-to-pdf.md +++ b/apps/docs/tools/files/powerpoint-to-pdf.md @@ -8,7 +8,7 @@ Convert PowerPoint or OpenDocument presentations to PDF, with one slide per page ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a presentation and it will be c ## Example Request ```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" \ -F "file=@slides.pptx" ``` diff --git a/apps/docs/tools/files/split-csv.md b/apps/docs/tools/files/split-csv.md index 6374a851..f4918a92 100644 --- a/apps/docs/tools/files/split-csv.md +++ b/apps/docs/tools/files/split-csv.md @@ -8,7 +8,7 @@ Split a large CSV or TSV file into smaller files by row count. Returns a ZIP arc ## 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. @@ -22,7 +22,7 @@ Accepts multipart form data with a CSV file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@large-dataset.csv" \ -F 'settings={"rowsPerFile": 500, "keepHeader": true}' diff --git a/apps/docs/tools/files/to-epub.md b/apps/docs/tools/files/to-epub.md index a42e0593..96a6556d 100644 --- a/apps/docs/tools/files/to-epub.md +++ b/apps/docs/tools/files/to-epub.md @@ -8,7 +8,7 @@ Convert Word documents, Markdown, HTML, or plain text files into the EPUB e-book ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a document and it will be conve ## Example Request ```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" \ -F "file=@manuscript.docx" ``` diff --git a/apps/docs/tools/files/word-to-pdf.md b/apps/docs/tools/files/word-to-pdf.md index ea7dead8..6f0d4b90 100644 --- a/apps/docs/tools/files/word-to-pdf.md +++ b/apps/docs/tools/files/word-to-pdf.md @@ -8,7 +8,7 @@ Convert Word documents, OpenDocument text, RTF, or plain text files to PDF. ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a document and it will be conve ## Example Request ```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" \ -F "file=@report.docx" ``` diff --git a/apps/docs/tools/files/xml-to-csv.md b/apps/docs/tools/files/xml-to-csv.md index 8395e0e1..816aa6d0 100644 --- a/apps/docs/tools/files/xml-to-csv.md +++ b/apps/docs/tools/files/xml-to-csv.md @@ -8,7 +8,7 @@ Extract repeating elements from an XML file into a flat CSV table. The tool auto ## 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. @@ -19,7 +19,7 @@ This tool has no configurable parameters. The repeating element is auto-detected ## Example Request ```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" \ -F "file=@catalog.xml" ``` diff --git a/apps/docs/tools/files/yaml-json.md b/apps/docs/tools/files/yaml-json.md index 8ec74168..accc8d87 100644 --- a/apps/docs/tools/files/yaml-json.md +++ b/apps/docs/tools/files/yaml-json.md @@ -8,7 +8,7 @@ Convert between YAML and JSON formats in both directions. Upload a YAML file to ## 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. @@ -21,7 +21,7 @@ This tool has no configurable parameters. The conversion direction is determined YAML to JSON: ```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" \ -F "file=@config.yaml" ``` @@ -29,7 +29,7 @@ curl -X POST http://localhost:1349/api/v1/tools/yaml-json \ JSON to YAML: ```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" \ -F "file=@config.json" ``` diff --git a/apps/docs/tools/image/adjust-colors.md b/apps/docs/tools/image/adjust-colors.md index ba76462c..271cb2e6 100644 --- a/apps/docs/tools/image/adjust-colors.md +++ b/apps/docs/tools/image/adjust-colors.md @@ -8,7 +8,7 @@ Comprehensive color adjustment tool combining brightness, contrast, exposure, sa ## 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. @@ -32,7 +32,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@photo.jpg" \ -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: ```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" \ -F "file=@photo.jpg" \ -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. - 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). -- 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. diff --git a/apps/docs/tools/image/ai-canvas-expand.md b/apps/docs/tools/image/ai-canvas-expand.md index 8797dda8..c952c390 100644 --- a/apps/docs/tools/image/ai-canvas-expand.md +++ b/apps/docs/tools/image/ai-canvas-expand.md @@ -4,7 +4,7 @@ Expand the canvas of an image with AI-powered fill (outpainting). Extends the im ## 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) @@ -28,7 +28,7 @@ At least one extend direction must be greater than 0. ## Example Request ```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 'settings={"extendTop":200,"extendBottom":200,"extendLeft":100,"extendRight":100,"tier":"balanced"}' ``` diff --git a/apps/docs/tools/image/background-replace.md b/apps/docs/tools/image/background-replace.md index 55ee767f..68f6e612 100644 --- a/apps/docs/tools/image/background-replace.md +++ b/apps/docs/tools/image/background-replace.md @@ -8,7 +8,7 @@ Replace the background of an image with a solid color or gradient. The AI model ## 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. @@ -27,7 +27,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@photo.jpg" \ -F 'settings={"backgroundType": "color", "color": "#2563eb", "feather": 2}' diff --git a/apps/docs/tools/image/barcode-generate.md b/apps/docs/tools/image/barcode-generate.md index 13b4b88a..3f991b8b 100644 --- a/apps/docs/tools/image/barcode-generate.md +++ b/apps/docs/tools/image/barcode-generate.md @@ -8,7 +8,7 @@ Generate barcode images from text input. Supports Code 128, EAN-13, UPC-A, Code ## 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. @@ -24,7 +24,7 @@ Accepts an `application/json` body (not multipart). The barcode is generated fro ## Example Request ```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 "Content-Type: application/json" \ -d '{"text": "5901234123457", "type": "ean13", "scale": 4}' diff --git a/apps/docs/tools/image/barcode-read.md b/apps/docs/tools/image/barcode-read.md index 7c180cbd..837006a9 100644 --- a/apps/docs/tools/image/barcode-read.md +++ b/apps/docs/tools/image/barcode-read.md @@ -8,7 +8,7 @@ Scan uploaded images for all types of barcodes and QR codes. Returns decoded tex ## 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. @@ -21,7 +21,7 @@ Accepts multipart form data with an image file and an optional JSON `settings` f ## Example Request ```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" \ -F "file=@receipt.jpg" \ -F 'settings={"tryHarder": true}' diff --git a/apps/docs/tools/image/beautify.md b/apps/docs/tools/image/beautify.md index 59cf8b97..62125b04 100644 --- a/apps/docs/tools/image/beautify.md +++ b/apps/docs/tools/image/beautify.md @@ -4,7 +4,7 @@ Add gradient backgrounds, device frames, shadows, watermarks, and social media s ## API Endpoint -`POST /api/v1/tools/beautify` +`POST /api/v1/tools/image/beautify` ## Parameters @@ -33,7 +33,7 @@ Add gradient backgrounds, device frames, shadows, watermarks, and social media s ## Example Request ```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 '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 ```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 "backgroundImage=@bg-texture.jpg" \ -F 'settings={"backgroundType":"image","padding":80,"borderRadius":16,"shadowPreset":"dramatic"}' diff --git a/apps/docs/tools/image/blur-background.md b/apps/docs/tools/image/blur-background.md index a95e48cb..f6b24e62 100644 --- a/apps/docs/tools/image/blur-background.md +++ b/apps/docs/tools/image/blur-background.md @@ -8,7 +8,7 @@ Blur the background of an image while keeping the subject sharp. The AI model is ## 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. @@ -23,7 +23,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@photo.jpg" \ -F 'settings={"intensity": 75, "feather": 3}' diff --git a/apps/docs/tools/image/blur-faces.md b/apps/docs/tools/image/blur-faces.md index 0cf833be..82dca99f 100644 --- a/apps/docs/tools/image/blur-faces.md +++ b/apps/docs/tools/image/blur-faces.md @@ -4,7 +4,7 @@ Auto-detect and blur faces in images using AI-powered face detection (MediaPipe) ## 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) @@ -21,7 +21,7 @@ Auto-detect and blur faces in images using AI-powered face detection (MediaPipe) ## Example Request ```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 'settings={"blurRadius":40,"sensitivity":0.3}' ``` diff --git a/apps/docs/tools/image/border.md b/apps/docs/tools/image/border.md index 75d5d218..80d0d104 100644 --- a/apps/docs/tools/image/border.md +++ b/apps/docs/tools/image/border.md @@ -4,7 +4,7 @@ Add borders, padding, rounded corners, and drop shadows to images. The tool appl ## API Endpoint -`POST /api/v1/tools/border` +`POST /api/v1/tools/image/border` ## Parameters @@ -25,7 +25,7 @@ Add borders, padding, rounded corners, and drop shadows to images. The tool appl ## Example Request ```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 'settings={"borderWidth":20,"borderColor":"#333333","cornerRadius":16,"shadow":true,"shadowBlur":25,"shadowOpacity":50}' ``` diff --git a/apps/docs/tools/image/bulk-rename.md b/apps/docs/tools/image/bulk-rename.md index 09917bfa..0d0d6504 100644 --- a/apps/docs/tools/image/bulk-rename.md +++ b/apps/docs/tools/image/bulk-rename.md @@ -8,7 +8,7 @@ Rename multiple files using a pattern template with placeholders for index, padd ## 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. @@ -32,7 +32,7 @@ The original file extension is always preserved. ## Example Request ```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" \ -F "file=@photo1.jpg" \ -F "file=@photo2.jpg" \ @@ -45,7 +45,7 @@ This produces: `vacation-1.jpg`, `vacation-2.jpg`, `vacation-3.jpg` Using original filename: ```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" \ -F "file=@IMG_001.jpg" \ -F "file=@IMG_002.jpg" \ diff --git a/apps/docs/tools/image/circle-crop.md b/apps/docs/tools/image/circle-crop.md index 39c71478..8e98d822 100644 --- a/apps/docs/tools/image/circle-crop.md +++ b/apps/docs/tools/image/circle-crop.md @@ -8,7 +8,7 @@ Crop an image to a centered circle with transparent corners. Supports adjustable ## 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. @@ -27,7 +27,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@photo.jpg" \ -F 'settings={"zoom": 1.2, "borderWidth": 4, "borderColor": "#333333"}' diff --git a/apps/docs/tools/image/collage.md b/apps/docs/tools/image/collage.md index 42ae9060..e07596ec 100644 --- a/apps/docs/tools/image/collage.md +++ b/apps/docs/tools/image/collage.md @@ -4,7 +4,7 @@ Combine multiple images into beautiful grid collages with 25+ templates. Support ## API Endpoint -`POST /api/v1/tools/collage` +`POST /api/v1/tools/image/collage` ## Parameters @@ -55,7 +55,7 @@ Combine multiple images into beautiful grid collages with 25+ templates. Support ## Example Request ```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=@photo2.jpg" \ -F "file=@photo3.jpg" \ diff --git a/apps/docs/tools/image/color-blindness.md b/apps/docs/tools/image/color-blindness.md index 9483203d..f58e97a8 100644 --- a/apps/docs/tools/image/color-blindness.md +++ b/apps/docs/tools/image/color-blindness.md @@ -8,7 +8,7 @@ Simulate color vision deficiency (CVD) to preview how images appear to people wi ## 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. @@ -34,7 +34,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@design.png" \ -F 'settings={"simulationType": "deuteranopia"}' diff --git a/apps/docs/tools/image/color-palette.md b/apps/docs/tools/image/color-palette.md index dfeef4f0..43a4d746 100644 --- a/apps/docs/tools/image/color-palette.md +++ b/apps/docs/tools/image/color-palette.md @@ -8,7 +8,7 @@ Extract the dominant colors from an image and return them as hex color values. U ## 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. @@ -22,7 +22,7 @@ Accepts multipart form data with an image file and an optional JSON `settings` f ## Example Request ```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" \ -F "file=@photo.jpg" \ -F 'settings={"count": 6, "format": "hex"}' diff --git a/apps/docs/tools/image/colorize.md b/apps/docs/tools/image/colorize.md index ae900b00..2d66816b 100644 --- a/apps/docs/tools/image/colorize.md +++ b/apps/docs/tools/image/colorize.md @@ -4,7 +4,7 @@ Convert black-and-white or grayscale photos to full color using AI (DDColor mode ## 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) @@ -21,7 +21,7 @@ Convert black-and-white or grayscale photos to full color using AI (DDColor mode ## Example Request ```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 'settings={"intensity":0.9,"model":"auto"}' ``` diff --git a/apps/docs/tools/image/compare.md b/apps/docs/tools/image/compare.md index 8aae29cb..e5080d02 100644 --- a/apps/docs/tools/image/compare.md +++ b/apps/docs/tools/image/compare.md @@ -8,7 +8,7 @@ Upload two images to compute a pixel-level difference map and a numerical simila ## 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. @@ -24,7 +24,7 @@ This tool has no configurable parameters. Upload exactly two image files. ## Example Request ```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" \ -F "file=@original.jpg" \ -F "file=@modified.jpg" diff --git a/apps/docs/tools/image/compose.md b/apps/docs/tools/image/compose.md index fb29d837..3046d855 100644 --- a/apps/docs/tools/image/compose.md +++ b/apps/docs/tools/image/compose.md @@ -8,7 +8,7 @@ Layer an overlay image on top of a base image with configurable position, opacit ## 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. @@ -46,7 +46,7 @@ Accepts multipart form data with **two** image files and a JSON `settings` field ## Example Request ```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" \ -F "file=@background.jpg" \ -F "overlay=@graphic.png" \ @@ -56,7 +56,7 @@ curl -X POST http://localhost:1349/api/v1/tools/compose \ Using multiply blend mode: ```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" \ -F "file=@photo.jpg" \ -F "overlay=@texture.jpg" \ diff --git a/apps/docs/tools/image/compress.md b/apps/docs/tools/image/compress.md index 3fe23498..864c350f 100644 --- a/apps/docs/tools/image/compress.md +++ b/apps/docs/tools/image/compress.md @@ -8,7 +8,7 @@ Reduce image file size by specifying a quality level or a target file size in ki ## 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. @@ -25,7 +25,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. Compress to quality 60: ```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" \ -F "file=@photo.jpg" \ -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: ```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" \ -F "file=@photo.jpg" \ -F 'settings={"mode": "targetSize", "targetSizeKb": 200}' diff --git a/apps/docs/tools/image/content-aware-resize.md b/apps/docs/tools/image/content-aware-resize.md index 55b9bd28..ae39056f 100644 --- a/apps/docs/tools/image/content-aware-resize.md +++ b/apps/docs/tools/image/content-aware-resize.md @@ -4,7 +4,7 @@ Seam carving resize that intelligently removes or adds pixels along paths of lea ## API Endpoint -`POST /api/v1/tools/content-aware-resize` +`POST /api/v1/tools/image/content-aware-resize` **Processing:** Synchronous (returns result directly) @@ -27,7 +27,7 @@ At least one of `width`, `height`, or `square` must be specified. ## Example Request ```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 'settings={"width":800,"protectFaces":true}' ``` diff --git a/apps/docs/tools/image/convert.md b/apps/docs/tools/image/convert.md index 9495f9ce..fa155f1f 100644 --- a/apps/docs/tools/image/convert.md +++ b/apps/docs/tools/image/convert.md @@ -8,7 +8,7 @@ Convert images between formats. Supports common web formats as well as specializ ## 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. @@ -45,7 +45,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. Convert to WebP: ```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" \ -F "file=@photo.jpg" \ -F 'settings={"format": "webp", "quality": 85}' @@ -54,7 +54,7 @@ curl -X POST http://localhost:1349/api/v1/tools/convert \ Convert to PNG (lossless): ```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" \ -F "file=@photo.jpg" \ -F 'settings={"format": "png"}' diff --git a/apps/docs/tools/image/crop.md b/apps/docs/tools/image/crop.md index 438dd84d..e4855349 100644 --- a/apps/docs/tools/image/crop.md +++ b/apps/docs/tools/image/crop.md @@ -8,7 +8,7 @@ Crop images by defining a rectangular region using position and size. Supports b ## 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. @@ -25,7 +25,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@photo.jpg" \ -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: ```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" \ -F "file=@photo.jpg" \ -F 'settings={"left": 10, "top": 10, "width": 80, "height": 80, "unit": "percent"}' diff --git a/apps/docs/tools/image/duotone.md b/apps/docs/tools/image/duotone.md index e499f4b6..f003f157 100644 --- a/apps/docs/tools/image/duotone.md +++ b/apps/docs/tools/image/duotone.md @@ -8,7 +8,7 @@ Apply a two-color duotone effect to an image. The image is converted to grayscal ## 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. @@ -23,7 +23,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@photo.jpg" \ -F 'settings={"shadow": "#0f172a", "highlight": "#f97316", "intensity": 80}' diff --git a/apps/docs/tools/image/edit-metadata.md b/apps/docs/tools/image/edit-metadata.md index 443e5fbd..da5084b1 100644 --- a/apps/docs/tools/image/edit-metadata.md +++ b/apps/docs/tools/image/edit-metadata.md @@ -10,13 +10,13 @@ Edit image metadata fields including EXIF, IPTC, GPS coordinates, dates, and key ### 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. ### 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. @@ -52,7 +52,7 @@ Returns the full metadata from the image via ExifTool as JSON. Does not modify t Set author and copyright: ```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" \ -F "file=@photo.jpg" \ -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: ```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" \ -F "file=@photo.jpg" \ -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: ```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" \ -F "file=@photo.jpg" \ -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: ```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" \ -F "file=@photo.jpg" ``` diff --git a/apps/docs/tools/image/enhance-faces.md b/apps/docs/tools/image/enhance-faces.md index 6f446135..027fc835 100644 --- a/apps/docs/tools/image/enhance-faces.md +++ b/apps/docs/tools/image/enhance-faces.md @@ -4,7 +4,7 @@ Restore and enhance faces in images using AI models (GFPGAN/CodeFormer). ## 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) @@ -23,7 +23,7 @@ Restore and enhance faces in images using AI models (GFPGAN/CodeFormer). ## Example Request ```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 'settings={"model":"codeformer","strength":0.7,"onlyCenterFace":false}' ``` diff --git a/apps/docs/tools/image/erase-object.md b/apps/docs/tools/image/erase-object.md index 4b9cad7d..4aeb9621 100644 --- a/apps/docs/tools/image/erase-object.md +++ b/apps/docs/tools/image/erase-object.md @@ -4,7 +4,7 @@ Remove unwanted objects from images using AI inpainting (LaMa model). Accepts an ## 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) @@ -22,7 +22,7 @@ Remove unwanted objects from images using AI inpainting (LaMa model). Accepts an ## Example Request ```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 "mask=@mask.png" \ -F "format=png" \ diff --git a/apps/docs/tools/image/favicon.md b/apps/docs/tools/image/favicon.md index c228ee5b..6ba10bc5 100644 --- a/apps/docs/tools/image/favicon.md +++ b/apps/docs/tools/image/favicon.md @@ -8,7 +8,7 @@ Generate a complete set of favicon and app icon files from a source image. Produ ## 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. @@ -43,7 +43,7 @@ For each input image, the following files are produced: Single source image with rounded corners and padding: ```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" \ -F "file=@logo.png" \ -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): ```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" \ -F "file=@logo-light.png" \ -F "file=@logo-dark.png" diff --git a/apps/docs/tools/image/find-duplicates.md b/apps/docs/tools/image/find-duplicates.md index 650d1fd7..384d7944 100644 --- a/apps/docs/tools/image/find-duplicates.md +++ b/apps/docs/tools/image/find-duplicates.md @@ -8,7 +8,7 @@ Upload multiple images to detect duplicates and near-duplicates using perceptual ## 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. @@ -25,7 +25,7 @@ Upload at least 2 image files in the multipart request (all using the `file` fie ## Example Request ```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" \ -F "file=@photo1.jpg" \ -F "file=@photo2.jpg" \ diff --git a/apps/docs/tools/image/gif-tools.md b/apps/docs/tools/image/gif-tools.md index bd5655fd..0020fc04 100644 --- a/apps/docs/tools/image/gif-tools.md +++ b/apps/docs/tools/image/gif-tools.md @@ -4,7 +4,7 @@ Resize, optimize, change speed, reverse, extract frames, and rotate animated GIF ## API Endpoint -`POST /api/v1/tools/gif-tools` +`POST /api/v1/tools/image/gif-tools` ## Parameters @@ -60,7 +60,7 @@ Resize, optimize, change speed, reverse, extract frames, and rotate animated GIF ### Resize ```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 'settings={"mode":"resize","percentage":50}' ``` @@ -68,7 +68,7 @@ curl -X POST http://localhost:1349/api/v1/tools/gif-tools \ ### Optimize ```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 'settings={"mode":"optimize","colors":128,"effort":9}' ``` @@ -76,7 +76,7 @@ curl -X POST http://localhost:1349/api/v1/tools/gif-tools \ ### Speed Up ```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 'settings={"mode":"speed","speedFactor":2.0}' ``` @@ -84,7 +84,7 @@ curl -X POST http://localhost:1349/api/v1/tools/gif-tools \ ### Extract Single Frame ```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 '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 -`POST /api/v1/tools/gif-tools/info` +`POST /api/v1/tools/image/gif-tools/info` Returns metadata about an animated GIF without processing it. ### Info Request ```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" ``` diff --git a/apps/docs/tools/image/gif-webp.md b/apps/docs/tools/image/gif-webp.md index 1cec40e6..1cebe744 100644 --- a/apps/docs/tools/image/gif-webp.md +++ b/apps/docs/tools/image/gif-webp.md @@ -8,7 +8,7 @@ Convert animated GIF files to WebP and vice versa, preserving all frames and ani ## 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. @@ -23,7 +23,7 @@ Accepts multipart form data with a GIF or WebP file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@animation.gif" \ -F 'settings={"quality": 85, "resizePercent": 50}' diff --git a/apps/docs/tools/image/histogram.md b/apps/docs/tools/image/histogram.md index 6d3423fc..9dbc8b3c 100644 --- a/apps/docs/tools/image/histogram.md +++ b/apps/docs/tools/image/histogram.md @@ -8,7 +8,7 @@ Generate an RGB histogram chart from an image. Returns a PNG histogram image alo ## 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. @@ -21,7 +21,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@photo.jpg" \ -F 'settings={"scale": "linear"}' diff --git a/apps/docs/tools/image/html-to-image.md b/apps/docs/tools/image/html-to-image.md index d328d315..92342f04 100644 --- a/apps/docs/tools/image/html-to-image.md +++ b/apps/docs/tools/image/html-to-image.md @@ -8,7 +8,7 @@ Capture a webpage URL or raw HTML content as a screenshot image. Supports device ## 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. @@ -41,7 +41,7 @@ Either `url` or `html` must be provided, but not both. Capture a webpage: ```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 "Content-Type: application/json" \ -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: ```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 "Content-Type: application/json" \ -d '{"html": "

Hello

", "format": "png"}' diff --git a/apps/docs/tools/image/image-enhancement.md b/apps/docs/tools/image/image-enhancement.md index ce5da8ed..afb1e97b 100644 --- a/apps/docs/tools/image/image-enhancement.md +++ b/apps/docs/tools/image/image-enhancement.md @@ -4,7 +4,7 @@ One-click auto-improve with smart analysis. Analyzes the image and applies expos ## API Endpoint -`POST /api/v1/tools/image-enhancement` +`POST /api/v1/tools/image/image-enhancement` **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 ```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 '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 -`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. @@ -65,7 +65,7 @@ Analyzes an image and returns correction recommendations without applying them. ### Example Request ```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" ``` diff --git a/apps/docs/tools/image/image-pad.md b/apps/docs/tools/image/image-pad.md index d1ba8225..ff051be4 100644 --- a/apps/docs/tools/image/image-pad.md +++ b/apps/docs/tools/image/image-pad.md @@ -8,7 +8,7 @@ Pad an image to a target aspect ratio by adding a solid color, transparent, or b ## 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. @@ -26,7 +26,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@photo.jpg" \ -F 'settings={"target": "16:9", "background": "blur", "padding": 5}' diff --git a/apps/docs/tools/image/image-to-base64.md b/apps/docs/tools/image/image-to-base64.md index f358cb7e..a74c4f96 100644 --- a/apps/docs/tools/image/image-to-base64.md +++ b/apps/docs/tools/image/image-to-base64.md @@ -8,7 +8,7 @@ Convert one or more images to base64-encoded strings and data URIs. Supports opt ## 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. @@ -24,7 +24,7 @@ Accepts multipart form data with one or more image files and an optional JSON `s ## Example Request ```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" \ -F "file=@icon.png" \ -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: ```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" \ -F "file=@icon1.png" \ -F "file=@icon2.png" \ diff --git a/apps/docs/tools/image/image-to-pdf.md b/apps/docs/tools/image/image-to-pdf.md index 2c7eea98..e7a536e7 100644 --- a/apps/docs/tools/image/image-to-pdf.md +++ b/apps/docs/tools/image/image-to-pdf.md @@ -8,7 +8,7 @@ Combine one or more images into a PDF document. Supports multiple page sizes, or ## 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. @@ -36,7 +36,7 @@ Minimum target size is 50 KB. Basic multi-image PDF: ```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" \ -F "file=@page1.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: ```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" \ -F "file=@scan1.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: ```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" \ -F "file=@photo1.jpg" \ -F "file=@photo2.jpg" \ diff --git a/apps/docs/tools/image/info.md b/apps/docs/tools/image/info.md index 2b2e56f3..0c6d0997 100644 --- a/apps/docs/tools/image/info.md +++ b/apps/docs/tools/image/info.md @@ -8,7 +8,7 @@ Read-only analysis tool that returns comprehensive image metadata including dime ## 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. @@ -23,7 +23,7 @@ This tool has no configurable parameters. Simply upload the image file. ## Example Request ```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" \ -F "file=@photo.jpg" ``` diff --git a/apps/docs/tools/image/lqip-placeholder.md b/apps/docs/tools/image/lqip-placeholder.md index 64e35dcb..a1c62200 100644 --- a/apps/docs/tools/image/lqip-placeholder.md +++ b/apps/docs/tools/image/lqip-placeholder.md @@ -8,7 +8,7 @@ Generate a tiny low-quality image placeholder (LQIP) from a source image. Return ## 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. @@ -25,7 +25,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@photo.jpg" \ -F 'settings={"width": 20, "strategy": "blur", "format": "webp"}' diff --git a/apps/docs/tools/image/meme-generator.md b/apps/docs/tools/image/meme-generator.md index 38cd6fb7..ff696d2d 100644 --- a/apps/docs/tools/image/meme-generator.md +++ b/apps/docs/tools/image/meme-generator.md @@ -8,7 +8,7 @@ Create memes using built-in templates or custom images. Add text with classic me ## API Endpoint -`POST /api/v1/tools/meme-generator` +`POST /api/v1/tools/image/meme-generator` Accepts either: - **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: ```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" \ -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}' @@ -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): ```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 "Content-Type: application/json" \ -d '{"templateId": "drake", "textBoxes": [{"id": "top", "text": "Manual testing"}, {"id": "bottom", "text": "Automated tests"}]}' diff --git a/apps/docs/tools/image/noise-removal.md b/apps/docs/tools/image/noise-removal.md index 7a9e8da0..dd4b2638 100644 --- a/apps/docs/tools/image/noise-removal.md +++ b/apps/docs/tools/image/noise-removal.md @@ -8,7 +8,7 @@ AI-powered noise and grain removal with multi-tier quality options, using the Py ## 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) @@ -29,7 +29,7 @@ AI-powered noise and grain removal with multi-tier quality options, using the Py ## Example Request ```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 'settings={"tier":"quality","strength":60,"detailPreservation":70,"colorNoise":40}' ``` diff --git a/apps/docs/tools/image/ocr.md b/apps/docs/tools/image/ocr.md index 3196f6cd..d9f36276 100644 --- a/apps/docs/tools/image/ocr.md +++ b/apps/docs/tools/image/ocr.md @@ -8,7 +8,7 @@ Extract text from images using AI-powered optical character recognition. Support ## 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) @@ -27,7 +27,7 @@ Extract text from images using AI-powered optical character recognition. Support ## Example Request ```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 'settings={"quality":"best","language":"en","enhance":true}' ``` diff --git a/apps/docs/tools/image/optimize-for-web.md b/apps/docs/tools/image/optimize-for-web.md index 88e5160c..a513663d 100644 --- a/apps/docs/tools/image/optimize-for-web.md +++ b/apps/docs/tools/image/optimize-for-web.md @@ -8,11 +8,11 @@ Optimize images for web delivery in a single step. Combines format conversion, q ## 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. -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 @@ -28,7 +28,7 @@ A live preview endpoint is also available at `POST /api/v1/tools/optimize-for-we ## Example Request ```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" \ -F "file=@photo.jpg" \ -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: ```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" \ -F "file=@photo.jpg" \ -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 -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-Processed-Size` - Processed file size in bytes diff --git a/apps/docs/tools/image/passport-photo.md b/apps/docs/tools/image/passport-photo.md index ae6372d0..06c5ac06 100644 --- a/apps/docs/tools/image/passport-photo.md +++ b/apps/docs/tools/image/passport-photo.md @@ -16,7 +16,7 @@ This tool uses a two-phase flow with separate endpoints for analysis and generat ### 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. @@ -30,7 +30,7 @@ Detects face landmarks and removes the background. Returns landmark data and a p #### Example Request ```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" ``` @@ -75,7 +75,7 @@ If `clientJobId` is provided, progress is streamed (0-30% for face detection, 30 ### 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). @@ -103,7 +103,7 @@ Crops, resizes, and optionally tiles the photo onto a print sheet. Uses cached i #### Example Request ```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" \ -d '{ "jobId": "a1b2c3d4-...", @@ -149,13 +149,13 @@ curl -X POST http://localhost:1349/api/v1/tools/passport-photo/generate \ ### Base Route -`POST /api/v1/tools/passport-photo` +`POST /api/v1/tools/image/passport-photo` Returns guidance to use the correct sub-endpoint. ```json { - "error": "Use /api/v1/tools/passport-photo/analyze or /generate" + "error": "Use /api/v1/tools/image/passport-photo/analyze or /generate" } ``` diff --git a/apps/docs/tools/image/pixelate.md b/apps/docs/tools/image/pixelate.md index 6514b192..5bedbc2e 100644 --- a/apps/docs/tools/image/pixelate.md +++ b/apps/docs/tools/image/pixelate.md @@ -8,7 +8,7 @@ Apply a pixelation effect to an entire image or a specific rectangular region. U ## 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. @@ -33,7 +33,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. Pixelate the full image: ```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" \ -F "file=@photo.jpg" \ -F 'settings={"blockSize": 20}' @@ -42,7 +42,7 @@ curl -X POST http://localhost:1349/api/v1/tools/pixelate \ Pixelate a specific region: ```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" \ -F "file=@photo.jpg" \ -F 'settings={"blockSize": 16, "region": {"left": 100, "top": 50, "width": 200, "height": 150}}' diff --git a/apps/docs/tools/image/qr-generate.md b/apps/docs/tools/image/qr-generate.md index da5997aa..91f12502 100644 --- a/apps/docs/tools/image/qr-generate.md +++ b/apps/docs/tools/image/qr-generate.md @@ -8,7 +8,7 @@ Generate QR code images from text or URLs with configurable size, error correcti ## 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. @@ -35,7 +35,7 @@ Accepts a **JSON body** (not multipart). No file upload is needed. ## Example Request ```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 "Content-Type: application/json" \ -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: ```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 "Content-Type: application/json" \ -d '{"text": "Hello World", "size": 300, "foreground": "#1a365d", "background": "#f7fafc"}' diff --git a/apps/docs/tools/image/red-eye-removal.md b/apps/docs/tools/image/red-eye-removal.md index f65452d6..78370037 100644 --- a/apps/docs/tools/image/red-eye-removal.md +++ b/apps/docs/tools/image/red-eye-removal.md @@ -8,7 +8,7 @@ AI-powered detection and correction of red eye caused by camera flash. ## 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) @@ -27,7 +27,7 @@ AI-powered detection and correction of red eye caused by camera flash. ## Example Request ```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 'settings={"sensitivity":60,"strength":80}' ``` diff --git a/apps/docs/tools/image/remove-background.md b/apps/docs/tools/image/remove-background.md index 131a43cc..3b88c037 100644 --- a/apps/docs/tools/image/remove-background.md +++ b/apps/docs/tools/image/remove-background.md @@ -8,7 +8,7 @@ AI-powered background removal with optional effects (blur, shadow, gradient, cus ## 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) @@ -36,7 +36,7 @@ AI-powered background removal with optional effects (blur, shadow, gradient, cus ## Example Request ```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 'settings={"backgroundType":"transparent","edgeRefine":2,"outputFormat":"png"}' ``` @@ -80,7 +80,7 @@ data: {"phase":"processing","stage":"Removing background...","percent":50} ## 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. @@ -111,7 +111,7 @@ Re-applies background effects without re-running the AI model. Uses cached mask ### Example Request ```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"}' ``` diff --git a/apps/docs/tools/image/replace-color.md b/apps/docs/tools/image/replace-color.md index 1aed3c99..769c1959 100644 --- a/apps/docs/tools/image/replace-color.md +++ b/apps/docs/tools/image/replace-color.md @@ -8,7 +8,7 @@ Replace pixels matching a source color with a target color, or make them transpa ## 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. @@ -24,7 +24,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@photo.jpg" \ -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: ```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" \ -F "file=@greenscreen.png" \ -F 'settings={"sourceColor": "#00FF00", "makeTransparent": true, "tolerance": 50}' diff --git a/apps/docs/tools/image/resize.md b/apps/docs/tools/image/resize.md index b18e6922..cf3ede86 100644 --- a/apps/docs/tools/image/resize.md +++ b/apps/docs/tools/image/resize.md @@ -8,7 +8,7 @@ Resize images by specifying exact pixel dimensions, a percentage scale factor, o ## 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. @@ -35,7 +35,7 @@ At least one of `width`, `height`, or `percentage` must be provided. ## Example Request ```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" \ -F "file=@photo.jpg" \ -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: ```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" \ -F "file=@photo.jpg" \ -F 'settings={"percentage": 50}' diff --git a/apps/docs/tools/image/restore-photo.md b/apps/docs/tools/image/restore-photo.md index 6e526b7a..54d9d4e2 100644 --- a/apps/docs/tools/image/restore-photo.md +++ b/apps/docs/tools/image/restore-photo.md @@ -4,7 +4,7 @@ Fix scratches, tears, and damage on old photos using a multi-step AI pipeline. C ## 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) @@ -26,7 +26,7 @@ Fix scratches, tears, and damage on old photos using a multi-step AI pipeline. C ## Example Request ```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 'settings={"scratchRemoval":true,"faceEnhancement":true,"fidelity":0.6,"colorize":true}' ``` diff --git a/apps/docs/tools/image/rotate.md b/apps/docs/tools/image/rotate.md index d24bf055..07d847de 100644 --- a/apps/docs/tools/image/rotate.md +++ b/apps/docs/tools/image/rotate.md @@ -8,7 +8,7 @@ Rotate images by an arbitrary angle and/or flip them horizontally or vertically. ## 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. @@ -25,7 +25,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. Rotate 90 degrees clockwise: ```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" \ -F "file=@photo.jpg" \ -F 'settings={"angle": 90}' @@ -34,7 +34,7 @@ curl -X POST http://localhost:1349/api/v1/tools/rotate \ Flip horizontally: ```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" \ -F "file=@photo.jpg" \ -F 'settings={"horizontal": true}' @@ -43,7 +43,7 @@ curl -X POST http://localhost:1349/api/v1/tools/rotate \ Rotate and flip together: ```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" \ -F "file=@photo.jpg" \ -F 'settings={"angle": 45, "vertical": true}' diff --git a/apps/docs/tools/image/sharpening.md b/apps/docs/tools/image/sharpening.md index f17d273d..a75b7b10 100644 --- a/apps/docs/tools/image/sharpening.md +++ b/apps/docs/tools/image/sharpening.md @@ -8,7 +8,7 @@ Advanced sharpening tool with three methods: adaptive (smart edge-aware), unshar ## 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. @@ -33,7 +33,7 @@ Accepts multipart form data with an image file and a JSON `settings` field. ## Example Request ```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" \ -F "file=@photo.jpg" \ -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: ```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" \ -F "file=@photo.jpg" \ -F 'settings={"method": "unsharp-mask", "amount": 150, "radius": 1.5, "threshold": 10}' diff --git a/apps/docs/tools/image/smart-crop.md b/apps/docs/tools/image/smart-crop.md index 04dcc8ca..05d23313 100644 --- a/apps/docs/tools/image/smart-crop.md +++ b/apps/docs/tools/image/smart-crop.md @@ -4,7 +4,7 @@ Smart subject-aware, face-aware, or trim-based cropping. Uses Sharp's attention/ ## 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) @@ -31,7 +31,7 @@ Smart subject-aware, face-aware, or trim-based cropping. Uses Sharp's attention/ ## Example Request ```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 'settings={"mode":"face","width":1080,"height":1080,"facePreset":"head-shoulders"}' ``` diff --git a/apps/docs/tools/image/split.md b/apps/docs/tools/image/split.md index 94aa5047..68b60ebf 100644 --- a/apps/docs/tools/image/split.md +++ b/apps/docs/tools/image/split.md @@ -4,7 +4,7 @@ Split a single image into grid tiles by column/row count or by specific pixel di ## API Endpoint -`POST /api/v1/tools/split` +`POST /api/v1/tools/image/split` ## Parameters @@ -20,7 +20,7 @@ Split a single image into grid tiles by column/row count or by specific pixel di ## Example Request ```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 'settings={"columns":3,"rows":3,"outputFormat":"png"}' \ --output split-tiles.zip diff --git a/apps/docs/tools/image/sprite-sheet.md b/apps/docs/tools/image/sprite-sheet.md index cbbbb4b5..79cf89b4 100644 --- a/apps/docs/tools/image/sprite-sheet.md +++ b/apps/docs/tools/image/sprite-sheet.md @@ -8,7 +8,7 @@ Combine multiple images into a single sprite sheet grid. Each image is resized t ## 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. @@ -25,7 +25,7 @@ Accepts multipart form data with two or more image files and a JSON `settings` f ## Example Request ```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" \ -F "file=@frame1.png" \ -F "file=@frame2.png" \ diff --git a/apps/docs/tools/image/stitch.md b/apps/docs/tools/image/stitch.md index 464f5e68..96bb77b4 100644 --- a/apps/docs/tools/image/stitch.md +++ b/apps/docs/tools/image/stitch.md @@ -4,7 +4,7 @@ Join multiple images side by side, stacked vertically, or arranged in a grid. Su ## API Endpoint -`POST /api/v1/tools/stitch` +`POST /api/v1/tools/image/stitch` ## Parameters @@ -24,7 +24,7 @@ Join multiple images side by side, stacked vertically, or arranged in a grid. Su ## Example Request ```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=@image2.png" \ -F "file=@image3.png" \ diff --git a/apps/docs/tools/image/strip-metadata.md b/apps/docs/tools/image/strip-metadata.md index a473e234..f0d34693 100644 --- a/apps/docs/tools/image/strip-metadata.md +++ b/apps/docs/tools/image/strip-metadata.md @@ -10,13 +10,13 @@ Remove EXIF, GPS, ICC color profiles, and XMP metadata from images. Useful for p ### 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. ### 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. @@ -37,7 +37,7 @@ When `stripAll` is `true`, it overrides the individual flags and removes everyth Strip all metadata: ```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" \ -F "file=@photo.jpg" \ -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): ```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" \ -F "file=@photo.jpg" \ -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: ```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" \ -F "file=@photo.jpg" ``` diff --git a/apps/docs/tools/image/svg-to-raster.md b/apps/docs/tools/image/svg-to-raster.md index de218408..9858f624 100644 --- a/apps/docs/tools/image/svg-to-raster.md +++ b/apps/docs/tools/image/svg-to-raster.md @@ -4,7 +4,7 @@ Convert SVG files to raster image formats (PNG, JPEG, WebP, AVIF, TIFF, GIF, HEI ## API Endpoint -`POST /api/v1/tools/svg-to-raster` +`POST /api/v1/tools/image/svg-to-raster` ## Parameters @@ -20,7 +20,7 @@ Convert SVG files to raster image formats (PNG, JPEG, WebP, AVIF, TIFF, GIF, HEI ## Example Request ```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 '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 -`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. @@ -52,7 +52,7 @@ Convert multiple SVG files in one request. Returns a ZIP archive. ### Batch Example Request ```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=@icon2.svg" \ -F "file=@icon3.svg" \ diff --git a/apps/docs/tools/image/text-overlay.md b/apps/docs/tools/image/text-overlay.md index dbc97af4..8582cef0 100644 --- a/apps/docs/tools/image/text-overlay.md +++ b/apps/docs/tools/image/text-overlay.md @@ -8,7 +8,7 @@ Add styled text to images with optional drop shadow and semi-transparent backgro ## API Endpoint -`POST /api/v1/tools/text-overlay` +`POST /api/v1/tools/image/text-overlay` 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 ```bash -curl -X POST http://localhost:1349/api/v1/tools/text-overlay \ +curl -X POST http://localhost:1349/api/v1/tools/image/text-overlay \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@photo.jpg" \ -F 'settings={"text": "Hello World", "fontSize": 64, "color": "#FFFFFF", "position": "bottom", "shadow": true}' @@ -36,7 +36,7 @@ curl -X POST http://localhost:1349/api/v1/tools/text-overlay \ With a background box: ```bash -curl -X POST http://localhost:1349/api/v1/tools/text-overlay \ +curl -X POST http://localhost:1349/api/v1/tools/image/text-overlay \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@photo.jpg" \ -F 'settings={"text": "Caption", "fontSize": 36, "position": "bottom", "backgroundBox": true, "backgroundColor": "#000000"}' diff --git a/apps/docs/tools/image/transparency-fixer.md b/apps/docs/tools/image/transparency-fixer.md index e839e8b1..2188cc51 100644 --- a/apps/docs/tools/image/transparency-fixer.md +++ b/apps/docs/tools/image/transparency-fixer.md @@ -4,7 +4,7 @@ Fix fake transparent PNGs in one click. Uses AI matting (BiRefNet HR Matting mod ## API Endpoint -`POST /api/v1/tools/transparency-fixer` +`POST /api/v1/tools/image/transparency-fixer` **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) @@ -22,7 +22,7 @@ Fix fake transparent PNGs in one click. Uses AI matting (BiRefNet HR Matting mod ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/transparency-fixer \ +curl -X POST http://localhost:1349/api/v1/tools/image/transparency-fixer \ -F "file=@fake-transparent.png" \ -F 'settings={"defringe":40,"outputFormat":"png"}' ``` diff --git a/apps/docs/tools/image/upscale.md b/apps/docs/tools/image/upscale.md index d0ad84a2..4359c2ca 100644 --- a/apps/docs/tools/image/upscale.md +++ b/apps/docs/tools/image/upscale.md @@ -4,7 +4,7 @@ AI super-resolution enhancement using Real-ESRGAN. Upscales images 2x-4x while p ## API Endpoint -`POST /api/v1/tools/upscale` +`POST /api/v1/tools/image/upscale` **Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE) @@ -25,7 +25,7 @@ AI super-resolution enhancement using Real-ESRGAN. Upscales images 2x-4x while p ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/upscale \ +curl -X POST http://localhost:1349/api/v1/tools/image/upscale \ -F "file=@photo.jpg" \ -F 'settings={"scale":4,"model":"auto","faceEnhance":true,"format":"png"}' ``` diff --git a/apps/docs/tools/image/vectorize.md b/apps/docs/tools/image/vectorize.md index fb6e5600..2c2222b8 100644 --- a/apps/docs/tools/image/vectorize.md +++ b/apps/docs/tools/image/vectorize.md @@ -4,7 +4,7 @@ Vectorize raster images into SVG using tracing algorithms. Supports black-and-wh ## API Endpoint -`POST /api/v1/tools/vectorize` +`POST /api/v1/tools/image/vectorize` ## Parameters @@ -22,7 +22,7 @@ Vectorize raster images into SVG using tracing algorithms. Supports black-and-wh ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/vectorize \ +curl -X POST http://localhost:1349/api/v1/tools/image/vectorize \ -F "file=@logo.png" \ -F 'settings={"colorMode":"bw","threshold":128,"filterSpeckle":4,"pathMode":"spline"}' ``` @@ -30,7 +30,7 @@ curl -X POST http://localhost:1349/api/v1/tools/vectorize \ ### Color Vectorization ```bash -curl -X POST http://localhost:1349/api/v1/tools/vectorize \ +curl -X POST http://localhost:1349/api/v1/tools/image/vectorize \ -F "file=@illustration.png" \ -F 'settings={"colorMode":"color","colorPrecision":8,"layerDifference":6,"filterSpeckle":4}' ``` diff --git a/apps/docs/tools/image/vignette.md b/apps/docs/tools/image/vignette.md index e6576c61..7ae714d9 100644 --- a/apps/docs/tools/image/vignette.md +++ b/apps/docs/tools/image/vignette.md @@ -8,7 +8,7 @@ Add a vignette effect that darkens or tints the edges of an image. Supports adju ## API Endpoint -`POST /api/v1/tools/vignette` +`POST /api/v1/tools/image/vignette` 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 ```bash -curl -X POST http://localhost:1349/api/v1/tools/vignette \ +curl -X POST http://localhost:1349/api/v1/tools/image/vignette \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@photo.jpg" \ -F 'settings={"strength": 0.7, "radius": 60, "softness": 70}' diff --git a/apps/docs/tools/image/watermark-image.md b/apps/docs/tools/image/watermark-image.md index e7355488..a8c44b4f 100644 --- a/apps/docs/tools/image/watermark-image.md +++ b/apps/docs/tools/image/watermark-image.md @@ -8,7 +8,7 @@ Overlay a logo or secondary image as a watermark on a base image. The watermark ## API Endpoint -`POST /api/v1/tools/watermark-image` +`POST /api/v1/tools/image/watermark-image` Accepts multipart form data with **two** image files and a JSON `settings` field. @@ -30,7 +30,7 @@ Accepts multipart form data with **two** image files and a JSON `settings` field ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/watermark-image \ +curl -X POST http://localhost:1349/api/v1/tools/image/watermark-image \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@photo.jpg" \ -F "watermark=@logo.png" \ diff --git a/apps/docs/tools/image/watermark-text.md b/apps/docs/tools/image/watermark-text.md index e2a2dcf4..b543113e 100644 --- a/apps/docs/tools/image/watermark-text.md +++ b/apps/docs/tools/image/watermark-text.md @@ -8,7 +8,7 @@ Add a text watermark overlay to images. Supports single placement at corners/cen ## API Endpoint -`POST /api/v1/tools/watermark-text` +`POST /api/v1/tools/image/watermark-text` 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 ```bash -curl -X POST http://localhost:1349/api/v1/tools/watermark-text \ +curl -X POST http://localhost:1349/api/v1/tools/image/watermark-text \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@photo.jpg" \ -F 'settings={"text": "SAMPLE", "fontSize": 64, "opacity": 30, "position": "center", "rotation": -30}' @@ -35,7 +35,7 @@ curl -X POST http://localhost:1349/api/v1/tools/watermark-text \ Tiled watermark across the entire image: ```bash -curl -X POST http://localhost:1349/api/v1/tools/watermark-text \ +curl -X POST http://localhost:1349/api/v1/tools/image/watermark-text \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@photo.jpg" \ -F 'settings={"text": "DRAFT", "fontSize": 36, "opacity": 20, "position": "tiled", "rotation": -45}' diff --git a/apps/docs/tools/pdf/booklet-pdf.md b/apps/docs/tools/pdf/booklet-pdf.md index a9901be7..7982cd4a 100644 --- a/apps/docs/tools/pdf/booklet-pdf.md +++ b/apps/docs/tools/pdf/booklet-pdf.md @@ -8,7 +8,7 @@ Impose pages for duplex printing so the printed sheets can be folded into a book ## API Endpoint -`POST /api/v1/tools/booklet-pdf` +`POST /api/v1/tools/pdf/booklet-pdf` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -21,7 +21,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/booklet-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/booklet-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"perSheet": 2}' diff --git a/apps/docs/tools/pdf/compress-pdf.md b/apps/docs/tools/pdf/compress-pdf.md index 651a9b51..898090f8 100644 --- a/apps/docs/tools/pdf/compress-pdf.md +++ b/apps/docs/tools/pdf/compress-pdf.md @@ -8,7 +8,7 @@ Reduce PDF file size by downsampling embedded images. Choose between a quality s ## API Endpoint -`POST /api/v1/tools/compress-pdf` +`POST /api/v1/tools/pdf/compress-pdf` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -25,7 +25,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. Compress by quality: ```bash -curl -X POST http://localhost:1349/api/v1/tools/compress-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/compress-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"mode": "quality", "quality": 60}' @@ -34,7 +34,7 @@ curl -X POST http://localhost:1349/api/v1/tools/compress-pdf \ Compress to a target size: ```bash -curl -X POST http://localhost:1349/api/v1/tools/compress-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/compress-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"mode": "targetSize", "targetSizeKb": 500}' diff --git a/apps/docs/tools/pdf/crop-pdf.md b/apps/docs/tools/pdf/crop-pdf.md index bb8d4ff2..85ebf54e 100644 --- a/apps/docs/tools/pdf/crop-pdf.md +++ b/apps/docs/tools/pdf/crop-pdf.md @@ -8,7 +8,7 @@ Crop all pages of a PDF by applying a uniform margin, trimming content from each ## API Endpoint -`POST /api/v1/tools/crop-pdf` +`POST /api/v1/tools/pdf/crop-pdf` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -21,7 +21,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/crop-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/crop-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"margin": 50}' diff --git a/apps/docs/tools/pdf/extract-pages.md b/apps/docs/tools/pdf/extract-pages.md index 2f5a3ea0..002f9931 100644 --- a/apps/docs/tools/pdf/extract-pages.md +++ b/apps/docs/tools/pdf/extract-pages.md @@ -8,7 +8,7 @@ Pull selected pages from a PDF into a new, smaller document. ## API Endpoint -`POST /api/v1/tools/extract-pages` +`POST /api/v1/tools/pdf/extract-pages` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -21,7 +21,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/extract-pages \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/extract-pages \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"range": "1-5,8,10-z"}' diff --git a/apps/docs/tools/pdf/flatten-pdf.md b/apps/docs/tools/pdf/flatten-pdf.md index 99fe7754..f85c8236 100644 --- a/apps/docs/tools/pdf/flatten-pdf.md +++ b/apps/docs/tools/pdf/flatten-pdf.md @@ -8,7 +8,7 @@ Bake interactive form fields and annotations into the page content, producing a ## API Endpoint -`POST /api/v1/tools/flatten-pdf` +`POST /api/v1/tools/pdf/flatten-pdf` Accepts multipart form data with a PDF file. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a PDF and all forms and annotat ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/flatten-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/flatten-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@form.pdf" ``` diff --git a/apps/docs/tools/pdf/grayscale-pdf.md b/apps/docs/tools/pdf/grayscale-pdf.md index 2a1dce5e..d29e8368 100644 --- a/apps/docs/tools/pdf/grayscale-pdf.md +++ b/apps/docs/tools/pdf/grayscale-pdf.md @@ -8,7 +8,7 @@ Convert all colors in a PDF to grayscale, producing a black-and-white version of ## API Endpoint -`POST /api/v1/tools/grayscale-pdf` +`POST /api/v1/tools/pdf/grayscale-pdf` Accepts multipart form data with a PDF file. No `settings` field is required. @@ -19,7 +19,7 @@ This tool has no settings parameters. Upload the PDF file directly. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/grayscale-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/grayscale-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" ``` diff --git a/apps/docs/tools/pdf/linearize-pdf.md b/apps/docs/tools/pdf/linearize-pdf.md index f32a5d64..777567e0 100644 --- a/apps/docs/tools/pdf/linearize-pdf.md +++ b/apps/docs/tools/pdf/linearize-pdf.md @@ -8,7 +8,7 @@ Linearize a PDF so it can be progressively downloaded and displayed in web brows ## API Endpoint -`POST /api/v1/tools/linearize-pdf` +`POST /api/v1/tools/pdf/linearize-pdf` Accepts multipart form data with a PDF file. No `settings` field is required. @@ -19,7 +19,7 @@ This tool has no settings parameters. Upload the PDF file directly. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/linearize-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/linearize-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" ``` diff --git a/apps/docs/tools/pdf/merge-pdf.md b/apps/docs/tools/pdf/merge-pdf.md index 7db593c1..476bd466 100644 --- a/apps/docs/tools/pdf/merge-pdf.md +++ b/apps/docs/tools/pdf/merge-pdf.md @@ -8,7 +8,7 @@ Combine two or more PDF files into a single document, preserving the page order ## API Endpoint -`POST /api/v1/tools/merge-pdf` +`POST /api/v1/tools/pdf/merge-pdf` Accepts multipart form data with two or more PDF files. No `settings` field is required. @@ -24,7 +24,7 @@ This tool has no settings parameters. Simply upload two or more PDF files. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/merge-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/merge-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document1.pdf" \ -F "file=@document2.pdf" \ diff --git a/apps/docs/tools/pdf/nup-pdf.md b/apps/docs/tools/pdf/nup-pdf.md index 1bc0e757..7044a881 100644 --- a/apps/docs/tools/pdf/nup-pdf.md +++ b/apps/docs/tools/pdf/nup-pdf.md @@ -8,7 +8,7 @@ Arrange multiple pages per sheet to save paper when printing, such as 2-up or 4- ## API Endpoint -`POST /api/v1/tools/nup-pdf` +`POST /api/v1/tools/pdf/nup-pdf` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -21,7 +21,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/nup-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/nup-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"perSheet": 4}' diff --git a/apps/docs/tools/pdf/ocr-pdf.md b/apps/docs/tools/pdf/ocr-pdf.md index 89dd7ceb..4e41e92d 100644 --- a/apps/docs/tools/pdf/ocr-pdf.md +++ b/apps/docs/tools/pdf/ocr-pdf.md @@ -8,7 +8,7 @@ Extract text from PDF documents using AI-powered optical character recognition. ## API Endpoint -`POST /api/v1/tools/ocr-pdf` +`POST /api/v1/tools/pdf/ocr-pdf` Accepts multipart form data with a PDF file and an optional JSON `settings` field. @@ -23,7 +23,7 @@ Accepts multipart form data with a PDF file and an optional JSON `settings` fiel ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/ocr-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/ocr-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@scanned.pdf" \ -F 'settings={"quality": "best", "language": "en", "pages": "1-5"}' diff --git a/apps/docs/tools/pdf/organize-pdf.md b/apps/docs/tools/pdf/organize-pdf.md index e635811b..06a5ddb7 100644 --- a/apps/docs/tools/pdf/organize-pdf.md +++ b/apps/docs/tools/pdf/organize-pdf.md @@ -8,7 +8,7 @@ Reorder pages in a PDF by specifying the desired page sequence. ## API Endpoint -`POST /api/v1/tools/organize-pdf` +`POST /api/v1/tools/pdf/organize-pdf` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -21,7 +21,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/organize-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/organize-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"order": "3,1,2,5-z"}' diff --git a/apps/docs/tools/pdf/pdf-metadata.md b/apps/docs/tools/pdf/pdf-metadata.md index 037f10d6..ba3cc161 100644 --- a/apps/docs/tools/pdf/pdf-metadata.md +++ b/apps/docs/tools/pdf/pdf-metadata.md @@ -8,7 +8,7 @@ Read and update PDF document metadata fields such as title, author, subject, and ## API Endpoint -`POST /api/v1/tools/pdf-metadata` +`POST /api/v1/tools/pdf/pdf-metadata` Accepts multipart form data with a PDF file and an optional JSON `settings` field. @@ -26,7 +26,7 @@ All parameters are optional. Omitted fields are left unchanged. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/pdf-metadata \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-metadata \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@report.pdf" \ -F 'settings={"title": "Q2 Report", "author": "Finance Team"}' diff --git a/apps/docs/tools/pdf/pdf-page-numbers.md b/apps/docs/tools/pdf/pdf-page-numbers.md index 0a710805..b17183fb 100644 --- a/apps/docs/tools/pdf/pdf-page-numbers.md +++ b/apps/docs/tools/pdf/pdf-page-numbers.md @@ -8,7 +8,7 @@ Add "Page N of M" page numbers to every page of a PDF. ## API Endpoint -`POST /api/v1/tools/pdf-page-numbers` +`POST /api/v1/tools/pdf/pdf-page-numbers` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -27,7 +27,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/pdf-page-numbers \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-page-numbers \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"position": "bc", "fontSize": 12}' diff --git a/apps/docs/tools/pdf/pdf-to-image.md b/apps/docs/tools/pdf/pdf-to-image.md index 544df3bd..2c93b6c9 100644 --- a/apps/docs/tools/pdf/pdf-to-image.md +++ b/apps/docs/tools/pdf/pdf-to-image.md @@ -8,7 +8,7 @@ Convert PDF pages to high-quality raster images. Supports page selection, multip ## API Endpoint -`POST /api/v1/tools/pdf-to-image` +`POST /api/v1/tools/pdf/pdf-to-image` ## Parameters @@ -23,7 +23,7 @@ Convert PDF pages to high-quality raster images. Supports page selection, multip ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/pdf-to-image \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image \ -F "file=@document.pdf" \ -F 'settings={"format":"png","dpi":300,"pages":"1-3","colorMode":"color"}' ``` @@ -60,14 +60,14 @@ curl -X POST http://localhost:1349/api/v1/tools/pdf-to-image \ ## Info Sub-Route -`POST /api/v1/tools/pdf-to-image/info` +`POST /api/v1/tools/pdf/pdf-to-image/info` Returns the page count of a PDF without rendering any pages. ### Info Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/pdf-to-image/info \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image/info \ -F "file=@document.pdf" ``` @@ -81,14 +81,14 @@ curl -X POST http://localhost:1349/api/v1/tools/pdf-to-image/info \ ## Preview Sub-Route -`POST /api/v1/tools/pdf-to-image/preview` +`POST /api/v1/tools/pdf/pdf-to-image/preview` Returns low-resolution JPEG thumbnails of all pages as base64 data URLs. Useful for building a page selection UI. ### Preview Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/pdf-to-image/preview \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image/preview \ -F "file=@document.pdf" ``` diff --git a/apps/docs/tools/pdf/pdf-to-text.md b/apps/docs/tools/pdf/pdf-to-text.md index 39b1d25d..f5a6982c 100644 --- a/apps/docs/tools/pdf/pdf-to-text.md +++ b/apps/docs/tools/pdf/pdf-to-text.md @@ -8,7 +8,7 @@ Extract all readable plain text from a PDF document into a text file. ## API Endpoint -`POST /api/v1/tools/pdf-to-text` +`POST /api/v1/tools/pdf/pdf-to-text` Accepts multipart form data with a PDF file. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a PDF and its text content will ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/pdf-to-text \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-text \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@report.pdf" ``` diff --git a/apps/docs/tools/pdf/pdf-to-word.md b/apps/docs/tools/pdf/pdf-to-word.md index 574f7312..09e2cf6b 100644 --- a/apps/docs/tools/pdf/pdf-to-word.md +++ b/apps/docs/tools/pdf/pdf-to-word.md @@ -8,7 +8,7 @@ Convert a text-based PDF to a Word document (DOCX). Best suited for PDFs with se ## API Endpoint -`POST /api/v1/tools/pdf-to-word` +`POST /api/v1/tools/pdf/pdf-to-word` Accepts multipart form data with a PDF file. @@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a PDF and it will be converted ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/pdf-to-word \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-word \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@report.pdf" ``` diff --git a/apps/docs/tools/pdf/pdfa-convert.md b/apps/docs/tools/pdf/pdfa-convert.md index 8c4201a8..977419cf 100644 --- a/apps/docs/tools/pdf/pdfa-convert.md +++ b/apps/docs/tools/pdf/pdfa-convert.md @@ -8,7 +8,7 @@ Convert a PDF to the PDF/A-2 archival format, suitable for long-term preservatio ## API Endpoint -`POST /api/v1/tools/pdfa-convert` +`POST /api/v1/tools/pdf/pdfa-convert` Accepts multipart form data with a PDF file. No `settings` field is required. @@ -19,7 +19,7 @@ This tool has no settings parameters. Upload the PDF file directly. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/pdfa-convert \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/pdfa-convert \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" ``` diff --git a/apps/docs/tools/pdf/protect-pdf.md b/apps/docs/tools/pdf/protect-pdf.md index 52dfe946..2bdd328a 100644 --- a/apps/docs/tools/pdf/protect-pdf.md +++ b/apps/docs/tools/pdf/protect-pdf.md @@ -8,7 +8,7 @@ Add password protection to a PDF using AES-256 encryption. ## API Endpoint -`POST /api/v1/tools/protect-pdf` +`POST /api/v1/tools/pdf/protect-pdf` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -22,7 +22,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/protect-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/protect-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"userPassword": "s3cret", "ownerPassword": "0wn3r"}' diff --git a/apps/docs/tools/pdf/redact-pdf.md b/apps/docs/tools/pdf/redact-pdf.md index a449a3e4..f1d7ca1f 100644 --- a/apps/docs/tools/pdf/redact-pdf.md +++ b/apps/docs/tools/pdf/redact-pdf.md @@ -8,7 +8,7 @@ Permanently remove specified text occurrences from a PDF using verified true red ## API Endpoint -`POST /api/v1/tools/redact-pdf` +`POST /api/v1/tools/pdf/redact-pdf` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -22,7 +22,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/redact-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/redact-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@contract.pdf" \ -F 'settings={"terms": ["John Doe", "555-0123"], "caseSensitive": false}' diff --git a/apps/docs/tools/pdf/remove-pages.md b/apps/docs/tools/pdf/remove-pages.md index 76b2dc5b..2a0cf36b 100644 --- a/apps/docs/tools/pdf/remove-pages.md +++ b/apps/docs/tools/pdf/remove-pages.md @@ -8,7 +8,7 @@ Delete specific pages from a PDF, keeping all remaining pages intact. ## API Endpoint -`POST /api/v1/tools/remove-pages` +`POST /api/v1/tools/pdf/remove-pages` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -21,7 +21,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/remove-pages \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/remove-pages \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"pages": "3,5-7"}' diff --git a/apps/docs/tools/pdf/repair-pdf.md b/apps/docs/tools/pdf/repair-pdf.md index c24e0d36..75faced3 100644 --- a/apps/docs/tools/pdf/repair-pdf.md +++ b/apps/docs/tools/pdf/repair-pdf.md @@ -8,7 +8,7 @@ Attempt to repair a damaged or corrupted PDF by reconstructing its internal stru ## API Endpoint -`POST /api/v1/tools/repair-pdf` +`POST /api/v1/tools/pdf/repair-pdf` Accepts multipart form data with a PDF file. No `settings` field is required. @@ -19,7 +19,7 @@ This tool has no settings parameters. Upload the damaged PDF file directly. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/repair-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/repair-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@damaged.pdf" ``` diff --git a/apps/docs/tools/pdf/rotate-pdf.md b/apps/docs/tools/pdf/rotate-pdf.md index a42d6677..2e81ed11 100644 --- a/apps/docs/tools/pdf/rotate-pdf.md +++ b/apps/docs/tools/pdf/rotate-pdf.md @@ -8,7 +8,7 @@ Rotate all or selected pages in a PDF by a specified angle. ## API Endpoint -`POST /api/v1/tools/rotate-pdf` +`POST /api/v1/tools/pdf/rotate-pdf` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -22,7 +22,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/rotate-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/rotate-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"angle": 90, "range": "1-3"}' diff --git a/apps/docs/tools/pdf/split-pdf.md b/apps/docs/tools/pdf/split-pdf.md index 2d269c56..15806b4b 100644 --- a/apps/docs/tools/pdf/split-pdf.md +++ b/apps/docs/tools/pdf/split-pdf.md @@ -8,7 +8,7 @@ Extract a range of pages into a new PDF, or split a document into chunks of N pa ## API Endpoint -`POST /api/v1/tools/split-pdf` +`POST /api/v1/tools/pdf/split-pdf` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -25,7 +25,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. Extract specific pages: ```bash -curl -X POST http://localhost:1349/api/v1/tools/split-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/split-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"mode": "range", "range": "1-5,8"}' @@ -34,7 +34,7 @@ curl -X POST http://localhost:1349/api/v1/tools/split-pdf \ Split into chunks of 10 pages: ```bash -curl -X POST http://localhost:1349/api/v1/tools/split-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/split-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"mode": "every", "everyN": 10}' diff --git a/apps/docs/tools/pdf/unlock-pdf.md b/apps/docs/tools/pdf/unlock-pdf.md index 22435175..cf971b0b 100644 --- a/apps/docs/tools/pdf/unlock-pdf.md +++ b/apps/docs/tools/pdf/unlock-pdf.md @@ -8,7 +8,7 @@ Remove password protection from an encrypted PDF by providing the correct passwo ## API Endpoint -`POST /api/v1/tools/unlock-pdf` +`POST /api/v1/tools/pdf/unlock-pdf` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -21,7 +21,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/unlock-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/unlock-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"password": "s3cret"}' diff --git a/apps/docs/tools/pdf/watermark-pdf.md b/apps/docs/tools/pdf/watermark-pdf.md index bbb6009f..27ec2e9a 100644 --- a/apps/docs/tools/pdf/watermark-pdf.md +++ b/apps/docs/tools/pdf/watermark-pdf.md @@ -8,7 +8,7 @@ Stamp a text watermark on every page of a PDF with configurable position, size, ## API Endpoint -`POST /api/v1/tools/watermark-pdf` +`POST /api/v1/tools/pdf/watermark-pdf` Accepts multipart form data with a PDF file and a JSON `settings` field. @@ -31,7 +31,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/watermark-pdf \ +curl -X POST http://localhost:1349/api/v1/tools/pdf/watermark-pdf \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@document.pdf" \ -F 'settings={"text": "CONFIDENTIAL", "position": "c", "opacity": 0.2, "rotation": 45}' diff --git a/apps/docs/tools/video/aspect-pad.md b/apps/docs/tools/video/aspect-pad.md index 8cdb308d..5dd9ba56 100644 --- a/apps/docs/tools/video/aspect-pad.md +++ b/apps/docs/tools/video/aspect-pad.md @@ -8,7 +8,7 @@ Add solid-color letterbox or pillarbox bars to fit a video into a target aspect ## API Endpoint -`POST /api/v1/tools/aspect-pad` +`POST /api/v1/tools/video/aspect-pad` Accepts multipart form data with a video file and a JSON `settings` field. @@ -22,7 +22,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/aspect-pad \ +curl -X POST http://localhost:1349/api/v1/tools/video/aspect-pad \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"target": "1:1", "color": "#ffffff"}' diff --git a/apps/docs/tools/video/auto-subtitles.md b/apps/docs/tools/video/auto-subtitles.md index 3eedc4b5..698c8d33 100644 --- a/apps/docs/tools/video/auto-subtitles.md +++ b/apps/docs/tools/video/auto-subtitles.md @@ -8,7 +8,7 @@ Generate subtitle files from a video's audio track using AI-powered speech recog ## API Endpoint -`POST /api/v1/tools/auto-subtitles` +`POST /api/v1/tools/video/auto-subtitles` Accepts multipart form data with a video file and a JSON `settings` field. This is an async endpoint - it returns `202 Accepted` immediately and progress is streamed via SSE at `GET /api/v1/jobs/{jobId}/progress`. @@ -22,7 +22,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. This ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/auto-subtitles \ +curl -X POST http://localhost:1349/api/v1/tools/video/auto-subtitles \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"language": "en", "format": "srt"}' diff --git a/apps/docs/tools/video/blur-pad.md b/apps/docs/tools/video/blur-pad.md index 21c0ae0f..7e864b98 100644 --- a/apps/docs/tools/video/blur-pad.md +++ b/apps/docs/tools/video/blur-pad.md @@ -8,7 +8,7 @@ Fit a video into a target aspect ratio by filling the padding area with a blurre ## API Endpoint -`POST /api/v1/tools/blur-pad` +`POST /api/v1/tools/video/blur-pad` Accepts multipart form data with a video file and a JSON `settings` field. @@ -22,7 +22,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/blur-pad \ +curl -X POST http://localhost:1349/api/v1/tools/video/blur-pad \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"target": "16:9", "blur": 30}' diff --git a/apps/docs/tools/video/burn-subtitles.md b/apps/docs/tools/video/burn-subtitles.md index 1e9ce3e2..613e4098 100644 --- a/apps/docs/tools/video/burn-subtitles.md +++ b/apps/docs/tools/video/burn-subtitles.md @@ -8,7 +8,7 @@ Permanently render (hard-code) subtitles from an SRT, VTT, or ASS file onto ever ## API Endpoint -`POST /api/v1/tools/burn-subtitles` +`POST /api/v1/tools/video/burn-subtitles` Accepts multipart form data with a video file and a subtitle file. This is an async endpoint - it returns `202 Accepted` immediately and progress is streamed via SSE at `GET /api/v1/jobs/{jobId}/progress`. @@ -21,7 +21,7 @@ Accepts multipart form data with a video file and a subtitle file. This is an as ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/burn-subtitles \ +curl -X POST http://localhost:1349/api/v1/tools/video/burn-subtitles \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F "file=@subtitles.srt" \ diff --git a/apps/docs/tools/video/change-fps.md b/apps/docs/tools/video/change-fps.md index 07542216..45370064 100644 --- a/apps/docs/tools/video/change-fps.md +++ b/apps/docs/tools/video/change-fps.md @@ -8,7 +8,7 @@ Change the frame rate of a video to a target value between 1 and 120 fps. ## API Endpoint -`POST /api/v1/tools/change-fps` +`POST /api/v1/tools/video/change-fps` Accepts multipart form data with a video file and a JSON `settings` field. @@ -21,7 +21,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/change-fps \ +curl -X POST http://localhost:1349/api/v1/tools/video/change-fps \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"fps": 24}' diff --git a/apps/docs/tools/video/compress-video.md b/apps/docs/tools/video/compress-video.md index c6a5883d..7c44dbb9 100644 --- a/apps/docs/tools/video/compress-video.md +++ b/apps/docs/tools/video/compress-video.md @@ -8,7 +8,7 @@ Shrink video file size using configurable compression strength and optional reso ## API Endpoint -`POST /api/v1/tools/compress-video` +`POST /api/v1/tools/video/compress-video` Accepts multipart form data with a video file and a JSON `settings` field. This is an async endpoint - it returns `202 Accepted` immediately and progress is streamed via SSE at `GET /api/v1/jobs/{jobId}/progress`. @@ -22,7 +22,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. This ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/compress-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/compress-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"quality": "strong", "resolution": "720p"}' diff --git a/apps/docs/tools/video/convert-video.md b/apps/docs/tools/video/convert-video.md index 98368a1e..a250914f 100644 --- a/apps/docs/tools/video/convert-video.md +++ b/apps/docs/tools/video/convert-video.md @@ -8,7 +8,7 @@ Convert videos between MP4, MOV, and WebM formats with configurable quality pres ## API Endpoint -`POST /api/v1/tools/convert-video` +`POST /api/v1/tools/video/convert-video` Accepts multipart form data with a video file and a JSON `settings` field. This is an async endpoint - it returns `202 Accepted` immediately and progress is streamed via SSE at `GET /api/v1/jobs/{jobId}/progress`. @@ -22,7 +22,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. This ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/convert-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/convert-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"format": "webm", "quality": "balanced"}' diff --git a/apps/docs/tools/video/crop-video.md b/apps/docs/tools/video/crop-video.md index f5f2d30b..28a9d220 100644 --- a/apps/docs/tools/video/crop-video.md +++ b/apps/docs/tools/video/crop-video.md @@ -8,7 +8,7 @@ Crop a rectangular region out of a video by specifying the region's size and pos ## API Endpoint -`POST /api/v1/tools/crop-video` +`POST /api/v1/tools/video/crop-video` Accepts multipart form data with a video file and a JSON `settings` field. @@ -24,7 +24,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/crop-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/crop-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"width": 640, "height": 480, "x": 100, "y": 50}' diff --git a/apps/docs/tools/video/embed-subtitles.md b/apps/docs/tools/video/embed-subtitles.md index 46a66608..9d4b2c37 100644 --- a/apps/docs/tools/video/embed-subtitles.md +++ b/apps/docs/tools/video/embed-subtitles.md @@ -8,7 +8,7 @@ Mux a subtitle file into the video container as a soft subtitle track that viewe ## API Endpoint -`POST /api/v1/tools/embed-subtitles` +`POST /api/v1/tools/video/embed-subtitles` Accepts multipart form data with a video file and a subtitle file, plus a JSON `settings` field. @@ -21,7 +21,7 @@ Accepts multipart form data with a video file and a subtitle file, plus a JSON ` ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/embed-subtitles \ +curl -X POST http://localhost:1349/api/v1/tools/video/embed-subtitles \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F "file=@subtitles.srt" \ diff --git a/apps/docs/tools/video/extract-audio.md b/apps/docs/tools/video/extract-audio.md index ec2c6a0a..3181e9a6 100644 --- a/apps/docs/tools/video/extract-audio.md +++ b/apps/docs/tools/video/extract-audio.md @@ -8,7 +8,7 @@ Extract the audio track from a video file and save it as MP3, WAV, or M4A. ## API Endpoint -`POST /api/v1/tools/extract-audio` +`POST /api/v1/tools/video/extract-audio` Accepts multipart form data with a video file and a JSON `settings` field. @@ -21,7 +21,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/extract-audio \ +curl -X POST http://localhost:1349/api/v1/tools/video/extract-audio \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"format": "mp3"}' diff --git a/apps/docs/tools/video/extract-subtitles.md b/apps/docs/tools/video/extract-subtitles.md index 5ee8df1c..daedc9f2 100644 --- a/apps/docs/tools/video/extract-subtitles.md +++ b/apps/docs/tools/video/extract-subtitles.md @@ -8,7 +8,7 @@ Extract the embedded subtitle track from a video container and download it as an ## API Endpoint -`POST /api/v1/tools/extract-subtitles` +`POST /api/v1/tools/video/extract-subtitles` Accepts multipart form data with a video file. This tool has no configurable settings. @@ -19,7 +19,7 @@ This tool has no parameters. It extracts the first subtitle track found in the v ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/extract-subtitles \ +curl -X POST http://localhost:1349/api/v1/tools/video/extract-subtitles \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" ``` diff --git a/apps/docs/tools/video/gif-to-video.md b/apps/docs/tools/video/gif-to-video.md index 38e16a5f..eef96721 100644 --- a/apps/docs/tools/video/gif-to-video.md +++ b/apps/docs/tools/video/gif-to-video.md @@ -8,7 +8,7 @@ Convert an animated GIF into a compact MP4 or WebM video file. ## API Endpoint -`POST /api/v1/tools/gif-to-video` +`POST /api/v1/tools/video/gif-to-video` Accepts multipart form data with a GIF file and a JSON `settings` field. @@ -21,7 +21,7 @@ Accepts multipart form data with a GIF file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/gif-to-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/gif-to-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@animation.gif" \ -F 'settings={"format": "mp4"}' diff --git a/apps/docs/tools/video/images-to-video.md b/apps/docs/tools/video/images-to-video.md index 9984dd57..558fd3d6 100644 --- a/apps/docs/tools/video/images-to-video.md +++ b/apps/docs/tools/video/images-to-video.md @@ -8,7 +8,7 @@ Turn a set of images into a slideshow video with configurable duration per image ## API Endpoint -`POST /api/v1/tools/images-to-video` +`POST /api/v1/tools/video/images-to-video` Accepts multipart form data with two or more image files and a JSON `settings` field. @@ -23,7 +23,7 @@ Accepts multipart form data with two or more image files and a JSON `settings` f ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/images-to-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/images-to-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@slide1.jpg" \ -F "file=@slide2.jpg" \ diff --git a/apps/docs/tools/video/merge-videos.md b/apps/docs/tools/video/merge-videos.md index 7d6cdaeb..f8d04ac5 100644 --- a/apps/docs/tools/video/merge-videos.md +++ b/apps/docs/tools/video/merge-videos.md @@ -8,7 +8,7 @@ Join multiple video clips into a single MP4 file. All inputs are normalized to t ## API Endpoint -`POST /api/v1/tools/merge-videos` +`POST /api/v1/tools/video/merge-videos` Accepts multipart form data with two or more video files. This is an async endpoint - it returns `202 Accepted` immediately and progress is streamed via SSE at `GET /api/v1/jobs/{jobId}/progress`. @@ -19,7 +19,7 @@ This tool has no settings parameters. Upload 2-10 video files as multiple `file` ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/merge-videos \ +curl -X POST http://localhost:1349/api/v1/tools/video/merge-videos \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@intro.mp4" \ -F "file=@main.mp4" \ diff --git a/apps/docs/tools/video/mute-video.md b/apps/docs/tools/video/mute-video.md index d84c59b7..1bb07919 100644 --- a/apps/docs/tools/video/mute-video.md +++ b/apps/docs/tools/video/mute-video.md @@ -8,7 +8,7 @@ Remove the audio track from a video, leaving only the visual stream. ## API Endpoint -`POST /api/v1/tools/mute-video` +`POST /api/v1/tools/video/mute-video` Accepts multipart form data with a video file. This tool has no configurable settings. @@ -19,7 +19,7 @@ This tool has no parameters. It strips the audio track from the uploaded video. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/mute-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/mute-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" ``` diff --git a/apps/docs/tools/video/replace-audio.md b/apps/docs/tools/video/replace-audio.md index 92ecb05e..63cc1df1 100644 --- a/apps/docs/tools/video/replace-audio.md +++ b/apps/docs/tools/video/replace-audio.md @@ -8,7 +8,7 @@ Swap the audio track of a video with an audio file. Upload both a video and an a ## API Endpoint -`POST /api/v1/tools/replace-audio` +`POST /api/v1/tools/video/replace-audio` Accepts multipart form data with exactly two files: a video file followed by an audio file. @@ -19,7 +19,7 @@ This tool has no settings parameters. Upload a video file and an audio file as t ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/replace-audio \ +curl -X POST http://localhost:1349/api/v1/tools/video/replace-audio \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F "file=@voiceover.mp3" diff --git a/apps/docs/tools/video/resize-video.md b/apps/docs/tools/video/resize-video.md index 6c3ccd54..9c07df1c 100644 --- a/apps/docs/tools/video/resize-video.md +++ b/apps/docs/tools/video/resize-video.md @@ -8,7 +8,7 @@ Scale a video to a new resolution using custom pixel dimensions or a standard pr ## API Endpoint -`POST /api/v1/tools/resize-video` +`POST /api/v1/tools/video/resize-video` Accepts multipart form data with a video file and a JSON `settings` field. @@ -25,7 +25,7 @@ When `preset` is `"custom"`, at least one of `width` or `height` must be provide ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/resize-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/resize-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"preset": "720p"}' @@ -34,7 +34,7 @@ curl -X POST http://localhost:1349/api/v1/tools/resize-video \ Resize to custom dimensions: ```bash -curl -X POST http://localhost:1349/api/v1/tools/resize-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/resize-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"width": 1280, "height": 720}' diff --git a/apps/docs/tools/video/reverse-video.md b/apps/docs/tools/video/reverse-video.md index 0c428332..8cd5ca62 100644 --- a/apps/docs/tools/video/reverse-video.md +++ b/apps/docs/tools/video/reverse-video.md @@ -8,7 +8,7 @@ Play a video clip backwards. The audio track is also reversed. ## API Endpoint -`POST /api/v1/tools/reverse-video` +`POST /api/v1/tools/video/reverse-video` Accepts multipart form data with a video file. This tool has no configurable settings. @@ -19,7 +19,7 @@ This tool has no parameters. It reverses the entire video. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/reverse-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/reverse-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" ``` diff --git a/apps/docs/tools/video/rotate-video.md b/apps/docs/tools/video/rotate-video.md index 9d9a827f..65ecd8f9 100644 --- a/apps/docs/tools/video/rotate-video.md +++ b/apps/docs/tools/video/rotate-video.md @@ -8,7 +8,7 @@ Rotate a video by 90, 180, or 270 degrees, or flip it horizontally or vertically ## API Endpoint -`POST /api/v1/tools/rotate-video` +`POST /api/v1/tools/video/rotate-video` Accepts multipart form data with a video file and a JSON `settings` field. @@ -29,7 +29,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/rotate-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/rotate-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"transform": "cw90"}' diff --git a/apps/docs/tools/video/stabilize-video.md b/apps/docs/tools/video/stabilize-video.md index 9e748698..72bac43d 100644 --- a/apps/docs/tools/video/stabilize-video.md +++ b/apps/docs/tools/video/stabilize-video.md @@ -8,7 +8,7 @@ Reduce camera shake in handheld footage using FFmpeg's two-pass vidstab stabiliz ## API Endpoint -`POST /api/v1/tools/stabilize-video` +`POST /api/v1/tools/video/stabilize-video` Accepts multipart form data with a video file and a JSON `settings` field. This is an async endpoint - it returns `202 Accepted` immediately and progress is streamed via SSE at `GET /api/v1/jobs/{jobId}/progress`. @@ -21,7 +21,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. This ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/stabilize-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/stabilize-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"smoothing": 30}' diff --git a/apps/docs/tools/video/trim-video.md b/apps/docs/tools/video/trim-video.md index 1ef71893..41b59069 100644 --- a/apps/docs/tools/video/trim-video.md +++ b/apps/docs/tools/video/trim-video.md @@ -8,7 +8,7 @@ Cut a clip out of a video by specifying start and end times in seconds, with an ## API Endpoint -`POST /api/v1/tools/trim-video` +`POST /api/v1/tools/video/trim-video` Accepts multipart form data with a video file and a JSON `settings` field. @@ -23,7 +23,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/trim-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/trim-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"startS": 5, "endS": 30, "precise": true}' diff --git a/apps/docs/tools/video/video-color.md b/apps/docs/tools/video/video-color.md index 9fb11f94..40f1a58a 100644 --- a/apps/docs/tools/video/video-color.md +++ b/apps/docs/tools/video/video-color.md @@ -8,7 +8,7 @@ Adjust brightness, contrast, saturation, and gamma correction on a video. ## API Endpoint -`POST /api/v1/tools/video-color` +`POST /api/v1/tools/video/video-color` Accepts multipart form data with a video file and a JSON `settings` field. @@ -24,7 +24,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/video-color \ +curl -X POST http://localhost:1349/api/v1/tools/video/video-color \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"brightness": 0.1, "contrast": 1.2, "saturation": 1.5}' diff --git a/apps/docs/tools/video/video-loudnorm.md b/apps/docs/tools/video/video-loudnorm.md index ab8e0379..2178c2aa 100644 --- a/apps/docs/tools/video/video-loudnorm.md +++ b/apps/docs/tools/video/video-loudnorm.md @@ -8,7 +8,7 @@ Normalize video audio volume to the EBU R128 broadcast loudness standard. ## API Endpoint -`POST /api/v1/tools/video-loudnorm` +`POST /api/v1/tools/video/video-loudnorm` Accepts multipart form data with a video file. This tool has no configurable settings. @@ -19,7 +19,7 @@ This tool has no parameters. It applies EBU R128 loudness normalization to the a ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/video-loudnorm \ +curl -X POST http://localhost:1349/api/v1/tools/video/video-loudnorm \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" ``` diff --git a/apps/docs/tools/video/video-metadata.md b/apps/docs/tools/video/video-metadata.md index 1b1f931a..36e02798 100644 --- a/apps/docs/tools/video/video-metadata.md +++ b/apps/docs/tools/video/video-metadata.md @@ -8,7 +8,7 @@ Strip metadata (creation date, GPS coordinates, camera model, software tags, etc ## API Endpoint -`POST /api/v1/tools/video-metadata` +`POST /api/v1/tools/video/video-metadata` Accepts multipart form data with a video file. This tool has no configurable settings. @@ -19,7 +19,7 @@ This tool has no parameters. It strips all metadata from the video container. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/video-metadata \ +curl -X POST http://localhost:1349/api/v1/tools/video/video-metadata \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" ``` diff --git a/apps/docs/tools/video/video-speed.md b/apps/docs/tools/video/video-speed.md index a9022072..8cd18ba3 100644 --- a/apps/docs/tools/video/video-speed.md +++ b/apps/docs/tools/video/video-speed.md @@ -8,7 +8,7 @@ Speed up or slow down a video with an option to preserve audio pitch. ## API Endpoint -`POST /api/v1/tools/video-speed` +`POST /api/v1/tools/video/video-speed` Accepts multipart form data with a video file and a JSON `settings` field. @@ -22,7 +22,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/video-speed \ +curl -X POST http://localhost:1349/api/v1/tools/video/video-speed \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"factor": 0.5, "keepPitch": true}' diff --git a/apps/docs/tools/video/video-to-frames.md b/apps/docs/tools/video/video-to-frames.md index bfc431ab..21ca6da9 100644 --- a/apps/docs/tools/video/video-to-frames.md +++ b/apps/docs/tools/video/video-to-frames.md @@ -8,7 +8,7 @@ Extract individual frames from a video and download them as a ZIP archive of PNG ## API Endpoint -`POST /api/v1/tools/video-to-frames` +`POST /api/v1/tools/video/video-to-frames` Accepts multipart form data with a video file and a JSON `settings` field. @@ -26,7 +26,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. Extract every 30th frame as JPG: ```bash -curl -X POST http://localhost:1349/api/v1/tools/video-to-frames \ +curl -X POST http://localhost:1349/api/v1/tools/video/video-to-frames \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"mode": "nth", "n": 30, "format": "jpg"}' @@ -35,7 +35,7 @@ curl -X POST http://localhost:1349/api/v1/tools/video-to-frames \ Extract frames at specific timestamps: ```bash -curl -X POST http://localhost:1349/api/v1/tools/video-to-frames \ +curl -X POST http://localhost:1349/api/v1/tools/video/video-to-frames \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"mode": "timestamps", "timestamps": "1.5,5,12.3"}' diff --git a/apps/docs/tools/video/video-to-gif.md b/apps/docs/tools/video/video-to-gif.md index 1fb1a01e..245a9b8c 100644 --- a/apps/docs/tools/video/video-to-gif.md +++ b/apps/docs/tools/video/video-to-gif.md @@ -8,7 +8,7 @@ Turn a video clip into an animated GIF with configurable frame rate, width, star ## API Endpoint -`POST /api/v1/tools/video-to-gif` +`POST /api/v1/tools/video/video-to-gif` Accepts multipart form data with a video file and a JSON `settings` field. This is an async endpoint - it returns `202 Accepted` immediately and progress is streamed via SSE at `GET /api/v1/jobs/{jobId}/progress`. @@ -24,7 +24,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. This ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/video-to-gif \ +curl -X POST http://localhost:1349/api/v1/tools/video/video-to-gif \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"fps": 15, "width": 320, "startS": 2, "durationS": 8}' diff --git a/apps/docs/tools/video/video-to-webp.md b/apps/docs/tools/video/video-to-webp.md index 895d9659..c931de55 100644 --- a/apps/docs/tools/video/video-to-webp.md +++ b/apps/docs/tools/video/video-to-webp.md @@ -8,7 +8,7 @@ Convert a video clip into an animated WebP image with configurable frame rate, w ## API Endpoint -`POST /api/v1/tools/video-to-webp` +`POST /api/v1/tools/video/video-to-webp` Accepts multipart form data with a video file and a JSON `settings` field. @@ -24,7 +24,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/video-to-webp \ +curl -X POST http://localhost:1349/api/v1/tools/video/video-to-webp \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"fps": 15, "width": 640, "quality": 80}' diff --git a/apps/docs/tools/video/watermark-video.md b/apps/docs/tools/video/watermark-video.md index 13ca28c4..bc04cc61 100644 --- a/apps/docs/tools/video/watermark-video.md +++ b/apps/docs/tools/video/watermark-video.md @@ -8,7 +8,7 @@ Burn a text watermark onto every frame of a video with configurable position, si ## API Endpoint -`POST /api/v1/tools/watermark-video` +`POST /api/v1/tools/video/watermark-video` Accepts multipart form data with a video file and a JSON `settings` field. @@ -31,7 +31,7 @@ Accepts multipart form data with a video file and a JSON `settings` field. ## Example Request ```bash -curl -X POST http://localhost:1349/api/v1/tools/watermark-video \ +curl -X POST http://localhost:1349/api/v1/tools/video/watermark-video \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@clip.mp4" \ -F 'settings={"text": "PREVIEW", "position": "c", "fontSize": 48, "opacity": 0.3}'