Upload a local image and get a temporary public URL (48 h) for image-to-image, image-to-video and vision endpoints.
image_url, image_urls, image_list, images or image_input (Kling, Veo, Seedance, MiniMax, Nano Banana, Seedream, etc.).Note: temporary images are kept for 48 hours and then purged automatically. Storage is not billed separately; abuse is limited by a per-user upload quota and rate limit.
| Use case | Endpoint |
|---|---|
| Local file upload | POST /v1/files/uploads |
| Base64 upload | POST /v1/files/uploads/base64 |
| Fetch and store a remote image | POST /v1/files/uploads/url |
| Presigned direct upload (large files) | POST /v1/files/uploads/presign |
| Item | Rule |
|---|---|
| Auth | Authorization: Bearer YOUR_API_KEY |
| Formats | image/png, image/jpeg, image/webp, image/gif |
| Max file size | 20 MB |
| Upload quota | 200 MB per rolling 24 h |
| Lifetime | 48 h |
| Returned URL | https://media.crazyrouter.com/task-artifacts/tmp-inputs/... |
{
"id": "file_e5bbce820b5941409682a9c5e9ba79f1",
"url": "https://media.crazyrouter.com/task-artifacts/tmp-inputs/2026/05/13/user-1/file_e5bbce820b5941409682a9c5e9ba79f1.png",
"mime_type": "image/png",
"size": 2025,
"expires_at": "2026-05-16T04:41:35Z"
}| Status | code | Meaning |
|---|---|---|
| 400 | invalid_file / unsupported_mime_type | no file, or format not supported |
| 413 | file_too_large | over 20 MB |
| 429 | upload_quota_exceeded | 24 h quota or rate limit hit |
POST /api/upload path is not supported.Last verified/modified: 2026-09-28 (rewritten: the previous page documented a third-party image host that is not part of Crazyrouter; endpoints verified against https://api.crazyrouter.com)