The REST API gives your own systems the same data your staff see in TradeCatalog: products, customer prices, customers, orders, price changes and the activity log. It uses JSON over HTTPS and one API key per system.
Base URLLink to this section#
https://tradecatalog.app/api/v1
Every request needs an API key in the Authorization header. See Authentication.
Who can use itLink to this section#
- Owners make and revoke keys. Staff and buyers can’t.
- The workspace needs an active subscription, a free trial or a pilot account to make keys.
- Demo workspaces can’t use the API at all.
- If a subscription lapses and the workspace goes read-only, existing keys can still read but can’t write.
A key belongs to one workspace. It acts with owner rights on that workspace, so it can see every customer’s prices.
EndpointsLink to this section#
| Method | Path | What it does | Scope |
|---|---|---|---|
| GET | /workspace | The workspace this key belongs to | read |
| GET | /products | List or search products, optionally at a customer’s prices | read |
| GET | /products/{id} | One product with its price | read |
| PUT | /products | Create or update up to 100 products by SKU | write |
| GET | /brands | All brands | read |
| GET | /categories | All categories | read |
| GET | /prices | What a customer pays for a SKU, and why | read |
| GET | /customers | Trade customers | read |
| GET | /customers/{id} | One customer’s terms, rules, agreed prices and buyers | read |
| PUT | /customers | Create or update up to 100 customers | write |
| GET | /orders | Recent orders, newest first | read |
| GET | /orders/{id} | One order with lines and status history | read |
| PATCH | /orders/{id} | Move an order on | write |
| GET | /price-changes | Price changes, newest first | read |
| GET | /price-changes/{id} | Preview one price change | read |
| GET | /activity | Who changed what | read |
The full machine-readable description is at /api/v1/openapi.json.
Before you buildLink to this section#
- Read Conventions for money, paging, dates and how
PUTworks. - Read Errors for status codes and retries.
- Keep keys on your server. The API doesn’t allow browser (CORS) requests.
Not in the API yetLink to this section#
- Webhooks: poll
GET /orders?status=newinstead. - Publishing, scheduling or cancelling price changes: do that in the app.
- Discount rules and agreed prices: read them with
GET /customers/{id}, change them in the app. - Deleting products or customers, uploading images directly, inviting buyers, placing orders as a buyer.