Get Recipe Audit Trail
Return the compliance timeline for a recipe.
Lists typed audit events newest-first. Each event carries the
actor, channel, timestamp, changed fields, before/after payload,
rationale, and a tamper-evidence record_hash.
Use this endpoint to answer: "who changed what and why?", "what was the ingredient list before the last edit?", "show me all nutrition recomputations since version V".
For the tamper-evident chain of state snapshots use
listRecipeVersions instead.
Pagination: pass meta.cursor from the previous response back as
cursor on the next request. meta.has_more=false signals the
end of the timeline.
Path Parameters
Query Parameters
Filter by audit event type
Return events that produced versions after this version_id (forward window). Omit for no lower bound.
Return events that produced versions up to and including this version_id (point-in-time window). Omit for no upper bound.
Filter by member_id or system actor identifier
Filter by actor type: 'member' or 'system'
ISO 8601 timestamp lower bound (inclusive)
ISO 8601 timestamp upper bound (inclusive)
Maximum number of audit events to return (1-100)
201 <= value <= 100Opaque pagination cursor returned in meta.cursor from a previous response. Omit on the first page.
Response Body
application/json
application/json
curl -X GET "https://api.bettermenu.live/studio/recipes/string/audit-trail"{
"data": {
"recipe_id": "string",
"events": [
{
"event_id": "string",
"actor": {
"type": "member",
"id": "string"
},
"channel": "studio",
"timestamp": "string",
"version_id": "string",
"event_type": "recipe.created"
}
]
},
"meta": {
"version": "string",
"request_id": "string",
"timestamp": "string",
"cursor": "string",
"has_more": true
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}