mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
docs: section-prefix tool API endpoints
This commit is contained in:
+4
-4
@@ -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 <token>" \
|
||||
-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)
|
||||
|
||||
|
||||
+21
-19
@@ -25,7 +25,7 @@ curl -X POST http://localhost:1349/api/auth/login \
|
||||
# Returns: {"token":"<session-token>"}
|
||||
|
||||
# Use token
|
||||
curl http://localhost:1349/api/v1/tools/resize \
|
||||
curl http://localhost:1349/api/v1/tools/image/resize \
|
||||
-H "Authorization: Bearer <session-token>"
|
||||
```
|
||||
|
||||
@@ -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_<your-key>"
|
||||
```
|
||||
|
||||
@@ -87,19 +87,21 @@ Every tool follows the same pattern:
|
||||
|
||||
```bash
|
||||
# Single file
|
||||
curl -X POST http://localhost:1349/api/v1/tools/<toolId> \
|
||||
curl -X POST http://localhost:1349/api/v1/tools/<section>/<toolId> \
|
||||
-H "Authorization: Bearer <token>" \
|
||||
-F "file=@input.jpg" \
|
||||
-F 'settings={"width":800,"height":600}'
|
||||
|
||||
# Batch (returns ZIP)
|
||||
curl -X POST http://localhost:1349/api/v1/tools/<toolId>/batch \
|
||||
curl -X POST http://localhost:1349/api/v1/tools/<section>/<toolId>/batch \
|
||||
-H "Authorization: Bearer <token>" \
|
||||
-F "files=@a.jpg" \
|
||||
-F "files=@b.jpg" \
|
||||
-F 'settings={...}'
|
||||
```
|
||||
|
||||
`<section>` 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/<jobId>/<filename>","originalSize":1234,"processedSize":567}`. Fetch the processed file from `downloadUrl`.
|
||||
@@ -331,7 +333,7 @@ All AI tools run on your hardware (CPU or NVIDIA GPU). No internet required.
|
||||
|
||||
Capture a webpage as an image. Unlike other tools, this endpoint accepts `application/json` instead of multipart form data (no file upload needed).
|
||||
|
||||
**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/<toolId>`:
|
||||
Some tools expose additional endpoints beyond the standard `POST /api/v1/tools/<section>/<toolId>`:
|
||||
|
||||
| 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 <token>" \
|
||||
-F "files=@a.jpg" \
|
||||
-F "files=@b.jpg" \
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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_<your-api-key>" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"width":800,"height":600,"fit":"cover"}'
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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={}'
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"}'
|
||||
```
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
```
|
||||
|
||||
@@ -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}'
|
||||
```
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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"}'
|
||||
```
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
```
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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}'
|
||||
```
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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": "<div style=\"padding: 20px; background: #f0f0f0;\"><h1>Hello</h1></div>", "format": "png"}'
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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"}]}'
|
||||
|
||||
@@ -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}'
|
||||
```
|
||||
|
||||
@@ -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}'
|
||||
```
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -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}}'
|
||||
|
||||
@@ -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"}'
|
||||
|
||||
@@ -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}'
|
||||
```
|
||||
|
||||
@@ -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"}'
|
||||
```
|
||||
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
```
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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}'
|
||||
|
||||
@@ -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"}'
|
||||
```
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
@@ -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" \
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user