Free placeholder image API โ€” the classic hosts are dead, here's one that isn't

An uncomfortable number of the placeholder-image URLs baked into a decade of tutorials, starter templates, and Stack Overflow answers no longer work. Checked live, July 2026:

HostStatus today
via.placeholder.comโŒ dead โ€” connection accepted, request hangs, no response
placehold.itโŒ dead for images โ€” serves a Cloudflare human-verification challenge; an <img> tag can't solve one
placekitten.comโŒ dead โ€” HTTP 521 (origin down)
placeimg.comโŒ dead โ€” shut down, connection fails
placehold.co, dummyimage.com, picsum.photos, loremflickr.com, dicebear, ui-avatarsโœ… alive and fine โ€” see the honest comparison below

If a grey rectangle in your project stopped rendering, that's why. Here's a replacement URL that takes ten seconds โ€” and if you're mocking an API anyway, a reason the placeholder should live next to your mock data.

The 10-second fix

<img src="https://HOST/m/demo/img/300x200">
<img src="https://HOST/m/demo/img/128?round=1&text=AL&seed=ada">   <!-- avatar -->
<img src="https://HOST/m/demo/img/640x360?text=Hero+banner&bg=1e3a8a">

No signup, no key. demo is Mockbird's shared public playground project; every Mockbird project (including ones you create anonymously with one curl) gets the same /img endpoint under its own URL. Output is a crisp SVG at any size from 1 to 2000 px, served with Cache-Control: public, max-age=86400 and CORS *.

Parameters

ParamDoesExample
/img/WxHsize (1โ€“2000). /img/300 = square shorthand/img/640x480, /img/300
?text=label, โ‰ค64 chars (default "Wร—H"). Font auto-scales to fit?text=Product+7
?bg= / ?fg=3- or 6-digit hex, no #. Custom bg alone auto-picks a readable text color?bg=1e3a8a&fg=fff
?seed=any string โ†’ deterministic palette color (same seed, same color, forever)?seed=ada
?round=1circle instead of rectangle โ€” avatars?round=1&text=AL

Everything is deterministic: the same URL always renders the exact same bytes. That matters for visual-regression tests โ€” no cache-busting randomness, no flaky screenshot diffs.

The actual point: your mock data ships with images that render

Placeholder images are rarely the whole job โ€” usually you're building a UI against an API that doesn't exist yet, and the fake product objects need fake photos and the fake users need fake avatars. Mockbird is a hosted mock REST API, and its seeded image and avatar fields point at the project's own /img endpoint automatically:

curl 'https://HOST/m/demo/products/1?select=name,image'
# {
#   "id": 1,
#   "name": "Thing City Time",
#   "image": "https://HOST/m/demo/img/640x480?seed=6534"
# }

So one curl creates a project with 30 products whose image URLs already work, and user-type resources seed circular avatars with the person's initials. Your product grid, your account dropdown, your review list โ€” everything renders on first load, and none of it makes a request to a third-party image service that might be the next via.placeholder.com:

curl -s -X POST https://HOST/api/projects \
  -H 'content-type: application/json' -d '{"preset":"ecommerce"}'
# โ†’ { "id": "abc123xyz0", ... }  โ€” full fake store: data + images, one origin

Prefer clicking: create the same project in one click.

Why same-origin placeholders are worth caring about

Honest comparison

placehold.codummyimagepicsum / loremflickrdicebear / ui-avatarsMockbird /img
Alive (July 2026)โœ…โœ…โœ…โœ…โœ…
FormatsSVG, PNG, JPEG, WebP, AVIFPNG, GIF, JPGJPEG/WebP real photosSVG/PNG avatarsSVG only
Custom text / colorsโœ… + custom fontsโœ…โ€”initials/art stylesโœ… text, colors, seed palette
Avatars (initials, circle)โ€”โ€”โ€”โœ… (their specialty)โœ…
Real photosโ€”โ€”โœ…โ€”โ€”
Same origin as your mock APIโ€”โ€”โ€”โ€”โœ… โ€” seeded data pre-wired

Written by the Mockbird maker โ€” bias disclosed. Where the survivors genuinely win: placehold.co does raster formats (PNG/JPEG/WebP/AVIF), retina variants, and custom fonts โ€” if you need a PNG placeholder, use it, it's excellent. picsum.photos and loremflickr serve real photographs, which look far better in a read-only portfolio grid. DiceBear has genuinely charming avatar art styles; ours are plain initials-on-a-circle. Mockbird's /img is SVG-only and capped at 2000 px. Use it when the placeholder should live at the same base URL as the rest of your fake backend โ€” which, if you're mocking an API at all, is most of the time. Dead-host statuses verified by direct request on July 28, 2026.

FAQ

Is via.placeholder.com coming back? Unknown โ€” it has been intermittently down for long stretches and currently doesn't answer requests at all. Treat URLs pointing at it as broken and swap the host.

Do I need to create anything to use the images? No โ€” /m/demo/img/โ€ฆ works bare. Create your own project (one curl, no signup) if you want your own namespace, your own quota, and seeded data around it.

SVG in an <img> tag โ€” anything to watch for? It renders in every modern browser exactly like a PNG would. The response carries X-Content-Type-Options: nosniff and a restrictive Content-Security-Policy, and text is XML-escaped โ€” it's an image, not an injection vector.

Full parameter reference in the docs. More guides: fake ecommerce API ยท mock API for React ยท free mock API tools compared. Create your API โ†’