Pay-per-upload file hosting and static site hosting — upload a file or zip, get a public URL for 6 months.
What it does
StableUpload is a pay-per-upload file hosting and static site hosting API. No API keys are needed; payment is handled via MPP (Tempo/pathUSD) or x402 (USDC on Base/Solana). You POST to `/api/upload` with a filename, content type, and tier selection, receive a presigned S3 upload URL, PUT your file to that URL, and get a permanent public download link that lasts 6 months. Three tiers are available: 10 MB for $0.02, 100 MB for $0.20, and 1 GB for $2.00.
Beyond single-file uploads, StableUpload supports full static site hosting. You POST to `/api/site` to buy a site slot, upload a zip file, then call `/api/site/activate` to extract and serve it at a subdomain (`https://{uploadId}.s.stableupload.dev/`). Sites support custom domains with automatic Cloudflare TLS provisioning (~30 seconds with DCV delegation), custom response headers via a `_headers` file (useful for WASM/COOP/COEP), and free updates — you can re-upload and re-activate without paying again. Site expiration can be extended via `/api/site/renew` at the tier price per 6-month period (up to 10 periods at once). Sites are limited to 500 files, and the tier limit applies to uncompressed size.
The API has a full OpenAPI 3.1 spec with 10 endpoints covering upload, site management, custom domains, and listing/downloading uploads. Wallet-authenticated (SIWX) endpoints handle site updates, domain management, and upload listing. Files are stored on AWS S3 with presigned upload URLs that expire after 1 hour.
Capabilities
Use cases
- —AI agents uploading generated files (images, documents, code artifacts) and sharing public URLs
- —Deploying static sites or single-page apps from a zip archive with custom domain support
- —Programmatic file hosting for bots or automation pipelines that need temporary public URLs
- —Hosting WASM applications with required COOP/COEP headers via custom _headers file
- —Agents storing and serving assets (screenshots, reports, exports) during multi-step workflows
Fit
Best for
- —AI agents that need to upload and share files without managing credentials or infrastructure
- —Deploying quick static sites with automatic HTTPS and optional custom domains
- —Small-to-medium file hosting (up to 1 GB) with simple pay-per-use pricing
- —Workflows requiring temporary (6-month) public URLs for generated content
Not for
- —Long-term permanent archival storage (uploads expire after 6 months unless renewed)
- —Large file hosting beyond 1 GB per upload
- —Dynamic server-side applications (static files only)
Quick start
# 1. Buy an upload slot (pays $0.02 via MPP/x402)
curl -X POST https://stableupload.dev/api/upload \
-H 'Content-Type: application/json' \
-d '{"filename": "photo.png", "contentType": "image/png", "tier": "10mb"}'
# 2. Upload file to the returned uploadUrl
curl -X PUT "$uploadUrl" -H 'Content-Type: image/png' --data-binary @photo.png
# 3. File is live at publicUrl for 6 monthsExample
Request
{
"tier": "10mb",
"filename": "photo.png",
"contentType": "image/png"
}Response
{
"maxSize": 10485760,
"siteUrl": "https://k7gm3nqp2.s.stableupload.dev/",
"uploadId": "k7gm3nqp2",
"expiresAt": "2026-01-15T00:00:00.000Z",
"publicUrl": "https://stableupload.dev/d/k7gm3nqp2/photo.png",
"uploadUrl": "https://s3.amazonaws.com/bucket/k7gm3nqp2?X-Amz-Signature=...",
"curlExample": "curl -X PUT 'https://s3.amazonaws.com/bucket/k7gm3nqp2?...' -H 'Content-Type: image/png' --data-binary @photo.png"
}Endpoint
Quality
Full OpenAPI 3.1 spec with detailed schemas for all endpoints, comprehensive x-guidance documentation, clear pricing tiers, and well-documented workflows. The endpoint returned 405 on HEAD/GET probes (expected since it's a POST-only endpoint), but the OpenAPI spec and landing page confirm it is live. Minor deductions for no dedicated docs page (404) and no direct 402 challenge capture on the POST method.
Warnings
- —Probe returned 405 on HEAD/GET because /api/upload only accepts POST; this is expected behavior, not an outage
- —The /docs, /api, /pricing, and /README pages all return 404 — documentation is embedded in the OpenAPI x-guidance field only
- —Uploads expire after 6 months and expired sites cannot be renewed (files are deleted on expiry)
Citations
- —Three pricing tiers: 10 MB for $0.02, 100 MB for $0.20, 1 GB for $2.00https://stableupload.dev
- —Uploads expire after 6 months, files stored on AWS S3, upload URLs expire after 1 hourhttps://stableupload.dev/.well-known/x402
- —Sites support max 500 files, tier limit applies to uncompressed sizehttps://stableupload.dev/.well-known/x402
- —Payment via USDC on Base, Solana, or Tempohttps://stableupload.dev
- —Custom domains get automatic HTTPS via Cloudflare DV cert (~30s with DCV delegation)https://stableupload.dev/.well-known/x402
- —MPP method is tempo with intent charge; also supports x402https://stableupload.dev/.well-known/x402