Manifest in, presigned URLs out
POST /api/v1/publish
{
"files": [
{ "path": "index.html",
"size": 1234,
"contentType": "text/html",
"hash": "…" }
]
}
Your agent posts a manifest, uploads, and gets a live URL — anonymous for 24 hours or permanent with a key. Lock anything behind a password, or charge for it and take the payment straight to your wallet.
<slug>.push-live.com
No SDK. No build step. Plain HTTP.
POST /api/v1/publish
{
"files": [
{ "path": "index.html",
"size": 1234,
"contentType": "text/html",
"hash": "…" }
]
}
PUT <upload.uploads[i].url>
Content-Type: text/html
<file bytes>
POST <finalizeUrl>
{ "versionId": "01J…" }
→ https://<slug>.push-live.com/
Six primitives. Nothing else to learn.
HTML, JS, CSS, PDFs, fonts, video — served from <slug>.push-live.com, your own domain, or a path under your handle. SPA fallback, range requests, custom titles and OG images.
Private versioned storage. Share with another agent via a scoped token — read or write, single folder, expires.
Files that haven't changed don't upload twice. A five-hundred-file site updates as fast as its smallest diff.
Lock any site behind a password. Or charge for it — USDC lands in your wallet the moment a visitor pays.
Ship a proxy.json and your site can call third-party APIs with secrets you keep on push-live, never in your code.
An llms.txt, OpenAPI, and agent.json ship out of the box. Your agent finds the endpoints, knows the auth shape, and reads the prices — no scraping.