Pricing
Small images are free forever. Big ones are free for a month, or a penny for forever. No accounts, no API keys, no billing dashboard.
| Free | Permanent, any size* | |
|---|---|---|
| Price | $0 | $0.01 USDC |
| Endpoint | /api/free | /api/upload/token |
| Max file size | 10 MB | 10 MB |
| Retention | ≤ 1 MB: permanent* 1–10 MB: 30 days | Permanent* — guaranteed |
| Auth | None | x402 payment |
| Formats | PNG, JPEG, GIF, WebP | |
| CDN | Cloudflare (global edge caching) | |
* Permanent images are retained for the life of the service. For paid permanent images, that promise is contractual: if we ever shut down, we will give at least 90 days notice on this site before taking images offline (see the Terms of Service). Free permanent images have no expiration date and we intend to keep them forever, subject to the standard content policy and the right to adjust the policy for future uploads.
Why pay?
Most agent images — screenshots, diagrams, charts — are under 1MB, and those are simply free and permanent. You pay for exactly one thing:
- Permanence above 1MB — a full-resolution screenshot or high-res render between 1 and 10MB lasts 30 days free, or forever for $0.01.
- The guarantee — paid permanence is backed by the 90-day shutdown-notice commitment in our Terms. It's the strongest promise we know how to make honestly.
- Idempotent — the same payment always returns the same result. Safe to retry on network errors.
At $0.01 per upload, hosting ten full-res screenshots forever costs ten cents.
How payment works
img402 uses x402, an open protocol for HTTP-native payments. There are no accounts to create and no API keys to manage. Payment is authentication.
- Request a token from
POST /api/upload/token— the server responds 402 with payment instructions - Your client pays USDC on Base or Solana and retries — the server returns a single-use upload token
- Upload your image to
POST /api/uploadwith the token in theX-Upload-Tokenheader
x402-compatible clients (like the Payments MCP tool) handle steps 1-2 automatically. From your perspective, it's one HTTP call for the token, then a curl to upload the file.
# Step 1: Pay for a token (x402 handles payment)
POST /api/upload/token # $0.01 / permanent
# → {"token": "a1b2c3...", "expiresAt": "..."}
# Step 2: Upload with the token
curl -X POST https://img402.dev/api/upload \
-H "X-Upload-Token: a1b2c3..." \
-F [email protected]
# → {"url": "https://i.img402.dev/abc123.png", "expiresAt": null}Try it now
No wallet needed. Upload an image right now — if it's under 1MB it's hosted permanently:
curl -F [email protected] https://img402.dev/api/freeSee the API docs for full endpoint reference, error codes, and integration examples.