json-server is excellent, and we borrowed its query parameters on purpose — if you already know _sort, _limit, and price_gte, you already know MockMyData.
The difference is where it runs. json-server lives on your machine behind localhost:3000, with a terminal tab open and a db.json you edit by hand. MockMyData gives you a real HTTPS URL on your own subdomain — one your phone build, your CI job, and your teammates can all hit without a tunnel.
This is deliberate. Anything you've typed against json-server works here unchanged, including both the v0 and v1 spellings.
?category=tools # filter ?price_gte=25&price_lte=130 # range ?name_like=drill # contains ?_sort=-price # sort, highest first ?_page=2&_limit=20 # paginate ?q=drill # full-text
Paginated responses carry X-Total-Count, same as json-server, so your existing pager code keeps working. Full parameter reference →
Neither tool wins every row. The honest split is that json-server is better when you want zero dependencies, and MockMyData is better when the mock has to be reachable from somewhere other than your laptop.
| Feature | json-server | MockMyData |
|---|---|---|
| Filter, sort, paginate from the URL | Same parameter names | |
| Full CRUD — GET, POST, PUT, PATCH, DELETE | ||
| Runs with no signup | Free account required | |
| Works offline | It's a hosted service | |
| Free | Free tier, paid Pro | |
| Custom routes and middleware | Write your own JS | |
| Public HTTPS URL | Needs a tunnel like ngrok | Own subdomain, instantly |
| No local process to keep running | Node + a terminal window | |
| Reachable from a phone build or CI | Same network, or tunnel it | |
| Shareable with teammates | Everyone runs their own copy | One URL, same data |
| API key auth | Per project | |
| Latency injection | One global --delay flag | Per endpoint |
| Custom status codes | Via custom middleware | Per endpoint, with a body |
| Edit data in a browser UI | Edit db.json by hand |
Do I have to rewrite my fetch calls?
No. Change the base URL and add your API key header. The query strings, the response shape, and X-Total-Count all behave the same.
Can I import my db.json?
Paste the array for a collection into an endpoint's response data. One endpoint per top-level key.
What happens when the real backend is ready?
You swap the base URL and delete nothing else. That's the point of matching real API conventions rather than inventing our own.
Is there a free tier?
Yes — one project, 100 requests a day, no card. Pro raises the limits and adds longer response delays and larger payloads.
Try it with the parameters you already know
Free account, no card. Your first endpoint is live in under a minute.