Menu items, products, and modifiers
List inventory items
Retrieve a paginated list of inventory items with filtering and search capabilities
Permissions: 🔵 inventory.read
query Parameters
locationIdFilter by location ID
pagePage number
limitItems per page
sortField to sort by (title, basePrice, createdAt, etc.)
orderSort order
deletedInclude deleted items
searchSearch term for title/description
tagsFilter by tags
itemTypeFilter by item type
excludeUnmappedWhen true and the location has an active POS integration, drop items that lack an integration_resource_mappings row. Used by storefront-web to hide items that would otherwise produce empty kitchen tickets.
List inventory items › Responses
Default Response
statusCreate inventory item
Add a new menu item or product to the inventory
Permissions: 🟢 inventory.create
Create inventory item › Request Body
locationIdLocation ID
titleItem title
basePriceBase price in cents
itemTypeItem type
descriptionItem description
Item tags (array of strings or grouped tags object)
vatIdVAT ID
vatValueVAT value (legacy)
accountIdsBookkeeping account IDs
printerGroupIdsPrinter group IDs
variantGroupIdsVariant group IDs
visibilityVisibility settings
Create inventory item › Responses
Default Response
statusGet inventory item
Retrieve detailed information about a specific inventory item by its ID
Permissions: 🔵 inventory.read
path Parameters
id^[0-9]+$ · requiredInventory item ID
Get inventory item › Responses
Default Response
statusUpdate inventory item
Modify an existing inventory item's details
Permissions: 🟠inventory.update
path Parameters
id^[0-9]+$ · requiredInventory item ID
Update inventory item › Request Body
titledescriptionbasePriceitemTypeavailabletakeawayVatIdintegrationIdintegrationItemIdimageUrlexternalImageUrltitlePrepcolorkitchenSortOrderSort order within groups on printed kitchen tickets and KDS. Lower numbers appear first. NULL = sort last alphabetically.
Update inventory item › Responses
Default Response
statusDelete inventory item
Soft-delete an inventory item (marks as deleted without removing from database)
Permissions: 🔴 inventory.delete
path Parameters
id^[0-9]+$ · requiredInventory item ID
Delete inventory item › Responses
Item successfully deleted
statusUpdate item inheritance
Update inheritance settings for an inventory item in a multi-location hierarchy
Permissions: 🟠inventory.update
path Parameters
id^[0-9]+$ · requiredInventory item ID
Update item inheritance › Request Body
inheritToChildrenWhether this item should be inherited to child locations
allowedOverridesFields that child locations are allowed to override
Update item inheritance › Responses
Default Response
statusGet item overrides
Get all location-specific overrides for an inherited inventory item
Permissions: 🔵 inventory.read
path Parameters
id^[0-9]+$ · requiredInventory item ID
query Parameters
locationIdFilter overrides by location ID
Get item overrides › Responses
Default Response
statusUpdate item overrides
Update location-specific overrides for an inherited inventory item
Permissions: 🟠inventory.update
path Parameters
id^[0-9]+$ · requiredInventory item ID
query Parameters
locationIdLocation ID for the override
Update item overrides › Responses
Default Response
statusToggle item availability
Enable or disable an inventory item for customer ordering
Permissions: 🟠inventory.update
path Parameters
itemId^[0-9]+$ · requiredInventory item ID
Toggle item availability › Request Body
actionAction to perform: ACTIVATE to make item available, DEACTIVATE to hide it
Toggle item availability › Responses
Default Response
statusValidate inventory items
Validate inventory items and variants before creating an order. Returns validation results for each item.
Validate inventory items › Request Body
locationIdvalidateMenuValidate inventory items › Responses
Validation response containing valid and invalid items with nested variant structures
Webhook: Inventory item created
Fired when a new inventory item is created (POST /api/v1/inventory). The full item object is included in data along with locationId.
This is an outbound webhook event. Karma POSTs this payload to the URL you registered via POST /api/v1/webhooks/subscriptions. Your endpoint should respond 2xx within 30 seconds to acknowledge delivery.
Webhook: Inventory item created › Request Body
idUnique webhook delivery ID
eventresourceresourceIdString ID of the affected resource
timestampISO 8601 timestamp when the event was emitted
apiVersionWebhook: Inventory item created › Responses
Acknowledged. Karma considers any 2xx response a successful delivery; non-2xx triggers retry with exponential backoff.
Webhook: Inventory item updated
Fired when an inventory item changes (PUT /api/v1/inventory/:id). changes contains only the fields that were modified. Also fired from channel assignment changes when they affect items.
This is an outbound webhook event. Karma POSTs this payload to the URL you registered via POST /api/v1/webhooks/subscriptions. Your endpoint should respond 2xx within 30 seconds to acknowledge delivery.
Webhook: Inventory item updated › Request Body
idUnique webhook delivery ID
eventresourceresourceIdString ID of the affected resource
timestampISO 8601 timestamp when the event was emitted
apiVersionWebhook: Inventory item updated › Responses
Acknowledged. Karma considers any 2xx response a successful delivery; non-2xx triggers retry with exponential backoff.
Webhook: Inventory item soft-deleted
Fired when an inventory item is soft-deleted (DELETE /api/v1/inventory/:id). The row remains in the database with deleted: true.
This is an outbound webhook event. Karma POSTs this payload to the URL you registered via POST /api/v1/webhooks/subscriptions. Your endpoint should respond 2xx within 30 seconds to acknowledge delivery.
Webhook: Inventory item soft-deleted › Request Body
idUnique webhook delivery ID
eventresourceresourceIdString ID of the affected resource
timestampISO 8601 timestamp when the event was emitted
apiVersionWebhook: Inventory item soft-deleted › Responses
Acknowledged. Karma considers any 2xx response a successful delivery; non-2xx triggers retry with exponential backoff.