Products
12 API calls in this section.
Create Product
/restaurant/locations/:locationId/productsAdd a menu product to a restaurant location with pricing, categories and menu assignments.
Path parameters
| Parameter | Type | Description |
|---|---|---|
locationIdRequired | string | Dynamic path value from the request URL. |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
category_ids | array<string> | — |
name | object | — |
name.en | string | — |
description | object | — |
price | number | — |
has_variant | boolean | — |
sku | null | — |
ingredients | array<string> | — |
is_active | boolean | — |
tags | array<string> | — |
images | array | — |
menu_ids | array<string> | — |
1curl --globoff --request POST "https://staging-api.ondi.io/functions/v1/restaurant/locations/${LOCATIONID}/products" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "category_ids": [6 "{{categoryId1}}",7 "{{categoryId2}}"8 ],9 "name": {10 "en": "Cheeseburger"11 },12 "description": {},13 "price": 9.99,14 "has_variant": false,15 "sku": null,16 "ingredients": [17 "beef",18 "cheese"19 ],20 "is_active": true,21 "tags": [22 "popular"23 ],24 "images": [],25 "menu_ids": [26 "{{menuId1}}",27 "{{menuId2}}"28 ]29}'Replace {{placeholders}} with your own values before sending.
Response examples
No saved response example. Use Try it to inspect a staging response.
Update Product
/restaurant/products/:idChange a restaurant product’s catalog details, pricing, categories or menu assignments.
Path parameters
| Parameter | Type | Description |
|---|---|---|
idRequired | string | Dynamic path value from the request URL. |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
category_ids | array<string> | — |
name | object | — |
name.en | string | — |
description | object | — |
price | number | — |
has_variant | boolean | — |
sku | null | — |
ingredients | array<string> | — |
is_active | boolean | — |
tags | array<string> | — |
images | array | — |
menu_ids | array<string> | — |
1curl --globoff --request PUT "https://staging-api.ondi.io/functions/v1/restaurant/products/${ID}" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "category_ids": [6 "{{categoryId1}}",7 "{{categoryId3}}"8 ],9 "name": {10 "en": "Cheeseburger Deluxe"11 },12 "description": {},13 "price": 10.99,14 "has_variant": false,15 "sku": null,16 "ingredients": [17 "beef",18 "cheese"19 ],20 "is_active": true,21 "tags": [22 "popular"23 ],24 "images": [],25 "menu_ids": [26 "{{menuId1}}",27 "{{menuId3}}"28 ]29}'Replace {{placeholders}} with your own values before sending.
Response examples
No saved response example. Use Try it to inspect a staging response.
Delete Product
/restaurant/products/:idRemove a product from the restaurant catalog.
Path parameters
| Parameter | Type | Description |
|---|---|---|
idRequired | string | Dynamic path value from the request URL. |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request DELETE "https://staging-api.ondi.io/functions/v1/restaurant/products/${ID}" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
No saved response example. Use Try it to inspect a staging response.
List Products by Location
/restaurant/locations/:locationId/productsBrowse a location’s products using category, menu, availability and search filters.
Path parameters
| Parameter | Type | Description |
|---|---|---|
locationIdRequired | string | Dynamic path value from the request URL. |
Query parameters
| Parameter | Type | Description |
|---|---|---|
category_ids | string | Example: |
menu_ids | string | Example: |
modifier_group_ids | string | Example: |
is_active | string | Example: |
search | string | Example: |
lang | string | Example: |
sort | string | Example: |
order | string | Example: |
page | string | Example: |
limit | string | Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/restaurant/locations/${LOCATIONID}/products?category_ids=${CATEGORYID1},${CATEGORYID2}&menu_ids=${MENUID1}&is_active=true&search=${SEARCH}&lang=en&sort=created_at&order=desc&page=1&limit=10" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
No saved response example. Use Try it to inspect a staging response.
Get Product
/restaurant/products/:idRead the details of one restaurant product for its product or editing view.
Path parameters
| Parameter | Type | Description |
|---|---|---|
idRequired | string | Dynamic path value from the request URL. |
Query parameters
| Parameter | Type | Description |
|---|---|---|
location_id | string | Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/restaurant/products/${ID}?location_id=${LOCATION_ID}" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
No saved response example. Use Try it to inspect a staging response.
Create Variant
/restaurant/products/:productId/variantsAdd a separately priced variant to a restaurant product, such as a size or portion.
Path parameters
| Parameter | Type | Description |
|---|---|---|
productIdRequired | string | Dynamic path value from the request URL. |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
name | object | — |
name.en | string | — |
description | object | — |
price | number | — |
sku | null | — |
ingredients | array<string> | — |
is_active | boolean | — |
is_primary | boolean | — |
images | array | — |
1curl --globoff --request POST "https://staging-api.ondi.io/functions/v1/restaurant/products/${PRODUCTID}/variants" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "name": {6 "en": "Regular"7 },8 "description": {},9 "price": 8.99,10 "sku": null,11 "ingredients": [12 "beef",13 "cheese"14 ],15 "is_active": true,16 "is_primary": true,17 "images": []18}'Response examples
No saved response example. Use Try it to inspect a staging response.
Update Variant
/restaurant/products/:productId/variants/:variantIdChange a product variant’s name, price, ingredients or availability.
Path parameters
| Parameter | Type | Description |
|---|---|---|
productIdRequired | string | Dynamic path value from the request URL. |
variantIdRequired | string | Dynamic path value from the request URL. |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
name | object | — |
name.en | string | — |
description | object | — |
price | number | — |
sku | null | — |
ingredients | array<string> | — |
is_active | boolean | — |
is_primary | boolean | — |
images | array | — |
1curl --globoff --request PUT "https://staging-api.ondi.io/functions/v1/restaurant/products/${PRODUCTID}/variants/${VARIANTID}" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "name": {6 "en": "Large"7 },8 "description": {},9 "price": 10.99,10 "sku": null,11 "ingredients": [12 "beef",13 "cheese"14 ],15 "is_active": true,16 "is_primary": false,17 "images": []18}'Response examples
No saved response example. Use Try it to inspect a staging response.
Delete Variant
/restaurant/products/:productId/variants/:variantIdRemove a variant from its restaurant product.
Path parameters
| Parameter | Type | Description |
|---|---|---|
productIdRequired | string | Dynamic path value from the request URL. |
variantIdRequired | string | Dynamic path value from the request URL. |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request DELETE "https://staging-api.ondi.io/functions/v1/restaurant/products/${PRODUCTID}/variants/${VARIANTID}" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
No saved response example. Use Try it to inspect a staging response.
Create Variants (Bulk)
/restaurant/products/:productId/variants/bulkAdd several variants to the same restaurant product in one request.
Path parameters
| Parameter | Type | Description |
|---|---|---|
productIdRequired | string | Dynamic path value from the request URL. |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
name | object | — |
name.en | string | — |
description | object | — |
price | number | — |
sku | null | — |
ingredients | array<string> | — |
is_active | boolean | — |
is_primary | boolean | — |
images | array | — |
1curl --globoff --request POST "https://staging-api.ondi.io/functions/v1/restaurant/products/${PRODUCTID}/variants/bulk" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '[5 {6 "name": {7 "en": "Regular"8 },9 "description": {},10 "price": 8.99,11 "sku": null,12 "ingredients": [13 "beef",14 "cheese"15 ],16 "is_active": true,17 "is_primary": true,18 "images": []19 },20 {21 "name": {22 "en": "Large"23 },24 "description": {},25 "price": 10.99,26 "sku": null,27 "ingredients": [28 "beef",29 "cheese"30 ],31 "is_active": true,32 "is_primary": false,33 "images": []34 }35]'Response examples
No saved response example. Use Try it to inspect a staging response.
List Variants
/restaurant/products/:productId/variantsBrowse a restaurant product’s variants, with availability, sorting and pagination options.
Path parameters
| Parameter | Type | Description |
|---|---|---|
productIdRequired | string | Dynamic path value from the request URL. |
Query parameters
| Parameter | Type | Description |
|---|---|---|
is_active | string | Example: |
sort | string | Example: |
order | string | Example: |
page | string | Example: |
limit | string | Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/restaurant/products/${PRODUCTID}/variants?is_active=true&sort=created_at&order=desc&page=1&limit=25" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
No saved response example. Use Try it to inspect a staging response.
Link Product to Menus
/restaurant/products/:productId/menusLinks a product to multiple menus (idempotent).
Path parameters
| Parameter | Type | Description |
|---|---|---|
productIdRequired | string | Dynamic path value from the request URL. |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
menu_ids | array<string> | — |
Response examples
1{2 "success": true,3 "data": [4 {5 "product_id": "{{productId}}",6 "menu_id": "{{menuId1}}"7 },8 {9 "product_id": "{{productId}}",10 "menu_id": "{{menuId2}}"11 }12 ]13}Unlink Product from Menus
/restaurant/products/:productId/menus/removeUnlinks a product from multiple menus.
Path parameters
| Parameter | Type | Description |
|---|---|---|
productIdRequired | string | Dynamic path value from the request URL. |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
menu_ids | array<string> | — |
Response examples
1{2 "success": true,3 "data": {4 "count": 25 }6}