# TradeCatalog developer docs

> Connect your systems and AI apps to TradeCatalog with the REST API, the MCP server and LLM-ready docs.

TradeCatalog keeps a trade supplier’s catalogue, customer prices, orders and price changes in one place. These docs cover the ways software can work with that data.

## Three ways in

### REST API

For your own systems: ERP, stock control, accounts, a nightly script. Owners make an API key in **Settings → API**. The key works on one workspace with staff rights.

- Read products with any customer’s prices, customers, orders, price changes and the activity log.
- Create and update products and customers in batches of 100.
- Move orders on (acknowledged, dispatched, completed, cancelled).

Start with the [quickstart](/docs/quickstart), then read the [REST API overview](/docs/api).

### MCP server for AI apps

For people using Claude, ChatGPT, Cursor or any MCP client. Each person signs in with their own TradeCatalog login and approves read-only access. The AI app then sees exactly what that person sees in the app: staff see their workspaces, buyers see their own prices.

See [Connect an AI app](/docs/mcp) and the [MCP tools](/docs/mcp/tools).

### Docs for LLMs

Every page here is also plain markdown. Add `.md` to any docs URL, or fetch [/llms-full.txt](/llms-full.txt) for all of them in one file. Every page has **Copy page** and **Open in Claude** buttons. See [AI and LLM resources](/docs/guides/llms).

## Which one should I use?

| You want to…                                              | Use                               |
| --------------------------------------------------------- | --------------------------------- |
| Sync products and customers from your ERP every night     | [REST API](/docs/guides/erp-sync) |
| Pull new orders into your accounts or dispatch system     | [REST API](/docs/api/orders)      |
| Ask “what does Oakfield Joinery pay for HX-8510?” in chat | [MCP](/docs/mcp)                  |
| Let a buyer check their own prices from their AI app      | [MCP](/docs/mcp)                  |
| Generate a typed client for your code                     | [OpenAPI](/docs/api/openapi)      |

## What isn’t here yet

- **Webhooks.** Poll [`GET /orders?status=new`](/docs/api/orders) every few minutes instead.
- **Publishing price changes by API.** Changed list prices go into a draft that you review and publish in the app. See [Price changes](/docs/api/price-changes).
- **Deleting products or customers by API.** Make a product inactive or remove it in the app.
- **Keys for buyers.** Buyers use [MCP](/docs/mcp) or download their price list as CSV from their trade portal.

Something missing that you need? Email support from your workspace (Support in the menu) and tell us what you’re building.
