Public mock-API status

The classic free mock, fake-data and placeholder-image services that a decade of tutorials depend on — checked with a plain GET every hour, exactly what a tutorial curl or an <img> tag experiences. 30 of 71 are failing right now — 27 of those have been failing for 7+ days (dead, not a blip; marked ⚰️ below).

Last checked 2026-09-12T18:00:31Z · re-checked every hour · JSON · Atom feed of down/recovered events (subscribe in any RSS reader — single blips debounced) · summary badge README badges on every service page · what each of these is good for →

New: get a Slack/Discord/webhook ping when one of these goes down — every service page has a subscribe box (e.g. ReqRes alerts), or watch all 71 at once via the watch API. Free, no account.

Watch your own URL: the same checker can monitor your API — curl -X POST https://mockbird.mockbird.workers.dev/api/status/monitor -d '{"url":"https://api.example.com/health","notify":"https://hooks.slack.com/…"}' checks it every 30 minutes and pings your webhook once on down, once on recovery. Guide → · Monitor API →

Fake-data REST APIs

ServiceNowOK 24hOK 7dMockbird
JSONPlaceholder
jsonplaceholder.typicode.com/posts/1
Fixed dataset; writes are faked (POST answers 201 but nothing persists).
UP 200 · 22 ms 100% 100% free alternative →
ReqRes (reqres.in)
reqres.in/api/users?page=1
Keeps changing: required an x-api-key for part of 2026 (keyless curls 401'd), now keyless again but every response carries an injected _meta upsell object, writes are faked, and datacenter IPs (like this checker's) get 429-rate-limited.
HTTP 429 rate-limits datacenter IPs (this checker, CI runners, cloud apps); residential browsers may still get through · failing 10 h 14.9% 32% free alternative →
FakeStoreAPI
fakestoreapi.com/products/1
Reads work; writes are faked (POST returns an id whose GET comes back empty).
UP 200 · 309 ms 100% 100% free alternative →
DummyJSON
dummyjson.com/products/1
Reads work; writes are simulated (response-only, nothing persists).
UP 200 · 17 ms 100% 100% free alternative →
DummyAPI (dummyapi.io)
dummyapi.io/
API requires a signed-up app-id header on every request — even reads (keyless calls answer 403 APP_ID_MISSING) — so this probe watches the site itself. Free tier is 500 requests/day.
UP 200 · 386 ms 100% 100% free alternative →
FakerAPI (fakerapi.it)
fakerapi.it/api/v2/persons?_quantity=1
Generator only: GET-only, nothing persists, no single-record URL. Whole site (root + v1 + v2) began 502ing in Aug 2026; the linked source repo's last commit is Feb 2023.
DOWN timeout after 8000ms · failing 14 d ⚰️ 0% 0% free alternative →
randomuser.me
randomuser.me/api/?results=1
Generator only: read-only (writes 404), no single-user URL, field filters ignored. Its sibling uinames.com is already dead.
UP 200 · 285 ms 100% 100% free alternative →
GoRest (gorest.co.in)
gorest.co.in/public/v2/users?page=1
Reads are open; every write requires sign-in + a Bearer access token (anonymous POST answers 401), all created records are wiped and reseeded every 24 hours, and v1 URLs sunset on 2 Jun 2027.
UP 200 · 913 ms 100% 98.5% free alternative →
Platzi Fake Store API (api.escuelajs.co)
api.escuelajs.co/api/v1/products?offset=0&limit=1
Real CRUD — into one database shared by everyone on the internet: strangers rename/delete the seed products tutorials depend on, the dataset resets without warning, PUT answers 500 unless an images array is resent, and missing ids answer 400 (not 404) with a raw ORM error.
UP 200 · 1166 ms 100% 100% free alternative →
restful-api.dev
api.restful-api.dev/objects/1
Writes genuinely persist (rare — credit due), but created objects never appear in GET /objects (the list is frozen at 13 seed devices), seed ids 1–13 reject updates/deletes as reserved, and ?limit/?page are silently ignored without the signed-in tier. Sep 7 2026: anonymous access now capped at 50 requests/24h per IP (HTTP 405 + a sign-in prompt past it) — shared-IP callers (Workers, serverless, CI) burn through the pooled quota immediately.
HTTP 405 anonymous cap (50 req/24h per IP, added Sep 2026): this checker's shared cloud egress IP is over it — every Workers/serverless/CI caller on a shared IP shares that fate; browsers on fresh IPs still get through · failing 14 h 17% 9.5% free alternative →
My JSON Server (my-json-server.typicode.com)
my-json-server.typicode.com/typicode/demo/posts/1
Serves a db.json from a public GitHub repo; writes are faked (POST answers 201 but the new id 404s), responses cache for a minute, and it has carried a beta may-be-down warning since 2017.
UP 200 · 2116 ms 100% 100% free alternative →

