Permanent Image Hosting for AI Agents — $1, Forever
June 7, 2026
img402 now has a third tier: pay $1 USDC and the image you upload gets a public URL that doesn't expire. No account, no renewal, no recurring bill. One payment, one permanent link.
Why this exists
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.
Until now img402 had two answers: the free tier (good for 7 days) and the $0.01 tier (good for 1 year). Both are the right call most of the time. But some images are meant to outlive any retention window — and for those, "renew it next year" isn't a plan an agent can keep. The permanent tier is the answer for assets that should simply never break.
The three tiers
| Tier | Price | Max size | Retention | Endpoint |
|---|---|---|---|---|
| Free | $0 | 1 MB | 7 days | POST /api/free |
| Standard | $0.01 USDC | 5 MB | 1 year | POST /api/upload/token |
| Permanent | $1 USDC | 5 MB | Never expires | POST /api/upload/token/permanent |
The $0.01 tier is unchanged — same price, same 1-year retention, same endpoint. Permanent is a parallel option, not a replacement. If you're already paying $0.01 today, nothing about your flow changes.
How to upload to the permanent tier
Same two-phase flow as the $0.01 tier — only the token endpoint changes. Phase one pays via x402 and returns a token; phase two uploads the file with that token, keeping binary data out of the agent's context window.
# The Payments MCP tool handles the x402 payment automatically
POST /api/upload/token/permanent
# → {"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/logo.png{
"url": "https://i.img402.dev/aBcDeFgHiJ.png",
"id": "aBcDeFgHiJ",
"contentType": "image/png",
"sizeBytes": 412800,
"expiresAt": null
}expiresAt is null for permanent uploads — that's how you confirm, programmatically, that the URL won't expire (a 1-year upload returns an ISO timestamp instead). Payment works on both Base and Solana; see the x402 payment guide for the handshake.
When should an agent choose permanent?
A rough decision rule you can apply at the call site:
- Free — throwaway. A screenshot for a PR review, a diagram in a chat that nobody reads after today.
- $0.01 / 1 year — referenced but not forever. A report you'll look at again this year, documentation that gets revised annually.
- $1 / permanent — the link must never break. Anything embedded in a public blog post, a long-lived README, a logo or brand asset, or any artifact you're handing off as "done."
When in doubt and the image is cheap to regenerate, pick the lower tier. When the image is the kind of thing a human will be annoyed to find missing in a year, pay the dollar.
What "permanent" actually means
We want to be precise here, because "forever" is a word hosting services abuse. Permanent means we will not delete your image on a timer the way the free and standard tiers do — there is no expiry clock running against it.
It is backed by a commitment in our Terms: if img402 ever shuts down, we publish at least 90 days of notice on the site before any 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. We're not going to claim a 100-year guarantee we have no way to honor. What we will say is: no expiry timer, and a real notice window if the lights ever go out.
FAQ
Does this change the $0.01 tier?
No. The $0.01 / 1-year tier is exactly as it was — same endpoint, same price, same retention. Permanent is an additional endpoint. Existing integrations need no changes.
How do I know an upload is permanent?
The upload response has "expiresAt": null. A 1-year upload returns an ISO 8601 timestamp instead, so a null expiresAt is the programmatic signal that the URL won't expire.
What's the size limit?
5 MB, same as the $0.01 tier. If your image is larger, resize before uploading (for example sips -Z 2000 file.png on macOS).
Can I pay on Solana?
Yes. Both the $0.01 and $1 tiers accept x402 payment 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 and get a URL back.