Adds an existing item to a v2 menu screen, using the item's current button styling and appending in backend order.
Returns 201 when the item was added and 204 when it was already there, so replay is safe.
Path parameters
-
The unique identifier for the business location.
-
Item id
-
The unique identifier for the screen.
Minimum value is
1.
Responses
-
Item added to the screen.
-
Item already present on the screen; nothing was written.
-
The request was rejected, or the item or the screen cannot be used for this placement.
A non-positive
screenIdfails schema validation and returnsmessage"Constraint violation"withscreenIdlisted inapiSubExceptions, and noerrorCode. Every other rejection carries anerrorCodeinstead, and an emptyapiSubExceptions. PossibleerrorCodevalues:ikentoo.error.item_is_archived— the item is archived; no placement is possible.screens_not_found— no v2 screen with this id is reachable from this business location. Only v2 menus are supported, so a v1 screen is reported the same way.ikentoo.error.item_is_linked_to_shared_menu— the request comes from a regular location and the menu does not allow local edits.ikentoo.error.item-sharing-incompatible-with-menu-sharing— the request comes from the main location, where the button is synced to the whole menu, and the item is not active in every location the menu is shared with. Placing from a regular location creates a local override instead and is not subject to this rule.
-
No item with this id exists at this business location.
curl \
--request POST 'https://api.trial.lsk.lightspeed.app/items/integration/v2/business-locations/{businessLocationId}/items/{itemId}/screens/{screenId}' \
--header "Authorization: Bearer $ACCESS_TOKEN"
{
"status": "BAD_REQUEST",
"timestamp": "2026-05-04T09:42:00Z",
"message": "string",
"errorCode": "ikentoo.error.name.in-use",
"details": "My Item",
"apiSubExceptions": [
{
"field": "string",
"rejectedValue": "string",
"message": "string"
}
]
}
{
"status": "BAD_REQUEST",
"timestamp": "2026-05-04T09:42:00Z",
"message": "string",
"errorCode": "ikentoo.error.name.in-use",
"details": "My Item",
"apiSubExceptions": [
{
"field": "string",
"rejectedValue": "string",
"message": "string"
}
]
}