Changelog

New features, changes and fixes to the jsonpad platform, most recent first. jsonpad is deployed continuously, so releases are listed by the date they reached production rather than by version number. The SDKs are versioned separately.

13 September 2026

Added

  • Tags. Lists, items, indexes, tokens, and identities can each carry an array of tags. Tags can be added and edited in the dashboard with auto-complete, filtered on in the API, and searched from the dashboard search bar. Intended as a lightweight way to group the resources belonging to one application without introducing a formal "project" concept.
  • Token regeneration. POST /tokens/{id}/regenerate issues a new value for an existing token without deleting and re-creating the token entity. User auth mode only. Use it when a token has been exposed.
  • Index builds run as background jobs. Building or rebuilding an index no longer blocks the request. Build progress, status and failures are visible in the dashboard, and a failed build can be retried from there.

Changed

  • Dashboard search now returns your own lists, items, indexes, tokens and identities alongside documentation results. Previously it only searched the documentation.
  • The JSON editor in the dashboard has been rebuilt — better formatting, error reporting and large-document handling.

12 September 2026

Added

  • Guard indexes. An index can be marked guard, which strips the value at its pointer from item data in responses made with token auth. The value can still be written. If the item belongs to the calling identity, pass ?includeGuarded=true to get the guarded data back. Useful for keeping part of an item private to its owner.

Changed

  • Breaking: event list endpoints no longer include the event snapshot by default. Pass includeSnapshot=true to restore the previous behaviour. Event responses were large and most callers never read the snapshot.

Fixed

  • Token values are now redacted in the event log. They were previously visible in the before/after payloads of token events.
  • Corrected several typos in the homepage demo.

11 September 2026

Added

  • Item restore. POST /items/{id}/restore restores a deleted item.
  • Current token endpoint. GET /tokens/self returns the token being used to make the request, so an application can inspect its own permissions and identity without a user-mode call.
  • Identity filtering. Item list endpoints accept an identity filter, so you can fetch only the items owned by a given identity.
  • Identities have a displayName.
  • Realtime connection quotas. Concurrent realtime connections are now capped per user according to plan (1 on Free, up to 500 on Scale). A refused socket receives a connect_error carrying the same error shape as an API error, plus max and retryAfter. Realtime messages themselves are not metered.

Changed

  • Reworked token and identity permission handling, closing several gaps where a permission was checked inconsistently between related endpoints.
  • Clearer button labels throughout the dashboard.

Fixed

  • Rate-limit response headers were wrong on some routes and missing on others.
  • Prepaid credits could be charged retroactively for requests that had already been refused.
  • Fixed the JSON Pointer validation regex, which rejected some valid pointers.
  • Fixed invalid JSON in several generated documentation examples.

10 September 2026

Added

  • New pricing and metering model. Four plans — Free (£0), Indie (£9), Pro (£29) and Scale (£99), with annual billing at two months free. Metering is on two things only: requests per calendar month and total stored bytes. Entity limits (number of lists, items per list, indexes per list) are gone.
  • Every feature is available on every plan, including Free — schema validation, version history, JSON Patch/Pointer/Path, realtime, identities, generative API. Volume is the only reason to upgrade.
  • Prepaid request packs — £5 / £20 / £60 for 100k / 500k / 2M extra requests. They never expire and can be bought on any plan, including Free.
  • Quota headers on every metered response: x-quota-total, x-quota-remaining, x-quota-credits, x-quota-reset, x-quota-degraded, x-rate-limit-total, x-rate-limit-remaining and retry-after.
  • GET /subscriptions/usage returns current usage against your allowance.
  • A /pricing page and a "Limits and quotas" documentation section.

Changed

  • Only requests made with an API token are metered. Dashboard traffic authenticates as a user and does not count against your allowance.
  • When an allowance, overdraft and credits are all spent, reads keep working at the Free tier's rate limit rather than failing outright; writes return 429 with QUOTA_EXCEEDED. Paid plans get a 10% overdraft first.
  • Requests that end in a 5xx, that are refused for quota, or that trip the rate limiter are given back and do not count against your allowance.
  • Subscribing now goes through Stripe Checkout, and billing is managed through the Stripe Customer Portal. The custom card form has been removed.

