TradeCatalog records a plain-English line for every staff change to customers, discounts and prices. Changes made through the API are recorded under the key’s name, like API key “Sage stock sync”.
List activityLink to this section#
GET/api/v1/activity
Newest first. Pass customer for one customer’s history.
| Name | Type | Required | Description |
|---|---|---|---|
customer | string | no | Customer id or account code. |
limit | integer | no | 1 to 100. Default 100. |
This list doesn’t page: it returns the most recent limit entries.
curl "https://tradecatalog.app/api/v1/activity?customer=OAK01&limit=20" \
-H "Authorization: Bearer $TRADECATALOG_API_KEY"
const res = await fetch(
'https://tradecatalog.app/api/v1/activity?customer=OAK01&limit=20',
{
headers: { Authorization: `Bearer ${process.env.TRADECATALOG_API_KEY}` },
},
)
const { data: entries } = await res.json()
{
"data": [
{
"id": "d0e1f2a3-b4c5-4d6e-8f7a-9b0c1d2e3f4a",
"actorName": "Jo Hartley",
"summary": "Set Northgate brand discount to 15% (was 12.5%)",
"createdAt": "2026-09-26T14:21:03.000Z",
"customerAccountId": "7d2e4f0a-1b3c-4d5e-8f90-a1b2c3d4e5f6",
"customerName": "Oakfield Joinery"
},
{
"id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b",
"actorName": "API key “Sage stock sync”",
"summary": "Imported customers: 0 new, 42 updated",
"createdAt": "2026-09-26T02:00:09.000Z",
"customerAccountId": null,
"customerName": null
}
]
}
| Field | Type | Description |
|---|---|---|
actorName | string | Who made the change. Kept even if that person later leaves. |
summary | string | What changed, in plain English. Meant for people, not for parsing. |
createdAt | string | When. |
customerAccountId | string or null | The customer it was about, if any. |
customerName | string or null | That customer’s current name. |
Order status changes aren’t in this log; they’re in each order’s events. See Orders.