HTTP testing & echo

ServiceNowOK 24hOK 7dMockbird
httpbin.org
httpbin.org/get
Repeated multi-hour 503/timeout outages in 2026.
UP 200 · 703 ms 95.7% 99% free alternative →
Postman Echo
postman-echo.com/get
Sends no CORS headers at all — browser fetch() fails outright (curl works fine).
UP 200 · 274 ms 100% 100% free alternative →
httpstat.us
httpstat.us/200
Connections fail outright (empty reply on HTTP and HTTPS) as of Aug 2026 — “is it down?” issues go back to 2020, and several OSS projects have dropped it from their test suites.
HTTP 502 · failing 16 d ⚰️ 0% 0% free alternative →
Mocky (run.mocky.io)
run.mocky.io/v3/health
Officially discontinued — serves a self-signed certificate; every saved mock URL is dead.
HTTP 526 · failing 17 d ⚰️ 0% 0% free alternative →

Hosted endpoint builders

ServiceNowOK 24hOK 7dMockbird
Mockable (mockable.io)
www.mockable.io/
Gone — the domain registration (created 2013) expired Aug 10, 2026 and sits on registrar clientHold; DNS records are removed, so every *.mockable.io REST/SOAP mock URL fails to resolve.
HTTP 530 · failing 8 d ⚰️ 0% 0% free alternative →
QuickMocker
quickmocker.com/
Website gone — the domain no longer resolves (no DNS address records; only mail forwarding remains) and the Wayback Machine's last capture is Dec 2, 2024.
HTTP 530 · failing 16 d ⚰️ 0% 0% free alternative →

Instant CRUD APIs

ServiceNowOK 24hOK 7dMockbird
CrudCrud
crudcrud.com/
Free endpoints get 100 requests total (reads count too) and expire after 24 hours; past the cap every request answers HTTP 400. Keeping an endpoint alive is the paid product ($2+).
UP 200 · 443 ms 66% 77.6% free alternative →

Request bins

ServiceNowOK 24hOK 7dMockbird
Mockbin (mockbin.org)
mockbin.org/request
Kong's classic bin+mock playground is gone — the domain has no DNS address records, and the code was repurposed as Insomnia's mock backend (source-visible, no longer open source).
HTTP 530 · failing 15 d ⚰️ 0% 0% free alternative →
Mockbin by Zuplo (mockbin.io)
mockbin.io/
The free successor: single fixed-response bins + request log. Bins are immutable and undeletable, and anyone holding the bin URL can read the full request log — including callers' IP addresses.
UP 200 · 60 ms 100% 100% free alternative →
RequestBin (requestb.in)
requestb.in/1abcdef1
Shut down in 2018; the domain now redirects to Pipedream's signup-walled product — every saved requestb.in bin URL answers 403.
HTTP 403 · failing 16 d ⚰️ 0% 0% free alternative →
Hookbin (hookbin.com)
hookbin.com/
Connections time out — the site no longer loads and saved bin URLs are dead.
DOWN timeout after 8000ms · failing 16 d ⚰️ 0% 0% free alternative →
Post Test Server V2 (ptsv2.com)
ptsv2.com/
Shut down — TLS connections fail; every ptsv2.com/t/... toilet URL in old tutorials is dead.
HTTP 525 · failing 16 d ⚰️ 0% 0% free alternative →
webhook.site
webhook.site/
Free bins keep only the last 100 requests and URLs expire after 7 days.
UP 200 · 975 ms 100% 100% free alternative →

