Quick Start
Upload an image, get a CDN URL. No account required.
AI Agents
Building an AI agent or LLM integration? We publish machine-readable documentation:
- llms.txt — structured overview for LLM context windows
- llms-full.txt — complete API reference in plain text
- OpenAPI spec — machine-parseable endpoint definitions
See the AI Agents guide for MCP integration and more.
Upload
curl -X POST "https://api.img.pro/v1/upload" \
-F "file=@photo.jpg"
{
"id": "abc123",
"name": "photo.jpg",
"url": "https://img.pro/abc123",
"src": "https://src.img.pro/xyz/abc123.jpeg",
"width": 1920,
"height": 1080,
"filesize": 245678,
"expires_at": 1706659200,
"created_at": 1704067200,
"upgrade": {
"type": "register",
"url": "https://img.pro/api/quick-start",
"message": "Get an API key for permanent storage and 100 uploads/month",
"label": "Create API Key"
}
}
Your image is live. Two URLs:
url— Viewer page with OG tags for social sharing (img.pro/abc123)src— CDN image for<img>tags and hotlinking (src.img.pro/…)
Import from a URL instead:
curl -X POST "https://api.img.pro/v1/import" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/photo.jpg"}'
Same response format — you get url, src, dimensions, and the upgrade hint.
Get a Key
Create an API key with one request:
curl -X POST "https://api.img.pro/v1/keys" \
-H "Content-Type: application/json" \
-d '{"email": "you@company.com"}'
{
"key": "img_live_abc123...",
"key_id": "key_7x9k2m",
"status": "active",
"verified": false,
"limits": {
"uploads": 100,
"storage_mb": 5120,
"retention_days": 30
},
"message": "Key active. Check your email to verify and unlock permanent storage."
}
Now use it:
curl -X POST "https://api.img.pro/v1/upload" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@photo.jpg" \
-F "tags=hero,homepage" \
-F "namespace=my-project"
{
"id": "abc123",
"name": "photo.jpg",
"url": "https://img.pro/abc123",
"src": "https://src.img.pro/xyz/abc123.jpeg",
"width": 1920,
"height": 1080,
"filesize": 245678,
"editable": true,
"tags": ["hero", "homepage"],
"namespace": "my-project",
"created_at": 1704067200
}
With a key, your uploads are tied to your account and organized by namespace and tags. Unverified keys have the same 30-day retention — verify your email to make uploads permanent.
Sizes & Formats
Append ?size= to the src URL to get a resized variant. Change the extension to convert formats. All transformations happen at the edge and are cached globally.
# Resize
https://src.img.pro/xyz/abc123.jpeg?size=s # 320px — thumbnails
https://src.img.pro/xyz/abc123.jpeg?size=m # 640px — cards, mobile
https://src.img.pro/xyz/abc123.jpeg?size=l # 1080px — full display
https://src.img.pro/xyz/abc123.jpeg # original (no resize)
# Convert format (change the extension)
https://src.img.pro/xyz/abc123.webp?size=m # WebP (best compression)
https://src.img.pro/xyz/abc123.jpg?size=m # JPEG
https://src.img.pro/xyz/abc123.png?size=m # PNG
Sizes constrain the short edge (minimum dimension), preserving aspect ratio. Images smaller than the target are never upscaled.
Verify & Upgrade
Check your email after creating a key. One click unlocks permanent storage.
- Uploads
- 20/hr per IP
- Storage
- Shared
- Retention
- 30 days
- Max file
- 20 MB
- Uploads
- 100/mo
- Storage
- 5 GB
- Retention
- 30 days
- Max file
- 70 MB
- Uploads
- 100/mo
- Storage
- 5 GB
- Retention
- Permanent
- Max file
- 70 MB
- Uploads
- 1,000/mo
- Storage
- 50 GB
- Retention
- Permanent
- Max file
- 70 MB
Need more? See all plans — up to 100,000 uploads/mo and 5 TB storage. See the Error Reference for every error code and action.