BETTERMENU
Studio

Get Recipe Audit Trail

Get the history of changes for a recipe — audit trail, changelog, activity log, modification history, event log.

Use this to answer: "what changed in my recipe?", "who edited this recipe?", "when was nutrition last calculated?", "show me the recipe history"

Returns all recorded events including ingredient updates, metadata changes, nutrition calculations, publishing, and archiving. Events are returned newest-first with optional filtering by event type and date range.

Related endpoints:

  • computeRecipeNutrition — trigger a calculation (creates an audit event)
  • getRecipe — see current recipe state
GET
/studio/recipes/{recipe_id}/audit-trail

Authorization

BearerAuth
AuthorizationBearer <token>

JWT Bearer token authentication

In: header

Path Parameters

recipe_id*string

Unique recipe identifier

Query Parameters

event_type?|

Filter by audit event type

start_date?|

ISO 8601 start date for date range filter

end_date?|

ISO 8601 end date for date range filter

limit?integer

Maximum number of audit events to return (1-100)

Default20
Range1 <= value <= 100
cursor?|

Pagination cursor from a previous response's meta.cursor field

Response Body

application/json

application/json

curl -X GET "https://loading/studio/recipes/string/audit-trail"
{
  "data": {
    "recipe_id": "string",
    "events": [
      {
        "event_id": "string",
        "event_type": "RECIPE_CREATED",
        "actor": {
          "type": "member",
          "id": "string"
        },
        "timestamp": "string",
        "changed_fields": [
          "string"
        ],
        "rationale": "string",
        "nutrition_impact": [
          {
            "nutrient_id": "string",
            "nutrient_name": "string",
            "before": "string",
            "after": "string",
            "change_percent": "string",
            "unit": "string"
          }
        ]
      }
    ]
  },
  "meta": {
    "version": "string",
    "request_id": "string",
    "timestamp": "string",
    "cursor": "string",
    "has_more": true
  }
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}