mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
docs: organize tool pages by modality under /tools/<modality>/
Move all 157 tool pages into image/video/audio/pdf/data subfolders so URLs read /tools/<modality>/<id> (e.g. /tools/image/crop). Nest the image sub-categories under an Image group in the sidebar so the nav reads by modality. Add public/_redirects (301, clean + .html forms) mapping every old flat /tools/<id> URL to its new path so inbound links keep working. Rewrite all internal /tools links. Verified with a clean docs build (no dead links).
This commit is contained in:
+164
-158
@@ -90,7 +90,7 @@ export default defineConfig({
|
|||||||
nav: [
|
nav: [
|
||||||
{ text: "Home", link: "/" },
|
{ text: "Home", link: "/" },
|
||||||
{ text: "Guide", link: "/guide/getting-started" },
|
{ text: "Guide", link: "/guide/getting-started" },
|
||||||
{ text: "Tools", link: "/tools/resize" },
|
{ text: "Tools", link: "/tools/image/resize" },
|
||||||
{ text: "API Reference", link: "/api/rest" },
|
{ text: "API Reference", link: "/api/rest" },
|
||||||
{ text: "Changelog", link: "/changelog" },
|
{ text: "Changelog", link: "/changelog" },
|
||||||
{
|
{
|
||||||
@@ -121,221 +121,227 @@ export default defineConfig({
|
|||||||
{
|
{
|
||||||
text: "Tools",
|
text: "Tools",
|
||||||
items: [
|
items: [
|
||||||
|
{
|
||||||
|
text: "Image",
|
||||||
|
collapsed: false,
|
||||||
|
items: [
|
||||||
{
|
{
|
||||||
text: "Essentials",
|
text: "Essentials",
|
||||||
items: [
|
items: [
|
||||||
{ text: "Resize", link: "/tools/resize" },
|
{ text: "Resize", link: "/tools/image/resize" },
|
||||||
{ text: "Crop", link: "/tools/crop" },
|
{ text: "Crop", link: "/tools/image/crop" },
|
||||||
{ text: "Rotate & Flip", link: "/tools/rotate" },
|
{ text: "Rotate & Flip", link: "/tools/image/rotate" },
|
||||||
{ text: "Convert", link: "/tools/convert" },
|
{ text: "Convert", link: "/tools/image/convert" },
|
||||||
{ text: "Compress", link: "/tools/compress" },
|
{ text: "Compress", link: "/tools/image/compress" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "Optimization",
|
text: "Optimization",
|
||||||
items: [
|
items: [
|
||||||
{ text: "Optimize for Web", link: "/tools/optimize-for-web" },
|
{ text: "Optimize for Web", link: "/tools/image/optimize-for-web" },
|
||||||
{ text: "Remove Metadata", link: "/tools/strip-metadata" },
|
{ text: "Remove Metadata", link: "/tools/image/strip-metadata" },
|
||||||
{ text: "Edit Metadata", link: "/tools/edit-metadata" },
|
{ text: "Edit Metadata", link: "/tools/image/edit-metadata" },
|
||||||
{ text: "Bulk Rename", link: "/tools/bulk-rename" },
|
{ text: "Bulk Rename", link: "/tools/image/bulk-rename" },
|
||||||
{ text: "Image to PDF", link: "/tools/image-to-pdf" },
|
{ text: "Image to PDF", link: "/tools/image/image-to-pdf" },
|
||||||
{ text: "Favicon Generator", link: "/tools/favicon" },
|
{ text: "Favicon Generator", link: "/tools/image/favicon" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "Adjustments",
|
text: "Adjustments",
|
||||||
items: [
|
items: [
|
||||||
{ text: "Adjust Colors", link: "/tools/adjust-colors" },
|
{ text: "Adjust Colors", link: "/tools/image/adjust-colors" },
|
||||||
{ text: "Sharpening", link: "/tools/sharpening" },
|
{ text: "Sharpening", link: "/tools/image/sharpening" },
|
||||||
{ text: "Replace & Invert Color", link: "/tools/replace-color" },
|
{ text: "Replace & Invert Color", link: "/tools/image/replace-color" },
|
||||||
{ text: "Color Blindness Simulation", link: "/tools/color-blindness" },
|
{ text: "Color Blindness Simulation", link: "/tools/image/color-blindness" },
|
||||||
{ text: "Duotone", link: "/tools/duotone" },
|
{ text: "Duotone", link: "/tools/image/duotone" },
|
||||||
{ text: "Pixelate", link: "/tools/pixelate" },
|
{ text: "Pixelate", link: "/tools/image/pixelate" },
|
||||||
{ text: "Vignette", link: "/tools/vignette" },
|
{ text: "Vignette", link: "/tools/image/vignette" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "Watermark & Overlay",
|
text: "Watermark & Overlay",
|
||||||
items: [
|
items: [
|
||||||
{ text: "Text Watermark", link: "/tools/watermark-text" },
|
{ text: "Text Watermark", link: "/tools/image/watermark-text" },
|
||||||
{ text: "Image Watermark", link: "/tools/watermark-image" },
|
{ text: "Image Watermark", link: "/tools/image/watermark-image" },
|
||||||
{ text: "Text Overlay", link: "/tools/text-overlay" },
|
{ text: "Text Overlay", link: "/tools/image/text-overlay" },
|
||||||
{ text: "Image Composition", link: "/tools/compose" },
|
{ text: "Image Composition", link: "/tools/image/compose" },
|
||||||
{ text: "Meme Generator", link: "/tools/meme-generator" },
|
{ text: "Meme Generator", link: "/tools/image/meme-generator" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "Utilities",
|
text: "Utilities",
|
||||||
items: [
|
items: [
|
||||||
{ text: "Image Info", link: "/tools/info" },
|
{ text: "Image Info", link: "/tools/image/info" },
|
||||||
{ text: "Image Compare", link: "/tools/compare" },
|
{ text: "Image Compare", link: "/tools/image/compare" },
|
||||||
{ text: "Find Duplicates", link: "/tools/find-duplicates" },
|
{ text: "Find Duplicates", link: "/tools/image/find-duplicates" },
|
||||||
{ text: "Color Palette", link: "/tools/color-palette" },
|
{ text: "Color Palette", link: "/tools/image/color-palette" },
|
||||||
{ text: "QR Code Generator", link: "/tools/qr-generate" },
|
{ text: "QR Code Generator", link: "/tools/image/qr-generate" },
|
||||||
{ text: "HTML to Image", link: "/tools/html-to-image" },
|
{ text: "HTML to Image", link: "/tools/image/html-to-image" },
|
||||||
{ text: "Barcode Reader", link: "/tools/barcode-read" },
|
{ text: "Barcode Reader", link: "/tools/image/barcode-read" },
|
||||||
{ text: "Image to Base64", link: "/tools/image-to-base64" },
|
{ text: "Image to Base64", link: "/tools/image/image-to-base64" },
|
||||||
{ text: "Histogram", link: "/tools/histogram" },
|
{ text: "Histogram", link: "/tools/image/histogram" },
|
||||||
{ text: "LQIP Placeholder", link: "/tools/lqip-placeholder" },
|
{ text: "LQIP Placeholder", link: "/tools/image/lqip-placeholder" },
|
||||||
{ text: "Barcode Generator", link: "/tools/barcode-generate" },
|
{ text: "Barcode Generator", link: "/tools/image/barcode-generate" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "Layout",
|
text: "Layout",
|
||||||
items: [
|
items: [
|
||||||
{ text: "Collage / Grid", link: "/tools/collage" },
|
{ text: "Collage / Grid", link: "/tools/image/collage" },
|
||||||
{ text: "Stitch / Combine", link: "/tools/stitch" },
|
{ text: "Stitch / Combine", link: "/tools/image/stitch" },
|
||||||
{ text: "Image Splitting", link: "/tools/split" },
|
{ text: "Image Splitting", link: "/tools/image/split" },
|
||||||
{ text: "Border & Frame", link: "/tools/border" },
|
{ text: "Border & Frame", link: "/tools/image/border" },
|
||||||
{ text: "Beautify Screenshot", link: "/tools/beautify" },
|
{ text: "Beautify Screenshot", link: "/tools/image/beautify" },
|
||||||
{ text: "Circle Crop", link: "/tools/circle-crop" },
|
{ text: "Circle Crop", link: "/tools/image/circle-crop" },
|
||||||
{ text: "Image Pad", link: "/tools/image-pad" },
|
{ text: "Image Pad", link: "/tools/image/image-pad" },
|
||||||
{ text: "Sprite Sheet", link: "/tools/sprite-sheet" },
|
{ text: "Sprite Sheet", link: "/tools/image/sprite-sheet" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "Format",
|
text: "Format",
|
||||||
items: [
|
items: [
|
||||||
{ text: "SVG to Raster", link: "/tools/svg-to-raster" },
|
{ text: "SVG to Raster", link: "/tools/image/svg-to-raster" },
|
||||||
{ text: "Image to SVG", link: "/tools/vectorize" },
|
{ text: "Image to SVG", link: "/tools/image/vectorize" },
|
||||||
{ text: "GIF Tools", link: "/tools/gif-tools" },
|
{ text: "GIF Tools", link: "/tools/image/gif-tools" },
|
||||||
{ text: "GIF/WebP Converter", link: "/tools/gif-webp" },
|
{ text: "GIF/WebP Converter", link: "/tools/image/gif-webp" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "AI Tools",
|
text: "AI Tools",
|
||||||
items: [
|
items: [
|
||||||
{ text: "Remove Background", link: "/tools/remove-background" },
|
{ text: "Remove Background", link: "/tools/image/remove-background" },
|
||||||
{ text: "Image Upscaling", link: "/tools/upscale" },
|
{ text: "Image Upscaling", link: "/tools/image/upscale" },
|
||||||
{ text: "Object Eraser", link: "/tools/erase-object" },
|
{ text: "Object Eraser", link: "/tools/image/erase-object" },
|
||||||
{ text: "OCR / Text Extraction", link: "/tools/ocr" },
|
{ text: "OCR / Text Extraction", link: "/tools/image/ocr" },
|
||||||
{ text: "Face / PII Blur", link: "/tools/blur-faces" },
|
{ text: "Face / PII Blur", link: "/tools/image/blur-faces" },
|
||||||
{ text: "Smart Crop", link: "/tools/smart-crop" },
|
{ text: "Smart Crop", link: "/tools/image/smart-crop" },
|
||||||
{ text: "Image Enhancement", link: "/tools/image-enhancement" },
|
{ text: "Image Enhancement", link: "/tools/image/image-enhancement" },
|
||||||
{ text: "Face Enhancement", link: "/tools/enhance-faces" },
|
{ text: "Face Enhancement", link: "/tools/image/enhance-faces" },
|
||||||
{ text: "AI Colorization", link: "/tools/colorize" },
|
{ text: "AI Colorization", link: "/tools/image/colorize" },
|
||||||
{ text: "Noise Removal", link: "/tools/noise-removal" },
|
{ text: "Noise Removal", link: "/tools/image/noise-removal" },
|
||||||
{ text: "Red Eye Removal", link: "/tools/red-eye-removal" },
|
{ text: "Red Eye Removal", link: "/tools/image/red-eye-removal" },
|
||||||
{ text: "Photo Restoration", link: "/tools/restore-photo" },
|
{ text: "Photo Restoration", link: "/tools/image/restore-photo" },
|
||||||
{ text: "Passport Photo", link: "/tools/passport-photo" },
|
{ text: "Passport Photo", link: "/tools/image/passport-photo" },
|
||||||
{ text: "Content-Aware Resize", link: "/tools/content-aware-resize" },
|
{ text: "Content-Aware Resize", link: "/tools/image/content-aware-resize" },
|
||||||
{ text: "AI Canvas Expand", link: "/tools/ai-canvas-expand" },
|
{ text: "AI Canvas Expand", link: "/tools/image/ai-canvas-expand" },
|
||||||
{ text: "PNG Transparency Fixer", link: "/tools/transparency-fixer" },
|
{ text: "PNG Transparency Fixer", link: "/tools/image/transparency-fixer" },
|
||||||
{ text: "Background Replace", link: "/tools/background-replace" },
|
{ text: "Background Replace", link: "/tools/image/background-replace" },
|
||||||
{ text: "Blur Background", link: "/tools/blur-background" },
|
{ text: "Blur Background", link: "/tools/image/blur-background" },
|
||||||
|
],
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "Video",
|
text: "Video",
|
||||||
items: [
|
items: [
|
||||||
{ text: "Convert Video", link: "/tools/convert-video" },
|
{ text: "Convert Video", link: "/tools/video/convert-video" },
|
||||||
{ text: "Compress Video", link: "/tools/compress-video" },
|
{ text: "Compress Video", link: "/tools/video/compress-video" },
|
||||||
{ text: "Trim Video", link: "/tools/trim-video" },
|
{ text: "Trim Video", link: "/tools/video/trim-video" },
|
||||||
{ text: "Mute Video", link: "/tools/mute-video" },
|
{ text: "Mute Video", link: "/tools/video/mute-video" },
|
||||||
{ text: "Video to GIF", link: "/tools/video-to-gif" },
|
{ text: "Video to GIF", link: "/tools/video/video-to-gif" },
|
||||||
{ text: "Resize Video", link: "/tools/resize-video" },
|
{ text: "Resize Video", link: "/tools/video/resize-video" },
|
||||||
{ text: "Crop Video", link: "/tools/crop-video" },
|
{ text: "Crop Video", link: "/tools/video/crop-video" },
|
||||||
{ text: "Rotate Video", link: "/tools/rotate-video" },
|
{ text: "Rotate Video", link: "/tools/video/rotate-video" },
|
||||||
{ text: "Change FPS", link: "/tools/change-fps" },
|
{ text: "Change FPS", link: "/tools/video/change-fps" },
|
||||||
{ text: "Video Color", link: "/tools/video-color" },
|
{ text: "Video Color", link: "/tools/video/video-color" },
|
||||||
{ text: "Video Speed", link: "/tools/video-speed" },
|
{ text: "Video Speed", link: "/tools/video/video-speed" },
|
||||||
{ text: "Reverse Video", link: "/tools/reverse-video" },
|
{ text: "Reverse Video", link: "/tools/video/reverse-video" },
|
||||||
{ text: "Normalize Audio", link: "/tools/video-loudnorm" },
|
{ text: "Normalize Audio", link: "/tools/video/video-loudnorm" },
|
||||||
{ text: "Aspect Pad", link: "/tools/aspect-pad" },
|
{ text: "Aspect Pad", link: "/tools/video/aspect-pad" },
|
||||||
{ text: "Blur Pad", link: "/tools/blur-pad" },
|
{ text: "Blur Pad", link: "/tools/video/blur-pad" },
|
||||||
{ text: "Watermark Video", link: "/tools/watermark-video" },
|
{ text: "Watermark Video", link: "/tools/video/watermark-video" },
|
||||||
{ text: "Stabilize Video", link: "/tools/stabilize-video" },
|
{ text: "Stabilize Video", link: "/tools/video/stabilize-video" },
|
||||||
{ text: "GIF to Video", link: "/tools/gif-to-video" },
|
{ text: "GIF to Video", link: "/tools/video/gif-to-video" },
|
||||||
{ text: "Video to WebP", link: "/tools/video-to-webp" },
|
{ text: "Video to WebP", link: "/tools/video/video-to-webp" },
|
||||||
{ text: "Video to Frames", link: "/tools/video-to-frames" },
|
{ text: "Video to Frames", link: "/tools/video/video-to-frames" },
|
||||||
{ text: "Merge Videos", link: "/tools/merge-videos" },
|
{ text: "Merge Videos", link: "/tools/video/merge-videos" },
|
||||||
{ text: "Replace Audio", link: "/tools/replace-audio" },
|
{ text: "Replace Audio", link: "/tools/video/replace-audio" },
|
||||||
{ text: "Burn Subtitles", link: "/tools/burn-subtitles" },
|
{ text: "Burn Subtitles", link: "/tools/video/burn-subtitles" },
|
||||||
{ text: "Embed Subtitles", link: "/tools/embed-subtitles" },
|
{ text: "Embed Subtitles", link: "/tools/video/embed-subtitles" },
|
||||||
{ text: "Extract Subtitles", link: "/tools/extract-subtitles" },
|
{ text: "Extract Subtitles", link: "/tools/video/extract-subtitles" },
|
||||||
{ text: "Images to Video", link: "/tools/images-to-video" },
|
{ text: "Images to Video", link: "/tools/video/images-to-video" },
|
||||||
{ text: "Clean Video Metadata", link: "/tools/video-metadata" },
|
{ text: "Clean Video Metadata", link: "/tools/video/video-metadata" },
|
||||||
{ text: "Auto Subtitles", link: "/tools/auto-subtitles" },
|
{ text: "Auto Subtitles", link: "/tools/video/auto-subtitles" },
|
||||||
{ text: "Extract Audio", link: "/tools/extract-audio" },
|
{ text: "Extract Audio", link: "/tools/video/extract-audio" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "Audio",
|
text: "Audio",
|
||||||
items: [
|
items: [
|
||||||
{ text: "Convert Audio", link: "/tools/convert-audio" },
|
{ text: "Convert Audio", link: "/tools/audio/convert-audio" },
|
||||||
{ text: "Trim Audio", link: "/tools/trim-audio" },
|
{ text: "Trim Audio", link: "/tools/audio/trim-audio" },
|
||||||
{ text: "Volume Adjust", link: "/tools/volume-adjust" },
|
{ text: "Volume Adjust", link: "/tools/audio/volume-adjust" },
|
||||||
{ text: "Normalize Audio", link: "/tools/normalize-audio" },
|
{ text: "Normalize Audio", link: "/tools/audio/normalize-audio" },
|
||||||
{ text: "Fade Audio", link: "/tools/fade-audio" },
|
{ text: "Fade Audio", link: "/tools/audio/fade-audio" },
|
||||||
{ text: "Reverse Audio", link: "/tools/reverse-audio" },
|
{ text: "Reverse Audio", link: "/tools/audio/reverse-audio" },
|
||||||
{ text: "Audio Speed", link: "/tools/audio-speed" },
|
{ text: "Audio Speed", link: "/tools/audio/audio-speed" },
|
||||||
{ text: "Pitch Shift", link: "/tools/pitch-shift" },
|
{ text: "Pitch Shift", link: "/tools/audio/pitch-shift" },
|
||||||
{ text: "Audio Channels", link: "/tools/audio-channels" },
|
{ text: "Audio Channels", link: "/tools/audio/audio-channels" },
|
||||||
{ text: "Silence Removal", link: "/tools/silence-removal" },
|
{ text: "Silence Removal", link: "/tools/audio/silence-removal" },
|
||||||
{ text: "Noise Reduction", link: "/tools/noise-reduction" },
|
{ text: "Noise Reduction", link: "/tools/audio/noise-reduction" },
|
||||||
{ text: "Merge Audio", link: "/tools/merge-audio" },
|
{ text: "Merge Audio", link: "/tools/audio/merge-audio" },
|
||||||
{ text: "Split Audio", link: "/tools/split-audio" },
|
{ text: "Split Audio", link: "/tools/audio/split-audio" },
|
||||||
{ text: "Ringtone Maker", link: "/tools/ringtone-maker" },
|
{ text: "Ringtone Maker", link: "/tools/audio/ringtone-maker" },
|
||||||
{ text: "Waveform Image", link: "/tools/waveform-image" },
|
{ text: "Waveform Image", link: "/tools/audio/waveform-image" },
|
||||||
{ text: "Audio Metadata", link: "/tools/audio-metadata" },
|
{ text: "Audio Metadata", link: "/tools/audio/audio-metadata" },
|
||||||
{ text: "Transcribe Audio", link: "/tools/transcribe-audio" },
|
{ text: "Transcribe Audio", link: "/tools/audio/transcribe-audio" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "PDF & Documents",
|
text: "PDF & Documents",
|
||||||
items: [
|
items: [
|
||||||
{ text: "PDF to Image", link: "/tools/pdf-to-image" },
|
{ text: "PDF to Image", link: "/tools/pdf/pdf-to-image" },
|
||||||
{ text: "Merge PDFs", link: "/tools/merge-pdf" },
|
{ text: "Merge PDFs", link: "/tools/pdf/merge-pdf" },
|
||||||
{ text: "Split PDF", link: "/tools/split-pdf" },
|
{ text: "Split PDF", link: "/tools/pdf/split-pdf" },
|
||||||
{ text: "Compress PDF", link: "/tools/compress-pdf" },
|
{ text: "Compress PDF", link: "/tools/pdf/compress-pdf" },
|
||||||
{ text: "Rotate PDF", link: "/tools/rotate-pdf" },
|
{ text: "Rotate PDF", link: "/tools/pdf/rotate-pdf" },
|
||||||
{ text: "Convert Document", link: "/tools/convert-document" },
|
{ text: "Convert Document", link: "/tools/pdf/convert-document" },
|
||||||
{ text: "Convert Presentation", link: "/tools/convert-presentation" },
|
{ text: "Convert Presentation", link: "/tools/pdf/convert-presentation" },
|
||||||
{ text: "Convert Spreadsheet", link: "/tools/convert-spreadsheet" },
|
{ text: "Convert Spreadsheet", link: "/tools/pdf/convert-spreadsheet" },
|
||||||
{ text: "Excel to PDF", link: "/tools/excel-to-pdf" },
|
{ text: "Excel to PDF", link: "/tools/pdf/excel-to-pdf" },
|
||||||
{ text: "Word to PDF", link: "/tools/word-to-pdf" },
|
{ text: "Word to PDF", link: "/tools/pdf/word-to-pdf" },
|
||||||
{ text: "Extract Pages", link: "/tools/extract-pages" },
|
{ text: "Extract Pages", link: "/tools/pdf/extract-pages" },
|
||||||
{ text: "Remove Pages", link: "/tools/remove-pages" },
|
{ text: "Remove Pages", link: "/tools/pdf/remove-pages" },
|
||||||
{ text: "Organize PDF", link: "/tools/organize-pdf" },
|
{ text: "Organize PDF", link: "/tools/pdf/organize-pdf" },
|
||||||
{ text: "Protect PDF", link: "/tools/protect-pdf" },
|
{ text: "Protect PDF", link: "/tools/pdf/protect-pdf" },
|
||||||
{ text: "Unlock PDF", link: "/tools/unlock-pdf" },
|
{ text: "Unlock PDF", link: "/tools/pdf/unlock-pdf" },
|
||||||
{ text: "Repair PDF", link: "/tools/repair-pdf" },
|
{ text: "Repair PDF", link: "/tools/pdf/repair-pdf" },
|
||||||
{ text: "Web-Optimize PDF", link: "/tools/linearize-pdf" },
|
{ text: "Web-Optimize PDF", link: "/tools/pdf/linearize-pdf" },
|
||||||
{ text: "Grayscale PDF", link: "/tools/grayscale-pdf" },
|
{ text: "Grayscale PDF", link: "/tools/pdf/grayscale-pdf" },
|
||||||
{ text: "PDF/A Convert", link: "/tools/pdfa-convert" },
|
{ text: "PDF/A Convert", link: "/tools/pdf/pdfa-convert" },
|
||||||
{ text: "Crop PDF", link: "/tools/crop-pdf" },
|
{ text: "Crop PDF", link: "/tools/pdf/crop-pdf" },
|
||||||
{ text: "N-up PDF", link: "/tools/nup-pdf" },
|
{ text: "N-up PDF", link: "/tools/pdf/nup-pdf" },
|
||||||
{ text: "Booklet PDF", link: "/tools/booklet-pdf" },
|
{ text: "Booklet PDF", link: "/tools/pdf/booklet-pdf" },
|
||||||
{ text: "Watermark PDF", link: "/tools/watermark-pdf" },
|
{ text: "Watermark PDF", link: "/tools/pdf/watermark-pdf" },
|
||||||
{ text: "PDF Page Numbers", link: "/tools/pdf-page-numbers" },
|
{ text: "PDF Page Numbers", link: "/tools/pdf/pdf-page-numbers" },
|
||||||
{ text: "Flatten PDF", link: "/tools/flatten-pdf" },
|
{ text: "Flatten PDF", link: "/tools/pdf/flatten-pdf" },
|
||||||
{ text: "Redact PDF", link: "/tools/redact-pdf" },
|
{ text: "Redact PDF", link: "/tools/pdf/redact-pdf" },
|
||||||
{ text: "PDF to Text", link: "/tools/pdf-to-text" },
|
{ text: "PDF to Text", link: "/tools/pdf/pdf-to-text" },
|
||||||
{ text: "PDF to Word", link: "/tools/pdf-to-word" },
|
{ text: "PDF to Word", link: "/tools/pdf/pdf-to-word" },
|
||||||
{ text: "PDF Metadata", link: "/tools/pdf-metadata" },
|
{ text: "PDF Metadata", link: "/tools/pdf/pdf-metadata" },
|
||||||
{ text: "PowerPoint to PDF", link: "/tools/powerpoint-to-pdf" },
|
{ text: "PowerPoint to PDF", link: "/tools/pdf/powerpoint-to-pdf" },
|
||||||
{ text: "HTML to PDF", link: "/tools/html-to-pdf" },
|
{ text: "HTML to PDF", link: "/tools/pdf/html-to-pdf" },
|
||||||
{ text: "Markdown to Word", link: "/tools/markdown-to-docx" },
|
{ text: "Markdown to Word", link: "/tools/pdf/markdown-to-docx" },
|
||||||
{ text: "Markdown to HTML", link: "/tools/markdown-to-html" },
|
{ text: "Markdown to HTML", link: "/tools/pdf/markdown-to-html" },
|
||||||
{ text: "Markdown to PDF", link: "/tools/markdown-to-pdf" },
|
{ text: "Markdown to PDF", link: "/tools/pdf/markdown-to-pdf" },
|
||||||
{ text: "Convert EPUB", link: "/tools/epub-convert" },
|
{ text: "Convert EPUB", link: "/tools/pdf/epub-convert" },
|
||||||
{ text: "Convert to EPUB", link: "/tools/to-epub" },
|
{ text: "Convert to EPUB", link: "/tools/pdf/to-epub" },
|
||||||
{ text: "PDF OCR", link: "/tools/ocr-pdf" },
|
{ text: "PDF OCR", link: "/tools/pdf/ocr-pdf" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "Data",
|
text: "Data",
|
||||||
items: [
|
items: [
|
||||||
{ text: "Chart Maker", link: "/tools/chart-maker" },
|
{ text: "Chart Maker", link: "/tools/data/chart-maker" },
|
||||||
{ text: "CSV to Excel", link: "/tools/csv-excel" },
|
{ text: "CSV to Excel", link: "/tools/data/csv-excel" },
|
||||||
{ text: "CSV to JSON", link: "/tools/csv-json" },
|
{ text: "CSV to JSON", link: "/tools/data/csv-json" },
|
||||||
{ text: "JSON to XML", link: "/tools/json-xml" },
|
{ text: "JSON to XML", link: "/tools/data/json-xml" },
|
||||||
{ text: "Split CSV", link: "/tools/split-csv" },
|
{ text: "Split CSV", link: "/tools/data/split-csv" },
|
||||||
{ text: "Merge CSVs", link: "/tools/merge-csvs" },
|
{ text: "Merge CSVs", link: "/tools/data/merge-csvs" },
|
||||||
{ text: "YAML / JSON", link: "/tools/yaml-json" },
|
{ text: "YAML / JSON", link: "/tools/data/yaml-json" },
|
||||||
{ text: "XML to CSV", link: "/tools/xml-to-csv" },
|
{ text: "XML to CSV", link: "/tools/data/xml-to-csv" },
|
||||||
{ text: "Create ZIP", link: "/tools/create-zip" },
|
{ text: "Create ZIP", link: "/tools/data/create-zip" },
|
||||||
{ text: "Extract ZIP", link: "/tools/extract-zip" },
|
{ text: "Extract ZIP", link: "/tools/data/extract-zip" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
+2
-2
@@ -240,7 +240,7 @@ Analyzes the image and applies automatic corrections for exposure, contrast, whi
|
|||||||
| `corrections.sharpness` | boolean | true | Apply sharpness correction |
|
| `corrections.sharpness` | boolean | true | Apply sharpness correction |
|
||||||
| `corrections.denoise` | boolean | true | Apply denoising |
|
| `corrections.denoise` | boolean | true | Apply denoising |
|
||||||
|
|
||||||
An additional analysis endpoint is available at `POST /api/v1/tools/image-enhancement/analyze` which returns the detected corrections without applying them.
|
An additional analysis endpoint is available at `POST /api/v1/tools/image/image-enhancement/analyze` which returns the detected corrections without applying them.
|
||||||
|
|
||||||
## Content-Aware Resize (Seam Carving)
|
## Content-Aware Resize (Seam Carving)
|
||||||
|
|
||||||
@@ -279,7 +279,7 @@ Fixes "fake transparent" PNGs where the background was removed but left behind f
|
|||||||
| `outputFormat` | `"png"` \| `"webp"` | `"png"` | Output image format |
|
| `outputFormat` | `"png"` \| `"webp"` | `"png"` | Output image format |
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/transparency-fixer \
|
curl -X POST http://localhost:1349/api/v1/tools/image/transparency-fixer \
|
||||||
-H "Authorization: Bearer <token>" \
|
-H "Authorization: Bearer <token>" \
|
||||||
-F "file=@fake-transparent.png" \
|
-F "file=@fake-transparent.png" \
|
||||||
-F 'settings={"defringe":30,"outputFormat":"png"}'
|
-F 'settings={"defringe":30,"outputFormat":"png"}'
|
||||||
|
|||||||
+16
-16
@@ -25,7 +25,7 @@ curl -X POST http://localhost:1349/api/auth/login \
|
|||||||
# Returns: {"token":"<session-token>"}
|
# Returns: {"token":"<session-token>"}
|
||||||
|
|
||||||
# Use token
|
# Use token
|
||||||
curl http://localhost:1349/api/v1/tools/resize \
|
curl http://localhost:1349/api/v1/tools/image/resize \
|
||||||
-H "Authorization: Bearer <session-token>"
|
-H "Authorization: Bearer <session-token>"
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ curl -X POST http://localhost:1349/api/v1/api-keys \
|
|||||||
# Returns: {"key":"si_<96 hex chars>","id":"...","name":"my-script"}
|
# Returns: {"key":"si_<96 hex chars>","id":"...","name":"my-script"}
|
||||||
|
|
||||||
# Use the key
|
# Use the key
|
||||||
curl http://localhost:1349/api/v1/tools/resize \
|
curl http://localhost:1349/api/v1/tools/image/resize \
|
||||||
-H "Authorization: Bearer si_<your-key>"
|
-H "Authorization: Bearer si_<your-key>"
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -329,7 +329,7 @@ All AI tools run on your hardware (CPU or NVIDIA GPU). No internet required.
|
|||||||
|
|
||||||
Capture a webpage as an image. Unlike other tools, this endpoint accepts `application/json` instead of multipart form data (no file upload needed).
|
Capture a webpage as an image. Unlike other tools, this endpoint accepts `application/json` instead of multipart form data (no file upload needed).
|
||||||
|
|
||||||
**Endpoint:** `POST /api/v1/tools/html-to-image`
|
**Endpoint:** `POST /api/v1/tools/image/html-to-image`
|
||||||
|
|
||||||
**Content-Type:** `application/json`
|
**Content-Type:** `application/json`
|
||||||
|
|
||||||
@@ -346,7 +346,7 @@ Capture a webpage as an image. Unlike other tools, this endpoint accepts `applic
|
|||||||
**Example:**
|
**Example:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/html-to-image \
|
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \
|
||||||
-H "Authorization: Bearer $TOKEN" \
|
-H "Authorization: Bearer $TOKEN" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"url": "https://snapotter.com", "format": "png", "devicePreset": "desktop"}'
|
-d '{"url": "https://snapotter.com", "format": "png", "devicePreset": "desktop"}'
|
||||||
@@ -369,24 +369,24 @@ Some tools expose additional endpoints beyond the standard `POST /api/v1/tools/<
|
|||||||
|
|
||||||
| Method | Path | Description |
|
| Method | Path | Description |
|
||||||
|--------|------|-------------|
|
|--------|------|-------------|
|
||||||
| `POST` | `/api/v1/tools/remove-background/effects` | Apply background effects (color/gradient/blur/shadow) without re-running AI. Uses cached mask from initial removal. |
|
| `POST` | `/api/v1/tools/image/remove-background/effects` | Apply background effects (color/gradient/blur/shadow) without re-running AI. Uses cached mask from initial removal. |
|
||||||
| `POST` | `/api/v1/tools/edit-metadata/inspect` | Read existing EXIF/IPTC/XMP metadata from an image |
|
| `POST` | `/api/v1/tools/image/edit-metadata/inspect` | Read existing EXIF/IPTC/XMP metadata from an image |
|
||||||
| `POST` | `/api/v1/tools/strip-metadata/inspect` | Inspect metadata fields before stripping |
|
| `POST` | `/api/v1/tools/image/strip-metadata/inspect` | Inspect metadata fields before stripping |
|
||||||
| `POST` | `/api/v1/tools/passport-photo/analyze` | Phase 1: AI face detection + background removal. Returns face landmarks and cached data. |
|
| `POST` | `/api/v1/tools/image/passport-photo/analyze` | Phase 1: AI face detection + background removal. Returns face landmarks and cached data. |
|
||||||
| `POST` | `/api/v1/tools/passport-photo/generate` | Phase 2: Crop, resize, and tile using cached analysis. No AI re-run. |
|
| `POST` | `/api/v1/tools/image/passport-photo/generate` | Phase 2: Crop, resize, and tile using cached analysis. No AI re-run. |
|
||||||
| `POST` | `/api/v1/tools/gif-tools/info` | Get GIF metadata (frame count, dimensions, duration) |
|
| `POST` | `/api/v1/tools/image/gif-tools/info` | Get GIF metadata (frame count, dimensions, duration) |
|
||||||
| `POST` | `/api/v1/tools/pdf-to-image/info` | Get PDF metadata (page count, dimensions) |
|
| `POST` | `/api/v1/tools/pdf/pdf-to-image/info` | Get PDF metadata (page count, dimensions) |
|
||||||
| `POST` | `/api/v1/tools/pdf-to-image/preview` | Generate a preview of a specific PDF page |
|
| `POST` | `/api/v1/tools/pdf/pdf-to-image/preview` | Generate a preview of a specific PDF page |
|
||||||
| `POST` | `/api/v1/tools/svg-to-raster/batch` | Batch convert multiple SVGs to raster |
|
| `POST` | `/api/v1/tools/image/svg-to-raster/batch` | Batch convert multiple SVGs to raster |
|
||||||
| `POST` | `/api/v1/tools/image-enhancement/analyze` | Analyze image quality and return enhancement recommendations |
|
| `POST` | `/api/v1/tools/image/image-enhancement/analyze` | Analyze image quality and return enhancement recommendations |
|
||||||
| `POST` | `/api/v1/tools/optimize-for-web/preview` | Lightweight preview for live parameter tuning. Returns optimized image with size headers. |
|
| `POST` | `/api/v1/tools/image/optimize-for-web/preview` | Lightweight preview for live parameter tuning. Returns optimized image with size headers. |
|
||||||
|
|
||||||
## Batch Processing
|
## Batch Processing
|
||||||
|
|
||||||
Apply any tool to multiple files at once. Returns a ZIP archive.
|
Apply any tool to multiple files at once. Returns a ZIP archive.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/compress/batch \
|
curl -X POST http://localhost:1349/api/v1/tools/image/compress/batch \
|
||||||
-H "Authorization: Bearer <token>" \
|
-H "Authorization: Bearer <token>" \
|
||||||
-F "files=@a.jpg" \
|
-F "files=@a.jpg" \
|
||||||
-F "files=@b.jpg" \
|
-F "files=@b.jpg" \
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ Every file you process can be saved to your **Files** library. SnapOtter tracks
|
|||||||
Every tool is accessible via HTTP:
|
Every tool is accessible via HTTP:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/resize \
|
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
|
||||||
-H "Authorization: Bearer si_<your-api-key>" \
|
-H "Authorization: Bearer si_<your-api-key>" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"width":800,"height":600,"fit":"cover"}'
|
-F 'settings={"width":800,"height":600,"fit":"cover"}'
|
||||||
|
|||||||
@@ -0,0 +1,314 @@
|
|||||||
|
/tools/adjust-colors /tools/image/adjust-colors 301
|
||||||
|
/tools/adjust-colors.html /tools/image/adjust-colors 301
|
||||||
|
/tools/ai-canvas-expand /tools/image/ai-canvas-expand 301
|
||||||
|
/tools/ai-canvas-expand.html /tools/image/ai-canvas-expand 301
|
||||||
|
/tools/aspect-pad /tools/video/aspect-pad 301
|
||||||
|
/tools/aspect-pad.html /tools/video/aspect-pad 301
|
||||||
|
/tools/audio-channels /tools/audio/audio-channels 301
|
||||||
|
/tools/audio-channels.html /tools/audio/audio-channels 301
|
||||||
|
/tools/audio-metadata /tools/audio/audio-metadata 301
|
||||||
|
/tools/audio-metadata.html /tools/audio/audio-metadata 301
|
||||||
|
/tools/audio-speed /tools/audio/audio-speed 301
|
||||||
|
/tools/audio-speed.html /tools/audio/audio-speed 301
|
||||||
|
/tools/auto-subtitles /tools/video/auto-subtitles 301
|
||||||
|
/tools/auto-subtitles.html /tools/video/auto-subtitles 301
|
||||||
|
/tools/background-replace /tools/image/background-replace 301
|
||||||
|
/tools/background-replace.html /tools/image/background-replace 301
|
||||||
|
/tools/barcode-generate /tools/image/barcode-generate 301
|
||||||
|
/tools/barcode-generate.html /tools/image/barcode-generate 301
|
||||||
|
/tools/barcode-read /tools/image/barcode-read 301
|
||||||
|
/tools/barcode-read.html /tools/image/barcode-read 301
|
||||||
|
/tools/beautify /tools/image/beautify 301
|
||||||
|
/tools/beautify.html /tools/image/beautify 301
|
||||||
|
/tools/blur-background /tools/image/blur-background 301
|
||||||
|
/tools/blur-background.html /tools/image/blur-background 301
|
||||||
|
/tools/blur-faces /tools/image/blur-faces 301
|
||||||
|
/tools/blur-faces.html /tools/image/blur-faces 301
|
||||||
|
/tools/blur-pad /tools/video/blur-pad 301
|
||||||
|
/tools/blur-pad.html /tools/video/blur-pad 301
|
||||||
|
/tools/booklet-pdf /tools/pdf/booklet-pdf 301
|
||||||
|
/tools/booklet-pdf.html /tools/pdf/booklet-pdf 301
|
||||||
|
/tools/border /tools/image/border 301
|
||||||
|
/tools/border.html /tools/image/border 301
|
||||||
|
/tools/bulk-rename /tools/image/bulk-rename 301
|
||||||
|
/tools/bulk-rename.html /tools/image/bulk-rename 301
|
||||||
|
/tools/burn-subtitles /tools/video/burn-subtitles 301
|
||||||
|
/tools/burn-subtitles.html /tools/video/burn-subtitles 301
|
||||||
|
/tools/change-fps /tools/video/change-fps 301
|
||||||
|
/tools/change-fps.html /tools/video/change-fps 301
|
||||||
|
/tools/chart-maker /tools/data/chart-maker 301
|
||||||
|
/tools/chart-maker.html /tools/data/chart-maker 301
|
||||||
|
/tools/circle-crop /tools/image/circle-crop 301
|
||||||
|
/tools/circle-crop.html /tools/image/circle-crop 301
|
||||||
|
/tools/collage /tools/image/collage 301
|
||||||
|
/tools/collage.html /tools/image/collage 301
|
||||||
|
/tools/color-blindness /tools/image/color-blindness 301
|
||||||
|
/tools/color-blindness.html /tools/image/color-blindness 301
|
||||||
|
/tools/color-palette /tools/image/color-palette 301
|
||||||
|
/tools/color-palette.html /tools/image/color-palette 301
|
||||||
|
/tools/colorize /tools/image/colorize 301
|
||||||
|
/tools/colorize.html /tools/image/colorize 301
|
||||||
|
/tools/compare /tools/image/compare 301
|
||||||
|
/tools/compare.html /tools/image/compare 301
|
||||||
|
/tools/compose /tools/image/compose 301
|
||||||
|
/tools/compose.html /tools/image/compose 301
|
||||||
|
/tools/compress /tools/image/compress 301
|
||||||
|
/tools/compress-pdf /tools/pdf/compress-pdf 301
|
||||||
|
/tools/compress-pdf.html /tools/pdf/compress-pdf 301
|
||||||
|
/tools/compress-video /tools/video/compress-video 301
|
||||||
|
/tools/compress-video.html /tools/video/compress-video 301
|
||||||
|
/tools/compress.html /tools/image/compress 301
|
||||||
|
/tools/content-aware-resize /tools/image/content-aware-resize 301
|
||||||
|
/tools/content-aware-resize.html /tools/image/content-aware-resize 301
|
||||||
|
/tools/convert /tools/image/convert 301
|
||||||
|
/tools/convert-audio /tools/audio/convert-audio 301
|
||||||
|
/tools/convert-audio.html /tools/audio/convert-audio 301
|
||||||
|
/tools/convert-document /tools/pdf/convert-document 301
|
||||||
|
/tools/convert-document.html /tools/pdf/convert-document 301
|
||||||
|
/tools/convert-presentation /tools/pdf/convert-presentation 301
|
||||||
|
/tools/convert-presentation.html /tools/pdf/convert-presentation 301
|
||||||
|
/tools/convert-spreadsheet /tools/pdf/convert-spreadsheet 301
|
||||||
|
/tools/convert-spreadsheet.html /tools/pdf/convert-spreadsheet 301
|
||||||
|
/tools/convert-video /tools/video/convert-video 301
|
||||||
|
/tools/convert-video.html /tools/video/convert-video 301
|
||||||
|
/tools/convert.html /tools/image/convert 301
|
||||||
|
/tools/create-zip /tools/data/create-zip 301
|
||||||
|
/tools/create-zip.html /tools/data/create-zip 301
|
||||||
|
/tools/crop /tools/image/crop 301
|
||||||
|
/tools/crop-pdf /tools/pdf/crop-pdf 301
|
||||||
|
/tools/crop-pdf.html /tools/pdf/crop-pdf 301
|
||||||
|
/tools/crop-video /tools/video/crop-video 301
|
||||||
|
/tools/crop-video.html /tools/video/crop-video 301
|
||||||
|
/tools/crop.html /tools/image/crop 301
|
||||||
|
/tools/csv-excel /tools/data/csv-excel 301
|
||||||
|
/tools/csv-excel.html /tools/data/csv-excel 301
|
||||||
|
/tools/csv-json /tools/data/csv-json 301
|
||||||
|
/tools/csv-json.html /tools/data/csv-json 301
|
||||||
|
/tools/duotone /tools/image/duotone 301
|
||||||
|
/tools/duotone.html /tools/image/duotone 301
|
||||||
|
/tools/edit-metadata /tools/image/edit-metadata 301
|
||||||
|
/tools/edit-metadata.html /tools/image/edit-metadata 301
|
||||||
|
/tools/embed-subtitles /tools/video/embed-subtitles 301
|
||||||
|
/tools/embed-subtitles.html /tools/video/embed-subtitles 301
|
||||||
|
/tools/enhance-faces /tools/image/enhance-faces 301
|
||||||
|
/tools/enhance-faces.html /tools/image/enhance-faces 301
|
||||||
|
/tools/epub-convert /tools/pdf/epub-convert 301
|
||||||
|
/tools/epub-convert.html /tools/pdf/epub-convert 301
|
||||||
|
/tools/erase-object /tools/image/erase-object 301
|
||||||
|
/tools/erase-object.html /tools/image/erase-object 301
|
||||||
|
/tools/excel-to-pdf /tools/pdf/excel-to-pdf 301
|
||||||
|
/tools/excel-to-pdf.html /tools/pdf/excel-to-pdf 301
|
||||||
|
/tools/extract-audio /tools/video/extract-audio 301
|
||||||
|
/tools/extract-audio.html /tools/video/extract-audio 301
|
||||||
|
/tools/extract-pages /tools/pdf/extract-pages 301
|
||||||
|
/tools/extract-pages.html /tools/pdf/extract-pages 301
|
||||||
|
/tools/extract-subtitles /tools/video/extract-subtitles 301
|
||||||
|
/tools/extract-subtitles.html /tools/video/extract-subtitles 301
|
||||||
|
/tools/extract-zip /tools/data/extract-zip 301
|
||||||
|
/tools/extract-zip.html /tools/data/extract-zip 301
|
||||||
|
/tools/fade-audio /tools/audio/fade-audio 301
|
||||||
|
/tools/fade-audio.html /tools/audio/fade-audio 301
|
||||||
|
/tools/favicon /tools/image/favicon 301
|
||||||
|
/tools/favicon.html /tools/image/favicon 301
|
||||||
|
/tools/find-duplicates /tools/image/find-duplicates 301
|
||||||
|
/tools/find-duplicates.html /tools/image/find-duplicates 301
|
||||||
|
/tools/flatten-pdf /tools/pdf/flatten-pdf 301
|
||||||
|
/tools/flatten-pdf.html /tools/pdf/flatten-pdf 301
|
||||||
|
/tools/gif-to-video /tools/video/gif-to-video 301
|
||||||
|
/tools/gif-to-video.html /tools/video/gif-to-video 301
|
||||||
|
/tools/gif-tools /tools/image/gif-tools 301
|
||||||
|
/tools/gif-tools.html /tools/image/gif-tools 301
|
||||||
|
/tools/gif-webp /tools/image/gif-webp 301
|
||||||
|
/tools/gif-webp.html /tools/image/gif-webp 301
|
||||||
|
/tools/grayscale-pdf /tools/pdf/grayscale-pdf 301
|
||||||
|
/tools/grayscale-pdf.html /tools/pdf/grayscale-pdf 301
|
||||||
|
/tools/histogram /tools/image/histogram 301
|
||||||
|
/tools/histogram.html /tools/image/histogram 301
|
||||||
|
/tools/html-to-image /tools/image/html-to-image 301
|
||||||
|
/tools/html-to-image.html /tools/image/html-to-image 301
|
||||||
|
/tools/html-to-pdf /tools/pdf/html-to-pdf 301
|
||||||
|
/tools/html-to-pdf.html /tools/pdf/html-to-pdf 301
|
||||||
|
/tools/image-enhancement /tools/image/image-enhancement 301
|
||||||
|
/tools/image-enhancement.html /tools/image/image-enhancement 301
|
||||||
|
/tools/image-pad /tools/image/image-pad 301
|
||||||
|
/tools/image-pad.html /tools/image/image-pad 301
|
||||||
|
/tools/image-to-base64 /tools/image/image-to-base64 301
|
||||||
|
/tools/image-to-base64.html /tools/image/image-to-base64 301
|
||||||
|
/tools/image-to-pdf /tools/image/image-to-pdf 301
|
||||||
|
/tools/image-to-pdf.html /tools/image/image-to-pdf 301
|
||||||
|
/tools/images-to-video /tools/video/images-to-video 301
|
||||||
|
/tools/images-to-video.html /tools/video/images-to-video 301
|
||||||
|
/tools/info /tools/image/info 301
|
||||||
|
/tools/info.html /tools/image/info 301
|
||||||
|
/tools/json-xml /tools/data/json-xml 301
|
||||||
|
/tools/json-xml.html /tools/data/json-xml 301
|
||||||
|
/tools/linearize-pdf /tools/pdf/linearize-pdf 301
|
||||||
|
/tools/linearize-pdf.html /tools/pdf/linearize-pdf 301
|
||||||
|
/tools/lqip-placeholder /tools/image/lqip-placeholder 301
|
||||||
|
/tools/lqip-placeholder.html /tools/image/lqip-placeholder 301
|
||||||
|
/tools/markdown-to-docx /tools/pdf/markdown-to-docx 301
|
||||||
|
/tools/markdown-to-docx.html /tools/pdf/markdown-to-docx 301
|
||||||
|
/tools/markdown-to-html /tools/pdf/markdown-to-html 301
|
||||||
|
/tools/markdown-to-html.html /tools/pdf/markdown-to-html 301
|
||||||
|
/tools/markdown-to-pdf /tools/pdf/markdown-to-pdf 301
|
||||||
|
/tools/markdown-to-pdf.html /tools/pdf/markdown-to-pdf 301
|
||||||
|
/tools/meme-generator /tools/image/meme-generator 301
|
||||||
|
/tools/meme-generator.html /tools/image/meme-generator 301
|
||||||
|
/tools/merge-audio /tools/audio/merge-audio 301
|
||||||
|
/tools/merge-audio.html /tools/audio/merge-audio 301
|
||||||
|
/tools/merge-csvs /tools/data/merge-csvs 301
|
||||||
|
/tools/merge-csvs.html /tools/data/merge-csvs 301
|
||||||
|
/tools/merge-pdf /tools/pdf/merge-pdf 301
|
||||||
|
/tools/merge-pdf.html /tools/pdf/merge-pdf 301
|
||||||
|
/tools/merge-videos /tools/video/merge-videos 301
|
||||||
|
/tools/merge-videos.html /tools/video/merge-videos 301
|
||||||
|
/tools/mute-video /tools/video/mute-video 301
|
||||||
|
/tools/mute-video.html /tools/video/mute-video 301
|
||||||
|
/tools/noise-reduction /tools/audio/noise-reduction 301
|
||||||
|
/tools/noise-reduction.html /tools/audio/noise-reduction 301
|
||||||
|
/tools/noise-removal /tools/image/noise-removal 301
|
||||||
|
/tools/noise-removal.html /tools/image/noise-removal 301
|
||||||
|
/tools/normalize-audio /tools/audio/normalize-audio 301
|
||||||
|
/tools/normalize-audio.html /tools/audio/normalize-audio 301
|
||||||
|
/tools/nup-pdf /tools/pdf/nup-pdf 301
|
||||||
|
/tools/nup-pdf.html /tools/pdf/nup-pdf 301
|
||||||
|
/tools/ocr /tools/image/ocr 301
|
||||||
|
/tools/ocr-pdf /tools/pdf/ocr-pdf 301
|
||||||
|
/tools/ocr-pdf.html /tools/pdf/ocr-pdf 301
|
||||||
|
/tools/ocr.html /tools/image/ocr 301
|
||||||
|
/tools/optimize-for-web /tools/image/optimize-for-web 301
|
||||||
|
/tools/optimize-for-web.html /tools/image/optimize-for-web 301
|
||||||
|
/tools/organize-pdf /tools/pdf/organize-pdf 301
|
||||||
|
/tools/organize-pdf.html /tools/pdf/organize-pdf 301
|
||||||
|
/tools/passport-photo /tools/image/passport-photo 301
|
||||||
|
/tools/passport-photo.html /tools/image/passport-photo 301
|
||||||
|
/tools/pdf-metadata /tools/pdf/pdf-metadata 301
|
||||||
|
/tools/pdf-metadata.html /tools/pdf/pdf-metadata 301
|
||||||
|
/tools/pdf-page-numbers /tools/pdf/pdf-page-numbers 301
|
||||||
|
/tools/pdf-page-numbers.html /tools/pdf/pdf-page-numbers 301
|
||||||
|
/tools/pdf-to-image /tools/pdf/pdf-to-image 301
|
||||||
|
/tools/pdf-to-image.html /tools/pdf/pdf-to-image 301
|
||||||
|
/tools/pdf-to-text /tools/pdf/pdf-to-text 301
|
||||||
|
/tools/pdf-to-text.html /tools/pdf/pdf-to-text 301
|
||||||
|
/tools/pdf-to-word /tools/pdf/pdf-to-word 301
|
||||||
|
/tools/pdf-to-word.html /tools/pdf/pdf-to-word 301
|
||||||
|
/tools/pdfa-convert /tools/pdf/pdfa-convert 301
|
||||||
|
/tools/pdfa-convert.html /tools/pdf/pdfa-convert 301
|
||||||
|
/tools/pitch-shift /tools/audio/pitch-shift 301
|
||||||
|
/tools/pitch-shift.html /tools/audio/pitch-shift 301
|
||||||
|
/tools/pixelate /tools/image/pixelate 301
|
||||||
|
/tools/pixelate.html /tools/image/pixelate 301
|
||||||
|
/tools/powerpoint-to-pdf /tools/pdf/powerpoint-to-pdf 301
|
||||||
|
/tools/powerpoint-to-pdf.html /tools/pdf/powerpoint-to-pdf 301
|
||||||
|
/tools/protect-pdf /tools/pdf/protect-pdf 301
|
||||||
|
/tools/protect-pdf.html /tools/pdf/protect-pdf 301
|
||||||
|
/tools/qr-generate /tools/image/qr-generate 301
|
||||||
|
/tools/qr-generate.html /tools/image/qr-generate 301
|
||||||
|
/tools/red-eye-removal /tools/image/red-eye-removal 301
|
||||||
|
/tools/red-eye-removal.html /tools/image/red-eye-removal 301
|
||||||
|
/tools/redact-pdf /tools/pdf/redact-pdf 301
|
||||||
|
/tools/redact-pdf.html /tools/pdf/redact-pdf 301
|
||||||
|
/tools/remove-background /tools/image/remove-background 301
|
||||||
|
/tools/remove-background.html /tools/image/remove-background 301
|
||||||
|
/tools/remove-pages /tools/pdf/remove-pages 301
|
||||||
|
/tools/remove-pages.html /tools/pdf/remove-pages 301
|
||||||
|
/tools/repair-pdf /tools/pdf/repair-pdf 301
|
||||||
|
/tools/repair-pdf.html /tools/pdf/repair-pdf 301
|
||||||
|
/tools/replace-audio /tools/video/replace-audio 301
|
||||||
|
/tools/replace-audio.html /tools/video/replace-audio 301
|
||||||
|
/tools/replace-color /tools/image/replace-color 301
|
||||||
|
/tools/replace-color.html /tools/image/replace-color 301
|
||||||
|
/tools/resize /tools/image/resize 301
|
||||||
|
/tools/resize-video /tools/video/resize-video 301
|
||||||
|
/tools/resize-video.html /tools/video/resize-video 301
|
||||||
|
/tools/resize.html /tools/image/resize 301
|
||||||
|
/tools/restore-photo /tools/image/restore-photo 301
|
||||||
|
/tools/restore-photo.html /tools/image/restore-photo 301
|
||||||
|
/tools/reverse-audio /tools/audio/reverse-audio 301
|
||||||
|
/tools/reverse-audio.html /tools/audio/reverse-audio 301
|
||||||
|
/tools/reverse-video /tools/video/reverse-video 301
|
||||||
|
/tools/reverse-video.html /tools/video/reverse-video 301
|
||||||
|
/tools/ringtone-maker /tools/audio/ringtone-maker 301
|
||||||
|
/tools/ringtone-maker.html /tools/audio/ringtone-maker 301
|
||||||
|
/tools/rotate /tools/image/rotate 301
|
||||||
|
/tools/rotate-pdf /tools/pdf/rotate-pdf 301
|
||||||
|
/tools/rotate-pdf.html /tools/pdf/rotate-pdf 301
|
||||||
|
/tools/rotate-video /tools/video/rotate-video 301
|
||||||
|
/tools/rotate-video.html /tools/video/rotate-video 301
|
||||||
|
/tools/rotate.html /tools/image/rotate 301
|
||||||
|
/tools/sharpening /tools/image/sharpening 301
|
||||||
|
/tools/sharpening.html /tools/image/sharpening 301
|
||||||
|
/tools/silence-removal /tools/audio/silence-removal 301
|
||||||
|
/tools/silence-removal.html /tools/audio/silence-removal 301
|
||||||
|
/tools/smart-crop /tools/image/smart-crop 301
|
||||||
|
/tools/smart-crop.html /tools/image/smart-crop 301
|
||||||
|
/tools/split /tools/image/split 301
|
||||||
|
/tools/split-audio /tools/audio/split-audio 301
|
||||||
|
/tools/split-audio.html /tools/audio/split-audio 301
|
||||||
|
/tools/split-csv /tools/data/split-csv 301
|
||||||
|
/tools/split-csv.html /tools/data/split-csv 301
|
||||||
|
/tools/split-pdf /tools/pdf/split-pdf 301
|
||||||
|
/tools/split-pdf.html /tools/pdf/split-pdf 301
|
||||||
|
/tools/split.html /tools/image/split 301
|
||||||
|
/tools/sprite-sheet /tools/image/sprite-sheet 301
|
||||||
|
/tools/sprite-sheet.html /tools/image/sprite-sheet 301
|
||||||
|
/tools/stabilize-video /tools/video/stabilize-video 301
|
||||||
|
/tools/stabilize-video.html /tools/video/stabilize-video 301
|
||||||
|
/tools/stitch /tools/image/stitch 301
|
||||||
|
/tools/stitch.html /tools/image/stitch 301
|
||||||
|
/tools/strip-metadata /tools/image/strip-metadata 301
|
||||||
|
/tools/strip-metadata.html /tools/image/strip-metadata 301
|
||||||
|
/tools/svg-to-raster /tools/image/svg-to-raster 301
|
||||||
|
/tools/svg-to-raster.html /tools/image/svg-to-raster 301
|
||||||
|
/tools/text-overlay /tools/image/text-overlay 301
|
||||||
|
/tools/text-overlay.html /tools/image/text-overlay 301
|
||||||
|
/tools/to-epub /tools/pdf/to-epub 301
|
||||||
|
/tools/to-epub.html /tools/pdf/to-epub 301
|
||||||
|
/tools/transcribe-audio /tools/audio/transcribe-audio 301
|
||||||
|
/tools/transcribe-audio.html /tools/audio/transcribe-audio 301
|
||||||
|
/tools/transparency-fixer /tools/image/transparency-fixer 301
|
||||||
|
/tools/transparency-fixer.html /tools/image/transparency-fixer 301
|
||||||
|
/tools/trim-audio /tools/audio/trim-audio 301
|
||||||
|
/tools/trim-audio.html /tools/audio/trim-audio 301
|
||||||
|
/tools/trim-video /tools/video/trim-video 301
|
||||||
|
/tools/trim-video.html /tools/video/trim-video 301
|
||||||
|
/tools/unlock-pdf /tools/pdf/unlock-pdf 301
|
||||||
|
/tools/unlock-pdf.html /tools/pdf/unlock-pdf 301
|
||||||
|
/tools/upscale /tools/image/upscale 301
|
||||||
|
/tools/upscale.html /tools/image/upscale 301
|
||||||
|
/tools/vectorize /tools/image/vectorize 301
|
||||||
|
/tools/vectorize.html /tools/image/vectorize 301
|
||||||
|
/tools/video-color /tools/video/video-color 301
|
||||||
|
/tools/video-color.html /tools/video/video-color 301
|
||||||
|
/tools/video-loudnorm /tools/video/video-loudnorm 301
|
||||||
|
/tools/video-loudnorm.html /tools/video/video-loudnorm 301
|
||||||
|
/tools/video-metadata /tools/video/video-metadata 301
|
||||||
|
/tools/video-metadata.html /tools/video/video-metadata 301
|
||||||
|
/tools/video-speed /tools/video/video-speed 301
|
||||||
|
/tools/video-speed.html /tools/video/video-speed 301
|
||||||
|
/tools/video-to-frames /tools/video/video-to-frames 301
|
||||||
|
/tools/video-to-frames.html /tools/video/video-to-frames 301
|
||||||
|
/tools/video-to-gif /tools/video/video-to-gif 301
|
||||||
|
/tools/video-to-gif.html /tools/video/video-to-gif 301
|
||||||
|
/tools/video-to-webp /tools/video/video-to-webp 301
|
||||||
|
/tools/video-to-webp.html /tools/video/video-to-webp 301
|
||||||
|
/tools/vignette /tools/image/vignette 301
|
||||||
|
/tools/vignette.html /tools/image/vignette 301
|
||||||
|
/tools/volume-adjust /tools/audio/volume-adjust 301
|
||||||
|
/tools/volume-adjust.html /tools/audio/volume-adjust 301
|
||||||
|
/tools/watermark-image /tools/image/watermark-image 301
|
||||||
|
/tools/watermark-image.html /tools/image/watermark-image 301
|
||||||
|
/tools/watermark-pdf /tools/pdf/watermark-pdf 301
|
||||||
|
/tools/watermark-pdf.html /tools/pdf/watermark-pdf 301
|
||||||
|
/tools/watermark-text /tools/image/watermark-text 301
|
||||||
|
/tools/watermark-text.html /tools/image/watermark-text 301
|
||||||
|
/tools/watermark-video /tools/video/watermark-video 301
|
||||||
|
/tools/watermark-video.html /tools/video/watermark-video 301
|
||||||
|
/tools/waveform-image /tools/audio/waveform-image 301
|
||||||
|
/tools/waveform-image.html /tools/audio/waveform-image 301
|
||||||
|
/tools/word-to-pdf /tools/pdf/word-to-pdf 301
|
||||||
|
/tools/word-to-pdf.html /tools/pdf/word-to-pdf 301
|
||||||
|
/tools/xml-to-csv /tools/data/xml-to-csv 301
|
||||||
|
/tools/xml-to-csv.html /tools/data/xml-to-csv 301
|
||||||
|
/tools/yaml-json /tools/data/yaml-json 301
|
||||||
|
/tools/yaml-json.html /tools/data/yaml-json 301
|
||||||
@@ -8,7 +8,7 @@ Convert audio between mono and stereo layouts, or swap the left and right channe
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/audio-channels`
|
`POST /api/v1/tools/audio/audio-channels`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/audio-channels \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/audio-channels \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"mode": "stereo-to-mono"}'
|
-F 'settings={"mode": "stereo-to-mono"}'
|
||||||
@@ -8,7 +8,7 @@ View, edit, or strip audio metadata tags such as title, artist, and album (ID3 a
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/audio-metadata`
|
`POST /api/v1/tools/audio/audio-metadata`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
Edit metadata tags:
|
Edit metadata tags:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/audio-metadata \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/audio-metadata \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"title": "My Song", "artist": "Artist Name", "album": "Album Name"}'
|
-F 'settings={"title": "My Song", "artist": "Artist Name", "album": "Album Name"}'
|
||||||
@@ -35,7 +35,7 @@ curl -X POST http://localhost:1349/api/v1/tools/audio-metadata \
|
|||||||
Strip all metadata:
|
Strip all metadata:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/audio-metadata \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/audio-metadata \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"strip": true}'
|
-F 'settings={"strip": true}'
|
||||||
@@ -8,7 +8,7 @@ Speed up or slow down audio playback by applying a speed multiplier.
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/audio-speed`
|
`POST /api/v1/tools/audio/audio-speed`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/audio-speed \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/audio-speed \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"factor": 2}'
|
-F 'settings={"factor": 2}'
|
||||||
@@ -8,7 +8,7 @@ Convert audio files between common formats including MP3, WAV, OGG, FLAC, and M4
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/convert-audio`
|
`POST /api/v1/tools/audio/convert-audio`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/convert-audio \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/convert-audio \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"format": "flac", "bitrateKbps": 256}'
|
-F 'settings={"format": "flac", "bitrateKbps": 256}'
|
||||||
@@ -8,7 +8,7 @@ Add fade-in and fade-out effects to the beginning and end of an audio file.
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/fade-audio`
|
`POST /api/v1/tools/audio/fade-audio`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/fade-audio \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/fade-audio \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"fadeInS": 2, "fadeOutS": 3}'
|
-F 'settings={"fadeInS": 2, "fadeOutS": 3}'
|
||||||
@@ -8,7 +8,7 @@ Combine two or more audio files into a single sequential track, concatenated in
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/merge-audio`
|
`POST /api/v1/tools/audio/merge-audio`
|
||||||
|
|
||||||
Accepts multipart form data with multiple audio files and a JSON `settings` field.
|
Accepts multipart form data with multiple audio files and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Accepts multipart form data with multiple audio files and a JSON `settings` fiel
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/merge-audio \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/merge-audio \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@intro.mp3" \
|
-F "file=@intro.mp3" \
|
||||||
-F "file=@main.mp3" \
|
-F "file=@main.mp3" \
|
||||||
@@ -8,7 +8,7 @@ Reduce background noise in an audio file using FFT-based denoising with selectab
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/noise-reduction`
|
`POST /api/v1/tools/audio/noise-reduction`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/noise-reduction \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/noise-reduction \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"strength": "strong"}'
|
-F 'settings={"strength": "strong"}'
|
||||||
@@ -8,7 +8,7 @@ Even out audio loudness to broadcast standard levels using EBU R128 normalizatio
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/normalize-audio`
|
`POST /api/v1/tools/audio/normalize-audio`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ This tool has no configurable parameters. It applies EBU R128 loudness normaliza
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/normalize-audio \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/normalize-audio \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3"
|
-F "file=@audio.mp3"
|
||||||
```
|
```
|
||||||
@@ -8,7 +8,7 @@ Raise or lower the pitch of an audio file by a number of semitones without chang
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/pitch-shift`
|
`POST /api/v1/tools/audio/pitch-shift`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/pitch-shift \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/pitch-shift \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"semitones": -5}'
|
-F 'settings={"semitones": -5}'
|
||||||
@@ -8,7 +8,7 @@ Reverse an audio file so it plays backwards.
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/reverse-audio`
|
`POST /api/v1/tools/audio/reverse-audio`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ This tool has no configurable parameters. The entire audio file is reversed.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/reverse-audio \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/reverse-audio \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3"
|
-F "file=@audio.mp3"
|
||||||
```
|
```
|
||||||
@@ -8,7 +8,7 @@ Create a ringtone clip (.m4r) from any audio file by selecting a start time and
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/ringtone-maker`
|
`POST /api/v1/tools/audio/ringtone-maker`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/ringtone-maker \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/ringtone-maker \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"startS": 15, "durationS": 20}'
|
-F 'settings={"startS": 15, "durationS": 20}'
|
||||||
@@ -8,7 +8,7 @@ Detect and remove silent sections from an audio file based on a configurable thr
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/silence-removal`
|
`POST /api/v1/tools/audio/silence-removal`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/silence-removal \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/silence-removal \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"thresholdDb": -45, "minSilenceS": 1}'
|
-F 'settings={"thresholdDb": -45, "minSilenceS": 1}'
|
||||||
@@ -8,7 +8,7 @@ Split an audio file into segments by fixed time intervals, equal parts, or autom
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/split-audio`
|
`POST /api/v1/tools/audio/split-audio`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
Split into 30-second segments:
|
Split into 30-second segments:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/split-audio \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/split-audio \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"mode": "time", "segmentS": 30}'
|
-F 'settings={"mode": "time", "segmentS": 30}'
|
||||||
@@ -36,7 +36,7 @@ curl -X POST http://localhost:1349/api/v1/tools/split-audio \
|
|||||||
Split by silence detection:
|
Split by silence detection:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/split-audio \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/split-audio \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"mode": "silence", "thresholdDb": -35, "minSilenceS": 0.5}'
|
-F 'settings={"mode": "silence", "thresholdDb": -35, "minSilenceS": 0.5}'
|
||||||
@@ -8,7 +8,7 @@ Convert speech to text using AI-powered transcription (faster-whisper). Supports
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/transcribe-audio`
|
`POST /api/v1/tools/audio/transcribe-audio`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/transcribe-audio \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/transcribe-audio \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"language": "en", "outputFormat": "srt"}'
|
-F 'settings={"language": "en", "outputFormat": "srt"}'
|
||||||
@@ -8,7 +8,7 @@ Cut a section out of an audio file by specifying start and end times in seconds.
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/trim-audio`
|
`POST /api/v1/tools/audio/trim-audio`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/trim-audio \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/trim-audio \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"startS": 10, "endS": 45}'
|
-F 'settings={"startS": 10, "endS": 45}'
|
||||||
@@ -8,7 +8,7 @@ Increase or decrease the volume of an audio file by applying a fixed gain in dec
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/volume-adjust`
|
`POST /api/v1/tools/audio/volume-adjust`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/volume-adjust \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/volume-adjust \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"gainDb": 6}'
|
-F 'settings={"gainDb": 6}'
|
||||||
@@ -8,7 +8,7 @@ Generate a waveform visualization as a PNG image from an audio file, with config
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/waveform-image`
|
`POST /api/v1/tools/audio/waveform-image`
|
||||||
|
|
||||||
Accepts multipart form data with an audio file and a JSON `settings` field.
|
Accepts multipart form data with an audio file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ Accepts multipart form data with an audio file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/waveform-image \
|
curl -X POST http://localhost:1349/api/v1/tools/audio/waveform-image \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@audio.mp3" \
|
-F "file=@audio.mp3" \
|
||||||
-F 'settings={"width": 1920, "height": 400, "color": "#e07832"}'
|
-F 'settings={"width": 1920, "height": 400, "color": "#e07832"}'
|
||||||
@@ -8,7 +8,7 @@ Create bar, line, or pie charts from CSV or JSON data. Returns a PNG image of th
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/chart-maker`
|
`POST /api/v1/tools/data/chart-maker`
|
||||||
|
|
||||||
Accepts multipart form data with a CSV or JSON file and a JSON `settings` field.
|
Accepts multipart form data with a CSV or JSON file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ Accepts multipart form data with a CSV or JSON file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/chart-maker \
|
curl -X POST http://localhost:1349/api/v1/tools/data/chart-maker \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@sales.csv" \
|
-F "file=@sales.csv" \
|
||||||
-F 'settings={"kind": "line", "title": "Monthly Sales", "width": 960, "height": 540}'
|
-F 'settings={"kind": "line", "title": "Monthly Sales", "width": 960, "height": 540}'
|
||||||
@@ -8,7 +8,7 @@ Bundle multiple files of any type into a single ZIP archive. Duplicate filenames
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/create-zip`
|
`POST /api/v1/tools/data/create-zip`
|
||||||
|
|
||||||
Accepts multipart form data with two or more files. No settings field is required.
|
Accepts multipart form data with two or more files. No settings field is required.
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload 2--50 files of any type to bund
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/create-zip \
|
curl -X POST http://localhost:1349/api/v1/tools/data/create-zip \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@report.pdf" \
|
-F "file=@report.pdf" \
|
||||||
-F "file=@data.csv" \
|
-F "file=@data.csv" \
|
||||||
@@ -8,7 +8,7 @@ Convert between CSV and Excel (XLSX) formats in both directions. Upload a CSV or
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/csv-excel`
|
`POST /api/v1/tools/data/csv-excel`
|
||||||
|
|
||||||
Accepts multipart form data with a CSV, TSV, or XLSX file and a JSON `settings` field.
|
Accepts multipart form data with a CSV, TSV, or XLSX file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ Accepts multipart form data with a CSV, TSV, or XLSX file and a JSON `settings`
|
|||||||
CSV to Excel:
|
CSV to Excel:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/csv-excel \
|
curl -X POST http://localhost:1349/api/v1/tools/data/csv-excel \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@data.csv" \
|
-F "file=@data.csv" \
|
||||||
-F 'settings={"sheet": 1}'
|
-F 'settings={"sheet": 1}'
|
||||||
@@ -32,7 +32,7 @@ curl -X POST http://localhost:1349/api/v1/tools/csv-excel \
|
|||||||
Excel to CSV:
|
Excel to CSV:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/csv-excel \
|
curl -X POST http://localhost:1349/api/v1/tools/data/csv-excel \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@report.xlsx" \
|
-F "file=@report.xlsx" \
|
||||||
-F 'settings={"sheet": 2}'
|
-F 'settings={"sheet": 2}'
|
||||||
@@ -8,7 +8,7 @@ Convert between CSV and JSON formats in both directions. Upload a CSV or TSV fil
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/csv-json`
|
`POST /api/v1/tools/data/csv-json`
|
||||||
|
|
||||||
Accepts multipart form data with a CSV, TSV, or JSON file and a JSON `settings` field.
|
Accepts multipart form data with a CSV, TSV, or JSON file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ Accepts multipart form data with a CSV, TSV, or JSON file and a JSON `settings`
|
|||||||
CSV to JSON:
|
CSV to JSON:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/csv-json \
|
curl -X POST http://localhost:1349/api/v1/tools/data/csv-json \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@users.csv" \
|
-F "file=@users.csv" \
|
||||||
-F 'settings={"pretty": true}'
|
-F 'settings={"pretty": true}'
|
||||||
@@ -32,7 +32,7 @@ curl -X POST http://localhost:1349/api/v1/tools/csv-json \
|
|||||||
JSON to CSV:
|
JSON to CSV:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/csv-json \
|
curl -X POST http://localhost:1349/api/v1/tools/data/csv-json \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@users.json" \
|
-F "file=@users.json" \
|
||||||
-F 'settings={}'
|
-F 'settings={}'
|
||||||
@@ -8,7 +8,7 @@ Safely extract files from a ZIP archive. Single-file archives return the contain
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/extract-zip`
|
`POST /api/v1/tools/data/extract-zip`
|
||||||
|
|
||||||
Accepts multipart form data with a ZIP file. No settings field is required.
|
Accepts multipart form data with a ZIP file. No settings field is required.
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload a `.zip` file to extract.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/extract-zip \
|
curl -X POST http://localhost:1349/api/v1/tools/data/extract-zip \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@archive.zip"
|
-F "file=@archive.zip"
|
||||||
```
|
```
|
||||||
@@ -8,7 +8,7 @@ Convert between JSON and XML formats in both directions. Upload a JSON file to g
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/json-xml`
|
`POST /api/v1/tools/data/json-xml`
|
||||||
|
|
||||||
Accepts multipart form data with a JSON or XML file and a JSON `settings` field.
|
Accepts multipart form data with a JSON or XML file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ Accepts multipart form data with a JSON or XML file and a JSON `settings` field.
|
|||||||
JSON to XML:
|
JSON to XML:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/json-xml \
|
curl -X POST http://localhost:1349/api/v1/tools/data/json-xml \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@config.json" \
|
-F "file=@config.json" \
|
||||||
-F 'settings={"pretty": true}'
|
-F 'settings={"pretty": true}'
|
||||||
@@ -32,7 +32,7 @@ curl -X POST http://localhost:1349/api/v1/tools/json-xml \
|
|||||||
XML to JSON:
|
XML to JSON:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/json-xml \
|
curl -X POST http://localhost:1349/api/v1/tools/data/json-xml \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@config.xml" \
|
-F "file=@config.xml" \
|
||||||
-F 'settings={"pretty": true}'
|
-F 'settings={"pretty": true}'
|
||||||
@@ -8,7 +8,7 @@ Combine multiple CSV or TSV files with matching columns into a single merged fil
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/merge-csvs`
|
`POST /api/v1/tools/data/merge-csvs`
|
||||||
|
|
||||||
Accepts multipart form data with two or more CSV files. No settings field is required.
|
Accepts multipart form data with two or more CSV files. No settings field is required.
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ This tool has no configurable parameters. Upload 2--20 CSV or TSV files with mat
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/merge-csvs \
|
curl -X POST http://localhost:1349/api/v1/tools/data/merge-csvs \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@january.csv" \
|
-F "file=@january.csv" \
|
||||||
-F "file=@february.csv" \
|
-F "file=@february.csv" \
|
||||||
@@ -8,7 +8,7 @@ Split a large CSV or TSV file into smaller files by row count. Returns a ZIP arc
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/split-csv`
|
`POST /api/v1/tools/data/split-csv`
|
||||||
|
|
||||||
Accepts multipart form data with a CSV file and a JSON `settings` field.
|
Accepts multipart form data with a CSV file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ Accepts multipart form data with a CSV file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/split-csv \
|
curl -X POST http://localhost:1349/api/v1/tools/data/split-csv \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@large-dataset.csv" \
|
-F "file=@large-dataset.csv" \
|
||||||
-F 'settings={"rowsPerFile": 500, "keepHeader": true}'
|
-F 'settings={"rowsPerFile": 500, "keepHeader": true}'
|
||||||
@@ -8,7 +8,7 @@ Extract repeating elements from an XML file into a flat CSV table. The tool auto
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/xml-to-csv`
|
`POST /api/v1/tools/data/xml-to-csv`
|
||||||
|
|
||||||
Accepts multipart form data with an XML file. No settings field is required.
|
Accepts multipart form data with an XML file. No settings field is required.
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ This tool has no configurable parameters. The repeating element is auto-detected
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/xml-to-csv \
|
curl -X POST http://localhost:1349/api/v1/tools/data/xml-to-csv \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@catalog.xml"
|
-F "file=@catalog.xml"
|
||||||
```
|
```
|
||||||
@@ -40,4 +40,4 @@ curl -X POST http://localhost:1349/api/v1/tools/xml-to-csv \
|
|||||||
- Only `.xml` files are accepted as input.
|
- Only `.xml` files are accepted as input.
|
||||||
- The tool scans the XML tree for the first repeating set of sibling elements and uses those as rows.
|
- The tool scans the XML tree for the first repeating set of sibling elements and uses those as rows.
|
||||||
- Each unique child element or attribute name becomes a CSV column header.
|
- Each unique child element or attribute name becomes a CSV column header.
|
||||||
- This is a one-way conversion. For bidirectional JSON/XML conversion, use the [JSON to XML](/tools/json-xml) tool.
|
- This is a one-way conversion. For bidirectional JSON/XML conversion, use the [JSON to XML](/tools/data/json-xml) tool.
|
||||||
@@ -8,7 +8,7 @@ Convert between YAML and JSON formats in both directions. Upload a YAML file to
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/yaml-json`
|
`POST /api/v1/tools/data/yaml-json`
|
||||||
|
|
||||||
Accepts multipart form data with a YAML or JSON file. No settings field is required.
|
Accepts multipart form data with a YAML or JSON file. No settings field is required.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ This tool has no configurable parameters. The conversion direction is determined
|
|||||||
YAML to JSON:
|
YAML to JSON:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/yaml-json \
|
curl -X POST http://localhost:1349/api/v1/tools/data/yaml-json \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@config.yaml"
|
-F "file=@config.yaml"
|
||||||
```
|
```
|
||||||
@@ -29,7 +29,7 @@ curl -X POST http://localhost:1349/api/v1/tools/yaml-json \
|
|||||||
JSON to YAML:
|
JSON to YAML:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/yaml-json \
|
curl -X POST http://localhost:1349/api/v1/tools/data/yaml-json \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@config.json"
|
-F "file=@config.json"
|
||||||
```
|
```
|
||||||
@@ -8,7 +8,7 @@ Comprehensive color adjustment tool combining brightness, contrast, exposure, sa
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/adjust-colors`
|
`POST /api/v1/tools/image/adjust-colors`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/adjust-colors \
|
curl -X POST http://localhost:1349/api/v1/tools/image/adjust-colors \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"brightness": 20, "contrast": 10, "saturation": -30, "effect": "none"}'
|
-F 'settings={"brightness": 20, "contrast": 10, "saturation": -30, "effect": "none"}'
|
||||||
@@ -41,7 +41,7 @@ curl -X POST http://localhost:1349/api/v1/tools/adjust-colors \
|
|||||||
Apply a warm vintage look:
|
Apply a warm vintage look:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/adjust-colors \
|
curl -X POST http://localhost:1349/api/v1/tools/image/adjust-colors \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"temperature": 40, "saturation": -15, "contrast": 10, "effect": "sepia"}'
|
-F 'settings={"temperature": 40, "saturation": -15, "contrast": 10, "effect": "sepia"}'
|
||||||
@@ -4,7 +4,7 @@ Expand the canvas of an image with AI-powered fill (outpainting). Extends the im
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/ai-canvas-expand`
|
`POST /api/v1/tools/image/ai-canvas-expand`
|
||||||
|
|
||||||
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ At least one extend direction must be greater than 0.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/ai-canvas-expand \
|
curl -X POST http://localhost:13490/api/v1/tools/image/ai-canvas-expand \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"extendTop":200,"extendBottom":200,"extendLeft":100,"extendRight":100,"tier":"balanced"}'
|
-F 'settings={"extendTop":200,"extendBottom":200,"extendLeft":100,"extendRight":100,"tier":"balanced"}'
|
||||||
```
|
```
|
||||||
@@ -8,7 +8,7 @@ Replace the background of an image with a solid color or gradient. The AI model
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/background-replace`
|
`POST /api/v1/tools/image/background-replace`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/background-replace \
|
curl -X POST http://localhost:1349/api/v1/tools/image/background-replace \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"backgroundType": "color", "color": "#2563eb", "feather": 2}'
|
-F 'settings={"backgroundType": "color", "color": "#2563eb", "feather": 2}'
|
||||||
@@ -8,7 +8,7 @@ Generate barcode images from text input. Supports Code 128, EAN-13, UPC-A, Code
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/barcode-generate`
|
`POST /api/v1/tools/image/barcode-generate`
|
||||||
|
|
||||||
Accepts an `application/json` body (not multipart). The barcode is generated from the provided text, not from an uploaded file.
|
Accepts an `application/json` body (not multipart). The barcode is generated from the provided text, not from an uploaded file.
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ Accepts an `application/json` body (not multipart). The barcode is generated fro
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/barcode-generate \
|
curl -X POST http://localhost:1349/api/v1/tools/image/barcode-generate \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"text": "5901234123457", "type": "ean13", "scale": 4}'
|
-d '{"text": "5901234123457", "type": "ean13", "scale": 4}'
|
||||||
@@ -8,7 +8,7 @@ Scan uploaded images for all types of barcodes and QR codes. Returns decoded tex
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/barcode-read`
|
`POST /api/v1/tools/image/barcode-read`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and an optional JSON `settings` field.
|
Accepts multipart form data with an image file and an optional JSON `settings` field.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Accepts multipart form data with an image file and an optional JSON `settings` f
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/barcode-read \
|
curl -X POST http://localhost:1349/api/v1/tools/image/barcode-read \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@receipt.jpg" \
|
-F "file=@receipt.jpg" \
|
||||||
-F 'settings={"tryHarder": true}'
|
-F 'settings={"tryHarder": true}'
|
||||||
@@ -4,7 +4,7 @@ Add gradient backgrounds, device frames, shadows, watermarks, and social media s
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/beautify`
|
`POST /api/v1/tools/image/beautify`
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ Add gradient backgrounds, device frames, shadows, watermarks, and social media s
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/beautify \
|
curl -X POST http://localhost:13490/api/v1/tools/image/beautify \
|
||||||
-F "file=@screenshot.png" \
|
-F "file=@screenshot.png" \
|
||||||
-F 'settings={"backgroundType":"linear-gradient","gradientStops":[{"color":"#667eea","position":0},{"color":"#764ba2","position":100}],"gradientAngle":135,"padding":64,"borderRadius":12,"shadowPreset":"medium","frame":"macos-dark","socialPreset":"twitter"}'
|
-F 'settings={"backgroundType":"linear-gradient","gradientStops":[{"color":"#667eea","position":0},{"color":"#764ba2","position":100}],"gradientAngle":135,"padding":64,"borderRadius":12,"shadowPreset":"medium","frame":"macos-dark","socialPreset":"twitter"}'
|
||||||
```
|
```
|
||||||
@@ -41,7 +41,7 @@ curl -X POST http://localhost:13490/api/v1/tools/beautify \
|
|||||||
### With Background Image
|
### With Background Image
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/beautify \
|
curl -X POST http://localhost:13490/api/v1/tools/image/beautify \
|
||||||
-F "file=@screenshot.png" \
|
-F "file=@screenshot.png" \
|
||||||
-F "backgroundImage=@bg-texture.jpg" \
|
-F "backgroundImage=@bg-texture.jpg" \
|
||||||
-F 'settings={"backgroundType":"image","padding":80,"borderRadius":16,"shadowPreset":"dramatic"}'
|
-F 'settings={"backgroundType":"image","padding":80,"borderRadius":16,"shadowPreset":"dramatic"}'
|
||||||
@@ -8,7 +8,7 @@ Blur the background of an image while keeping the subject sharp. The AI model is
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/blur-background`
|
`POST /api/v1/tools/image/blur-background`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/blur-background \
|
curl -X POST http://localhost:1349/api/v1/tools/image/blur-background \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"intensity": 75, "feather": 3}'
|
-F 'settings={"intensity": 75, "feather": 3}'
|
||||||
@@ -4,7 +4,7 @@ Auto-detect and blur faces in images using AI-powered face detection (MediaPipe)
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/blur-faces`
|
`POST /api/v1/tools/image/blur-faces`
|
||||||
|
|
||||||
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Auto-detect and blur faces in images using AI-powered face detection (MediaPipe)
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/blur-faces \
|
curl -X POST http://localhost:13490/api/v1/tools/image/blur-faces \
|
||||||
-F "file=@group-photo.jpg" \
|
-F "file=@group-photo.jpg" \
|
||||||
-F 'settings={"blurRadius":40,"sensitivity":0.3}'
|
-F 'settings={"blurRadius":40,"sensitivity":0.3}'
|
||||||
```
|
```
|
||||||
@@ -4,7 +4,7 @@ Add borders, padding, rounded corners, and drop shadows to images. The tool appl
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/border`
|
`POST /api/v1/tools/image/border`
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ Add borders, padding, rounded corners, and drop shadows to images. The tool appl
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/border \
|
curl -X POST http://localhost:13490/api/v1/tools/image/border \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"borderWidth":20,"borderColor":"#333333","cornerRadius":16,"shadow":true,"shadowBlur":25,"shadowOpacity":50}'
|
-F 'settings={"borderWidth":20,"borderColor":"#333333","cornerRadius":16,"shadow":true,"shadowBlur":25,"shadowOpacity":50}'
|
||||||
```
|
```
|
||||||
@@ -8,7 +8,7 @@ Rename multiple files using a pattern template with placeholders for index, padd
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/bulk-rename`
|
`POST /api/v1/tools/image/bulk-rename`
|
||||||
|
|
||||||
Accepts multipart form data with multiple files and a JSON `settings` field.
|
Accepts multipart form data with multiple files and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@ The original file extension is always preserved.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/bulk-rename \
|
curl -X POST http://localhost:1349/api/v1/tools/image/bulk-rename \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo1.jpg" \
|
-F "file=@photo1.jpg" \
|
||||||
-F "file=@photo2.jpg" \
|
-F "file=@photo2.jpg" \
|
||||||
@@ -45,7 +45,7 @@ This produces: `vacation-1.jpg`, `vacation-2.jpg`, `vacation-3.jpg`
|
|||||||
Using original filename:
|
Using original filename:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/bulk-rename \
|
curl -X POST http://localhost:1349/api/v1/tools/image/bulk-rename \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@IMG_001.jpg" \
|
-F "file=@IMG_001.jpg" \
|
||||||
-F "file=@IMG_002.jpg" \
|
-F "file=@IMG_002.jpg" \
|
||||||
@@ -8,7 +8,7 @@ Crop an image to a centered circle with transparent corners. Supports adjustable
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/circle-crop`
|
`POST /api/v1/tools/image/circle-crop`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/circle-crop \
|
curl -X POST http://localhost:1349/api/v1/tools/image/circle-crop \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"zoom": 1.2, "borderWidth": 4, "borderColor": "#333333"}'
|
-F 'settings={"zoom": 1.2, "borderWidth": 4, "borderColor": "#333333"}'
|
||||||
@@ -4,7 +4,7 @@ Combine multiple images into beautiful grid collages with 25+ templates. Support
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/collage`
|
`POST /api/v1/tools/image/collage`
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ Combine multiple images into beautiful grid collages with 25+ templates. Support
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/collage \
|
curl -X POST http://localhost:13490/api/v1/tools/image/collage \
|
||||||
-F "file=@photo1.jpg" \
|
-F "file=@photo1.jpg" \
|
||||||
-F "file=@photo2.jpg" \
|
-F "file=@photo2.jpg" \
|
||||||
-F "file=@photo3.jpg" \
|
-F "file=@photo3.jpg" \
|
||||||
@@ -8,7 +8,7 @@ Simulate color vision deficiency (CVD) to preview how images appear to people wi
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/color-blindness`
|
`POST /api/v1/tools/image/color-blindness`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/color-blindness \
|
curl -X POST http://localhost:1349/api/v1/tools/image/color-blindness \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@design.png" \
|
-F "file=@design.png" \
|
||||||
-F 'settings={"simulationType": "deuteranopia"}'
|
-F 'settings={"simulationType": "deuteranopia"}'
|
||||||
@@ -8,7 +8,7 @@ Extract the dominant colors from an image and return them as hex color values. U
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/color-palette`
|
`POST /api/v1/tools/image/color-palette`
|
||||||
|
|
||||||
Accepts multipart form data with an image file. No settings field is needed.
|
Accepts multipart form data with an image file. No settings field is needed.
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ This tool has no configurable parameters. Simply upload the image file.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/color-palette \
|
curl -X POST http://localhost:1349/api/v1/tools/image/color-palette \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg"
|
-F "file=@photo.jpg"
|
||||||
```
|
```
|
||||||
@@ -4,7 +4,7 @@ Convert black-and-white or grayscale photos to full color using AI (DDColor mode
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/colorize`
|
`POST /api/v1/tools/image/colorize`
|
||||||
|
|
||||||
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Convert black-and-white or grayscale photos to full color using AI (DDColor mode
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/colorize \
|
curl -X POST http://localhost:13490/api/v1/tools/image/colorize \
|
||||||
-F "file=@old-bw-photo.jpg" \
|
-F "file=@old-bw-photo.jpg" \
|
||||||
-F 'settings={"intensity":0.9,"model":"auto"}'
|
-F 'settings={"intensity":0.9,"model":"auto"}'
|
||||||
```
|
```
|
||||||
@@ -8,7 +8,7 @@ Upload two images to compute a pixel-level difference map and a numerical simila
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/compare`
|
`POST /api/v1/tools/image/compare`
|
||||||
|
|
||||||
Accepts multipart form data with **two** image files. No settings field is needed.
|
Accepts multipart form data with **two** image files. No settings field is needed.
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ This tool has no configurable parameters. Upload exactly two image files.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/compare \
|
curl -X POST http://localhost:1349/api/v1/tools/image/compare \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@original.jpg" \
|
-F "file=@original.jpg" \
|
||||||
-F "file=@modified.jpg"
|
-F "file=@modified.jpg"
|
||||||
@@ -8,7 +8,7 @@ Layer an overlay image on top of a base image with configurable position, opacit
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/compose`
|
`POST /api/v1/tools/image/compose`
|
||||||
|
|
||||||
Accepts multipart form data with **two** image files and a JSON `settings` field.
|
Accepts multipart form data with **two** image files and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ Accepts multipart form data with **two** image files and a JSON `settings` field
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/compose \
|
curl -X POST http://localhost:1349/api/v1/tools/image/compose \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@background.jpg" \
|
-F "file=@background.jpg" \
|
||||||
-F "overlay=@graphic.png" \
|
-F "overlay=@graphic.png" \
|
||||||
@@ -56,7 +56,7 @@ curl -X POST http://localhost:1349/api/v1/tools/compose \
|
|||||||
Using multiply blend mode:
|
Using multiply blend mode:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/compose \
|
curl -X POST http://localhost:1349/api/v1/tools/image/compose \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F "overlay=@texture.jpg" \
|
-F "overlay=@texture.jpg" \
|
||||||
@@ -8,7 +8,7 @@ Reduce image file size by specifying a quality level or a target file size in ki
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/compress`
|
`POST /api/v1/tools/image/compress`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
Compress to quality 60:
|
Compress to quality 60:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/compress \
|
curl -X POST http://localhost:1349/api/v1/tools/image/compress \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"mode": "quality", "quality": 60}'
|
-F 'settings={"mode": "quality", "quality": 60}'
|
||||||
@@ -34,7 +34,7 @@ curl -X POST http://localhost:1349/api/v1/tools/compress \
|
|||||||
Compress to target size of 200 KB:
|
Compress to target size of 200 KB:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/compress \
|
curl -X POST http://localhost:1349/api/v1/tools/image/compress \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"mode": "targetSize", "targetSizeKb": 200}'
|
-F 'settings={"mode": "targetSize", "targetSizeKb": 200}'
|
||||||
+2
-2
@@ -4,7 +4,7 @@ Seam carving resize that intelligently removes or adds pixels along paths of lea
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/content-aware-resize`
|
`POST /api/v1/tools/image/content-aware-resize`
|
||||||
|
|
||||||
**Processing:** Synchronous (returns result directly)
|
**Processing:** Synchronous (returns result directly)
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ At least one of `width`, `height`, or `square` must be specified.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/content-aware-resize \
|
curl -X POST http://localhost:13490/api/v1/tools/image/content-aware-resize \
|
||||||
-F "file=@landscape.jpg" \
|
-F "file=@landscape.jpg" \
|
||||||
-F 'settings={"width":800,"protectFaces":true}'
|
-F 'settings={"width":800,"protectFaces":true}'
|
||||||
```
|
```
|
||||||
@@ -8,7 +8,7 @@ Convert images between formats. Supports common web formats as well as specializ
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/convert`
|
`POST /api/v1/tools/image/convert`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
Convert to WebP:
|
Convert to WebP:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/convert \
|
curl -X POST http://localhost:1349/api/v1/tools/image/convert \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"format": "webp", "quality": 85}'
|
-F 'settings={"format": "webp", "quality": 85}'
|
||||||
@@ -51,7 +51,7 @@ curl -X POST http://localhost:1349/api/v1/tools/convert \
|
|||||||
Convert to PNG (lossless):
|
Convert to PNG (lossless):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/convert \
|
curl -X POST http://localhost:1349/api/v1/tools/image/convert \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"format": "png"}'
|
-F 'settings={"format": "png"}'
|
||||||
@@ -8,7 +8,7 @@ Crop images by defining a rectangular region using position and size. Supports b
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/crop`
|
`POST /api/v1/tools/image/crop`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/crop \
|
curl -X POST http://localhost:1349/api/v1/tools/image/crop \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"left": 100, "top": 50, "width": 800, "height": 600}'
|
-F 'settings={"left": 100, "top": 50, "width": 800, "height": 600}'
|
||||||
@@ -34,7 +34,7 @@ curl -X POST http://localhost:1349/api/v1/tools/crop \
|
|||||||
Crop using percentage values:
|
Crop using percentage values:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/crop \
|
curl -X POST http://localhost:1349/api/v1/tools/image/crop \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"left": 10, "top": 10, "width": 80, "height": 80, "unit": "percent"}'
|
-F 'settings={"left": 10, "top": 10, "width": 80, "height": 80, "unit": "percent"}'
|
||||||
@@ -8,7 +8,7 @@ Apply a two-color duotone effect to an image. The image is converted to grayscal
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/duotone`
|
`POST /api/v1/tools/image/duotone`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/duotone \
|
curl -X POST http://localhost:1349/api/v1/tools/image/duotone \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"shadow": "#0f172a", "highlight": "#f97316", "intensity": 80}'
|
-F 'settings={"shadow": "#0f172a", "highlight": "#f97316", "intensity": 80}'
|
||||||
@@ -10,13 +10,13 @@ Edit image metadata fields including EXIF, IPTC, GPS coordinates, dates, and key
|
|||||||
|
|
||||||
### Edit Metadata
|
### Edit Metadata
|
||||||
|
|
||||||
`POST /api/v1/tools/edit-metadata`
|
`POST /api/v1/tools/image/edit-metadata`
|
||||||
|
|
||||||
Writes metadata fields to the image and returns the modified file.
|
Writes metadata fields to the image and returns the modified file.
|
||||||
|
|
||||||
### Inspect Metadata
|
### Inspect Metadata
|
||||||
|
|
||||||
`POST /api/v1/tools/edit-metadata/inspect`
|
`POST /api/v1/tools/image/edit-metadata/inspect`
|
||||||
|
|
||||||
Returns the full metadata from the image via ExifTool as JSON. Does not modify the image.
|
Returns the full metadata from the image via ExifTool as JSON. Does not modify the image.
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ Returns the full metadata from the image via ExifTool as JSON. Does not modify t
|
|||||||
Set author and copyright:
|
Set author and copyright:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/edit-metadata \
|
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"author": "Jane Smith", "copyright": "2024 Jane Smith"}'
|
-F 'settings={"author": "Jane Smith", "copyright": "2024 Jane Smith"}'
|
||||||
@@ -61,7 +61,7 @@ curl -X POST http://localhost:1349/api/v1/tools/edit-metadata \
|
|||||||
Set GPS coordinates:
|
Set GPS coordinates:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/edit-metadata \
|
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"gpsLatitude": 48.8566, "gpsLongitude": 2.3522, "gpsAltitude": 35}'
|
-F 'settings={"gpsLatitude": 48.8566, "gpsLongitude": 2.3522, "gpsAltitude": 35}'
|
||||||
@@ -70,7 +70,7 @@ curl -X POST http://localhost:1349/api/v1/tools/edit-metadata \
|
|||||||
Remove GPS and add keywords:
|
Remove GPS and add keywords:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/edit-metadata \
|
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"clearGps": true, "keywords": ["landscape", "sunset"], "keywordsMode": "add"}'
|
-F 'settings={"clearGps": true, "keywords": ["landscape", "sunset"], "keywordsMode": "add"}'
|
||||||
@@ -79,7 +79,7 @@ curl -X POST http://localhost:1349/api/v1/tools/edit-metadata \
|
|||||||
Inspect metadata:
|
Inspect metadata:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/edit-metadata/inspect \
|
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata/inspect \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg"
|
-F "file=@photo.jpg"
|
||||||
```
|
```
|
||||||
@@ -4,7 +4,7 @@ Restore and enhance faces in images using AI models (GFPGAN/CodeFormer).
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/enhance-faces`
|
`POST /api/v1/tools/image/enhance-faces`
|
||||||
|
|
||||||
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ Restore and enhance faces in images using AI models (GFPGAN/CodeFormer).
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/enhance-faces \
|
curl -X POST http://localhost:13490/api/v1/tools/image/enhance-faces \
|
||||||
-F "file=@portrait.jpg" \
|
-F "file=@portrait.jpg" \
|
||||||
-F 'settings={"model":"codeformer","strength":0.7,"onlyCenterFace":false}'
|
-F 'settings={"model":"codeformer","strength":0.7,"onlyCenterFace":false}'
|
||||||
```
|
```
|
||||||
@@ -4,7 +4,7 @@ Remove unwanted objects from images using AI inpainting (LaMa model). Accepts an
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/erase-object`
|
`POST /api/v1/tools/image/erase-object`
|
||||||
|
|
||||||
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ Remove unwanted objects from images using AI inpainting (LaMa model). Accepts an
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/erase-object \
|
curl -X POST http://localhost:13490/api/v1/tools/image/erase-object \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F "mask=@mask.png" \
|
-F "mask=@mask.png" \
|
||||||
-F "format=png" \
|
-F "format=png" \
|
||||||
@@ -8,7 +8,7 @@ Generate a complete set of favicon and app icon files from a source image. Produ
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/favicon`
|
`POST /api/v1/tools/image/favicon`
|
||||||
|
|
||||||
Accepts multipart form data with one or more image files. No settings are required.
|
Accepts multipart form data with one or more image files. No settings are required.
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ For each input image, the following files are produced:
|
|||||||
Single source image:
|
Single source image:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/favicon \
|
curl -X POST http://localhost:1349/api/v1/tools/image/favicon \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@logo.png"
|
-F "file=@logo.png"
|
||||||
```
|
```
|
||||||
@@ -45,7 +45,7 @@ curl -X POST http://localhost:1349/api/v1/tools/favicon \
|
|||||||
Multiple source images (each gets its own set in a subfolder):
|
Multiple source images (each gets its own set in a subfolder):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/favicon \
|
curl -X POST http://localhost:1349/api/v1/tools/image/favicon \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@logo-light.png" \
|
-F "file=@logo-light.png" \
|
||||||
-F "file=@logo-dark.png"
|
-F "file=@logo-dark.png"
|
||||||
@@ -8,7 +8,7 @@ Upload multiple images to detect duplicates and near-duplicates using perceptual
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/find-duplicates`
|
`POST /api/v1/tools/image/find-duplicates`
|
||||||
|
|
||||||
Accepts multipart form data with multiple image files and an optional JSON `settings` field.
|
Accepts multipart form data with multiple image files and an optional JSON `settings` field.
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ Upload at least 2 image files in the multipart request (all using the `file` fie
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/find-duplicates \
|
curl -X POST http://localhost:1349/api/v1/tools/image/find-duplicates \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo1.jpg" \
|
-F "file=@photo1.jpg" \
|
||||||
-F "file=@photo2.jpg" \
|
-F "file=@photo2.jpg" \
|
||||||
@@ -4,7 +4,7 @@ Resize, optimize, change speed, reverse, extract frames, and rotate animated GIF
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/gif-tools`
|
`POST /api/v1/tools/image/gif-tools`
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ Resize, optimize, change speed, reverse, extract frames, and rotate animated GIF
|
|||||||
### Resize
|
### Resize
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/gif-tools \
|
curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools \
|
||||||
-F "file=@animation.gif" \
|
-F "file=@animation.gif" \
|
||||||
-F 'settings={"mode":"resize","percentage":50}'
|
-F 'settings={"mode":"resize","percentage":50}'
|
||||||
```
|
```
|
||||||
@@ -68,7 +68,7 @@ curl -X POST http://localhost:13490/api/v1/tools/gif-tools \
|
|||||||
### Optimize
|
### Optimize
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/gif-tools \
|
curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools \
|
||||||
-F "file=@large.gif" \
|
-F "file=@large.gif" \
|
||||||
-F 'settings={"mode":"optimize","colors":128,"effort":9}'
|
-F 'settings={"mode":"optimize","colors":128,"effort":9}'
|
||||||
```
|
```
|
||||||
@@ -76,7 +76,7 @@ curl -X POST http://localhost:13490/api/v1/tools/gif-tools \
|
|||||||
### Speed Up
|
### Speed Up
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/gif-tools \
|
curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools \
|
||||||
-F "file=@animation.gif" \
|
-F "file=@animation.gif" \
|
||||||
-F 'settings={"mode":"speed","speedFactor":2.0}'
|
-F 'settings={"mode":"speed","speedFactor":2.0}'
|
||||||
```
|
```
|
||||||
@@ -84,7 +84,7 @@ curl -X POST http://localhost:13490/api/v1/tools/gif-tools \
|
|||||||
### Extract Single Frame
|
### Extract Single Frame
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/gif-tools \
|
curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools \
|
||||||
-F "file=@animation.gif" \
|
-F "file=@animation.gif" \
|
||||||
-F 'settings={"mode":"extract","extractMode":"single","frameNumber":5,"extractFormat":"png"}'
|
-F 'settings={"mode":"extract","extractMode":"single","frameNumber":5,"extractFormat":"png"}'
|
||||||
```
|
```
|
||||||
@@ -102,14 +102,14 @@ curl -X POST http://localhost:13490/api/v1/tools/gif-tools \
|
|||||||
|
|
||||||
## Info Sub-Route
|
## Info Sub-Route
|
||||||
|
|
||||||
`POST /api/v1/tools/gif-tools/info`
|
`POST /api/v1/tools/image/gif-tools/info`
|
||||||
|
|
||||||
Returns metadata about an animated GIF without processing it.
|
Returns metadata about an animated GIF without processing it.
|
||||||
|
|
||||||
### Info Request
|
### Info Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/gif-tools/info \
|
curl -X POST http://localhost:13490/api/v1/tools/image/gif-tools/info \
|
||||||
-F "file=@animation.gif"
|
-F "file=@animation.gif"
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ Convert animated GIF files to WebP and vice versa, preserving all frames and ani
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/gif-webp`
|
`POST /api/v1/tools/image/gif-webp`
|
||||||
|
|
||||||
Accepts multipart form data with a GIF or WebP file and a JSON `settings` field.
|
Accepts multipart form data with a GIF or WebP file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ Accepts multipart form data with a GIF or WebP file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/gif-webp \
|
curl -X POST http://localhost:1349/api/v1/tools/image/gif-webp \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@animation.gif" \
|
-F "file=@animation.gif" \
|
||||||
-F 'settings={"quality": 85, "resizePercent": 50}'
|
-F 'settings={"quality": 85, "resizePercent": 50}'
|
||||||
@@ -8,7 +8,7 @@ Generate an RGB histogram chart from an image. Returns a PNG histogram image alo
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/histogram`
|
`POST /api/v1/tools/image/histogram`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/histogram \
|
curl -X POST http://localhost:1349/api/v1/tools/image/histogram \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"scale": "linear"}'
|
-F 'settings={"scale": "linear"}'
|
||||||
@@ -8,7 +8,7 @@ Capture a webpage URL or raw HTML content as a screenshot image. Supports device
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/html-to-image`
|
`POST /api/v1/tools/image/html-to-image`
|
||||||
|
|
||||||
Accepts a **JSON body** (not multipart). No file upload is needed.
|
Accepts a **JSON body** (not multipart). No file upload is needed.
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ Either `url` or `html` must be provided, but not both.
|
|||||||
Capture a webpage:
|
Capture a webpage:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/html-to-image \
|
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"url": "https://example.com", "format": "png", "fullPage": true, "devicePreset": "desktop"}'
|
-d '{"url": "https://example.com", "format": "png", "fullPage": true, "devicePreset": "desktop"}'
|
||||||
@@ -50,7 +50,7 @@ curl -X POST http://localhost:1349/api/v1/tools/html-to-image \
|
|||||||
Render HTML content:
|
Render HTML content:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/html-to-image \
|
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"html": "<div style=\"padding: 20px; background: #f0f0f0;\"><h1>Hello</h1></div>", "format": "png"}'
|
-d '{"html": "<div style=\"padding: 20px; background: #f0f0f0;\"><h1>Hello</h1></div>", "format": "png"}'
|
||||||
@@ -4,7 +4,7 @@ One-click auto-improve with smart analysis. Analyzes the image and applies expos
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/image-enhancement`
|
`POST /api/v1/tools/image/image-enhancement`
|
||||||
|
|
||||||
**Processing:** Synchronous (uses `createToolRoute` factory, returns result directly)
|
**Processing:** Synchronous (uses `createToolRoute` factory, returns result directly)
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ One-click auto-improve with smart analysis. Analyzes the image and applies expos
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/image-enhancement \
|
curl -X POST http://localhost:13490/api/v1/tools/image/image-enhancement \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"mode":"portrait","intensity":70,"corrections":{"exposure":true,"contrast":true,"sharpness":false}}'
|
-F 'settings={"mode":"portrait","intensity":70,"corrections":{"exposure":true,"contrast":true,"sharpness":false}}'
|
||||||
```
|
```
|
||||||
@@ -52,7 +52,7 @@ curl -X POST http://localhost:13490/api/v1/tools/image-enhancement \
|
|||||||
|
|
||||||
## Analyze Endpoint
|
## Analyze Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/image-enhancement/analyze`
|
`POST /api/v1/tools/image/image-enhancement/analyze`
|
||||||
|
|
||||||
Analyzes an image and returns correction recommendations without applying them.
|
Analyzes an image and returns correction recommendations without applying them.
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ Analyzes an image and returns correction recommendations without applying them.
|
|||||||
### Example Request
|
### Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/image-enhancement/analyze \
|
curl -X POST http://localhost:13490/api/v1/tools/image/image-enhancement/analyze \
|
||||||
-F "file=@photo.jpg"
|
-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
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/image-pad`
|
`POST /api/v1/tools/image/image-pad`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/image-pad \
|
curl -X POST http://localhost:1349/api/v1/tools/image/image-pad \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"target": "16:9", "background": "blur", "padding": 5}'
|
-F 'settings={"target": "16:9", "background": "blur", "padding": 5}'
|
||||||
@@ -8,7 +8,7 @@ Convert one or more images to base64-encoded strings and data URIs. Supports opt
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/image-to-base64`
|
`POST /api/v1/tools/image/image-to-base64`
|
||||||
|
|
||||||
Accepts multipart form data with one or more image files and an optional JSON `settings` field.
|
Accepts multipart form data with one or more image files and an optional JSON `settings` field.
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ Accepts multipart form data with one or more image files and an optional JSON `s
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/image-to-base64 \
|
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@icon.png" \
|
-F "file=@icon.png" \
|
||||||
-F 'settings={"outputFormat": "webp", "quality": 80, "maxWidth": 200}'
|
-F 'settings={"outputFormat": "webp", "quality": 80, "maxWidth": 200}'
|
||||||
@@ -33,7 +33,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image-to-base64 \
|
|||||||
Multiple files:
|
Multiple files:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/image-to-base64 \
|
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@icon1.png" \
|
-F "file=@icon1.png" \
|
||||||
-F "file=@icon2.png" \
|
-F "file=@icon2.png" \
|
||||||
@@ -8,7 +8,7 @@ Combine one or more images into a PDF document. Supports multiple page sizes, or
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/image-to-pdf`
|
`POST /api/v1/tools/image/image-to-pdf`
|
||||||
|
|
||||||
Accepts multipart form data with one or more image files and a JSON `settings` field.
|
Accepts multipart form data with one or more image files and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ Minimum target size is 50 KB.
|
|||||||
Basic multi-image PDF:
|
Basic multi-image PDF:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/image-to-pdf \
|
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@page1.jpg" \
|
-F "file=@page1.jpg" \
|
||||||
-F "file=@page2.jpg" \
|
-F "file=@page2.jpg" \
|
||||||
@@ -47,7 +47,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image-to-pdf \
|
|||||||
With file size target:
|
With file size target:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/image-to-pdf \
|
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@scan1.jpg" \
|
-F "file=@scan1.jpg" \
|
||||||
-F "file=@scan2.jpg" \
|
-F "file=@scan2.jpg" \
|
||||||
@@ -57,7 +57,7 @@ curl -X POST http://localhost:1349/api/v1/tools/image-to-pdf \
|
|||||||
One PDF per image:
|
One PDF per image:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/image-to-pdf \
|
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo1.jpg" \
|
-F "file=@photo1.jpg" \
|
||||||
-F "file=@photo2.jpg" \
|
-F "file=@photo2.jpg" \
|
||||||
@@ -8,7 +8,7 @@ Read-only analysis tool that returns comprehensive image metadata including dime
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/info`
|
`POST /api/v1/tools/image/info`
|
||||||
|
|
||||||
Accepts multipart form data with an image file. No settings field is needed.
|
Accepts multipart form data with an image file. No settings field is needed.
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ This tool has no configurable parameters. Simply upload the image file.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/info \
|
curl -X POST http://localhost:1349/api/v1/tools/image/info \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg"
|
-F "file=@photo.jpg"
|
||||||
```
|
```
|
||||||
@@ -8,7 +8,7 @@ Generate a tiny low-quality image placeholder (LQIP) from a source image. Return
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/lqip-placeholder`
|
`POST /api/v1/tools/image/lqip-placeholder`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/lqip-placeholder \
|
curl -X POST http://localhost:1349/api/v1/tools/image/lqip-placeholder \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"width": 20, "strategy": "blur", "format": "webp"}'
|
-F 'settings={"width": 20, "strategy": "blur", "format": "webp"}'
|
||||||
@@ -8,7 +8,7 @@ Create memes using built-in templates or custom images. Add text with classic me
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/meme-generator`
|
`POST /api/v1/tools/image/meme-generator`
|
||||||
|
|
||||||
Accepts either:
|
Accepts either:
|
||||||
- **Multipart form data** with an image file and a JSON `settings` field (custom image mode)
|
- **Multipart form data** with an image file and a JSON `settings` field (custom image mode)
|
||||||
@@ -52,7 +52,7 @@ Each entry in the `textBoxes` array should have:
|
|||||||
Custom image with top and bottom text:
|
Custom image with top and bottom text:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/meme-generator \
|
curl -X POST http://localhost:1349/api/v1/tools/image/meme-generator \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"textLayout": "top-bottom", "textBoxes": [{"id": "top", "text": "When the code works"}, {"id": "bottom", "text": "On the first try"}], "fontFamily": "anton", "allCaps": true}'
|
-F 'settings={"textLayout": "top-bottom", "textBoxes": [{"id": "top", "text": "When the code works"}, {"id": "bottom", "text": "On the first try"}], "fontFamily": "anton", "allCaps": true}'
|
||||||
@@ -61,7 +61,7 @@ curl -X POST http://localhost:1349/api/v1/tools/meme-generator \
|
|||||||
Using a built-in template (JSON body, no file upload):
|
Using a built-in template (JSON body, no file upload):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/meme-generator \
|
curl -X POST http://localhost:1349/api/v1/tools/image/meme-generator \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"templateId": "drake", "textBoxes": [{"id": "top", "text": "Manual testing"}, {"id": "bottom", "text": "Automated tests"}]}'
|
-d '{"templateId": "drake", "textBoxes": [{"id": "top", "text": "Manual testing"}, {"id": "bottom", "text": "Automated tests"}]}'
|
||||||
@@ -4,7 +4,7 @@ AI-powered noise and grain removal with multi-tier quality options, using the Py
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/noise-removal`
|
`POST /api/v1/tools/image/noise-removal`
|
||||||
|
|
||||||
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ AI-powered noise and grain removal with multi-tier quality options, using the Py
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/noise-removal \
|
curl -X POST http://localhost:13490/api/v1/tools/image/noise-removal \
|
||||||
-F "file=@noisy-photo.jpg" \
|
-F "file=@noisy-photo.jpg" \
|
||||||
-F 'settings={"tier":"quality","strength":60,"detailPreservation":70,"colorNoise":40}'
|
-F 'settings={"tier":"quality","strength":60,"detailPreservation":70,"colorNoise":40}'
|
||||||
```
|
```
|
||||||
@@ -4,7 +4,7 @@ Extract text from images using AI-powered optical character recognition. Support
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/ocr`
|
`POST /api/v1/tools/image/ocr`
|
||||||
|
|
||||||
**Processing:** Synchronous (returns extracted text directly, though progress is reported via SSE if a `clientJobId` is provided)
|
**Processing:** Synchronous (returns extracted text directly, though progress is reported via SSE if a `clientJobId` is provided)
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ Extract text from images using AI-powered optical character recognition. Support
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/ocr \
|
curl -X POST http://localhost:13490/api/v1/tools/image/ocr \
|
||||||
-F "file=@document.png" \
|
-F "file=@document.png" \
|
||||||
-F 'settings={"quality":"best","language":"en","enhance":true}'
|
-F 'settings={"quality":"best","language":"en","enhance":true}'
|
||||||
```
|
```
|
||||||
@@ -8,11 +8,11 @@ Optimize images for web delivery in a single step. Combines format conversion, q
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/optimize-for-web`
|
`POST /api/v1/tools/image/optimize-for-web`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
A live preview endpoint is also available at `POST /api/v1/tools/optimize-for-web/preview`, which returns the processed image directly as binary (no workspace creation) for real-time parameter tuning.
|
A live preview endpoint is also available at `POST /api/v1/tools/image/optimize-for-web/preview`, which returns the processed image directly as binary (no workspace creation) for real-time parameter tuning.
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ A live preview endpoint is also available at `POST /api/v1/tools/optimize-for-we
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/optimize-for-web \
|
curl -X POST http://localhost:1349/api/v1/tools/image/optimize-for-web \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"format": "webp", "quality": 75, "maxWidth": 1920}'
|
-F 'settings={"format": "webp", "quality": 75, "maxWidth": 1920}'
|
||||||
@@ -37,7 +37,7 @@ curl -X POST http://localhost:1349/api/v1/tools/optimize-for-web \
|
|||||||
Optimize for AVIF with aggressive compression:
|
Optimize for AVIF with aggressive compression:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/optimize-for-web \
|
curl -X POST http://localhost:1349/api/v1/tools/image/optimize-for-web \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"format": "avif", "quality": 50, "maxWidth": 1200, "maxHeight": 800}'
|
-F 'settings={"format": "avif", "quality": 50, "maxWidth": 1200, "maxHeight": 800}'
|
||||||
@@ -56,7 +56,7 @@ curl -X POST http://localhost:1349/api/v1/tools/optimize-for-web \
|
|||||||
|
|
||||||
### Preview Endpoint Response
|
### Preview Endpoint Response
|
||||||
|
|
||||||
The preview endpoint (`/api/v1/tools/optimize-for-web/preview`) returns the binary image directly with informational headers:
|
The preview endpoint (`/api/v1/tools/image/optimize-for-web/preview`) returns the binary image directly with informational headers:
|
||||||
|
|
||||||
- `X-Original-Size` - Original file size in bytes
|
- `X-Original-Size` - Original file size in bytes
|
||||||
- `X-Processed-Size` - Processed file size in bytes
|
- `X-Processed-Size` - Processed file size in bytes
|
||||||
@@ -12,7 +12,7 @@ This tool uses a two-phase flow with separate endpoints for analysis and generat
|
|||||||
|
|
||||||
### Phase 1: Analyze
|
### Phase 1: Analyze
|
||||||
|
|
||||||
`POST /api/v1/tools/passport-photo/analyze`
|
`POST /api/v1/tools/image/passport-photo/analyze`
|
||||||
|
|
||||||
Detects face landmarks and removes the background. Returns landmark data and a preview for the frontend to display a crop preview.
|
Detects face landmarks and removes the background. Returns landmark data and a preview for the frontend to display a crop preview.
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ Detects face landmarks and removes the background. Returns landmark data and a p
|
|||||||
#### Example Request
|
#### Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/passport-photo/analyze \
|
curl -X POST http://localhost:13490/api/v1/tools/image/passport-photo/analyze \
|
||||||
-F "file=@headshot.jpg"
|
-F "file=@headshot.jpg"
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ If `clientJobId` is provided, progress is streamed (0-30% for face detection, 30
|
|||||||
|
|
||||||
### Phase 2: Generate
|
### Phase 2: Generate
|
||||||
|
|
||||||
`POST /api/v1/tools/passport-photo/generate`
|
`POST /api/v1/tools/image/passport-photo/generate`
|
||||||
|
|
||||||
Crops, resizes, and optionally tiles the photo onto a print sheet. Uses cached images from Phase 1 (no AI re-run).
|
Crops, resizes, and optionally tiles the photo onto a print sheet. Uses cached images from Phase 1 (no AI re-run).
|
||||||
|
|
||||||
@@ -99,7 +99,7 @@ Crops, resizes, and optionally tiles the photo onto a print sheet. Uses cached i
|
|||||||
#### Example Request
|
#### Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/passport-photo/generate \
|
curl -X POST http://localhost:13490/api/v1/tools/image/passport-photo/generate \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{
|
-d '{
|
||||||
"jobId": "a1b2c3d4-...",
|
"jobId": "a1b2c3d4-...",
|
||||||
@@ -145,13 +145,13 @@ curl -X POST http://localhost:13490/api/v1/tools/passport-photo/generate \
|
|||||||
|
|
||||||
### Base Route
|
### Base Route
|
||||||
|
|
||||||
`POST /api/v1/tools/passport-photo`
|
`POST /api/v1/tools/image/passport-photo`
|
||||||
|
|
||||||
Returns guidance to use the correct sub-endpoint.
|
Returns guidance to use the correct sub-endpoint.
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"error": "Use /api/v1/tools/passport-photo/analyze or /generate"
|
"error": "Use /api/v1/tools/image/passport-photo/analyze or /generate"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ Apply a pixelation effect to an entire image or a specific rectangular region. U
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/pixelate`
|
`POST /api/v1/tools/image/pixelate`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
Pixelate the full image:
|
Pixelate the full image:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/pixelate \
|
curl -X POST http://localhost:1349/api/v1/tools/image/pixelate \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"blockSize": 20}'
|
-F 'settings={"blockSize": 20}'
|
||||||
@@ -42,7 +42,7 @@ curl -X POST http://localhost:1349/api/v1/tools/pixelate \
|
|||||||
Pixelate a specific region:
|
Pixelate a specific region:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/pixelate \
|
curl -X POST http://localhost:1349/api/v1/tools/image/pixelate \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"blockSize": 16, "region": {"left": 100, "top": 50, "width": 200, "height": 150}}'
|
-F 'settings={"blockSize": 16, "region": {"left": 100, "top": 50, "width": 200, "height": 150}}'
|
||||||
@@ -8,7 +8,7 @@ Generate QR code images from text or URLs with configurable size, error correcti
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/qr-generate`
|
`POST /api/v1/tools/image/qr-generate`
|
||||||
|
|
||||||
Accepts a **JSON body** (not multipart). No file upload is needed.
|
Accepts a **JSON body** (not multipart). No file upload is needed.
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ Accepts a **JSON body** (not multipart). No file upload is needed.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/qr-generate \
|
curl -X POST http://localhost:1349/api/v1/tools/image/qr-generate \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"text": "https://snapotter.com", "size": 500, "errorCorrection": "H"}'
|
-d '{"text": "https://snapotter.com", "size": 500, "errorCorrection": "H"}'
|
||||||
@@ -43,7 +43,7 @@ curl -X POST http://localhost:1349/api/v1/tools/qr-generate \
|
|||||||
Branded QR code with custom colors:
|
Branded QR code with custom colors:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/qr-generate \
|
curl -X POST http://localhost:1349/api/v1/tools/image/qr-generate \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"text": "Hello World", "size": 300, "foreground": "#1a365d", "background": "#f7fafc"}'
|
-d '{"text": "Hello World", "size": 300, "foreground": "#1a365d", "background": "#f7fafc"}'
|
||||||
@@ -4,7 +4,7 @@ AI-powered detection and correction of red eye caused by camera flash.
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/red-eye-removal`
|
`POST /api/v1/tools/image/red-eye-removal`
|
||||||
|
|
||||||
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ AI-powered detection and correction of red eye caused by camera flash.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/red-eye-removal \
|
curl -X POST http://localhost:13490/api/v1/tools/image/red-eye-removal \
|
||||||
-F "file=@flash-photo.jpg" \
|
-F "file=@flash-photo.jpg" \
|
||||||
-F 'settings={"sensitivity":60,"strength":80}'
|
-F 'settings={"sensitivity":60,"strength":80}'
|
||||||
```
|
```
|
||||||
@@ -4,7 +4,7 @@ AI-powered background removal with optional effects (blur, shadow, gradient, cus
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/remove-background`
|
`POST /api/v1/tools/image/remove-background`
|
||||||
|
|
||||||
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@ AI-powered background removal with optional effects (blur, shadow, gradient, cus
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/remove-background \
|
curl -X POST http://localhost:13490/api/v1/tools/image/remove-background \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"backgroundType":"transparent","edgeRefine":2,"outputFormat":"png"}'
|
-F 'settings={"backgroundType":"transparent","edgeRefine":2,"outputFormat":"png"}'
|
||||||
```
|
```
|
||||||
@@ -76,7 +76,7 @@ data: {"phase":"processing","stage":"Removing background...","percent":50}
|
|||||||
|
|
||||||
## Effects Endpoint (Phase 2)
|
## Effects Endpoint (Phase 2)
|
||||||
|
|
||||||
`POST /api/v1/tools/remove-background/effects`
|
`POST /api/v1/tools/image/remove-background/effects`
|
||||||
|
|
||||||
Re-applies background effects without re-running the AI model. Uses cached mask and original from Phase 1.
|
Re-applies background effects without re-running the AI model. Uses cached mask and original from Phase 1.
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@ Re-applies background effects without re-running the AI model. Uses cached mask
|
|||||||
### Example Request
|
### Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/remove-background/effects \
|
curl -X POST http://localhost:13490/api/v1/tools/image/remove-background/effects \
|
||||||
-F 'settings={"jobId":"a1b2c3d4-...","filename":"photo.jpg","backgroundType":"color","backgroundColor":"#FF5500","outputFormat":"png"}'
|
-F 'settings={"jobId":"a1b2c3d4-...","filename":"photo.jpg","backgroundType":"color","backgroundColor":"#FF5500","outputFormat":"png"}'
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ Replace pixels matching a source color with a target color, or make them transpa
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/replace-color`
|
`POST /api/v1/tools/image/replace-color`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/replace-color \
|
curl -X POST http://localhost:1349/api/v1/tools/image/replace-color \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"sourceColor": "#FF0000", "targetColor": "#0000FF", "tolerance": 40}'
|
-F 'settings={"sourceColor": "#FF0000", "targetColor": "#0000FF", "tolerance": 40}'
|
||||||
@@ -33,7 +33,7 @@ curl -X POST http://localhost:1349/api/v1/tools/replace-color \
|
|||||||
Make a green background transparent:
|
Make a green background transparent:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/replace-color \
|
curl -X POST http://localhost:1349/api/v1/tools/image/replace-color \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@greenscreen.png" \
|
-F "file=@greenscreen.png" \
|
||||||
-F 'settings={"sourceColor": "#00FF00", "makeTransparent": true, "tolerance": 50}'
|
-F 'settings={"sourceColor": "#00FF00", "makeTransparent": true, "tolerance": 50}'
|
||||||
@@ -8,7 +8,7 @@ Resize images by specifying exact pixel dimensions, a percentage scale factor, o
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/resize`
|
`POST /api/v1/tools/image/resize`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ At least one of `width`, `height`, or `percentage` must be provided.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/resize \
|
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"width": 800, "height": 600, "fit": "contain"}'
|
-F 'settings={"width": 800, "height": 600, "fit": "contain"}'
|
||||||
@@ -44,7 +44,7 @@ curl -X POST http://localhost:1349/api/v1/tools/resize \
|
|||||||
Resize by percentage:
|
Resize by percentage:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/resize \
|
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"percentage": 50}'
|
-F 'settings={"percentage": 50}'
|
||||||
@@ -4,7 +4,7 @@ Fix scratches, tears, and damage on old photos using a multi-step AI pipeline. C
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/restore-photo`
|
`POST /api/v1/tools/image/restore-photo`
|
||||||
|
|
||||||
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ Fix scratches, tears, and damage on old photos using a multi-step AI pipeline. C
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/restore-photo \
|
curl -X POST http://localhost:13490/api/v1/tools/image/restore-photo \
|
||||||
-F "file=@damaged-old-photo.jpg" \
|
-F "file=@damaged-old-photo.jpg" \
|
||||||
-F 'settings={"scratchRemoval":true,"faceEnhancement":true,"fidelity":0.6,"colorize":true}'
|
-F 'settings={"scratchRemoval":true,"faceEnhancement":true,"fidelity":0.6,"colorize":true}'
|
||||||
```
|
```
|
||||||
@@ -8,7 +8,7 @@ Rotate images by an arbitrary angle and/or flip them horizontally or vertically.
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/rotate`
|
`POST /api/v1/tools/image/rotate`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
Rotate 90 degrees clockwise:
|
Rotate 90 degrees clockwise:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/rotate \
|
curl -X POST http://localhost:1349/api/v1/tools/image/rotate \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"angle": 90}'
|
-F 'settings={"angle": 90}'
|
||||||
@@ -34,7 +34,7 @@ curl -X POST http://localhost:1349/api/v1/tools/rotate \
|
|||||||
Flip horizontally:
|
Flip horizontally:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/rotate \
|
curl -X POST http://localhost:1349/api/v1/tools/image/rotate \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"horizontal": true}'
|
-F 'settings={"horizontal": true}'
|
||||||
@@ -43,7 +43,7 @@ curl -X POST http://localhost:1349/api/v1/tools/rotate \
|
|||||||
Rotate and flip together:
|
Rotate and flip together:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/rotate \
|
curl -X POST http://localhost:1349/api/v1/tools/image/rotate \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"angle": 45, "vertical": true}'
|
-F 'settings={"angle": 45, "vertical": true}'
|
||||||
@@ -8,7 +8,7 @@ Advanced sharpening tool with three methods: adaptive (smart edge-aware), unshar
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/sharpening`
|
`POST /api/v1/tools/image/sharpening`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/sharpening \
|
curl -X POST http://localhost:1349/api/v1/tools/image/sharpening \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"method": "adaptive", "sigma": 1.5}'
|
-F 'settings={"method": "adaptive", "sigma": 1.5}'
|
||||||
@@ -42,7 +42,7 @@ curl -X POST http://localhost:1349/api/v1/tools/sharpening \
|
|||||||
Unsharp mask with threshold to protect smooth areas:
|
Unsharp mask with threshold to protect smooth areas:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/sharpening \
|
curl -X POST http://localhost:1349/api/v1/tools/image/sharpening \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"method": "unsharp-mask", "amount": 150, "radius": 1.5, "threshold": 10}'
|
-F 'settings={"method": "unsharp-mask", "amount": 150, "radius": 1.5, "threshold": 10}'
|
||||||
@@ -4,7 +4,7 @@ Smart subject-aware, face-aware, or trim-based cropping. Uses Sharp's attention/
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/smart-crop`
|
`POST /api/v1/tools/image/smart-crop`
|
||||||
|
|
||||||
**Processing:** Synchronous (uses `createToolRoute` factory, returns result directly)
|
**Processing:** Synchronous (uses `createToolRoute` factory, returns result directly)
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ Smart subject-aware, face-aware, or trim-based cropping. Uses Sharp's attention/
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/smart-crop \
|
curl -X POST http://localhost:13490/api/v1/tools/image/smart-crop \
|
||||||
-F "file=@portrait.jpg" \
|
-F "file=@portrait.jpg" \
|
||||||
-F 'settings={"mode":"face","width":1080,"height":1080,"facePreset":"head-shoulders"}'
|
-F 'settings={"mode":"face","width":1080,"height":1080,"facePreset":"head-shoulders"}'
|
||||||
```
|
```
|
||||||
@@ -4,7 +4,7 @@ Split a single image into grid tiles by column/row count or by specific pixel di
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/split`
|
`POST /api/v1/tools/image/split`
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ Split a single image into grid tiles by column/row count or by specific pixel di
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/split \
|
curl -X POST http://localhost:13490/api/v1/tools/image/split \
|
||||||
-F "file=@large-image.png" \
|
-F "file=@large-image.png" \
|
||||||
-F 'settings={"columns":3,"rows":3,"outputFormat":"png"}' \
|
-F 'settings={"columns":3,"rows":3,"outputFormat":"png"}' \
|
||||||
--output split-tiles.zip
|
--output split-tiles.zip
|
||||||
@@ -8,7 +8,7 @@ Combine multiple images into a single sprite sheet grid. Each image is resized t
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/sprite-sheet`
|
`POST /api/v1/tools/image/sprite-sheet`
|
||||||
|
|
||||||
Accepts multipart form data with two or more image files and a JSON `settings` field.
|
Accepts multipart form data with two or more image files and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ Accepts multipart form data with two or more image files and a JSON `settings` f
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/sprite-sheet \
|
curl -X POST http://localhost:1349/api/v1/tools/image/sprite-sheet \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@frame1.png" \
|
-F "file=@frame1.png" \
|
||||||
-F "file=@frame2.png" \
|
-F "file=@frame2.png" \
|
||||||
@@ -4,7 +4,7 @@ Join multiple images side by side, stacked vertically, or arranged in a grid. Su
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/stitch`
|
`POST /api/v1/tools/image/stitch`
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ Join multiple images side by side, stacked vertically, or arranged in a grid. Su
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/stitch \
|
curl -X POST http://localhost:13490/api/v1/tools/image/stitch \
|
||||||
-F "file=@image1.png" \
|
-F "file=@image1.png" \
|
||||||
-F "file=@image2.png" \
|
-F "file=@image2.png" \
|
||||||
-F "file=@image3.png" \
|
-F "file=@image3.png" \
|
||||||
@@ -10,13 +10,13 @@ Remove EXIF, GPS, ICC color profiles, and XMP metadata from images. Useful for p
|
|||||||
|
|
||||||
### Strip Metadata
|
### Strip Metadata
|
||||||
|
|
||||||
`POST /api/v1/tools/strip-metadata`
|
`POST /api/v1/tools/image/strip-metadata`
|
||||||
|
|
||||||
Processes the image and returns a cleaned version with selected metadata removed.
|
Processes the image and returns a cleaned version with selected metadata removed.
|
||||||
|
|
||||||
### Inspect Metadata
|
### Inspect Metadata
|
||||||
|
|
||||||
`POST /api/v1/tools/strip-metadata/inspect`
|
`POST /api/v1/tools/image/strip-metadata/inspect`
|
||||||
|
|
||||||
Returns the parsed metadata as JSON without modifying the image. Useful for previewing what metadata exists before stripping.
|
Returns the parsed metadata as JSON without modifying the image. Useful for previewing what metadata exists before stripping.
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ When `stripAll` is `true`, it overrides the individual flags and removes everyth
|
|||||||
Strip all metadata:
|
Strip all metadata:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/strip-metadata \
|
curl -X POST http://localhost:1349/api/v1/tools/image/strip-metadata \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"stripAll": true}'
|
-F 'settings={"stripAll": true}'
|
||||||
@@ -46,7 +46,7 @@ curl -X POST http://localhost:1349/api/v1/tools/strip-metadata \
|
|||||||
Strip only GPS data (keep camera info and color profile):
|
Strip only GPS data (keep camera info and color profile):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/strip-metadata \
|
curl -X POST http://localhost:1349/api/v1/tools/image/strip-metadata \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"stripAll": false, "stripGps": true}'
|
-F 'settings={"stripAll": false, "stripGps": true}'
|
||||||
@@ -55,7 +55,7 @@ curl -X POST http://localhost:1349/api/v1/tools/strip-metadata \
|
|||||||
Inspect metadata without modifying:
|
Inspect metadata without modifying:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/strip-metadata/inspect \
|
curl -X POST http://localhost:1349/api/v1/tools/image/strip-metadata/inspect \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg"
|
-F "file=@photo.jpg"
|
||||||
```
|
```
|
||||||
@@ -4,7 +4,7 @@ Convert SVG files to raster image formats (PNG, JPEG, WebP, AVIF, TIFF, GIF, HEI
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/svg-to-raster`
|
`POST /api/v1/tools/image/svg-to-raster`
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ Convert SVG files to raster image formats (PNG, JPEG, WebP, AVIF, TIFF, GIF, HEI
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/svg-to-raster \
|
curl -X POST http://localhost:13490/api/v1/tools/image/svg-to-raster \
|
||||||
-F "file=@logo.svg" \
|
-F "file=@logo.svg" \
|
||||||
-F 'settings={"width":1024,"dpi":300,"outputFormat":"png","backgroundColor":"#FFFFFF"}'
|
-F 'settings={"width":1024,"dpi":300,"outputFormat":"png","backgroundColor":"#FFFFFF"}'
|
||||||
```
|
```
|
||||||
@@ -39,7 +39,7 @@ curl -X POST http://localhost:13490/api/v1/tools/svg-to-raster \
|
|||||||
|
|
||||||
## Batch Endpoint
|
## Batch Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/svg-to-raster/batch`
|
`POST /api/v1/tools/image/svg-to-raster/batch`
|
||||||
|
|
||||||
Convert multiple SVG files in one request. Returns a ZIP archive.
|
Convert multiple SVG files in one request. Returns a ZIP archive.
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ Convert multiple SVG files in one request. Returns a ZIP archive.
|
|||||||
### Batch Example Request
|
### Batch Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/svg-to-raster/batch \
|
curl -X POST http://localhost:13490/api/v1/tools/image/svg-to-raster/batch \
|
||||||
-F "file=@icon1.svg" \
|
-F "file=@icon1.svg" \
|
||||||
-F "file=@icon2.svg" \
|
-F "file=@icon2.svg" \
|
||||||
-F "file=@icon3.svg" \
|
-F "file=@icon3.svg" \
|
||||||
@@ -8,7 +8,7 @@ Add styled text to images with optional drop shadow and semi-transparent backgro
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/text-overlay`
|
`POST /api/v1/tools/image/text-overlay`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/text-overlay \
|
curl -X POST http://localhost:1349/api/v1/tools/image/text-overlay \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"text": "Hello World", "fontSize": 64, "color": "#FFFFFF", "position": "bottom", "shadow": true}'
|
-F 'settings={"text": "Hello World", "fontSize": 64, "color": "#FFFFFF", "position": "bottom", "shadow": true}'
|
||||||
@@ -36,7 +36,7 @@ curl -X POST http://localhost:1349/api/v1/tools/text-overlay \
|
|||||||
With a background box:
|
With a background box:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/text-overlay \
|
curl -X POST http://localhost:1349/api/v1/tools/image/text-overlay \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"text": "Caption", "fontSize": 36, "position": "bottom", "backgroundBox": true, "backgroundColor": "#000000"}'
|
-F 'settings={"text": "Caption", "fontSize": 36, "position": "bottom", "backgroundBox": true, "backgroundColor": "#000000"}'
|
||||||
@@ -4,7 +4,7 @@ Fix fake transparent PNGs in one click. Uses AI matting (BiRefNet HR Matting mod
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/transparency-fixer`
|
`POST /api/v1/tools/image/transparency-fixer`
|
||||||
|
|
||||||
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ Fix fake transparent PNGs in one click. Uses AI matting (BiRefNet HR Matting mod
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/transparency-fixer \
|
curl -X POST http://localhost:13490/api/v1/tools/image/transparency-fixer \
|
||||||
-F "file=@fake-transparent.png" \
|
-F "file=@fake-transparent.png" \
|
||||||
-F 'settings={"defringe":40,"outputFormat":"png"}'
|
-F 'settings={"defringe":40,"outputFormat":"png"}'
|
||||||
```
|
```
|
||||||
@@ -4,7 +4,7 @@ AI super-resolution enhancement using Real-ESRGAN. Upscales images 2x-4x while p
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/upscale`
|
`POST /api/v1/tools/image/upscale`
|
||||||
|
|
||||||
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
**Processing:** Asynchronous (returns 202, poll `/api/v1/jobs/{jobId}/progress` for status via SSE)
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ AI super-resolution enhancement using Real-ESRGAN. Upscales images 2x-4x while p
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/upscale \
|
curl -X POST http://localhost:13490/api/v1/tools/image/upscale \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"scale":4,"model":"auto","faceEnhance":true,"format":"png"}'
|
-F 'settings={"scale":4,"model":"auto","faceEnhance":true,"format":"png"}'
|
||||||
```
|
```
|
||||||
@@ -4,7 +4,7 @@ Vectorize raster images into SVG using tracing algorithms. Supports black-and-wh
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/vectorize`
|
`POST /api/v1/tools/image/vectorize`
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ Vectorize raster images into SVG using tracing algorithms. Supports black-and-wh
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/vectorize \
|
curl -X POST http://localhost:13490/api/v1/tools/image/vectorize \
|
||||||
-F "file=@logo.png" \
|
-F "file=@logo.png" \
|
||||||
-F 'settings={"colorMode":"bw","threshold":128,"filterSpeckle":4,"pathMode":"spline"}'
|
-F 'settings={"colorMode":"bw","threshold":128,"filterSpeckle":4,"pathMode":"spline"}'
|
||||||
```
|
```
|
||||||
@@ -30,7 +30,7 @@ curl -X POST http://localhost:13490/api/v1/tools/vectorize \
|
|||||||
### Color Vectorization
|
### Color Vectorization
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:13490/api/v1/tools/vectorize \
|
curl -X POST http://localhost:13490/api/v1/tools/image/vectorize \
|
||||||
-F "file=@illustration.png" \
|
-F "file=@illustration.png" \
|
||||||
-F 'settings={"colorMode":"color","colorPrecision":8,"layerDifference":6,"filterSpeckle":4}'
|
-F 'settings={"colorMode":"color","colorPrecision":8,"layerDifference":6,"filterSpeckle":4}'
|
||||||
```
|
```
|
||||||
@@ -8,7 +8,7 @@ Add a vignette effect that darkens or tints the edges of an image. Supports adju
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/vignette`
|
`POST /api/v1/tools/image/vignette`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/vignette \
|
curl -X POST http://localhost:1349/api/v1/tools/image/vignette \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"strength": 0.7, "radius": 60, "softness": 70}'
|
-F 'settings={"strength": 0.7, "radius": 60, "softness": 70}'
|
||||||
@@ -8,7 +8,7 @@ Overlay a logo or secondary image as a watermark on a base image. The watermark
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/watermark-image`
|
`POST /api/v1/tools/image/watermark-image`
|
||||||
|
|
||||||
Accepts multipart form data with **two** image files and a JSON `settings` field.
|
Accepts multipart form data with **two** image files and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ Accepts multipart form data with **two** image files and a JSON `settings` field
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/watermark-image \
|
curl -X POST http://localhost:1349/api/v1/tools/image/watermark-image \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F "watermark=@logo.png" \
|
-F "watermark=@logo.png" \
|
||||||
@@ -8,7 +8,7 @@ Add a text watermark overlay to images. Supports single placement at corners/cen
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/watermark-text`
|
`POST /api/v1/tools/image/watermark-text`
|
||||||
|
|
||||||
Accepts multipart form data with an image file and a JSON `settings` field.
|
Accepts multipart form data with an image file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ Accepts multipart form data with an image file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/watermark-text \
|
curl -X POST http://localhost:1349/api/v1/tools/image/watermark-text \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"text": "SAMPLE", "fontSize": 64, "opacity": 30, "position": "center", "rotation": -30}'
|
-F 'settings={"text": "SAMPLE", "fontSize": 64, "opacity": 30, "position": "center", "rotation": -30}'
|
||||||
@@ -35,7 +35,7 @@ curl -X POST http://localhost:1349/api/v1/tools/watermark-text \
|
|||||||
Tiled watermark across the entire image:
|
Tiled watermark across the entire image:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/watermark-text \
|
curl -X POST http://localhost:1349/api/v1/tools/image/watermark-text \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@photo.jpg" \
|
-F "file=@photo.jpg" \
|
||||||
-F 'settings={"text": "DRAFT", "fontSize": 36, "opacity": 20, "position": "tiled", "rotation": -45}'
|
-F 'settings={"text": "DRAFT", "fontSize": 36, "opacity": 20, "position": "tiled", "rotation": -45}'
|
||||||
@@ -8,7 +8,7 @@ Impose pages for duplex printing so the printed sheets can be folded into a book
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/booklet-pdf`
|
`POST /api/v1/tools/pdf/booklet-pdf`
|
||||||
|
|
||||||
Accepts multipart form data with a PDF file and a JSON `settings` field.
|
Accepts multipart form data with a PDF file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field.
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/booklet-pdf \
|
curl -X POST http://localhost:1349/api/v1/tools/pdf/booklet-pdf \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@document.pdf" \
|
-F "file=@document.pdf" \
|
||||||
-F 'settings={"perSheet": 2}'
|
-F 'settings={"perSheet": 2}'
|
||||||
@@ -8,7 +8,7 @@ Reduce PDF file size by downsampling embedded images. Choose between a quality s
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/compress-pdf`
|
`POST /api/v1/tools/pdf/compress-pdf`
|
||||||
|
|
||||||
Accepts multipart form data with a PDF file and a JSON `settings` field.
|
Accepts multipart form data with a PDF file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ Accepts multipart form data with a PDF file and a JSON `settings` field.
|
|||||||
Compress by quality:
|
Compress by quality:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/compress-pdf \
|
curl -X POST http://localhost:1349/api/v1/tools/pdf/compress-pdf \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@document.pdf" \
|
-F "file=@document.pdf" \
|
||||||
-F 'settings={"mode": "quality", "quality": 60}'
|
-F 'settings={"mode": "quality", "quality": 60}'
|
||||||
@@ -34,7 +34,7 @@ curl -X POST http://localhost:1349/api/v1/tools/compress-pdf \
|
|||||||
Compress to a target size:
|
Compress to a target size:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/compress-pdf \
|
curl -X POST http://localhost:1349/api/v1/tools/pdf/compress-pdf \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@document.pdf" \
|
-F "file=@document.pdf" \
|
||||||
-F 'settings={"mode": "targetSize", "targetSizeKb": 500}'
|
-F 'settings={"mode": "targetSize", "targetSizeKb": 500}'
|
||||||
@@ -8,7 +8,7 @@ Convert documents between Word (DOCX), OpenDocument (ODT), RTF, and plain text f
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/convert-document`
|
`POST /api/v1/tools/pdf/convert-document`
|
||||||
|
|
||||||
Accepts multipart form data with a Word/ODT/RTF/TXT file and a JSON `settings` field.
|
Accepts multipart form data with a Word/ODT/RTF/TXT file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Accepts multipart form data with a Word/ODT/RTF/TXT file and a JSON `settings` f
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/convert-document \
|
curl -X POST http://localhost:1349/api/v1/tools/pdf/convert-document \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@report.docx" \
|
-F "file=@report.docx" \
|
||||||
-F 'settings={"format": "odt"}'
|
-F 'settings={"format": "odt"}'
|
||||||
+2
-2
@@ -8,7 +8,7 @@ Convert presentations between PowerPoint (PPTX) and OpenDocument Presentation (O
|
|||||||
|
|
||||||
## API Endpoint
|
## API Endpoint
|
||||||
|
|
||||||
`POST /api/v1/tools/convert-presentation`
|
`POST /api/v1/tools/pdf/convert-presentation`
|
||||||
|
|
||||||
Accepts multipart form data with a PowerPoint/ODP file and a JSON `settings` field.
|
Accepts multipart form data with a PowerPoint/ODP file and a JSON `settings` field.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Accepts multipart form data with a PowerPoint/ODP file and a JSON `settings` fie
|
|||||||
## Example Request
|
## Example Request
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST http://localhost:1349/api/v1/tools/convert-presentation \
|
curl -X POST http://localhost:1349/api/v1/tools/pdf/convert-presentation \
|
||||||
-H "Authorization: Bearer si_your-api-key" \
|
-H "Authorization: Bearer si_your-api-key" \
|
||||||
-F "file=@slides.pptx" \
|
-F "file=@slides.pptx" \
|
||||||
-F 'settings={"format": "odp"}'
|
-F 'settings={"format": "odp"}'
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user