You want a REST API that exists now โ for a frontend the backend hasn't caught up with, a workshop, a demo, a test suite. There are five common answers, and they make genuinely different trade-offs. Here's the short version:
| Mockbird | mockapi.io | Beeceptor | JSONPlaceholder | json-server | |
|---|---|---|---|---|---|
| Hosted for you | โ | โ | โ | โ | โ (self-host) |
| Works before signup | โ | โ | โ | โ (no accounts at all) | n/a |
| Custom schema | โ | โ | ~ (rule-based) | โ (fixed) | โ |
| Writes persist | โ | โ | โ | โ (faked) | โ |
| Free projects | 20 | 1 (4 resources) | limited | โ | โ |
| Free requests | 10k/day/project | generous | 50/day | generous | โ |
| Request inspector | โ free | โ | โ (its specialty) | โ | terminal logs |
| Forced delays / error codes | โ (query param) | โ | โ (rules) | โ | ~ (flags/middleware) |
| OpenAPI export | โ | โ | paid | โ | โ |
JSONPlaceholder is the fastest possible start: no account, no setup, just fetch('https://jsonplaceholder.typicode.com/posts'). It's been the default "I need some JSON" URL for a decade, and for a quick fetch demo or a Stack Overflow answer it's still the right choice.
Its limits appear the moment your app is about anything other than posts/comments/todos/users: the schema is fixed, and writes only pretend to succeed โ POST returns 201 with an id, but the record isn't stored, so any UI with state (add an item, then see it in the list) silently doesn't work.
Pick it when: you need read-only sample JSON in the next ten seconds and don't care what shape it is.
json-server (same author) is the most flexible of the bunch: a db.json file becomes a full fake REST server with filtering, pagination, relations (_expand/_embed) and persistent writes. If you're happy running npx json-server db.json locally, it's excellent.
The friction is everything around that process: it lives on localhost, so sharing it with a teammate, a deployed preview build, a CI browser job, or a phone on another network means deploying and babysitting a Node process somewhere. You also write the seed data yourself (or wire up faker in a generator script).
Pick it when: the mock only ever needs to exist on your own machine, or you enjoy owning the infrastructure. If you like its API but want it hosted, that's exactly the itch Mockbird scratches โ same conventions (_page/_limit/_sort/_expand/_embed, nested routes), see json-server, hosted.
Beeceptor is really an HTTP interception tool that also does mocking: you get a subdomain, watch requests arrive live, and write match-rules that return canned responses. For debugging webhooks, inspecting what a third-party service actually sends you, or tunneling to localhost, it's genuinely great and the better tool.
As a fake REST backend, it's a stretch: the free plan allows 50 requests per day โ a single developer refreshing a list view burns through that before lunch โ the free CRUD data layer stores just 10 small objects, and free endpoints expire (7 days unclaimed, 90 days claimed; figures re-verified July 2026). Full breakdown: Beeceptor alternative guide.
Pick it when: you need to see incoming HTTP traffic or stub one specific endpoint's response, not simulate a whole CRUD backend.
mockapi.io is the closest thing to Mockbird in spirit: define resources with faker-style fields, get hosted REST endpoints with real persistent CRUD, relations included. The UI is mature and it's been around for years โ a safe, well-executed choice.
Two caveats. You must create an account before you can try anything, and the free tier is 1 project with 4 resources โ fine for one side project, but the second project (or a blog + shop + auth demo split across more than four resources) puts you on the $5/month plan. There's also no request log and no way to force an error status or a slow response, so testing failure states still needs client-side hacks.
Pick it when: you want an established tool with a polished editor UI and one free project is enough. Hitting the limits? See the dedicated mockapi.io alternative guide โ the query params are nearly identical, so switching is mostly a base-URL change.
Mockbird's bet is that the mockapi.io concept should be more generous and need less commitment: the first project works before you sign up (claim it into an account later), the free tier is 20 projects with 10,000 requests per project per day, and the failure-testing and inspection features the others gate or lack are query params and a free dashboard panel:
# a whole seeded e-commerce backend, one request, no account
curl -X POST https://HOST/api/projects \
-H 'content-type: application/json' \
-d '{"name":"demo","preset":"ecommerce"}'
# realistic data, filters, relations, pagination
curl 'https://HOST/m/YOUR_ID/products?category=shoes&_expand=customer&_page=1&_limit=5'
# test your error and loading states with a query param
curl 'https://HOST/m/YOUR_ID/products?mock_status=500'
curl 'https://HOST/m/YOUR_ID/products?mock_delay=3000'
Writes persist, every project serves a live openapi.json, the last 50 requests are inspectable in the dashboard, and it follows json-server conventions so existing tutorials mostly just work. Being the newest tool here, it has the least mileage โ that's the honest trade-off, and it's free while in beta.
Pick it when: you want a hosted, persistent, seeded CRUD backend right now, with failure simulation and request inspection, without a paywall at project #2. Try it live without creating anything: curl https://HOST/m/demo/products.