Update an item

Change some fields of a catalogue item, leaving the rest as they are.

PATCH{BASE_URL}/catalog/items/{externalId}

Changes only the fields you send. Requires the UPDATE scope. Send null to clear a nullable field.

Path parameters

externalIdstringrequired
Your ID for the item, URL-encoded as a path segment.

Body — send at least one

namestringoptional
Up to 120 characters.
descriptionstring | nulloptional
Up to 2,000 characters.
priceCentsintegeroptional
Minor units, 0 to 2,147,483,647.
currencystringoptional
A three-letter ISO 4217 code.
availablebooleanoptional
Whether you are selling the item.
stockinteger | nulloptional
0 to 1,000,000,000, or null for untracked.
metadataobject | nulloptional
Replaces the stored metadata entirely. At most 16,384 bytes.
localoyRefobject | nulloptional
Link to one of your bookables, or null to unlink.

externalId cannot be changed. Sending it answers 400 external_id_immutable; delete the item and create it under the new ID instead.

Response

dataobjectrequired
The updated catalogue item.

Status codes#

StatusCodeMeaning
200—The item was updated.
400—A field is invalid, or the body has no fields (No fields to update).
400external_id_immutableThe body contains externalId.
404open_network_item_not_foundYou have no item with that externalId.
404open_network_bookable_not_foundlocaloyRef.id is not one of your bookables.
409open_network_bookable_already_linkedAnother of your items is linked to that bookable.

Side effects#

Sends catalog.item.updated to your webhook endpoints of the key's environment — even when the values sent equal the stored ones.

cURL
curl -X PATCH "$LOCALOY_BASE_URL/catalog/items/sku-4471" \
  -H "Authorization: Bearer $LOCALOY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "stock": 0, "available": false }'
Response · 200
{
  "success": true,
  "message": "Catalog item updated",
  "data": {
    "id": "cm1q2w3e4r5t6y7u8i9o0p1a2",
    "externalId": "sku-4471",
    "name": "Kacchi Biryani (full)",
    "description": "Mutton kacchi with borhani",
    "priceCents": 45000,
    "currency": "BDT",
    "available": false,
    "stock": 0,
    "metadata": null,
    "localoyRef": null,
    "managedBy": null,
    "createdAt": "2026-09-26T08:15:30.123Z",
    "updatedAt": "2026-09-26T10:02:11.845Z"
  }
}