Quick Start
API Reference
Error Reference
AI Agents

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

Request
bash
curl -X POST "https://api.img.pro/v1/upload" \
  -F "file=@photo.jpg"
Response
json
{
  "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:

Request
bash
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.

Anonymous uploads expire after 30 days, max 20 MB, rate limited to 20/hour per IP. Get an API key for permanent storage and higher limits.

Get a Key

Create an API key with one request:

Request
bash
curl -X POST "https://api.img.pro/v1/keys" \
  -H "Content-Type: application/json" \
  -d '{"email": "you@company.com"}'
Response
json
{
  "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."
}
Save this key. It's shown once and cannot be retrieved later. You can also create an account and manage keys from the dashboard.

Now use it:

Request
bash
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"
Response
json
{
  "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.

text
# 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.

Anonymous
Uploads
20/hr per IP
Storage
Shared
Retention
30 days
Max file
20 MB
Unverified Key
Uploads
100/mo
Storage
5 GB
Retention
30 days
Max file
70 MB
Verified (Free)
Uploads
100/mo
Storage
5 GB
Retention
Permanent
Max file
70 MB
Pro ($10/mo)
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.