Two AI image APIs still generate an image with no API key: Pollinations' old URL endpoint and AI Horde's anonymous key. We tested both on September 29, 2026, and hit a limit within minutes. Pollinations gave us one watermarked image, then asked for payment. AI Horde worked, but only at 512×512, and one harmless prompt came back blocked as NSFW.
| Service | How you call it | What we got | Limit we hit |
|---|---|---|---|
| Pollinations (old URL) | GET image.pollinations.ai/prompt/... | One 768×768 JPEG with a watermark, in 6 s | Second request: HTTP 402, pay $0.01 in USDC per image |
| Pollinations (current API) | GET gen.pollinations.ai/image/... | HTTP 401: "A valid API key is required" | Needs a key |
| AI Horde | apikey: 0000000000 | 512×512 Stable Diffusion images, about 50 s each | Over 580×580 is refused; 1 of 4 prompts blocked as NSFW |
| Puter.js | JavaScript in the browser | No image | Asks each visitor to sign in to Puter |
Tested anonymously on September 29, 2026. Free services change their limits often.
If you need images you can rely on, the cheapest option we found with a key is GPT Image 2 on HiAPI at $0.007 per image. The same prompts are compared below.
Pollinations: One Free Image, Then HTTP 402
Pollinations' old endpoint turns a URL into an image. No sign-up, no key:
curl -o lighthouse.jpg \
"https://image.pollinations.ai/prompt/a%20lighthouse%20made%20of%20stacked%20teacups%20at%20dawn%2C%20watercolor"
The first request returned a 768×768 JPEG in about 6 seconds:

Pollinations with no key. The response header named the model as sana.
It's an image, but not the one we asked for: there are no teacups, and a pollinations.ai logo sits in the corner. Our next request, a few seconds later with a different prompt, returned HTTP 402 Payment Required. The response asked for 0.01 USDC per image through the x402 crypto payment protocol. The current Pollinations API, gen.pollinations.ai, returns 401 without a key.
Pollinations also caches popular prompts. A prompt someone else already used can come back instantly from cache, so a quick test can look more generous than the real limit.
AI Horde: Free, Slow and Capped at 512×512
AI Horde is a volunteer network: people run Stable Diffusion on their own GPUs and share them. The API accepts 0000000000 as an anonymous key:
import time
import requests
API = "https://aihorde.net/api/v2"
HEADERS = {"apikey": "0000000000", "Client-Agent": "my-app:1.0:me@example.com"}
job = requests.post(f"{API}/generate/async", headers=HEADERS, json={
"prompt": "a red bicycle leaning on a brick wall, photograph",
"params": {"width": 512, "height": 512, "steps": 20},
}).json()
while not requests.get(f"{API}/generate/check/{job['id']}", headers=HEADERS).json()["done"]:
time.sleep(10)
result = requests.get(f"{API}/generate/status/{job['id']}", headers=HEADERS).json()
print(result["generations"][0]["img"]) # a WebP link, valid for about 30 minutes
Two details from our test. Requests sent with Python's built-in urllib got 403 from AI Horde's Cloudflare, while the same call with requests (above) worked. A 768×768 request was refused: anonymous users can't go above 580×580 while demand is high.
We ran four prompts. Each took about 50 seconds, including the queue:

AI Horde, anonymous, 512×512. The model reported was stable_diffusion.
The bicycle is fine. The lighthouse has no teacups, the chalkboard text is gibberish, and the second lighthouse prompt came back as a black "CENSORED – NSFW content detected" image. For a hobby project that's acceptable. For anything a customer sees, one blocked image in four is not.
Puter.js: The User Pays, and Signs In
Puter.js is often listed as a free, no-key image API. Your code doesn't need a key, but each visitor needs a Puter account: in our test, puter.ai.txt2img() stopped with auth_canceled because it was waiting for a Puter sign-in window. Usage is then charged to that visitor's Puter account. It works for a personal browser tool, but you can't call it from a server, a script or a batch job.
The Same Prompts on GPT Image 2 for $0.007
With a key, GPT Image 2 on HiAPI's ext route costs $0.007 per image at low quality and 1K. We sent the same prompts:

Left to right: Pollinations (no key), AI Horde (anonymous), HiAPI GPT Image 2 at $0.007. Same prompt.
Only GPT Image 2 drew a lighthouse made of teacups. The difference is bigger when the image contains text:

AI Horde (anonymous) vs HiAPI GPT Image 2 at $0.007.
Each $0.007 image was 1024×1024 and finished in about 35 seconds. Our billing log shows $0.007 per image. A thousand images cost $7.
The request is a normal HTTP call with a key:
import os
import time
import requests
API = "https://api.hiapi.ai/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}
task = requests.post(f"{API}/tasks", headers=HEADERS, json={
"model": "gpt-image-2/text-to-image@ext",
"input": {
"prompt": "a lighthouse made of stacked teacups at dawn, watercolor",
"aspect_ratio": "1:1",
"resolution": "1K",
"quality": "low",
},
}).json()["data"]["taskId"]
while True:
data = requests.get(f"{API}/tasks/{task}", headers=HEADERS).json()["data"]
if data["status"] in ("success", "fail"):
break
time.sleep(5)
print(data["output"][0]["url"])
For finer detail, the standard GPT Image 2 route costs $0.03 at 1K, $0.04 at 2K and $0.06 at 4K. See GPT Image 2 pricing for the full breakdown.
No Code Needed? Use the Free Generator
If you only need a few images and don't need an API, HiAPI's free GPT Image 2 generator works in the browser with no sign-up and no key. You get up to 10 images every 24 hours, with a small hiapi.ai watermark.
Which One Should You Use?
| You need | Use |
|---|---|
| One quick image in a script, today | Pollinations' old URL, and expect a 402 soon |
| Free images and you can wait | AI Horde with the anonymous key, at 512×512 |
| A few images, no code | HiAPI free generator, 10 a day |
| Images in an app or a batch | GPT Image 2 on HiAPI at $0.007 per image |
FAQ
Is there a free AI image generation API with no key required?
Yes, two, with limits. In our September 29, 2026 test, Pollinations' old URL returned one watermarked image and then asked for payment, and AI Horde's anonymous key 0000000000 generated 512×512 images in about 50 seconds each.
Does Pollinations still work without an API key?
Partly. The old image.pollinations.ai/prompt/ URL returned one image, then HTTP 402 asking for $0.01 in USDC per image. The current gen.pollinations.ai API returns 401 without a key.
What is the AI Horde anonymous API key?
0000000000 (ten zeros). Anonymous requests go to the back of the queue and are limited to 580×580 or smaller.
What is the cheapest image API with a key?
The cheapest we found is GPT Image 2 on HiAPI at $0.007 per image (1K, low quality, ext route). A thousand images cost $7.
Can I use Puter.js for free image generation without a key?
Only in the browser, and only if each visitor signs in to Puter. Usage is billed to the visitor's Puter account, so it doesn't work for server-side or batch generation.









