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.