๐ก Is loremflickr.com down right now? We check it (and dozens of other classic mock/placeholder APIs) with a plain GET every 30 minutes โ see the live status page or subscribe to its outage Atom feed. This guide was written during a real LoremFlickr outage; the status page always shows current reality.
LoremFlickr is the placeholder service with a party trick nobody else has: keyword images. loremflickr.com/320/240/dog returns an actual photo of a dog, pulled from Creative-Commons Flickr photos by tag. That made it the go-to for seeded demo data that should look right โ and it's what faker.js emits by default.
And right now its image paths are hard down. Since September 14, 2026, ~16:31 UTC (confirmed by our tracker's consecutive 30-minute checks), every image URL answers HTTP 500 with an empty body โ verified live while writing this:
curl -s -o /dev/null -w "%{http_code}\n" https://loremflickr.com/320/240
# โ 500 (empty body โ nothing to render)
curl -s -o /dev/null -w "%{http_code}\n" https://loremflickr.com/320/240/cat
# โ 500
curl -s -o /dev/null -w "%{http_code}\n" "https://loremflickr.com/640/480/cat?lock=12345"
# โ 500 (the exact URL shape faker.js generates)
curl -s -o /dev/null -w "%{http_code}\n" https://loremflickr.com/
# โ 200 (the homepage is fine โ uptime checks that
# only poke the homepage think all is well)
This outage has a blast radius beyond hand-written <img> tags. In current @faker-js/faker (verified against the published v9.9.0 source), faker.image.url() picks randomly between LoremFlickr and Picsum for every URL it generates, and faker.image.urlLoremFlickr() is all LoremFlickr:
// @faker-js/faker v9.9.0 โ image module (paraphrased from dist)
url({ width, height }) {
return this.faker.helpers.arrayElement([
this.urlLoremFlickr, // โ https://loremflickr.com/W/H?lock=N
(โฆ) => this.urlPicsumPhotos({ โฆ }) // โ https://picsum.photos/seed/โฆ/W/H
])({ width, height });
}
So while this outage lasts: roughly half of every faker.image.url() call โ and 100% of faker.image.urlLoremFlickr() calls โ returns a URL that 500s. If your seed script ran faker and stored the URLs, your demo, your Storybook fixtures, and your CI screenshots are now speckled with broken-image icons, and nothing in your code changed.
Two-line fix on the faker side โ stop generating LoremFlickr URLs until it recovers:
// Option A: only generate Picsum URLs (real photos, currently up)
const imageUrl = () => faker.image.urlPicsumPhotos({ width: 640, height: 480 });
// Option B: point at a host you can rely on staying up with your mock data โ
// deterministic, so re-running the seed doesn't churn every image
const imageUrl = (w = 640, h = 480) =>
`https://mockbird.mockbird.workers.dev/m/demo/img/${w}/${h}?seed=${faker.string.alphanumeric(8)}`;
Mockbird's /img endpoint accepts LoremFlickr's exact URL shapes โ the size paths, the trailing tags, the /g/ grayscale prefix, even ?lock= โ so for URLs already in your codebase or database, the swap is a host replace, nothing else:
# drop-in: replace the host โ paths and params unchanged
grep -rl 'loremflickr.com' src/ | xargs sed -i \
's#https://loremflickr.com#https://mockbird.mockbird.workers.dev/m/demo/img#g'
No signup, no key, CORS on, served from the shared demo project. Your tags become the image's label and its deterministic seed โ a /dog URL renders a stable "dog" placeholder card, not a broken icon:
<img src="https://mockbird.mockbird.workers.dev/m/demo/img/320/240">
<img src="https://mockbird.mockbird.workers.dev/m/demo/img/320/240/dog"> <!-- tag โ label + seed -->
<img src="https://mockbird.mockbird.workers.dev/m/demo/img/g/320/240/paris"> <!-- /g/ grayscale, like theirs -->
<img src="https://mockbird.mockbird.workers.dev/m/demo/img/640/480/cat?lock=7"> <!-- ?lock= determinism, like theirs -->
Live, rendered right here:
| On loremflickr.com | On Mockbird |
|---|---|
/320/240 โ width/height | /m/demo/img/320/240 โ same path (/img/320x240 works too) |
/320/240/dog โ keyword photo | /m/demo/img/320/240/dog โ same path; the tag renders as the card's label and fixes its palette. A labeled flat card, not a photo of a dog โ that difference is real, see the honest table below |
/320/240/paris,girl (+ optional /all) | same path โ comma tags and the /all suffix are accepted |
/g/320/240/paris โ grayscale | /m/demo/img/g/320/240/paris โ same path (picsum-style ?grayscale works too) |
?lock=42 โ pin a stable image | same param โ same lock, same bytes, forever. Without lock, LoremFlickr returns a random photo per request; our tagged URLs are deterministic either way (your snapshot tests will prefer that) |
.jpg raster bytes | .png/.jpg suffix (or ?format=png) returns PNG bytes; SVG by default |
| โ | things LoremFlickr doesn't do: ?text= overlays, ?round=1 avatars, ?bg=/&fg= hex colors, ?blur=1-10, and a whole mock REST API at the same base URL |
Placeholder images are rarely the whole job โ usually the fake products need fake photos and the fake users need fake avatars next to fake data. Every Mockbird project gets its own /img endpoint, and seeded image/avatar fields point at it automatically, so one outage on someone else's image host never again takes down your demo:
curl -s https://mockbird.mockbird.workers.dev/m/demo/products/1 | python3 -m json.tool
# "image": "https://mockbird.mockbird.workers.dev/m/demo/img/640x480?seed=โฆ"
The full placeholder-image guide covers every parameter; the interactive URL builder previews them live; this link creates a seeded e-commerce backend โ products with working image URLs โ in one click, no signup.
| loremflickr | picsum.photos | placehold.co | Mockbird /img | |
|---|---|---|---|---|
| Real photographs | โ (Flickr, CC) | โ | โ | โ โ flat SVG + text |
| Keyword/tag images | โ โ its unique trick | โ | โ | partial โ tag becomes a text label, not a photo |
| Up right now (verified Sep 15, 2026) | โ โ empty-body 500s | โ | โ | โ (we track them all live) |
| Deterministic by URL | only with ?lock= | โ via /seed/ | โ | โ (byte-identical) |
| Grayscale | โ /g/ | โ ?grayscale | โ | โ โ both syntaxes |
| Avatars / initials / text | โ | โ | partial (text) | โ ?round=1&text=AL, avatar styles |
| Comes with a mock data API | โ | โ | โ | โ โ same base URL |
| Signup | none | none | none | none |
Written by the Mockbird maker โ bias disclosed. When LoremFlickr is up, a real photo of a dog beats a flat card that says "dog" in any demo a human looks at โ use it there, and use Picsum (up, real photos, no keywords) meanwhile. Outage facts verified by direct request on September 15, 2026 during the incident, and the faker.js behavior against the published @faker-js/faker 9.9.0 source; the live status page (checked every 30 minutes) always shows whether they still hold. If LoremFlickr recovers, everything here keeps working โ these URL shapes aren't going anywhere.
Full API reference in the docs. More guides: picsum.photos alternative ยท free placeholder image API ยท lorempixel / placeimg alternative ยท source.unsplash.com alternative ยท placekitten alternative ยท fake e-commerce API. Create your API โ