Image hosting for AI agents
Image hosting your agent can sign up for.
No email. No captcha. No dashboard. One API call creates an account, and one dollar buys a gigabyte. Every upload returns generated alt text and a permanent content-addressed URL.
# 1 — sign up. no email, no captcha, no human.
curl -X POST https://imgd.dev/v1/accounts
→ {"api_key":"imgd_…","activation_url":"https://checkout.stripe.com/…"}
# 2 — upload.
curl -X POST https://imgd.dev/v1/upload \
-H "Authorization: Bearer $IMGD_KEY" \
-F "file=@photo.jpg"
→ 202 {"hash":"…","url":"https://i.imgd.dev/i/…","status":"processing"}
# 3 — poll for the verdict and free alt text.
curl https://imgd.dev/v1/images/$HASH -H "Authorization: Bearer $IMGD_KEY"
→ {"status":"live","alt_text":"a golden retriever on a beach at sunset"}
Why it is different
- Idempotent by content
- The same bytes always return the same URL. Never stored twice, never billed twice, never re-scanned. Agents retry constantly — here that is free.
- Errors you can act on
- Every 4xx carries a
fixfield in plain language: what went wrong, and exactly what to do next. - Alt text included
- Moderation already looks at the image, so descriptive alt text comes back on every upload at no extra cost.
- Reviewed before public
- Nothing is served until it clears a vision model. Explicit content and gore are deleted; borderline is held and blurred.
- Permanent delivery
- Immutable cache headers on every hash. Resize and re-encode inline with
?w=and?fmt=.
API
POST /v1/accounts | Create an account. Returns your key once. |
POST /v1/upload | Multipart file, or raw image bytes. |
GET /v1/images | List your images, paginated. |
GET /v1/images/:hash | Status, dimensions, alt text. |
DELETE /v1/images/:hash | Unlink an image from your account. |
GET /v1/me | Plan, quota, usage, strikes. |
GET /i/:hash | Serve the image. ?w=800&fmt=webp. |
Pricing
$1 = 1 GB. One-time, and it stacks.
Buy a gigabyte for a dollar and keep it — no subscription, no metered balance to run down. Five dollars is five gigabytes, bought whenever you need them. The dollar also replaces the email confirmation and the captcha an agent cannot solve, which is what makes abuse cost real money. Creating an account is free and instant, but it has no storage until you buy some.
FAQ
- What is imgd.dev?
- imgd.dev is an image host designed to be used by AI agents and the developers who build them. A single API call creates an account with no email address and no captcha, and uploads are made with an ordinary HTTP request carrying a bearer token.
- How much does imgd.dev cost?
- Storage on imgd.dev costs $1 per gigabyte as a one-time payment, and purchases stack, so paying five dollars gives five gigabytes. There is no subscription, no recurring charge and no free tier: a new account has no storage until it pays. Bandwidth is not billed.
- Do I need an email address or a dashboard to sign up?
- No email address, no password, no captcha and no dashboard are required to use imgd.dev. Sending a POST request to /v1/accounts returns an API key immediately, and that key is the only credential involved.
- Can an AI agent sign up on its own?
- An AI agent can complete the entire imgd.dev signup on its own, because every step is a plain HTTP call with no human-only step such as an email confirmation or a captcha. The one action a human may need to take is paying the returned Stripe checkout link.
- How do I upload an image?
- An image is uploaded by sending a POST request to /v1/upload with an Authorization bearer header, using either a multipart form field named file or the raw image bytes with an image content type. The response returns the permanent URL and the sha256 hash of the image.
- What image formats are supported and how large can a file be?
- imgd.dev accepts JPEG, PNG, GIF, WebP and AVIF images, and a single upload may be at most 20 megabytes. Uploads are limited to 60 per minute per API key.
- What happens if I upload the same image twice?
- Uploading identical bytes twice returns the same URL and the same hash, because images are addressed by the sha256 of their content. The image is stored once and is never charged for or moderated twice, so retrying an upload is always safe.
- Do image URLs expire?
- Image URLs on imgd.dev do not expire. Each URL contains the sha256 hash of the image content, so the bytes behind a given URL can never change, and images are served with immutable cache headers. A URL can also resize or convert the image using the w and fmt query parameters.
- Is there a bandwidth limit?
- There is no bandwidth limit and no charge for traffic on imgd.dev. Only stored data counts against an account, so an image that is served many times costs no more than one that is never requested.
- What content is not allowed?
- Every upload is automatically classified before it can be served, and content that breaks the rules is deleted rather than published. Each rejected upload adds a strike to the account, and three strikes suspend it. Illegal content is reported to the relevant authorities and ends the account outright.
- How do I buy more storage?
- More storage is bought by sending a POST request to /v1/credit with a gb value, which returns a Stripe checkout link priced at one dollar per gigabyte. This works for accounts that have already paid, and new purchases add to the storage an account already has.
- What happens if I run out of storage?
- An upload that would exceed the storage an account has bought is rejected with HTTP status 402 and is not stored. The error response names the endpoint used to buy more space and includes a checkout link, and deleting images frees their space again immediately.
Acceptable use
Uploads are classified automatically before they are ever served. Content that breaks the rules is removed and adds a strike; three strikes suspends the account. Report anything that slips through to abuse@imgd.dev and it will be removed.
Illegal content is not tolerated. Confirmed cases are reported to NCMEC and other relevant authorities, and the account is terminated permanently.