Define your resources, get a live CRUD API with realistic fake data in seconds. REST + GraphQL, mock auth, request bins, snapshots β CORS-enabled and free. No signup wall: you reach for a mock API in the ten minutes you're annoyed enough to look, so your first working endpoint is one curl β or one click β away.
Open dashboard# live public playground β try it right now, no signup:
$ curl "https://HOST/m/demo/products?limit=2"
$ curl "https://HOST/m/demo/orders?status=shipped&_expand=customer"
$ curl "https://HOST/m/demo/products/3/reviews"
The demo project is a shared sandbox (e-commerce preset: products, orders, customers, reviews). Writes welcome β it resets every 24 h.
One click gives you a live endpoint seeded with realistic data β names, emails, prices, images, dates. No LLM, no waiting.
GET, POST, PUT, PATCH, DELETE all work. Pagination, sorting, search and field filters built in β exact, range and substring: ?price_gte=100&name_like=chair&sortBy=price&order=desc. Need {"data":[β¦],"total":n} instead of a bare array? Response envelopes match your real API's shape β mockapi.io sells that, here it's free.
20 projects, 20 resources each, 1000 records per resource, 10k requests per project per day. Free while in beta.
Call it straight from localhost, CodePen, or your deployed frontend. No proxy needed, no API key required for reads.
Test spinners and error states: ?mock_delay=2000, ?mock_status=500 β or real chaos injection: ?mock_chaos=0.3 randomly fails 30% of requests, ?mock_jitter=100-1500 adds random latency. Test retry & backoff logic. WireMock charges Enterprise for this.
Scripts hardcoding httpbin.org? Swap the host: /m/httpbin/get, /status/503, /delay/3, /anything, /basic-authβ¦ β same paths, same response shapes, no signup. Guide β
See the last 50 requests hitting your endpoints β method, path, status, origin, body and headers (webhook signatures included) β live in the dashboard. Add a catch-all /* route and it's a free request bin: a webhook.site alternative with no 100-request cap.
Inspect and edit your mock records right in the dashboard β table view, JSON editor, add and delete rows without leaving the page.
Every resource comes with ready-made fetch, axios and curl snippets, plus one-click JSON export of all your data.
Every project serves a live OpenAPI 3.0 spec at /openapi.json and a ready-to-import Postman collection at /postman.json β Import β Link in Postman (Insomnia and Hoppscotch too) and every CRUD request is set up with example bodies. Docs β
curl -o api.ts .../types.ts β ready-to-paste TypeScript interfaces for every resource, or Zod schemas with ?format=zod (.email(), .uuid(), literal unions for enums). No codegen tooling, always in sync with your mock. Docs β
Project presets spin up an entire fake backend at once: Blog, E-commerce or SaaS β multiple linked resources, seeded and live in seconds.
Every project serves its own placeholder images: /img/300x200?text=Product β SVG, any size, colors, avatar circles. Seeded image and avatar fields point at them automatically, so your product grid renders pictures with zero setup and no third-party image service. Docs β
Fire signed webhooks (HMAC-SHA256) at your own endpoint on every create, update or delete β build and debug your webhook consumer before the real event source exists. Delivery log included.
Paste your real API's OpenAPI/Swagger spec (JSON or YAML) and get a live mock of it in one request β schema-aware fake data, enums kept, $refs resolved. POST your json-server db.json and we host your exact data. Import a Postman collection: saved example responses become the hosted records. POST a DevTools HAR export and the JSON responses your app really received become the records β record real traffic, replay it as a mock. Or POST a CSV β every row becomes a record, header row becomes the fields: a spreadsheet turns into a REST+GraphQL API in one curl. And it round-trips β GET /m/<id>/db.json exports everything back, so there's no lock-in. Docs β
Every project is also a GraphQL API at /graphql β typed schema generated from your resources, relations, filters, mutations, full introspection. Open it in a browser for a built-in GraphiQL IDE. Try it on the demo β
A fake login flow that behaves like a real one: /auth/login accepts any email+password and returns a signed JWT that actually expires. Flip on protected mode and every endpoint 401s without a token β test auth guards, interceptors and expiry logic with zero backend. Docs β
Save the entire data state under a name, let your tests trash it, restore in one call β or serve any snapshot per-request with the X-Mockbird-Snapshot header, so parallel test workers each pin their own scenario on one project. Docs β
Beyond CRUD: define your own endpoints β /health, /config/:key, a 418 /teapot β with templated responses that echo {{query.x}}, {{body.x}} and path params back. Custom routes even override generated ones, and a trailing * makes a catch-all that accepts any path. Beeceptor's paid rules engine, free. Docs β
Point Claude Code, Cursor or VS Code at /mcp and your agent gets mock backends as tools: βspin up an ecommerce mock and wire my frontend to itβ is one tool call. Hosted MCP (Streamable HTTP), no signup, no OAuth dance β and the resulting API is plain HTTP your generated code can ship with. Docs β
Join resources like json-server: ?_expand=customer pulls in the parent, ?_embed=comments attaches the children β or go path-style with /posts/1/comments. One request, nested data.
| Mockbird | mockapi.io | Beeceptor | JSONPlaceholder | |
|---|---|---|---|---|
| Try without signup | β | β | β | β |
| Custom schema | β | β | ~ | β |
| Free projects | 20 | 1 | limited | β |
| Free requests | 10k/day/project | ok | 50/day | β |
| Realistic seeded data | β | β | β | fixed |
| Request inspector | β free | β | β (their paid core) | β |
| Outbound webhooks | β free, signed | β | paid | β |
| Import OpenAPI spec | β JSON+YAML | β | β | β |
| Import json-server db.json (your data) | β | β | β | β |
| Import Postman collection (examples become records) | β | β | β | β |
| CSV β hosted API (rows become records) | β | β | β | β |
| HAR import (record traffic β replay as mock) | β | β | β | β |
| GraphQL endpoint + GraphiQL | β REST & GraphQL, same data | β | β | β |
| Mock JWT auth / protected mode | β real signed tokens | β | β | β |
| Custom routes + response templating | β free | β | paid | β |
| Save / restore data snapshots | β 10 per project | β | β | β |
Request bin (catch-all /* + header capture) | β 10k/day, no expiry | β | ~ | β |
| TypeScript types + Zod schemas export | β /types.ts | β | β | β |
| Postman collection export | β /postman.json | β | β | β |
| Response envelope reshaping | β free β ?mock_envelope= or project default | paid | β | β |
| Placeholder images (self-hosted, no third-party) | β /img/300x200, seeded fields use them | β | β | β |
| MCP server (agents create & drive mocks as tools) | β hosted, no auth | β | β | β |