API Reference

Every endpoint, every parameter, every response field. Base URL: https://cleverutils.com/api/v1

Universal converter

POST/api/v1/convert

Convert a single file to a target format. Used by 143+ format pairs (image, audio, video, document, archive, 3D, font).

Request (multipart/form-data)

FieldTypeNotes
file REQUIREDfileThe source file. Up to 200 MB.
to_format REQUIREDstringTarget format extension, e.g. png, mp3, pdf, webp. 2–5 alphanumeric chars.
img_quality optionalintImage quality 0–100. Default 80. Used for JPG, WebP, PDF compression.
img_resize_w, img_resize_h optionalintResize to exact dimensions (16–7680 px). Use one or both.
img_rotate optionalstringRotate: 90, 180, 270, flip-h, flip-v.
img_crop_x, img_crop_y, img_crop_w, img_crop_h optionalintCrop region in pixels.
mp3_mode, mp3_quality, mp3_bitrate optionalvariousMP3 encoder options. See audio reference.
wav_rate, wav_depth, wav_channels optionalintWAV output options.
ocr_lang optionalstringTesseract language for PDF/image OCR. Default eng.

Response (success, 200)

JSON
{ "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

POST/api/v1/batch

Convert up to 20 files in a single request. Each file counts against your daily quota individually.

FieldTypeNotes
files[] REQUIREDfile[]Up to 20 files in a single multipart request.
to_format REQUIREDstringTarget 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

GET/api/v1/jobs/{job_id}

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, optional progress 0–99
  • data.status: "done" — conversion complete, output block populated
  • HTTP 404 with error.code: JOB_NOT_FOUND — bad ID or expired
  • HTTP 500 with error.code: CONVERSION_FAILED — conversion crashed
GET/api/v1/jobs/{job_id}/output

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.

GET/api/v1/batches/{batch_id}

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

POST/api/v1/tools/{slug}

Specialized tools that don't fit a simple format conversion. Each tool has its own parameter set.

SlugDescriptionDaily limit
upscale-imageAI 2x/3x/4x upscale (Real-ESRGAN). Optional: scale, model.50
enhance-photoAuto-enhance photo (currently aliased to colorize).50
vocal-removerSeparate vocals from instrumental (Demucs).50
speech-to-textTranscribe audio/video. Options: format (txt/srt/vtt), quality, language.100
remove-backgroundRemove image background (rembg).100
colorize-photoColorize black-and-white photos (siggraph17).50
restore-old-photoRestore + colorize old photos.50
noise-reductionAudio noise reduction (DeepFilterNet3).50
change-backgroundReplace image background.100
remove-objectRemove object via inpainting (LaMa).50
passport-photoGenerate passport photo.100
image-to-textOCR (Tesseract). Returns text in JSON, no download_url.100

Image edit tools

POST/api/v1/tools/{slug}
SlugDescription
resize-imageResize. Pass img_resize_w and/or img_resize_h.
compress-image, compress-jpg, compress-png, compress-webp, compress-gifCompress with img_quality.
crop-imageCrop region with img_crop_x/y/w/h.
rotate-imageRotate via img_rotate.
grayscale-imageConvert to grayscale.
blur-imageApply Gaussian blur.
watermark-imageAdd text watermark.
og-image-resizerResize to standard OG dimensions (1200x630).

Audio & video edit tools

POST/api/v1/tools/{slug}
SlugDescription
audio-cutterTrim audio. Pass start_time, end_time.
trim-videoTrim video to time range.
compress-videoCompress with target bitrate or quality preset.
extract-audio-from-videoExtract audio track as MP3.
remove-audio-from-videoRemove audio from video.
merge-videosMerge multiple video files. Send files[].
reverse-videoPlay video backwards.
gif-makerBuild animated GIF from frames or video.

PDF tools

POST/api/v1/tools/{slug}
SlugDescription
compress-pdfCompress with quality 0–100 (mapped to Ghostscript /screen, /ebook, /printer, /prepress).
merge-pdfMerge multiple PDFs. Send files[].
split-pdfSplit PDF into individual pages.
pdf-page-removerRemove specific pages. Pass pages as comma-separated list.
protect-pdfAdd password. Pass password.
unlock-pdfRemove password. Pass password.
webpage-to-pdfConvert URL to PDF. Pass url instead of file.

Health and limits

GET/api/v1/health

Liveness probe. Returns service status and detected versions of binaries (ImageMagick, FFmpeg, Ghostscript, LibreOffice, Tesseract). Does NOT count against rate limits.

GET/api/v1/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

Request a Feature

0 / 2000