cURL · API

Image Upload API one endpoint, one POST, one URL back.

A boring, focused image upload API. POST multipart form-data to /api/upload, receive a JSON response with a permanent CDN URL. No SDK required — curl, Python requests, Node fetch, or whatever your stack uses.

cURL
# One-line upload: POST multipart/form-data to /api/upload
curl -X POST https://imagetourl.cloud/api/upload \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@/path/to/image.png"

# Response (JSON)
# {
#   "data": {
#     "url": "https://imagetourl.cloud/uploads/abc123.png",
#     "id": "abc123",
#     "size": 245678,
#     "mime": "image/png",
#     "created_at": "2026-04-18T12:34:56Z"
#   }
# }

Why use ImageToURL's API

Predictable response shape

Always { data: { url, id, size, mime, created_at } } on success; { error } on failure. No deep nested structures to parse.

No SDK lock-in

Plain multipart upload works from every language. No npm install, no pip install required — though language-specific examples are on this page.

Permanent URLs

Upload once, URL lasts forever (Pro/Business guarantees written into the SLA). No 30-day expiry, no inactivity purge.

Cloudflare-backed CDN

Uploads are served from 300+ edge PoPs. Your users hit the edge closest to them — no single-region latency.

FAQ

Do I need an API key?

Anonymous uploads work without a key (rate-limited). Programmatic use in production should use a Pro or Business API key — higher rate limits, programmatic delete, and usage dashboards.

What's the max file size?

10 MB on free/anonymous, 10 MB on Pro, 50 MB on Business. Contact us for larger.

Is there a rate limit?

Anonymous: 10 uploads/min per IP. Pro: 60/min. Business: 600/min. Contact for higher.

How do I delete an upload?

DELETE /api/uploads/:id with your API key. Only works for uploads made with the same key.

Supported formats?

PNG, JPG, WebP, GIF, SVG. AVIF supported on upload; served as-is. HEIC not accepted — convert client-side first via /heic-to-jpg.

Does the API return responsive variants?

Not in the free response. Pro plan includes optional ?w=300 query-string resizing via Cloudflare Images on the CDN URL.

CORS?

Access-Control-Allow-Origin: * for GET on upload URLs. POST to /api/upload requires Origin header; we allow all origins for the upload endpoint too.

Webhooks on upload?

Business plan supports webhooks — configure a URL in your dashboard and we POST the upload metadata on each successful upload.