Get Recipe Version Changes
Return a structural diff of version_id relative to compared_to (defaults to its parent).
before holds values at the comparison point; after holds values at the subject version.
Only changed top-level fields appear in data.field_changes; an empty map means the two
states are equivalent. For rollback preview, pass compared_to=\{current_head\} to see what
reverting to version_id would change. Diffing a version against itself returns 400.
Path Parameters
Subject version ULID — the version whose changes are being described. 26-character Crockford Base32, globally unique within the recipe's history.
^[0-9A-HJKMNP-TV-Z]{26}$26 <= length <= 26Query Parameters
Comparison-point version ULID — the baseline the subject is described against. Optional; defaults to the parent of version_id (i.e. 'what changed at this version?'). Pass an arbitrary ULID for free-form comparison (e.g. rollback preview: /versions/V3/changes?compared_to=V7 describes V3's state relative to your current V7). When version_id is the initial commit, omitting compared_to produces the full added view of the version.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://loading/studio/recipes/string/versions/stringstringstringstringst/changes"{
"data": {
"field_changes": {
"property1": {
"field_changes": {
"property1": {},
"property2": {}
}
},
"property2": {
"field_changes": {
"property1": {},
"property2": {}
}
}
}
},
"meta": {
"version": "string",
"request_id": "string",
"timestamp": "string"
}
}{
"type": "https://api.bettermenu.com/errors/recipe_not_found",
"title": "Recipe Not Found",
"status": 400,
"detail": "Recipe rcpe_abc123 does not exist",
"code": "recipe_not_found",
"retryable": true,
"instance": "/api/v1/recipes/rcpe_abc123",
"trace_id": "req_xyz789",
"errors": [
{}
],
"invalid_ids": [
"f_abc123",
"f_xyz789"
]
}{
"type": "https://api.bettermenu.com/errors/recipe_not_found",
"title": "Recipe Not Found",
"status": 400,
"detail": "Recipe rcpe_abc123 does not exist",
"code": "recipe_not_found",
"retryable": true,
"instance": "/api/v1/recipes/rcpe_abc123",
"trace_id": "req_xyz789",
"errors": [
{}
],
"invalid_ids": [
"f_abc123",
"f_xyz789"
]
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}{
"type": "https://api.bettermenu.com/errors/recipe_not_found",
"title": "Recipe Not Found",
"status": 400,
"detail": "Recipe rcpe_abc123 does not exist",
"code": "recipe_not_found",
"retryable": true,
"instance": "/api/v1/recipes/rcpe_abc123",
"trace_id": "req_xyz789",
"errors": [
{}
],
"invalid_ids": [
"f_abc123",
"f_xyz789"
]
}