๐ก Is picsum.photos down right now? We check it (and 37 other classic public 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 picsum outage; the status page always shows current reality.
Lorem Picsum is the placeholder service everyone actually likes: real photographs, a lovely URL API (picsum.photos/200/300), seeded determinism, grayscale and blur. It's wired into countless portfolio sites, demo apps, design mockups, tutorials and test fixtures.
Prefer clicking to reading? Build your URL in the live playground โ (every param below, with instant preview).
And right now it's hard down. Starting 21:30 UTC on August 30, 2026 (confirmed by our tracker's consecutive 30-minute checks), every URL pattern fails โ verified live while writing this:
curl -s -o /dev/null -w "%{http_code} in %{time_total}s\n" --max-time 12 https://picsum.photos/200/300
# โ 000 in 12.0s (connection hangs until timeout)
curl -s -o /dev/null -w "%{http_code}\n" https://picsum.photos/seed/abc/200
# โ 503
# /id/237/200/300 โ timeout ยท /v2/list โ timeout
# even the CDN host fastly.picsum.photos โ 503
When a placeholder host dies, the failure is ugly: broken-image icons across your demo, hanging requests that slow the whole page load (a 12-second stall per <img> in this outage), and CI screenshots full of alt text. Here are replacements that work today โ including the one this site runs itself.
Mockbird serves deterministic SVG placeholders from its shared demo project โ no signup, no key, CORS on. Picsum's URL shapes work as-is (/200/300, /seed/abc/200/300), so the swap is a prefix replace:
# drop-in: replace the picsum host with the demo /img base โ paths unchanged
grep -rl 'picsum.photos' src/ | xargs sed -i \
's#https://picsum.photos#https://mockbird.mockbird.workers.dev/m/demo/img#g'
Or write the URLs directly:
<img src="https://mockbird.mockbird.workers.dev/m/demo/img/200x300">
<img src="https://mockbird.mockbird.workers.dev/m/demo/img/200x300?seed=abc"> <!-- seeded, like /seed/abc/ -->
<img src="https://mockbird.mockbird.workers.dev/m/demo/img/128?round=1&text=AL"> <!-- avatar -->
<img src="https://mockbird.mockbird.workers.dev/m/demo/img/640x360?text=Hero&bg=1e3a8a">
Live, rendered right here:
Any size from 1 to 2000 px, square shorthand (/img/300), served with Cache-Control: public, max-age=86400. And it's genuinely deterministic โ the same URL yields byte-identical output, which your snapshot tests will appreciate:
curl -s "https://mockbird.mockbird.workers.dev/m/demo/img/200x300?seed=abc" | md5sum
curl -s "https://mockbird.mockbird.workers.dev/m/demo/img/200x300?seed=abc" | md5sum
# โ identical hashes
| On picsum.photos | On Mockbird |
|---|---|
/200/300 โ width/height | /m/demo/img/200/300 โ same path; /m/demo/img/200x300 works too |
/200 โ square | /m/demo/img/200 โ same path |
/seed/foo/200/300 โ deterministic per seed | /m/demo/img/seed/foo/200/300 โ same path, deterministic palette pick per seed (?seed=foo also works) |
/id/237/200/300 โ a specific photo | no equivalent โ there is no photo catalogue here (see below) |
?grayscale, ?blur=5 | same params โ ?grayscale (bare flag) and ?blur=1-10 (bare ?blur = 5), on SVG and PNG output alike, deterministic like everything else. Handy for testing blur-up lazy-load placeholders |
.jpg / .webp raster output | .png and .jpg path suffixes (or ?format=png) return PNG bytes โ same layout and determinism as the SVG. No JPEG/WebP encoding; if you specifically need those, placehold.co does JPEG/WebP/AVIF |
/v2/list โ catalogue JSON | the whole rest of Mockbird โ a mock REST API whose seeded records come with image URLs attached |
| โ | ?text=Hello, ?round=1 avatars, ?bg=/&fg= hex colors โ things picsum doesn't do |
Placeholder images are rarely the whole job. Usually you're building a UI against a backend that doesn't exist yet โ and the fake products need fake photos, the fake users need fake avatars. Every Mockbird project (created anonymously with one curl) gets its own /img endpoint, and seeded image/avatar fields point at it automatically:
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=โฆ"
One base URL for data and images means one thing to swap when the real backend lands, no third-party host in your CI's critical path, and no 12-second image stalls when someone else's service has a bad night. The full placeholder-image guide covers every parameter; this link creates a seeded e-commerce backend โ products with working image URLs โ in one click, no signup.
| picsum.photos | loremflickr | placehold.co | Mockbird /img | |
|---|---|---|---|---|
| Real photographs | โ (its whole charm) | โ | โ | โ โ flat SVG + text |
| Up right now (verified Aug 31, 2026) | โ โ 503/timeouts | โ | โ | โ (we track them all live) |
| Deterministic by URL | โ via /seed/ | โ (random per request) | โ | โ (byte-identical) |
| Grayscale / blur | โ | โ | โ | โ โ same ?grayscale/?blur params |
| Raster formats | โ jpg/webp | โ | โ PNG/JPEG/WebP/AVIF | โ PNG (.png/.jpg suffix or ?format=png); SVG default |
| Avatars / initials | โ | โ | partial (text) | โ ?round=1&text=AL |
| Comes with a mock data API | โ | โ | โ | โ โ same base URL |
| Signup | none | none | none | none |
Written by the Mockbird maker โ bias disclosed. When picsum is up, its real photographs look far better than our flat SVGs in any read-only photo grid โ use it there, it's a genuinely great service, and it's open source (DMarby/picsum-photos on GitHub) so you can self-host it if your build must never depend on someone else's uptime. LoremFlickr also serves real photos and answered today. DiceBear has far prettier avatar art than our initials-on-a-circle. Outage facts above verified by direct request on August 31, 2026 during the incident; the live status page (checked every 30 minutes) always shows whether they still hold.
Full API reference in the docs. More guides: free placeholder image API ยท lorempixel / placeimg alternative ยท fake e-commerce API ยท testing loading & error states. Create your API โ