# Inventory Inventory allows you to track stock quantity per SKU and optionally per [supply channel](/api/projects/channels.md). The amount of time it takes for updates to be reflected on an `InventoryEntry` depends on where those changes originate. For details, see [Inventory checks and consistency](/api/inventory-overview.md#inventory-checks-and-consistency). Learn more about Inventory in our self-paced Inventory modeling module. ## Representations #### InventoryEntry [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntry). #### InventoryEntryStockLevels [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntryStockLevels). #### InventoryEntryDraft [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntryDraft). #### InventoryPagedQueryResponse [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryPagedQueryResponse). #### InventoryEntryReference [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntryReference). #### InventoryEntryResourceIdentifier [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntryResourceIdentifier). ## Get InventoryEntry ### Get InventoryEntry by ID [endpoint definition](/api/projects/inventory.md?urn=ctp:api:endpoint:/\{projectKey}/inventory/\{id}:GET). ### Get InventoryEntry by Key [endpoint definition](/api/projects/inventory.md?urn=ctp:api:endpoint:/\{projectKey}/inventory/key=\{key}:GET). ## Query InventoryEntries [endpoint definition](/api/projects/inventory.md?urn=ctp:api:endpoint:/\{projectKey}/inventory:GET). ## Check if InventoryEntry exists ### Check if InventoryEntry exists by ID [endpoint definition](/api/projects/inventory.md?urn=ctp:api:endpoint:/\{projectKey}/inventory/\{id}:HEAD). ### Check if InventoryEntry exists by Key [endpoint definition](/api/projects/inventory.md?urn=ctp:api:endpoint:/\{projectKey}/inventory/key=\{key}:HEAD). ### Check if InventoryEntry exists by Query Predicate [endpoint definition](/api/projects/inventory.md?urn=ctp:api:endpoint:/\{projectKey}/inventory:HEAD). ## Create InventoryEntry [endpoint definition](/api/projects/inventory.md?urn=ctp:api:endpoint:/\{projectKey}/inventory:POST). ## Update InventoryEntry ### Update InventoryEntry by ID [endpoint definition](/api/projects/inventory.md?urn=ctp:api:endpoint:/\{projectKey}/inventory/\{id}:POST). ### Update InventoryEntry by Key [endpoint definition](/api/projects/inventory.md?urn=ctp:api:endpoint:/\{projectKey}/inventory/key=\{key}:POST). ## Update actions #### Add Quantity [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntryAddQuantityAction). #### Remove Quantity [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntryRemoveQuantityAction). #### Change Quantity [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntryChangeQuantityAction). #### Set Key [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntrySetKeyAction). #### Set RestockableInDays [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntrySetRestockableInDaysAction). #### Set ExpectedDelivery [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntrySetExpectedDeliveryAction). #### Set SupplyChannel [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntrySetSupplyChannelAction). #### Set Custom Type [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntrySetCustomTypeAction). #### Set CustomField [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntrySetCustomFieldAction). #### Set Reservation Expiration In Minutes [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntrySetReservationExpirationInMinutesAction). #### Set Inventory Limits When you introduce or change limits, existing Line Items in Carts might fall outside the new limits. During the next [Cart update](/api/carts-orders-overview.md#update-a-cart) after the change: - A Line Item whose quantity is outside the limits is removed. - If a requested quantity or supply channel change exceeds a limit, the request is rejected. [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntrySetInventoryLimitsAction). #### Set Safety Stock [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntrySetSafetyStockAction). #### Set Reorder Point [type definition](/api/projects/inventory.md?urn=ctp:api:type:InventoryEntrySetReorderPointAction). ## Delete InventoryEntry ### Delete InventoryEntry by ID [endpoint definition](/api/projects/inventory.md?urn=ctp:api:endpoint:/\{projectKey}/inventory/\{id}:DELETE). ### Delete InventoryEntry by Key [endpoint definition](/api/projects/inventory.md?urn=ctp:api:endpoint:/\{projectKey}/inventory/key=\{key}:DELETE). ## Related pages - [Area overview page with navigation](/api.md) - [Previous page: Overview](/api/inventory-overview.md) - [Next page: Reservations](/api/projects/reservations.md)