Comparison

A hosted json-server alternative (no install, real data)

json-server turned db.json into REST routes and changed how we prototype. But the moment you need that API on a teammate's machine, in CI, or filled with believable data, you start fighting the file. Here is where a hosted mock takes over.

Updated June 7, 20265 min

What json-server gets right

  • Local and offline — runs on your machine, no account, no network.
  • Full control — every record is yours, hand-written in db.json.
  • Instant CRUD — GET, POST, PUT, PATCH, DELETE out of the box.

If that covers your need, stay with it. The friction shows up later.

Where a hosted mock wins

  • A shareable URL — front, mobile, CI and your reviewer all hit the same endpoint, no npm install.
  • Realistic data on tap — names, emails, prices, dates that look real, generated by the hundred. No more "name": "test test".
  • Relations that hold — a review points to a real product id, a post to a real author id.
  • Nothing to maintain — describe the shape once; you never hand-edit a 2 000-line db.json again.
  • Pagination built in?page= / ?limit= with total and totalPages, no extra flags.

From db.json to a description

With json-server you author the data. With MockSmith you author the *shape*, and the data is forged for you:

the shape you describe
{  "resources": [{    "name": "posts",    "count": 50,    "fields": [      { "name": "id", "type": "uuid" },      { "name": "title", "type": "sentence" },      { "name": "authorId", "type": "ref", "ref": "users.id" }    ]  }]}

That count: 50 is fifty believable posts you never typed — each wired to a real user.

  • GET/m/you/blog/postspaginated list
  • GET/m/you/blog/posts/:id
  • POST/m/you/blog/posts
  • PATCH/m/you/blog/posts/:id
  • DELETE/m/you/blog/posts/:id

When to keep json-server

Strict offline work, or data so specific it must be hand-authored. For everything shareable, demo-ready or filled with realistic rows, hosting wins.

Frequently asked

Do created records persist like json-server?

Yes. POST/PUT/PATCH/DELETE mutate stored records and persist between requests, exactly like writing to db.json — but on a shared URL.

Can I lock the API so it isn't fully public?

Add a Bearer key to the project and every endpoint starts requiring Authorization: Bearer. With no key, it stays public — your call.

Is it free?

The free plan covers up to two projects with the visual builder and full CRUD. AI generation from a description is a Pro feature.

Stop waiting on the backend.

Forge your own mock API in two minutes. Free, up to two projects, no credit card.

Forge a free mock

Read next