Retrieves complete detail for a single menu item, including its price levels and modifier groups. Use this endpoint when a guest selects an item that requires configuration, such as choosing a size or adding modifiers, so the interface can present the available options and prices.
Request Headers
| Header | Required | Description |
|---|---|---|
| Authorization | Yes | Bearer YOUR_ACCESS_TOKEN |
Request Parameters
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| location_id | string | Yes | Identifier of the location. |
| item_id | string | Yes | Identifier of the menu item to read. |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| global_on_id | integer | Yes | Identifier of the originating ordering channel. Required for menu requests. |
| user_id | integer | Yes | Identifier of the user making the request. |
| i18n | string | No | Language code for localized content, for example en. |
Request Example
GET /v1/locations/YOUR_LOCATION_ID/app/menu/items/1935001?global_on_id=12&user_id=7&i18n=en
cURL Example
curl --request GET \
--url "https://sandbox-api.softpoint.io/interface/v1/locations/YOUR_LOCATION_ID/app/menu/items/1935001?global_on_id=12&user_id=7&i18n=en" \
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
Success Response
The response wraps the item under an item object. Price levels and modifier groups are returned as arrays. The example below is trimmed for brevity.
{
"item": {
"id": 1935001,
"id_external": "11601",
"status": 1,
"pos_id": "11601",
"name": "MASH POT (SD)",
"price_per_unit": 379,
"price_levels": [
{ "uniq_id": 4363624, "id": "1", "name": "SING", "default": 0, "price": 379 },
{ "uniq_id": 4363626, "id": "2", "name": "HALF", "default": 0, "price": 379 }
],
"um": "unit",
"units_per_pack": 1,
"sales_category_id": 7493,
"modgroups": [
{
"id": 180790,
"id_external": "32",
"status": 1,
"name": "ALL CONDIMENTS",
"required": 0,
"minimum": 2,
"maximum": 2,
"modifiers": [
{ "id": 494660, "id_external": "10011", "status": 1, "price": 0, "name": "*A LA MODE $$" }
]
}
]
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
| item | object | The menu item detail. |
| item.id | integer | Internal item identifier. |
| item.id_external | string | External item identifier. |
| item.status | integer | Item status. 1 indicates active. |
| item.pos_id | string | Point-of-sale identifier for the item. |
| item.name | string | Item name. |
| item.price_per_unit | integer | Base price, in minor units (cents). |
| item.price_levels | array | Available price levels for the item. |
| price_levels[].id | string | Price level identifier. |
| price_levels[].name | string | Price level name, for example SING or HALF. |
| price_levels[].default | integer | Indicates whether this is the default price level. |
| price_levels[].price | integer | Price for this level, in minor units. |
| item.um | string | Unit of measure. |
| item.units_per_pack | integer | Units per pack. |
| item.sales_category_id | integer | Sales category the item belongs to. |
| item.modgroups | array | Modifier groups associated with the item. |
| modgroups[].id | integer | Modifier group identifier. |
| modgroups[].name | string | Modifier group name. |
| modgroups[].required | integer | Indicates whether a selection is required. |
| modgroups[].minimum | integer | Minimum number of modifiers that must be selected. |
| modgroups[].maximum | integer | Maximum number of modifiers that can be selected. |
| modgroups[].modifiers | array | Individual modifiers within the group. |
| modifiers[].id | integer | Modifier identifier. |
| modifiers[].name | string | Modifier name. |
| modifiers[].price | integer | Additional price for the modifier, in minor units. |
Error Responses
Missing Channel Identifier
Returned when global_on_id is omitted.
{
"error": {
"code": 10189,
"message": "Invalid global on id.",
"details": {
"error": "The parameter global_on_id is required"
}
}
}
Status Codes
| Code | Description |
|---|---|
| 200 | Item retrieved successfully. |
| 401 | Missing or invalid access token, or missing channel identifier. |
Workflow Placement
This endpoint supports item configuration during ordering:
-
List menu categories and items.
-
Retrieve item details when an item requires modifier or price-level selection.
-
Add the configured item to the cart and price it.
Notes
-
Prices are expressed in minor units (cents).
-
The
minimumandmaximumfields on a modifier group define selection constraints that should be enforced in the interface before checkout. -
The
requiredflag indicates whether the guest must make a selection from the group.
Common Mistakes
-
Omitting
global_on_id, which results in error code 10189. -
Ignoring modifier group
minimum,maximum, andrequiredconstraints when building the cart. -
Reading the item from the root of the response rather than from the
itemobject.

