You have a JSON file โ a list of todos, products, quiz questions, a config blob โ and you want a URL for it so a frontend, a mobile app, or a workshop room can fetch it. This used to be myjson.com's whole job, and myjson.com is gone (it went dark in 2020 and took a lot of Roku feeds and tutorial code with it). The services that filled the gap all put something between you and the URL:
X-Master-Key header on requests, and the free credit is 10,000 requests once (it doesn't renew โ after that you buy more).Here's the shorter path. One curl, no account, no key:
curl -X POST 'https://HOST/api/projects/import?resource=todos' \
--data-binary @todos.json
# todos.json = [{"id":1,"title":"buy milk","done":false},
# {"id":7,"title":"ship the feature","done":true}, ...]
# โ {
# "id": "g6bhxt4ezf",
# "baseUrl": "https://HOST/m/g6bhxt4ezf",
# "resources": [{ "name": "todos", "records": 3,
# "url": "https://HOST/m/g6bhxt4ezf/todos" }]
# }
Your records are hosted verbatim โ integer ids preserved, missing ones filled in โ behind a real REST endpoint:
curl https://HOST/m/g6bhxt4ezf/todos # the whole list
curl https://HOST/m/g6bhxt4ezf/todos/7 # one record by id
This is the part the JSON-bin services can't do. They store your file as one opaque blob: you GET the whole thing, you PUT the whole thing back. Here every item is a record, so the whole query toolkit works on your data immediately:
curl 'https://HOST/m/g6bhxt4ezf/todos?done=true' # filter by any field
curl 'https://HOST/m/g6bhxt4ezf/todos?title_like=milk' # substring match
curl 'https://HOST/m/g6bhxt4ezf/todos?_page=2&_limit=10' # pagination
curl 'https://HOST/m/g6bhxt4ezf/todos?select=id,title' # field projection
And writes are per-record CRUD, not blob-replacement:
curl -X POST https://HOST/m/g6bhxt4ezf/todos \
-H 'content-type: application/json' -d '{"title":"new item","done":false}'
curl -X PATCH https://HOST/m/g6bhxt4ezf/todos/7 \
-H 'content-type: application/json' -d '{"done":false}'
curl -X DELETE https://HOST/m/g6bhxt4ezf/todos/1
You also get GraphQL, sort (_sort/_order), full-text q= search, range operators (_gte/_lte/_ne), an inspector showing who's hitting the URL, named snapshots, and typed exports (openapi.json, types.ts, postman.json).
Not an array? A plain JSON object works too. An object of arrays is treated like a json-server db.json โ each key becomes its own collection. Singular object values become 1-record collections, which is exactly what you want for config:
curl -X POST https://HOST/api/projects/import \
--data-binary '{"config":{"theme":"dark","retries":3},"profile":{"name":"Ada"}}'
# โ collections "config" and "profile", one record each
curl https://HOST/m/<id>/config/1
# โ {"theme":"dark","retries":3,"id":1}
One URL returns your entire live dataset back, in json-server's native format:
curl -o db.json https://HOST/m/g6bhxt4ezf/db.json
npx json-server db.json # the same API, running on your laptop
Verified July 2026 against each service's public pages:
| jsonbin.io | npoint.io | ExtendsClass | Pantry | Mockbird | |
|---|---|---|---|---|---|
| Signup / API key | OAuth signup + key headers | account for editing; no new API keys | account + key | free key | none |
| Free requests | 10,000 total, once | unlimited reads | free | free | 10,000 / day per project |
| Query/filter your data | no (whole blob) | path drill-down reads only | JSON Patch partial updates | no (whole basket) | filters, sort, search, pagination, GraphQL |
| Per-record writes | blob PUT (versioned) | UI editing | blob + patch | blob merge | full CRUD per record |
| Size limits | generous | โ | 100 KB/bin | small baskets | 512 KB import, 1,000 records/collection |
| Data lifetime | persistent | persistent | persistent | deleted when inactive | persistent (sign up to keep projects tied to an account) |
| Where it wins | versioned blob history, private bins | schema validation + lovely editor | JSON Patch support | dead-simple key-value baskets | your JSON becomes a real queryable API |
Fair is fair: if what you need is one private blob with version history, jsonbin.io is built for exactly that. If you want a human-friendly editing UI with JSON-Schema validation, npoint.io is lovely. Mockbird's angle is different โ your file stops being a blob and becomes a working backend.
What this is (and isn't): Mockbird is a mock-API/prototyping service, not a production database โ perfect for prototypes, demos, workshops, tutorials and frontend builds; don't put secrets or production data in it. Projects are unlisted (anyone with the URL can read them) unless you turn on protected mode, which puts real JWT auth in front of every endpoint. Records must be JSON objects; anonymous project creation has a per-IP daily cap โ sign up (free) to keep projects permanently.
This page is written by the Mockbird maker โ bias disclosed. jsonbin.io / npoint.io / ExtendsClass / Pantry facts checked July 2026 against their public pricing and docs pages, plus live requests.
Prefer a UI? Open the dashboard import panel and paste your JSON โ no terminal needed. Full reference in the docs. More guides: CSV โ REST API ยท json-server, hosted ยท free GraphQL mock API. Create your API โ