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. |
type | string | no | Record type, such as order, customer or security. |
before | string | no | Last entry's ISO createdAt, to fetch older entries. |
beforeId | string | no | Last entry's id, paired with before to include entries at the same timestamp. |
Page back using both before and beforeId from the last returned entry. An empty page means there are no older entries matching your filters.
Only a key made by an owner or admin sees the whole log; for anyone else it lists only changes about customers they can see.
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 have a workspace activity summary and detailed history in each order’s events. See Orders.
New events may also include action, outcome and source. Older events can leave these blank. A generated export is evidence that TradeCatalog prepared the file, not that someone saved it. A checkout request is separate from a payment confirmed by the payment provider. Raw IP and browser details are excluded from this API. Staff security events require owner/admin access; customer-linked events follow customer scope.