Pixotter Image API

Compress, resize, and convert images with a single HTTP request. No signup needed to start.

Quick start — compress an image in one line:
curl -F "[email protected]" -F "quality=75" https://api.pixotter.com/api/v1/compress -o compressed.jpg

Your first 50 operations per day are free. No API key required.

Base URL

https://api.pixotter.com/api/v1

Authentication

The first 50 operations per day require no authentication. Just send your request.

For higher limits, generate a free API key:

curl -X POST -H "Content-Type: application/json" \
  -d '{"email":"[email protected]"}' \
  https://api.pixotter.com/api/v1/keys

Then include it in your requests:

curl -H "X-API-Key: px_your_key_here" \
  -F "[email protected]" -F "quality=75" \
  https://api.pixotter.com/api/v1/compress -o result.jpg

Pricing

No Key

Free
  • 50 ops/day per IP
  • 10MB file limit
  • All operations

Free Account

$0
  • 500 ops/month
  • 10MB file limit
  • API key for tracking

Pay-as-you-go

$0.009/op
  • Unlimited operations
  • 50MB file limit
  • Priority processing

Endpoints

POST /api/v1/compress

Compress an image. Supports JPEG, PNG, WebP, AVIF, GIF, and TIFF.

Parameters

NameTypeDescription
imagefile requiredImage file (multipart/form-data)
qualityinteger optionalOutput quality, 1-100. Default: 80
target_sizeinteger optionalTarget file size in bytes. API will find optimal quality. Overrides quality.

Example

# Compress to quality 60
curl -F "[email protected]" -F "quality=60" \
  https://api.pixotter.com/api/v1/compress -o compressed.jpg

# Compress to target 200KB
curl -F "[email protected]" -F "target_size=204800" \
  https://api.pixotter.com/api/v1/compress -o compressed.jpg
POST /api/v1/resize

Resize an image to exact dimensions or a platform preset.

Parameters

NameTypeDescription
imagefile requiredImage file (multipart/form-data)
widthinteger optionalTarget width in pixels
heightinteger optionalTarget height in pixels
presetstring optionalPlatform preset (see below). Overrides width/height.
fitstring optionalResize strategy: cover, contain, fill, inside (default), outside

Presets

instagram-post (1080x1080)
instagram-story (1080x1920)
facebook-post (1200x630)
facebook-cover (820x312)
twitter-post (1200x675)
twitter-header (1500x500)
linkedin-post (1200x627)
linkedin-banner (1584x396)
youtube-thumbnail (1280x720)
shopify-product (2048x2048)
passport (600x600)
email (600w)
web-optimized (1920w)

Example

# Resize to 800x600
curl -F "[email protected]" -F "width=800" -F "height=600" \
  https://api.pixotter.com/api/v1/resize -o resized.jpg

# Resize using preset
curl -F "[email protected]" -F "preset=instagram-post" \
  https://api.pixotter.com/api/v1/resize -o instagram.jpg
POST /api/v1/convert

Convert an image to a different format.

Parameters

NameTypeDescription
imagefile requiredImage file (multipart/form-data)
formatstring requiredTarget format: jpeg, png, webp, avif, gif, tiff
qualityinteger optionalOutput quality, 1-100. Default: 85

Example

# Convert PNG to WebP
curl -F "[email protected]" -F "format=webp" \
  https://api.pixotter.com/api/v1/convert -o screenshot.webp

# Convert to AVIF with quality 70
curl -F "[email protected]" -F "format=avif" -F "quality=70" \
  https://api.pixotter.com/api/v1/convert -o photo.avif

Response

All endpoints return the processed image directly as the response body (binary). Metadata is in response headers:

HeaderDescription
X-Original-SizeInput file size in bytes
X-Output-SizeOutput file size in bytes
X-WidthOutput width in pixels
X-HeightOutput height in pixels
X-FormatOutput format
X-Elapsed-MsProcessing time in milliseconds
X-Savings-PercentFile size reduction percentage (compress only)
X-RateLimit-LimitTotal operations allowed in period
X-RateLimit-RemainingOperations remaining in period

Errors

Errors return JSON with an error field:

{ "error": "No image file provided. Send as multipart/form-data with field name \"image\"." }
StatusMeaning
400Bad request (missing parameters, invalid format)
401Invalid API key
413File too large (10MB free tier limit)
422Unprocessable image (corrupted or unsupported)
429Rate limit exceeded

Try It

Test the API right here. Select an image and choose an operation.



Privacy

Images are processed and immediately deleted. We never store your images. Only metadata (file size, dimensions, operation, timestamp) is logged for rate limiting and abuse prevention. Full privacy policy.