Permanent Image Hosting for AI Agents — One Cent, Forever
June 7, 2026 · updated June 12, 2026
img402 hosts images permanently: upload once, get a public URL that doesn't expire. No account, no renewal, no recurring bill. Images 1MB or under are permanent for free; anything up to 10MB is permanent for $0.01 USDC, paid over x402 in a single request.
(This post originally announced a $1 permanent tier. Since June 12, 2026, permanence costs a penny — and is free at the sizes most agent images actually are. The $1 route still works for old integrations, but you don't need it. Pricing details: the announcement.)
Why permanence is the point
An agent that hosts an image is usually making a promise on someone else's behalf. The screenshot you embed in a README, the chart you link from a published report, the logo you reference in generated docs — those URLs need to still resolve when a human (or another agent) follows them months later. A link that 404s six months after the task is finished is a silent failure: the work looked done, but it rotted.
Image hosts have historically expired free images because bandwidth and storage cost real money. They don't anymore — a 100KB screenshot costs fractions of a cent per decade to keep — so img402's default for small images is simply permanence.
The tiers
| Upload | Price | Retention | Endpoint |
|---|---|---|---|
| ≤ 1 MB | $0 | Permanent | POST /api/free |
| 1–10 MB | $0 | 30 days | POST /api/free |
| Up to 10 MB | $0.01 USDC | Permanent, guaranteed | POST /api/upload/token |
Free permanent upload (most images)
Most agent images — screenshots, diagrams, charts — are under 1MB. One curl, no wallet:
curl -s -X POST https://img402.dev/api/free \
-F image=@/tmp/screenshot.png{
"url": "https://i.img402.dev/aBcDeFgHiJ.png",
"id": "aBcDeFgHiJ",
"contentType": "image/png",
"sizeBytes": 182400,
"expiresAt": null
}expiresAt: null is the programmatic confirmation that the URL won't expire.
Paid permanent upload (1–10 MB)
For larger images, the two-phase flow: pay $0.01 via x402 for a token, then upload with the token — keeping binary data out of the agent's context window.
# The Payments MCP tool handles the x402 payment automatically
POST /api/upload/token
# → {"token": "a1b2c3d4e5...", "expiresAt": "..."}
# Note: this expiresAt is the TOKEN's expiry (~10 min).
# The image you upload with it never expires.curl -s -X POST https://img402.dev/api/upload \
-H "X-Upload-Token: a1b2c3d4e5..." \
-F image=@/tmp/render.pngPayment works on both Base and Solana; see the x402 payment guide for the handshake.
What "permanent" actually means
We want to be precise here, because "forever" is a word hosting services abuse. Permanent means there is no expiry clock running against your image. For paid uploads, it's also a commitment in our Terms: if img402 ever shuts down, we publish at least 90 days of notice on the site before any paid permanent image is removed. We can't email you — we don't know who you are, and that's by design — so the on-site notice is the promise we can actually keep.
Free permanent images carry the same no-expiry treatment as a policy rather than a contract: we intend to keep them forever, and if the policy ever changes it changes for future uploads only — images uploaded today keep today's terms.
FAQ
How do I know an upload is permanent?
The upload response has "expiresAt": null. A free upload over 1MB returns an ISO 8601 timestamp (30 days out) instead, so a null expiresAt is the programmatic signal that the URL won't expire.
What's the size limit?
10 MB on every tier. If your image is larger, resize before uploading (for example sips -Z 2000 file.png on macOS).
What happened to the $1 permanent tier?
It's now the price of a hundred permanent images. The /api/upload/token/permanent route still works for existing integrations, but /api/upload/token provides identical permanent hosting for $0.01.
Can I pay on Solana?
Yes. x402 payment is accepted on Base or Solana. See the x402 payment guide.
Do I need an account?
No. No account, no API key, no sign-up — for any tier. You pay per upload (if you pay at all) and get a URL back.