Skip to content

List program changes

GET /program/changes
Scopeprogram:read
Customer session tokenNot accepted: call from your server with an API key
Rate limit classread (limits)
Idempotency keyNot used
MCP toolcharm_list_program_changes

Who changed what in the program, newest first: every rule, reward, tier and settings change made in the admin or through the API, with the actor, the field-level diff and whether it can still be undone. Kept for 180 days.

NameInTypeDescription
limit (optional)queryintegerPage size, 1–250. Defaults to 50.
cursor (optional)querystringOpaque cursor from a previous response’s next_cursor.

Returns ProgramChangeList.

FieldTypeDescription
dataarray of ProgramChange
next_cursorstring or nullPass as cursor to fetch the next page; null on the last page. (nullable)
has_morebooleanTrue when another page exists.
{
"data": [
{
"id": "id",
"at": "2026-10-01T09:30:00.000Z",
"actor": {
"type": "admin",
"id": "id",
"label": "Points per order"
},
"operation": "create",
"target": {
"kind": "earning_rule",
"id": "id",
"label": "Points per order"
},
"diff": [
null
],
"revision": 1,
"undone_at": "2026-10-01T09:30:00.000Z",
"undo_of": "undo of",
"summary": "summary",
"undoable": false
}
],
"next_cursor": null,
"has_more": true
}
Terminal window
curl -X GET "https://charm.appfleece.app/api/v1/program/changes" \
-H "Authorization: Bearer chrm_live_..."

unauthorized · invalid_token · insufficient_scope · access_required · validation_error · rate_limited

Every error body carries code, message, request_id and a doc_url pointing at the matching entry in the error catalog.