Universal converter
Convert a single file to a target format. Used by 143+ format pairs (image, audio, video, document, archive, 3D, font).
Request (multipart/form-data)
| Field | Type | Notes |
|---|---|---|
file REQUIRED | file | The source file. Up to 200 MB. |
to_format REQUIRED | string | Target format extension, e.g. png, mp3, pdf, webp. 2–5 alphanumeric chars. |
img_quality optional | int | Image quality 0–100. Default 80. Used for JPG, WebP, PDF compression. |
img_resize_w, img_resize_h optional | int | Resize to exact dimensions (16–7680 px). Use one or both. |
img_rotate optional | string | Rotate: 90, 180, 270, flip-h, flip-v. |
img_crop_x, img_crop_y, img_crop_w, img_crop_h optional | int | Crop region in pixels. |
mp3_mode, mp3_quality, mp3_bitrate optional | various | MP3 encoder options. See audio reference. |
wav_rate, wav_depth, wav_channels optional | int | WAV output options. |
ocr_lang optional | string | Tesseract language for PDF/image OCR. Default eng. |
Response (success, 200)
{ "data": {
"job_id": "5f8c1a2e9d4b7c0e3f6a8b2d1e4c5f78",
"status": "done",
"output": { "filename": "photo_cleverutils.com.jpg", "size_bytes": 184523, "size_human": "180 KB", "url": "https://cleverutils.com/api/v1/jobs/5f8c.../output" },
"links": { "self": "...", "output": "..." },
"expires_at": "2026-04-10T14:32:11Z"
} }Batch processing
Convert up to 20 files in a single request. Each file counts against your daily quota individually.
| Field | Type | Notes |
|---|---|---|
files[] REQUIRED | file[] | Up to 20 files in a single multipart request. |
to_format REQUIRED | string | Target format applied to all files. |
Response shape
Returns a batch_id plus an array of per-file jobs. Use GET /api/v1/batches/{batch_id} to poll aggregated status later.
Job lifecycle
Poll the status of a conversion job. job_id is 32 hex characters returned by /api/v1/convert.
Response states
data.status: "processing"— conversion in progress, optionalprogress0–99data.status: "done"— conversion complete,outputblock populated- HTTP 404 with
error.code: JOB_NOT_FOUND— bad ID or expired - HTTP 500 with
error.code: CONVERSION_FAILED— conversion crashed
Stream the converted file as a binary attachment. Returns Content-Type matching the output MIME and Content-Disposition: attachment; filename=.... Files expire 2 hours after conversion.
Aggregated status of all jobs in a batch. batch_id format: bat_ followed by 16 hex characters. Includes overall_status (done / processing / failed) plus the per-job array.
AI tools
Specialized tools that don't fit a simple format conversion. Each tool has its own parameter set.
| Slug | Description | Daily limit |
|---|---|---|
upscale-image | AI 2x/3x/4x upscale (Real-ESRGAN). Optional: scale, model. | 50 |
enhance-photo | Auto-enhance photo (currently aliased to colorize). | 50 |
vocal-remover | Separate vocals from instrumental (Demucs). | 50 |
speech-to-text | Transcribe audio/video. Options: format (txt/srt/vtt), quality, language. | 100 |
remove-background | Remove image background (rembg). | 100 |
colorize-photo | Colorize black-and-white photos (siggraph17). | 50 |
restore-old-photo | Restore + colorize old photos. | 50 |
noise-reduction | Audio noise reduction (DeepFilterNet3). | 50 |
change-background | Replace image background. | 100 |
remove-object | Remove object via inpainting (LaMa). | 50 |
passport-photo | Generate passport photo. | 100 |
image-to-text | OCR (Tesseract). Returns text in JSON, no download_url. | 100 |
Image edit tools
| Slug | Description |
|---|---|
resize-image | Resize. Pass img_resize_w and/or img_resize_h. |
compress-image, compress-jpg, compress-png, compress-webp, compress-gif | Compress with img_quality. |
crop-image | Crop region with img_crop_x/y/w/h. |
rotate-image | Rotate via img_rotate. |
grayscale-image | Convert to grayscale. |
blur-image | Apply Gaussian blur. |
watermark-image | Add text watermark. |
og-image-resizer | Resize to standard OG dimensions (1200x630). |
Audio & video edit tools
| Slug | Description |
|---|---|
audio-cutter | Trim audio. Pass start_time, end_time. |
trim-video | Trim video to time range. |
compress-video | Compress with target bitrate or quality preset. |
extract-audio-from-video | Extract audio track as MP3. |
remove-audio-from-video | Remove audio from video. |
merge-videos | Merge multiple video files. Send files[]. |
reverse-video | Play video backwards. |
gif-maker | Build animated GIF from frames or video. |
PDF tools
| Slug | Description |
|---|---|
compress-pdf | Compress with quality 0–100 (mapped to Ghostscript /screen, /ebook, /printer, /prepress). |
merge-pdf | Merge multiple PDFs. Send files[]. |
split-pdf | Split PDF into individual pages. |
pdf-page-remover | Remove specific pages. Pass pages as comma-separated list. |
protect-pdf | Add password. Pass password. |
unlock-pdf | Remove password. Pass password. |
webpage-to-pdf | Convert URL to PDF. Pass url instead of file. |
Health and limits
Liveness probe. Returns service status and detected versions of binaries (ImageMagick, FFmpeg, Ghostscript, LibreOffice, Tesseract). Does NOT count against rate limits.
Read-only inspection of your current rate-limit usage. Returns daily and hourly counters, remaining quotas, and ban status. Does NOT count against rate limits.
See also
- Quickstart guide — convert your first file in 60 seconds
- Rate limits — quotas, headers, retry behavior
- Error codes — every error and how to recover
- Authentication — (spoiler: there isn't any)