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