imgd.dev

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.

bash
# 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. the url works the moment you get it.
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 — free alt text, once the check clears.
curl https://imgd.dev/v1/images/$HASH -H "Authorization: Bearer $IMGD_KEY"
→ {"status":"live","alt_text":"a golden retriever on a beach at sunset"}

# optional — publish for four hours, then bring it back later.
curl -X POST "https://imgd.dev/v1/upload?unpublish_after_hours=4" \
  -H "Authorization: Bearer $IMGD_KEY" -F "file=@photo.jpg"
curl -X POST https://imgd.dev/v1/images/$HASH/publish -H "Authorization: Bearer $IMGD_KEY"

Get started

Create an account

No email, no password, no captcha. You get an API key immediately. Storage costs $1 per gigabyte, charged once — the account cannot upload until it has some.

Have your agent do it

Paste one of these to your coding agent. It fetches the instructions from this site and does the work; you answer the questions and decide whether to spend the dollar.

To decide whether this is right for you

prompt
Evaluate https://imgd.dev for my project. Fetch and follow:
https://imgd.dev/evaluate.md

It checks the limits and pricing against the live API and tells you whether this fits — including when it does not.

To wire it into a project

prompt
Integrate https://imgd.dev into this project. Fetch and follow:
https://imgd.dev/integrate.md

It creates the account, stores the key somewhere safe, stops to ask you before spending anything, then uploads a first image and verifies it end to end.

Guides

Start with a task guide. Every imgd.dev image is public.

View all guides

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 fix field 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.
Usable the instant you upload
The link works straight away, serving a heavily blurred placeholder while the automated check runs, then sharpening to the real image. Nothing recognisable is public before it is cleared.
Temporary links when you want them
Set an unpublish time and the link stops serving when it lapses. The image is kept, not deleted, so republishing brings the identical URL back to life.
Permanent delivery by default
Immutable cache headers on every hash. Resize and re-encode inline with ?w= and ?fmt=.

API

POST /v1/accountsCreate an account. Returns your key once.
POST /v1/uploadMultipart file, or raw image bytes. ?unpublish_after_hours= for a temporary link.
GET /v1/imagesList your images, paginated.
GET /v1/images/:hashStatus, dimensions, alt text.
POST /v1/images/:hash/publishRepublish a link, optionally with a new expiry.
POST /v1/images/:hash/unpublishTake a link down now, or schedule it.
DELETE /v1/images/:hashUnlink an image from your account.
GET /v1/mePlan, quota, usage, strikes.
POST /v1/creditBuy storage. Returns a checkout link.
POST /v1/redeemRedeem a coupon code for storage.
GET /i/:hashServe 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. An AI agent can therefore complete the whole signup unattended, because no step requires a human.
Can my AI agent set this up for me?
Yes, and that is the intended path. Pasting a short prompt pointing at imgd.dev/evaluate.md has an agent assess whether the service fits the project, including the cases where it does not. Pasting one pointing at imgd.dev/integrate.md has the agent create the account, store the key outside version control, pause for a decision before any money is spent, and verify a first upload end to end.
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. That URL works immediately: while the automated content check runs it serves a heavily blurred placeholder, which sharpens to the real image once the check finishes.
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 are permanent by default and never expire on their own. An upload can optionally be given an unpublish time, after which that link stops serving until it is republished, and republishing restores the identical URL because each URL contains the sha256 hash of the image content. 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 happens if an image is marked review or blocked?
Every upload is checked automatically. A verdict of review means the check was not confident, so the image is served blurred at its normal URL; this state is terminal, does not clear on its own, and carries no penalty against the account. A verdict of blocked means two independent checks agreed the image breaks the acceptable use policy, so its bytes were deleted and the link is dead. Both verdicts report a reason category, and both can be contested by email.
What if the automated check gets it wrong?
Any verdict can be contested by emailing abuse@imgd.dev with the image hash so a person can review the decision. Blocking always requires two independent checks to agree, a single uncertain result holds an image in review rather than deleting it, and only a corroborated block counts against the account.
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.
I was given a coupon code. How do I use it?
A coupon code is redeemed by sending a POST request to /v1/redeem with the code and your API key, which adds its storage to the account immediately and with no payment. Codes are issued individually rather than published, and each one works at most once per account.
How do I buy more storage?
More storage is bought by sending a POST request to /v1/credit with a gb value. The response keeps the Stripe card checkout for a human and adds machine-payable stablecoin options for an agent. This works for accounts that have already paid, and each purchase adds to the storage the 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 carries the available card and stablecoin payment options. 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.