Fixed

  • Stale user data could be served from cache after a subscription change.
  • Subscription card styling in the dashboard.

6 September 2026

Added

  • A proper 404 page.

5 September 2026

Changed

  • The homepage and all documentation pages are now pre-rendered. They previously returned an empty shell to anything that does not run JavaScript, which meant search engines indexed nothing and language models could not read the documentation at all. Every documentation page is also available as markdown by appending .md to its URL — for example https://jsonpad.io/docs/getting-started.md — and the site now publishes sitemap.xml, robots.txt, llms.txt and llms-full.txt.

30 August 2026

Fixed

  • Features that are disabled by configuration are now properly hidden in the client rather than shown in a broken state.

8 February 2025

Added

  • An identityId variable, so the id of the identity that owns an item can be substituted into that item's data.

30 January 2025

Added

  • A downloadable Postman collection in the documentation.

13 January 2025

Changed

  • Added the identities section to the API reference index page.

10 January 2025

Changed

  • Adjusted API rate limits.

30 December 2024

Added

  • JSON5 support. Send Content-Type: application/json5 to have a request body parsed as JSON5, or Accept: application/json5 to have the response serialised as JSON5.

25 December 2024

Fixed

  • An index path name uniqueness check was not scoped to its list, so creating an index could fail because an index with the same path name existed on a different list.

17 December 2024

Added

  • The realtime server accepts list path names and item aliases when subscribing, not just ids.

15 December 2024

Added

  • MessagePack support. Send Content-Type: application/x-msgpack to have a request body decoded as MessagePack, or Accept: application/x-msgpack to have the response encoded as MessagePack.
  • An includeData parameter on the item write endpoints. It defaults to true; set it to false to skip item data in the response, which is worth doing when updating large items.
  • A samples page in the documentation, listing example applications on GitHub.

Changed

  • Updated subscription limits.

14 December 2024

Added

  • A path parameter on the items index endpoint.

13 December 2024

Changed

  • Large item data is conditionally omitted from realtime messages, so a big write no longer floods subscribers.

11 December 2024

Added

  • Branding pack — downloadable "powered by JSONPad" images and logos.

Changed

  • Updated the SDK examples throughout the documentation.

8 December 2024

Added

  • Identities. End users of your application can now have their own accounts inside JSONPad — register, log in, log out, and read and write their own items through identity-scoped tokens, without you building an auth layer. Includes the identity API, dashboard management and documentation.
  • A delay on failed login attempts.

Fixed

  • Corrected the token permission schema, and brought the client's copy of it back into line with the server's.
  • Fixed identity card styling and event log colours in the dashboard.
  • Filled in missing entries in the event type tag.

29 November 2024

Added

  • Variables. Dynamic values can be substituted into item data on write — timestamps, generated ids and similar — so a client does not have to compute them.

Fixed

  • Assorted dashboard UI fixes.

24 November 2024

Added

  • Token permissions can be edited as raw JSON in the dashboard, as well as through the UI controls.

23 November 2024 — Launch

JSONPad went live.

Added

  • Lists and items. JSON documents organised into lists, with a REST API over both.
  • JSON Schema validation per list, so items cannot be written in a shape the list does not allow.
  • Version history. Every item write is versioned; previous versions can be fetched, compared and restored.
  • Partial data access via JSON Path and JSON Pointer — fetch, update, patch or delete part of an item without sending the whole document. JSON Patch is supported on writes.
  • Indexes. Typed indexes over a pointer into item data, used for sorting, filtering and searching a list. Alias indexes let an item be addressed by a value from its own data instead of its id.
  • Search across a list.
  • Tokens and permissions. API tokens with a declarative permission model covering which resources and actions a token may use.
  • Event log. An audit trail of every change to a list, item, index or token.
  • Realtime server. Subscribe over a socket and receive item changes as they happen.
  • SDKs for Node and the browser.
  • Generative API — create and populate items from a prompt, backed by Google Gemini or OpenAI.
  • Dashboard — lists, items, indexes, tokens, event log, item version comparison and restore, statistics, and a first-time user experience.
  • Accounts and billing — registration, email verification, subscriptions via Stripe, account deactivation and deletion.
  • Documentation with full API reference and searchable content.
  • Status page.
  • ETags and conditional requests, standard rate-limit and quota response headers, and a maintenance mode.