The image compression API
An image compression API shrinks and converts images from your code. Three endpoints: ask for AVIF under an exact byte cap and get it, or a named error.
- AVIF-first
- Exact byte caps
- HTTPS + JSON, no SDK
500 credits free every month · purchased credits never expire
# 1 · an upload slot; PUT the file to the url it returns
curl -X POST https://api.blinkimg.com/v1/uploads \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d "{\"filename\": \"photo.jpg\",
\"contentLength\": $(wc -c < photo.jpg)}"
curl -X PUT --upload-file photo.jpg "$UPLOAD_URL"
# 2 · the job: AVIF, guaranteed under 100 KB
curl -X POST https://api.blinkimg.com/v1/jobs \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"uploadId": "UPLOAD_ID",
"options": {"format": "avif", "targetBytes": 100000}}'
# 3 · once GET /v1/jobs/JOB_ID says "succeeded"
curl https://api.blinkimg.com/v1/jobs/JOB_ID/result \
-H "Authorization: Bearer $KEY"This page is the API’s first customer
Drop a file and watch the same endpoints your key would call.
Drop images or browse
JPEG · PNG · WEBP · AVIF · HEIC · up to 50 at once · max 30 MB each
Advanced settings
Auto tunes each image.
A hard cap for the number your form demands.
A floor for forms that refuse small files.
Empty side keeps the ratio. Never enlarges.
Response this page just received
Drop a file into the tool. The job it creates lands here, exactly as the API returns it: the options you picked, the bytes in and out, the status.
Same endpoint, same job options, same engine.Nothing on this page is a mock.

photo.jpg · 576.8 KB