Design-first mock servers

ServiceNowOK 24hOK 7dMockbird
Apiary mock server (apiary-mock.com)
private-anon-8f3c1d-polls.apiary-mock.com/questions
Oracle shut Apiary down on Sep 9, 2025 — every apiary-mock.com URL answers 404 “No API found” (the homepage still says “Sign up free”).
HTTP 404 · failing 17 d ⚰️ 0% 0% free alternative →

JSON hosting

ServiceNowOK 24hOK 7dMockbird
myjson.com
myjson.com/
Gone since 2020 — connections hang; every hosted-JSON URL in old tutorials and Roku feeds is dead.
DOWN timeout after 8000ms · failing 17 d ⚰️ 0% 0% free alternative →
jsonbin.io
jsonbin.io/
Alive and solid. Every call needs an account + API key (anonymous create answers 401), the free 10,000 requests are credited once — ever, not per month — and a bin is one opaque blob: no filters, pagination, or per-record CRUD.
UP 200 · 1321 ms 100% 99.5% free alternative →
npoint.io
api.npoint.io/features
Alive — free, open-source, well-run since 2018. One-way store: API writes are private-beta (owned bins answer 401; PUT/DELETE 500), unclaimed bins are world-writable by anyone with the URL, and a bin is one blob — no filters or per-record CRUD. 100 req/min per IP.
UP 200 · 157 ms 97.9% 98.1% free alternative →
Pantry (getpantry.cloud)
getpantry.cloud/
Free JSON storage that's perishable BY DESIGN: you create a pantry ID in the browser first (every API call embeds it), a basket is one JSON blob (POST merges into it — no filters, pagination, or per-record CRUD), and stored data is deleted after a period of inactivity.
UP 200 · 2059 ms 100% 100% free alternative →

Reference-data APIs

