Developers
The deepest developer API in digital goods.
Thirty resource groups, 302 documented operations, 59 webhook events, and an idempotency key on every mutation. Build against it, script against it, or point an AI client at it.
POST https://api.shoppex.io/dev/v1/orders
Authorization: Bearer shx_live_…
Idempotency-Key: 8f14e45fceea
{ "product_id": "prod_2001", "quantity": 1 }
201 → { "data": { "uniqid": "INV-V9K2X", "status": "PENDING" } }
What it reaches
If the dashboard can do it, so can your code.
Thirty resource groups under one base URL. Not a read-only reporting API bolted onto a storefront: orders get created, disputes get answered, keys get uploaded, themes get published.
Selling
Catalogue
Customers
Growth
Protection
The shop itself
$ Every one of them is in the OpenAPI document, every list pages by cursor, and every mutating call takes an idempotency key. All of it is on the free plan: the API, the webhooks, OAuth, the SDKs, the CLI and both MCP servers cost nothing on top of the 2%.
Access
A key that can do exactly one thing.
Twenty-eight resources, each with read and write, and presets for the jobs people actually automate. Nothing has to run as full access because narrower was too much work to set up.
- Presets, then exact scopes
- Start from theme development or ERP sync, then narrow it by hand if you want.
- OAuth when someone else builds it
- Authorization code and refresh tokens, so an app your customer installs never holds your key.
- Scoped to one theme
- A theme key reaches that theme and nothing else in the shop.

Built to be retried
A retry cannot create a second order.
Every mutating endpoint takes an idempotency key, and a test in the build fails if a new one ships without one. Retry after a timeout and you get the same order back, never a second one.
302
Documented operations
Across orders, products, customers, disputes and more.
OAuth 2.0
Or a plain key
Authorization code and refresh tokens, or a scoped key.
Cursors
Not page numbers
Lists page cleanly while rows are being written.
Webhooks
Fifty-nine events you can replay by hand.
Orders, disputes, products, subscriptions, resellers and replacements all emit. Shoppex signs every delivery, retries a failed one five times, and logs each attempt where you can read it.
- Signed with a timestamp
- HMAC-SHA256 over the raw body, with the timestamp in the header, so you can reject a replay.
- Five attempts, backing off
- Two minutes, then four, then eight. Your endpoint can be down for a while.
- Retry by hand
- Send a failed delivery again from the dashboard, without writing a script.

For the client on your desk
Point your assistant at your shop.
Two MCP servers, one install command. Your AI client then works against the same Developer API your own code does, with a key you scope yourself.
$ npx @shoppexio/mcp-shoppex install --client claude-code
installed · 58 tools available
51 commerce tools
Products, orders, customers, coupons, invoices, disputes, analytics.
7 theme tools
Read and write theme documents and settings, then publish.
Five clients
Claude Desktop, Claude Code, Cursor, Windsurf and Codex.
The rest of the toolbox
Everything else you expect to already exist.
None of it is a roadmap item. The packages are published and the commands run today.
- SDKs on the registries
- TypeScript is the one we build Shoppex with ourselves. Python and PHP ship alongside it.
- A CLI for storefront work
- Log in, list themes, pull the source, run it locally, push it back, deploy the build. Two lanes, one for block documents and one for code storefronts.
- Headless checkout, the one Business line here
- One script tag on any page, and the cart lives in the browser. Useful when the store is somewhere Shoppex does not host. It is the only thing on this page that sits on the 99 EUR plan rather than the free one.
- Rate limits you can see coming
- Every response carries its remaining budget and reset, and a 429 tells you how long to wait rather than leaving you to guess.
Your first call is one key away.
A key takes a minute to make, and you can scope it to the one resource you need.