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

TierPriceMax sizeRetentionEndpoint
Free$01 MB7 daysPOST /api/free
Standard$0.01 USDC5 MB1 yearPOST /api/upload/token
Permanent$1 USDC5 MBNever expiresPOST /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.

Step 1 — Pay $1 for a permanent token (via Payments MCP)
# 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.
Step 2 — Upload with the token (via curl)
curl -s -X POST https://img402.dev/api/upload \
  -H "X-Upload-Token: a1b2c3d4e5..." \
  -F image=@/tmp/logo.png
Response
{
  "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:

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.