What is each::storage?
each::storage is managed file hosting for the media that flows through each::labs. Upload an image, video, or audio file once and get back a stable public URL you can pass straight into each::api predictions and each::workflows — no need to stand up your own bucket or CDN. It’s also the layer each::labs uses to deliver results: model and workflow outputs are typically (though not always) served ascdn-us.eachlabs.ai URLs, so the files you upload and the results you get back share one fast, consistent host.
Why use it
- No infrastructure to run — skip hosting and signing your own uploads; we hand you a presigned URL and a stable public link.
- Built for model inputs — returned URLs are reliably fetchable by our executors, so predictions don’t fail on inaccessible media.
- One platform, one key — uploads use the same
X-API-Keyas the rest of each::api. - Fast delivery — files are served from a CDN over HTTPS.
How it works
Request a presigned URL
Call Upload File (
POST /v1/upload/presign) with the file’s content type. You get a short-lived upload URL plus a public public_url.Use the URL
Pass
public_url as an input to any model or workflow. Call Delete File when you no longer need it.Limits
| Limit | Value |
|---|---|
| Max file size | 100 MB per upload |
| Presigned URL lifetime | 15 minutes |
| Supported file types | image, video, audio, other |
Where your data resides
Files are stored in the United States and delivered through thecdn-us.eachlabs.ai CDN over HTTPS.
Access & privacy
Eachpublic_url contains an unguessable identifier but is readable by anyone who has the link — treat it as public. File management is scoped to your organization through your API key: you can only delete files uploaded under your own account.