Start an upload
- Create a session with
POST /v1/sessions. - Hash the exact file bytes with SHA-256 and create an upload with
POST /v1/uploads. - Send raw bytes once to the returned Worker URL using all returned headers.
- Complete the upload with
POST /v1/uploads/{id}/completeand wait until the asset is ready.
Keep the returned expiry. For uncertain writes, use the private status URL rather than replaying bytes. See the full API guide for authentication and recovery details.
Hosting limits
Contract 1-1f2fd4d3 · policy 2026-09-28-v2
| Client | Maximum file | Retention | Daily attempts | Batch items |
|---|---|---|---|---|
| Visitor | 5 MiB | 1 day | 25 | 25 |
| Free account | 20 MiB | 7 days | 250 | 250 |
| PRO account | 20 MiB | No routine expiry while PRO is active | 2,500 | 1,000 |
Supported upload formats
audio/mp4 · audio/mpeg · audio/wav · audio/webm · image/gif · image/heic · image/heif · image/jpeg · image/png · image/webp · video/mp4
New public IDs use 16 Base62 characters; older links remain accepted.
Production configuration
- Motion uploads: Available
- Credits: Available
- CDN: Available
Check live API capabilities before using an optional feature. Configuration availability does not guarantee an account entitlement or provider health.