Upload media
Live
Open in ChatGPT
(opens in new tab)Last verified: 2026-08-11Create an upload
Call
POST /uploads with the exact MIME type and byte size. The response contains a 15-minute signed PUT URL and required headers. Upload exactly that object, then call GET /uploads/:id. The endpoint returns a one-hour signed input URL after the stored size and MIME match, the container signature is valid, and audio/video duration is decodable and within the configured limit.Security boundary
Objects are private and encrypted at rest. Supported inputs are allow-listed image, audio, and video MIME types up to 100 MB. Audio is limited to 3,600 seconds and video to 600 seconds by default. Each account may keep 25 active uploads totaling up to 500 MB; a full quota returns
upload_quota_exceeded. ModelRush rejects signature mismatches, undecodable media, non-HTTPS external references, credentials in URLs, redirects, non-standard ports, private networks, localhost, and cloud metadata targets.Expiry and deletion
Upload records expire after 24 hours; signed read URLs expire after one hour. Use
DELETE /uploads/:id for early deletion. Do not store signed URLs in logs or databases—store the upload_... ID and request a fresh workflow when it expires.PreviousAsynchronous jobs
NextWebhooks