Fiest Developers

Validate and plan a catalog import

Validates a bounded create-only catalog document and returns a deterministic plan hash.

POST/v1/restaurants/{restaurantId}/catalog-import/plan

Validates a bounded create-only catalog document and returns a deterministic plan hash. This operation does not write data. Organization-boundary tokens also require fiest.organization.read.

Quick request

curl -X POST "https://example.com/v1/restaurants/11111111-1111-4111-8111-111111111111/catalog-import/plan" \  -H "Authorization: Bearer $FIEST_ACCESS_TOKEN" \  -H "Content-Type: application/json" \  -d '{    "target": {      "mode": "new_draft"    },    "document": {      "menu": {        "ref": "lunch-menu",        "name": "Lunch menu"      },      "existingMenuCategories": [],      "menuCategories": [        {          "ref": "pizzas",          "name": "Pizzas",          "visible": true,          "regulatedProductClass": "standard",          "discountPolicy": "allowed"        }      ],      "menuItems": [        {          "ref": "margherita",          "categoryRef": "pizzas",          "name": "Margherita",          "priceMinor": 1290,          "description": null,          "visible": true,          "dietaryInfo": {            "vegan": false,            "vegetarian": true,            "gluten-free": false,            "dairy-free": false,            "lactose-free": false,            "low-lactose": false,            "egg-free": false,            "nut-free": false,            "soy-free": false          },          "tag": null,          "productType": "food",          "showInKitchen": true,          "trackVolume": false,          "openPrice": false,          "isAlcohol": false,          "volume": null,          "unit": null,          "alcoholType": null,          "alcoholPercentage": null,          "regulatedProductClassOverride": null,          "discountPolicyOverride": null,          "optionGroupAssignments": []        }      ],      "optionGroups": [],      "productCategories": [],      "products": [],      "combos": []    }  }'
{  "data": {    "restaurantId": "11111111-1111-4111-8111-111111111111",    "valid": true,    "planHash": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",    "menuName": "Lunch menu",    "target": {      "mode": "new_draft",      "menuPublicId": null,      "menuName": "Lunch menu",      "previousCategoryCount": 0,      "previousItemCount": 0    },    "creates": {      "menus": 1,      "newMenus": 1,      "menuCategories": 1,      "menuItems": 1,      "optionGroups": 0,      "options": 0,      "productCategories": 0,      "products": 0,      "combos": 0,      "comboComponents": 0    },    "warnings": [],    "errors": [],    "publishesAutomatically": false  }}

Authorization

fiestOAuth fiest.restaurant.read, fiest.menu.read, fiest.catalog.import.write
AuthorizationBearer <token>

OAuth 2.1 authorization code with PKCE. Partner clients and redirect URIs must be approved by Fiest before use.

In: header

Scope: fiest.restaurant.read, fiest.menu.read, fiest.catalog.import.write

Path Parameters

restaurantId*string

A restaurant identifier returned by the authorized restaurant list.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json