# Usual for developers and agents

Usual runs subscriptions for Shopify stores: offers on product pages, renewals, failed-payment recovery, cancellation offers, and moving in from other apps. Everything a merchant can do in the admin, you can do through the API, and an AI agent can do through MCP, safely.

## Two ways in

| | REST API | MCP |
|---|---|---|
| **For** | Your code, integrations, scripts | AI agents: Claude, Cursor, ChatGPT and others |
| **Address** | `https://regular-subs.fly.dev/api/v1` | `https://regular-subs.fly.dev/mcp` |
| **Sign-in** | `Authorization: Bearer <key>` | The same key |
| **Start with** | [Quickstart](/docs/quickstart) | [Connect an agent](/docs/mcp) |

Both run on the same engine as the admin. A skip made through MCP is the same skip a customer makes on their account page: same checks, same activity record, same undo.

## What makes it different

**Every change can be previewed first.** Any change returns a *plan*: exactly what would change and how many records it touches, before anything happens. [How changes work](/docs/concepts/changes)

**Agents can't go too far on their own.** Agents always get a plan first and must say why. Riskier or bigger changes wait for a person to approve them in the admin. [Approvals](/docs/concepts/changes#approvals)

**Almost everything can be undone.** Every applied change is recorded with who made it, why, and how to reverse it. [Undo](/docs/concepts/changes#undo)

**Retries are safe.** Send an `Idempotency-Key` and a retried request returns the original result instead of repeating the change. [Errors and retries](/docs/concepts/errors)

**Customers only ever see their own data.** Each store's data is walled off in the database, and customer-facing access is limited to that customer's own subscriptions. [Data and privacy](/docs/concepts/data)

## Where to next

- [Quickstart](/docs/quickstart): your first call in three minutes
- [Connect an agent](/docs/mcp): add Usual to Claude, Cursor or another MCP client
- [Recipes](/docs/recipes/cancel-request): handle a cancel request, fix failed payments, move a store from Recharge
- [API reference](/docs/reference/api), [Commands](/docs/reference/commands), [MCP tools](/docs/reference/mcp-tools)

For AI agents reading this: [`/llms.txt`](https://regular-subs.fly.dev/llms.txt) lists every page, and [`/llms-full.txt`](https://regular-subs.fly.dev/llms-full.txt) has all of them in one file. Every page is also available as Markdown: swap `/docs/` for `/docs/md/` in its address.
