Developers
Build with Joinery.
The Joinery API, its OpenAPI spec, each store’s REST API and an MCP server, for developers and AI agents.
Joinery API
Public JSON API on joinerywp.com: the catalogue with prices and checkout links, and the licence and update endpoints the plugins call from a WordPress site. No key needed for the catalogue.
Store REST API
Each store running Joinery has a WordPress REST API at /wp-json/joinery/v1: manage pricing rules, list the rule types, and preview prices for headless storefronts.
MCP server
Connect Claude, Cursor or any MCP client to the Joinery docs. It needs no sign-in and lets agents search and read the documentation.
Docs and agent files
Guides for headless stores and for adding your own rule types, plus machine-readable maps of the site and API.
How the API behaves
Errors
Every error is JSON: { "error": "…", "code": "…" }. error says what happened and what to do next; code is stable, so act on that. The codes are listed in the OpenAPI spec.
Rate limits
Limits are per IP and per minute. Responses carry RateLimit-Policy and RateLimit (IETF draft-ietf-httpapi-ratelimit-headers) and RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset. Over the limit you get a 429 with Retry-After: wait that many seconds.
Versioning and deprecation
Endpoints under /api/v1 keep working as documented. New endpoints, fields and error codes can be added at any time, so ignore anything you don’t recognise. A breaking change gets a new version (/api/v2). Before anything in /api/v1 is removed, its responses carry a Deprecation header (RFC 9745), a Sunset header with the removal date (RFC 8594) and a Link to this policy, for at least six months.