One strict API. Typed packages for every surface.
A strict camelCase REST API defined by OpenAPI 3.1, idempotent writes, a generated TypeScript client, React packages for checkout and accounts, and a CLI.
A contract you can rely on
Throttle is API-first: everything the dashboard does, your code can do.
- One shape. Requests and responses are camelCase, everywhere. A retired or misspelled field is rejected with an error that names the field and its replacement — never silently ignored.
- OpenAPI 3.1 is the source of truth. The live spec is published, and the TypeScript client is generated from it, so the docs, the types, and the server can’t disagree.
- Predictable responses. A consistent envelope with a request id on every response, stable error codes, and cursor pagination on every list.
Safe to retry
Send an Idempotency-Key with any write and a retry within 24 hours replays the original response instead of creating a second order or a second charge. Reusing a key with a different body is refused, so a bug can’t hide behind a replay.
Packages for every surface
| Package | For |
|---|---|
@usethrottle/api-client | The full typed API, server-side |
@usethrottle/checkout-react · checkout-sdk | Embedded checkout and secure card fields |
@usethrottle/cart | Carts and browser-safe cart sessions |
@usethrottle/auth | Storefront customer accounts, with drop-in UI |
@usethrottle/subscriptions · invoices · payment-methods · quotes | Buyer portals and B2B flows |
@usethrottle/discounts · scripts · errors | Promotion codes, sandboxed scripts, one error type |
@usethrottle/webhook-types · extension-bridge | Typed events and extension tooling |
A CLI for the terminal
@usethrottle/cli manages orders, payments, customers, subscriptions, discounts, fulfillments, returns, events, webhooks, and extensions from the command line, with saved profiles for each environment.
Machine-readable everything
The scope catalog and event catalog are API endpoints too, and an AI assistant can read the docs, describe an endpoint, and validate a payload before you send it.
Good to know
- The SDKs are JavaScript and TypeScript; other languages use the REST API and OpenAPI spec directly.