Retrieve Menu Item Details

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

HeaderRequiredDescription
AuthorizationYesBearer YOUR_ACCESS_TOKEN

Request Parameters

Path Parameters

ParameterTypeRequiredDescription
location_idstringYesIdentifier of the location.
item_idstringYesIdentifier of the menu item to read.

Query Parameters

ParameterTypeRequiredDescription
global_on_idintegerYesIdentifier of the originating ordering channel. Required for menu requests.
user_idintegerYesIdentifier of the user making the request.
i18nstringNoLanguage 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

FieldTypeDescription
itemobjectThe menu item detail.
item.idintegerInternal item identifier.
item.id_externalstringExternal item identifier.
item.statusintegerItem status. 1 indicates active.
item.pos_idstringPoint-of-sale identifier for the item.
item.namestringItem name.
item.price_per_unitintegerBase price, in minor units (cents).
item.price_levelsarrayAvailable price levels for the item.
price_levels[].idstringPrice level identifier.
price_levels[].namestringPrice level name, for example SING or HALF.
price_levels[].defaultintegerIndicates whether this is the default price level.
price_levels[].priceintegerPrice for this level, in minor units.
item.umstringUnit of measure.
item.units_per_packintegerUnits per pack.
item.sales_category_idintegerSales category the item belongs to.
item.modgroupsarrayModifier groups associated with the item.
modgroups[].idintegerModifier group identifier.
modgroups[].namestringModifier group name.
modgroups[].requiredintegerIndicates whether a selection is required.
modgroups[].minimumintegerMinimum number of modifiers that must be selected.
modgroups[].maximumintegerMaximum number of modifiers that can be selected.
modgroups[].modifiersarrayIndividual modifiers within the group.
modifiers[].idintegerModifier identifier.
modifiers[].namestringModifier name.
modifiers[].priceintegerAdditional 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

CodeDescription
200Item retrieved successfully.
401Missing or invalid access token, or missing channel identifier.

Workflow Placement

This endpoint supports item configuration during ordering:

  1. List menu categories and items.

  2. Retrieve item details when an item requires modifier or price-level selection.

  3. Add the configured item to the cart and price it.

Notes

  • Prices are expressed in minor units (cents).

  • The minimum and maximum fields on a modifier group define selection constraints that should be enforced in the interface before checkout.

  • The required flag 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, and required constraints when building the cart.

  • Reading the item from the root of the response rather than from the item object.

Query Params
integer
integer
string
Responses

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json