Portlane accepts, validates, and stores files from your users — so your team stops maintaining upload infrastructure and goes back to building the product.
POST /v2/upload/8a3f1c5b Authorization: Bearer sk_live_•••••••• 200 OK { "id": "up_9f1kd2a", "status": "accepted", "bytes": 4291821, "region": "eu-central", "checksum": "sha256:9c2a…" }
Every upload moves through the same four stages, whether it's a 12KB avatar or a 4GB export.
The edge accepts the stream over a resumable connection and issues an upload id immediately.
Content type, size limits, and checksum are verified before anything is written to durable storage.
Objects are replicated across two availability zones in the destination region by default.
A webhook fires to your endpoint once the object is durable and ready to reference.
Spiky, unpredictable, and mostly small files with the occasional very large one.