โ† All guides

A free npoint.io alternative โ€” for when the JSON bin needs writes and queries

Credit first: npoint.io ("n:point") is one of the most likeable tools in the JSON-hosting category. It's completely open source, free ("all current features are free", says the FAQ), and you can create a bin with one click โ€” no signup. The editor accepts relaxed JavaScript object syntax, CORS is * on every API response, and you can fetch sub-properties straight from the URL (api.npoint.io/<bin>/0/title). Its signature idea โ€” attach a JSON Schema and lock it so future edits can never break your app โ€” is genuinely clever and, as far as we know, unique. It's a well-run labour of love that serves thousands of requests a minute.

This guide is for the moment your bin stops being a read-only document. Three things to know, all from npoint's own homepage or verified hands-on (September 2026):

  1. It's a one-way store. npoint's homepage says it plainly: "edit online, fetch via GET requests over API. Editing data over the API via POST requests is in private beta." Hands-on: a POST to an account-owned bin answers 401; PUT and DELETE answer a 500 error page. If your prototype needs to write โ€” a form, a todo toggle, anything โ€” the API can't do it.
  2. Unclaimed bins are world-writable. This one surprised us: we created a bin anonymously, and a credential-less curl -X POST from a different machine replaced its entire contents โ€” no key, no cookie, it even let us change the top-level object into an array. Log in and your bins become protected (only you can edit) โ€” but then API writes are back to 401. So the real choice is: writable by everyone, or writable by no one.
  3. A bin is one blob. Sub-property access is by key or array position (/0/title breaks the moment order changes). There's no per-record CRUD, no ?done=false filter, no sorting, pagination, or search. Also worth knowing: API reads are served with cache-control: max-age=3600 through a CDN โ€” npoint purges its edge cache on edit, but any browser or client that honours the header can hold data an hour stale. Rate limits are 100 requests/min per IP and 600/min per bin.

Move a bin in one pipe

If your bin holds an array of records โ€” the common case โ€” pipe npoint's read straight into Mockbird's import. No account or key on either side:

curl -s 'https://api.npoint.io/<BIN_ID>' \
| curl -s -X POST 'https://mockbird.mockbird.workers.dev/api/projects/import?resource=todos' \
  -H 'content-type: application/json' --data-binary @-
# โ†’ { "id": "vsr338puws", "adminKey": "โ€ฆ",
#     "resources": [{ "name": "todos", "records": 3,
#       "url": "https://mockbird.mockbird.workers.dev/m/vsr338puws/todos" }] }

Records are hosted verbatim โ€” integer ids preserved. An object of arrays works too (each key becomes its own collection, db.json-style), and a plain config object becomes a 1-record collection.

What the bin couldn't do

Every item is now a record behind a real REST endpoint. All of these ran against production before this page was published:

curl https://mockbird.mockbird.workers.dev/m/vsr338puws/todos          # list
curl https://mockbird.mockbird.workers.dev/m/vsr338puws/todos/2        # one record โ€” by id, not position
curl 'https://mockbird.mockbird.workers.dev/m/vsr338puws/todos?done=false'        # filter
curl 'https://mockbird.mockbird.workers.dev/m/vsr338puws/todos?title_like=launch' # substring search
curl 'https://mockbird.mockbird.workers.dev/m/vsr338puws/todos?sortBy=priority&order=desc&select=id,priority'
curl -X PATCH https://mockbird.mockbird.workers.dev/m/vsr338puws/todos/2 \
  -H 'content-type: application/json' -d '{"done":true}'   # a real write โ€” persists, no blob replace

Plus range operators (priority_gte=4 and friends), full-text q= search, pagination with X-Total-Count, GraphQL on the same data, a request inspector, and typed exports (openapi.json, postman.json, types.ts). And unlike an unclaimed npoint bin, writes need nothing or โ€” flip on protected mode โ€” a real JWT, your choice.

npoint โ†’ Mockbird translation

On npoint.ioOn Mockbird
Click "Create JSON Bin" (no signup)one anonymous curl โ€” POST /api/projects/import or paste in the dashboard
GET api.npoint.io/<bin> โ€” whole blobGET /m/<project>/<collection> โ€” list, filter, sort, paginate
Sub-property by position: /<bin>/0/titleby id: /todos/2 ยท projection: ?select=id,title
API writes: private beta (owned bins 401)POST / PUT / PATCH / DELETE per record, live now
Anonymous bin: anyone with the URL can overwritewrites open by default, or JWT-protected โ€” never "world-writable or nothing"
Schema locking (their killer feature)typed fields per collection โ€” but no lock; honest gap
Rate limits 100/min/IP ยท 600/min/bin10,000 requests per project per day
Edit online at npoint.io/docs/<bin>dashboard data browser โ€” table view, JSON editor
Data exportGET /m/<project>/db.json โ€” eject everything anytime

Honest comparison

npoint.ioMockbird
Pricefree, all featuresfree while in beta
Signup requiredno (login only to protect bins)no (anonymous projects; free signup to keep them)
API writesprivate beta โ€” 401 on owned bins; unclaimed bins writable by anyonefull CRUD, open or JWT-protected
Queryingsub-property by key/positionfilters, ranges, search, sort, pagination, projection, GraphQL
Schema safetyJSON Schema validation + locking โ€” no equivalent heretyped fields, no lock
Arbitrary JSON shapesany shape, any nestingrecords-in-collections (nested values kept verbatim inside records)
FreshnessAPI reads CDN-cached (max-age=3600; edge purged on edit)reads hit live data
Open source / self-hostyes โ€” full Rails app on GitHubno (honest downside)
Track recordrunning since 2018, transparent hobby project (no SLA, says so upfront)newer (honest downside)

Where npoint wins, plainly: if you want a free, open-source place to keep a config blob or CMS-ish document that non-developers can edit safely โ€” schema locking is a genuinely great idea nobody else has, and you can even self-host the whole thing. This page is for the other job: a list your app queries and mutates record-by-record, over the API, today.

Try it with zero setup

curl 'https://mockbird.mockbird.workers.dev/m/demo/products?limit=2&sortBy=price&order=desc'
curl -X POST https://mockbird.mockbird.workers.dev/m/demo/products \
  -H 'content-type: application/json' -d '{"name":"Test product","price":9.99}'
# โ†’ it persists โ€” GET it back by the id you received

This page is written by the Mockbird maker โ€” bias disclosed. npoint.io facts verified September 4, 2026: the one-way-store description, private-beta API writes, and the 100/min-per-IP ยท 600/min-per-bin rate limits are quoted from npoint.io's own homepage; "all current features are free" and the no-SLA stance are from its FAQ; CORS *, the cache-control: max-age=3600 header, sub-property access, the owned-bin 401, the PUT/DELETE 500s, and the credential-less overwrite of an anonymous bin were all verified hands-on with curl (against a bin we created ourselves โ€” no third-party data was touched). npoint is open source at github.com/azirbel/npoint. Every Mockbird command on this page was run against production before publishing (scratch project deleted after). Anonymous projects have a per-IP daily creation cap; sign up (free) to keep projects permanently.

Full API reference in the docs. More guides: jsonbin.io alternative ยท host a JSON file as an API ยท jsonbox alternative ยท CSV โ†’ REST API. Create your API โ†’

โšก Skip the terminal: this link opens the dashboard import panel โ€” paste your bin's JSON, get a live queryable API, no signup. Or create a seeded e-commerce backend in one click.