ServiceNowOK 24hOK 7dMockbird
REST Countries (restcountries.com)
restcountries.com/v3.1/all?fields=name,cca2
Retired every legacy version (/v1–/v4) in 2026: those URLs now answer HTTP 200 with an error envelope — res.ok passes, data is null. The current v5 requires an API key (free tier 1,000 req/month).
HTTP 200 body is the legacy-API deprecation envelope (success:false, data:null) · failing 15 d ⚰️ 0% 0% free alternative →
exchangerate.host
api.exchangerate.host/latest
The once-keyless exchange-rates API now requires an access_key (it moved under apilayer): keyless requests answer HTTP 200 with success:false and no rates — old tutorial curls fail silently.
HTTP 200 body is a missing_access_key error envelope — keyless access is gone · failing 15 d ⚰️ 0% 0% free alternative →
CoinDesk Bitcoin Price Index (api.coindesk.com)
api.coindesk.com/v1/bpi/currentprice.json
The classic keyless BTC-price API from a decade of crypto tutorials is gone — api.coindesk.com no longer resolves (direct curls fail DNS with NXDOMAIN; checks from Cloudflare's network get HTTP 530), so every v1/bpi/currentprice.json call in those tutorials fails. CoinDesk's current data API lives on a different host (developers.coindesk.com).
HTTP 530 · failing 12 d ⚰️ 0% 0% free alternative →
Frankfurter (frankfurter.dev)
api.frankfurter.dev/v1/latest
Keyless, open-source ECB daily reference rates — the honest live alternative for current fiat rates. Old api.frankfurter.app URLs redirect to api.frankfurter.dev/v1.
UP 200 · 10 ms 100% 99% free alternative →

Tutorial & hobby APIs

ServiceNowOK 24hOK 7dMockbird
Quotable (api.quotable.io)
api.quotable.io/random
The quotes API behind countless random-quote-generator tutorials: its TLS certificate has expired, so every default-config client (fetch, curl, Postman) fails the handshake; checks routed through Cloudflare’s network get HTTP 530 instead. Outage reports on its tracker go back to 2021.
HTTP 530 · failing 15 d ⚰️ 0% 0% free alternative →
Bored API (boredapi.com)
www.boredapi.com/api/activity
The “I’m bored” activity API is gone — the domain no longer resolves (direct curls fail DNS; checks from Cloudflare’s network get HTTP 530). A community mirror lives at bored-api.appbrewery.com with the same response shape.
HTTP 530 · failing 15 d ⚰️ 0% 0% free alternative →
SWAPI (swapi.dev)
swapi.dev/api/people/1/
Community-run Star Wars API with repeated certificate-expiry outages — one took Angular’s own docs example down in April 2025. Read-only (no writes). Static mirror: swapi.info.
UP 200 · 520 ms 100% 99.5% free alternative →
PokéAPI (pokeapi.co)
pokeapi.co/api/v2/pokemon/1
Well-run and generally reliable. Read-only (no writes) with a fair-use policy — cache aggressively if you build on it.
UP 200 · 124 ms 100% 100% free alternative →
Numbers API (numbersapi.com)
http://numbersapi.com/42
The number-trivia API behind a decade of fact-of-the-day tutorials is gone — every fact URL answers a bare nginx 404, and the domain's TLS certificate now belongs to an unrelated site. It never had official HTTPS, so the http:// URLs in tutorials also break as mixed content when called from an HTTPS page.
HTTP 404 · failing 12 d ⚰️ 0% 0% free alternative →
jService (jservice.io)
jservice.io/api/random
The Jeopardy!-questions API behind countless bootcamp trivia projects is dead — the domain still resolves but connections time out on both HTTP and HTTPS.
DOWN timeout after 8000ms · failing 12 d ⚰️ 0% 0% free alternative →
balldontlie (NBA API)
www.balldontlie.io/api/v1/players
The free NBA-stats API from years of React and data-science tutorials dropped keyless access — the old /api/v1/... URLs answer 404, and the current api.balldontlie.io requires an account API key (keyless requests get 401 Unauthorized).
HTTP 404 · failing 12 d ⚰️ 0% 0% free alternative →
Chuck Norris jokes API (api.icndb.com)
http://api.icndb.com/jokes/random
The Internet Chuck Norris Database — THE fetch/AJAX example API of countless 2013-2018 JavaScript tutorials — is gone. Worse than gone: api.icndb.com now 301-redirects to an unrelated gambling-spam site, so every /jokes/random call in those tutorials silently fetches spam HTML.
HTTP 200 redirects to an unrelated gambling-spam site — the joke API is gone · failing 12 d ⚰️ 0% 0% free alternative →
SWAPI original domain (swapi.co)
swapi.co/api/people/1/
The ORIGINAL Star Wars API domain (shut down around 2020, succeeded by swapi.dev). Every swapi.co URL in older tutorials now redirects to Pipedream's SWAPI integration marketing page — HTML, not JSON, so res.json() throws.
HTTP 200 redirects to a Pipedream marketing page — no API data · failing 12 d ⚰️ 0% 0% free alternative →
Forismatic quotes API
http://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en
The quotes API behind a generation of jQuery-era random-quote tutorials is dead — connections to api.forismatic.com time out on both HTTP and HTTPS (and it never had working CORS-friendly HTTPS to begin with).
DOWN timeout after 8000ms · failing 12 d ⚰️ 0% 0% free alternative →
type.fit quotes API
type.fit/api/quotes
The quotes API behind the classic freeCodeCamp-style random-quote-generator tutorials still answers — but the array now contains only FIVE quotes total, so every tutorial that picks a random index from a once-large dataset shows the same handful forever (breakage threads on the freeCodeCamp forum go back to 2023).
UP 200 · 79 ms 100% 100% free alternative →
Open Notify ISS API (open-notify.org)
http://api.open-notify.org/astros.json
The ISS-location/astronauts API from countless Python-requests tutorials still answers — but over plain HTTP only: HTTPS connections fail outright, so any fetch() from an HTTPS-served page dies as mixed content (server-side callers are fine).
UP 200 · 7402 ms 75% 86.6% free alternative →
Rick and Morty API (rickandmortyapi.com)
rickandmortyapi.com/api/character/1
Community-run and well-kept — the fetch-and-render staple of modern React tutorials, with REST and GraphQL, keyless, CORS open. Strictly read-only though: there are no write endpoints at all (POST answers 404), so it can't back any tutorial that saves anything.
UP 200 · 35 ms 100% 100% free alternative →
Dog CEO API (dog.ceo)
dog.ceo/api/breeds/image/random
Community-run dog-photo API (Stanford Dogs dataset) — keyless, CORS open, reliable. Read-only: it hands out image URLs from a fixed pool; nothing can be created or persisted.
UP 200 · 416 ms 100% 100% free alternative →
catfact.ninja
catfact.ninja/fact
Keyless cat-facts API behind many fetch tutorials — read-only fixed dataset, CORS open, and rate-limited per IP (responses carry x-ratelimit-limit: 100).
UP 200 · 253 ms 100% 99.1% free alternative →
Advice Slip API (api.adviceslip.com)
api.adviceslip.com/advice
GET-only advice generator; responses are cached for ~2 seconds (cache-control: max-age=2), so calling it in a quick loop returns the SAME slip every time — the classic “why is my random advice not random” tutorial confusion. No writes.
UP 200 · 711 ms 100% 99.2% free alternative →
Deck of Cards API (deckofcardsapi.com)
deckofcardsapi.com/api/deck/new/
Genuinely stateful (rare — credit due): decks persist across calls, keyless, CORS open. But by its own docs a deck untouched for two weeks is thrown away, so any deck_id saved in a tutorial or long-lived app eventually stops resolving.
UP 200 · 714 ms 100% 100% free alternative →
api.chucknorris.io
api.chucknorris.io/jokes/random
The living successor to the dead icndb.com (which now redirects to gambling spam) — keyless, CORS open, read-only random jokes. Healthy.
UP 200 · 1249 ms 100% 100% free alternative →
ZenQuotes (zenquotes.io)
zenquotes.io/api/random
The most-recommended replacement for the dead quotable.io — but keyless responses send NO CORS headers (a browser fetch() from another origin fails outright; curl and server-side calls are fine), and it rate-limits hard: a burst of ~5 quick requests already answers 429.
UP 200 · 1881 ms 95.7% 95.7% free alternative →
Agify (api.agify.io)
api.agify.io/?name=alice
The name→age API of countless intro-to-APIs lessons (with siblings genderize.io and nationalize.io). Keyless calls are tightly capped per IP — live responses carry x-rate-limit-limit: 25 — so a classroom, CI runner, or shared cloud egress burns the quota almost immediately (429 past it).
UP 200 · 597 ms 100% 100% free alternative →
Official Joke API (official-joke-api.appspot.com)
official-joke-api.appspot.com/random_joke
Community joke API on Google App Engine, big in bootcamp fetch exercises — keyless and read-only. It's a hobby deployment with no uptime commitment.
UP 200 · 437 ms 100% 100% free alternative →

Time & date APIs

ServiceNowOK 24hOK 7dMockbird
WorldTimeAPI (worldtimeapi.org)
worldtimeapi.org/api/timezone/Etc/UTC
Sunset in 2026 citing hosting costs — the origin is gone (direct curl gets a connection reset; through its CDN you get HTTP 525, no farewell page). Every /api/timezone and /api/ip URL in a decade of tutorials is dead.
HTTP 525 · failing 15 d ⚰️ 0% 0% free alternative →
timeapi.io
timeapi.io/api/time/current/zone?timeZone=Etc/UTC
Keyless live wall-clock alternative that still answers — different response shape than WorldTimeAPI (day/hour/minute fields, no unixtime).
UP 200 · 1451 ms 100% 100% free alternative →

Placeholder images

ServiceNowOK 24hOK 7dMockbird
via.placeholder.com
via.placeholder.com/150
Connections hang/time out — tutorial <img> tags stall silently.
HTTP 525 · failing 17 d ⚰️ 0% 0% free alternative →
placehold.it
placehold.it/150
Behind a bot challenge — plain GETs and <img> loads get 403.
UP 200 · 626 ms 95.7% 86.8% free alternative →
placekitten.com
placekitten.com/200/300
Origin down (52x errors) since 2025. RIP the kittens.
HTTP 521 · failing 17 d ⚰️ 0% 0% free alternative →
Unsplash Source (source.unsplash.com)
source.unsplash.com/random/300x200
Unsplash's keyless hotlink endpoint — deprecated in the official changelog in 2021, now answering 503 on every URL shape (/random/WxH, /WxH/?keyword, /featured, /user, /collection, /daily). Direct images.unsplash.com CDN links and the keyed official API still work.
HTTP 503 · failing 6 d 0% 0% free alternative →
placeimg.com
placeimg.com/240/180/any
Shut down in 2022; domain no longer resolves to a working service.
HTTP 530 · failing 17 d ⚰️ 0% 0% free alternative →
lorempixel.com
http://lorempixel.com/400/200
Every path — categories, grayscale, even the homepage — answers HTTP 429 with a hosting “Site Unavailable” page. Not a rate limit you can wait out.
UP 202 · 384 ms 95.7% 94.4% free alternative →
placehold.co
placehold.co/150
UP 200 · 40 ms 100% 100% free alternative →
dummyimage.com
dummyimage.com/300
UP 200 · 27 ms 100% 100% free alternative →
Lorem Picsum (picsum.photos)
picsum.photos/200
UP 200 · 263 ms 100% 100% free alternative →
LoremFlickr
loremflickr.com/320/240
UP 200 · 1011 ms 59.6% 82.8% free alternative →

Avatar placeholders

ServiceNowOK 24hOK 7dMockbird
UI Avatars (ui-avatars.com)
ui-avatars.com/api/?name=John+Doe
Keyless initials-avatar generator — the de-facto standard; Mockbird's /avatar endpoint accepts its exact params.
UP 200 · 43 ms 100% 100% free alternative →
Pravatar (i.pravatar.cc)
i.pravatar.cc/150
CC0 real-photo avatars from a fixed pool of exactly 70 photos (?img=71 is a 404; max size 1000); the same ?u= id always maps to the same photo, but distinct ids beyond the pool share faces.
UP 200 · 138 ms 100% 100% free alternative →
DiceBear (api.dicebear.com)
api.dicebear.com/9.x/initials/svg?seed=Jane
Current API is healthy — but the old avatars.dicebear.com host answers HTTP 410 Gone, so every pre-2023 tutorial URL is dead (the API moved and now needs a style + version in the path).
UP 200 · 397 ms 100% 100% free alternative →
RoboHash (robohash.org)
robohash.org/mockbird.png?size=100x100
Generated robot/monster avatars from any string — keyless and fun, though images are heavyweight PNGs rendered per request.
UP 200 · 34 ms 100% 100% free alternative →
Adorable Avatars (api.adorable.io)
api.adorable.io/avatars/150/test.png
Dead: the once-popular initials/face API shut down (2019-2020); the domain now hosts an unrelated web-design agency, and every api.adorable.io/avatars/... URL from old tutorials 301-redirects there.
HTTP 200 the API is gone — avatar URLs redirect to an unrelated web-design agency site that now owns the domain · failing 11 d ⚰️ 0% 0% free alternative →

What "OK" means

OK = the service answered a plain, keyless GET with HTTP 2xx/3xx within 8s, from Cloudflare's network. That is deliberately the tutorial-code experience: no API keys, no browser cookies, no retries. A service can be "up" for authenticated users while failing here (ReqRes) or serve humans while blocking scripts (placehold.it) — the notes say so. Results are logged verbatim; the OK-rates are computed from the raw checks, which you can pull from /status.json (CORS on).

Bias disclosure: this page is run by Mockbird, a free hosted mock-API service — the "free alternative" links point at our own honest migration guides, which also say when the incumbent is the better tool. If one of these services is down and you just need a working endpoint: curl https://mockbird.mockbird.workers.dev/m/demo/products works with no signup, and one click creates your own.