REST API
Items API
Inventory API for products and stock items, quantities, pricing, locations, barcodes, valuation, imports, reservations, transfers, transformations, and stock status.
Generated from the Celerp 2.8.0 OpenAPI schema, 2 November 2026.
GET /items
List Inventory Items
Return inventory items matching the documented filters and pagination options.
Parameters
| Name | In | Required | Type | Description |
|---|
limit | query | -- | integer | Maximum number of records to return. |
offset | query | -- | integer | Number of matching records to skip before returning results. |
q | query | -- | string, optional | Search text used to filter matching records. |
sku | query | -- | string, optional | Exact stock keeping unit used to filter inventory items. |
skus | query | -- | string, optional | Comma-separated list of exact stock keeping units to include. |
barcode | query | -- | string, optional | Barcode value used to find matching inventory items. |
gtin | query | -- | string, optional | Global Trade Item Number used to find matching inventory items. |
rfid_epc | query | -- | string, optional | RFID Electronic Product Code used to find matching inventory items. |
status | query | -- | string, optional | Record or workflow status used to filter results or select the requested lifecycle state. |
category | query | -- | string, optional | Category value used to filter or identify the requested configuration. |
inventory_type | query | -- | string, optional | Inventory type used to filter items. |
location_id | query | -- | string, optional | Identifier of the inventory or business location. |
source | query | -- | string, optional | Connected store platform, for example shopify or woocommerce. Keeps only items linked to that store. |
filter | query | -- | string, optional | Named filter: low_stock keeps items at or below their reorder point, demo keeps setup samples that were never edited or used. |
on_memo_to | query | -- | string, optional | Contact identifier used to filter inventory currently assigned on a memo to that contact. |
consigned_from | query | -- | string, optional | Contact identifier used to filter inventory received on consignment from that contact. |
sort | query | -- | string, optional | Field or supported sort key used to order the result. |
dir | query | -- | string | Sort direction, typically ascending or descending. |
Responses
| Status | Description | Body |
|---|
200 | Returns the requested inventory items. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X GET http://localhost:8000/items \
-H "Authorization: Bearer $TOKEN"
POST /items
Create Inventory Item
Create an inventory item from the supplied request data.
Request body
| Field | Type | Required | Description |
|---|
sku | string, optional | -- | Stock keeping unit used to identify the inventory item. |
name | string | yes | Human-readable name for the record. |
sell_by | string, optional | -- | Inventory measurement basis used to sell or track the item. |
quantity | number | -- | Inventory or production quantity for the operation. |
category | string, optional | -- | Inventory category assigned to the item. |
location_id | string, optional | -- | Identifier of the inventory or business location. |
cost_price | number, optional | -- | Unit cost recorded for the inventory item. |
cost_total | number, optional | -- | Total cost assigned to the inventory quantity. |
wholesale_price | number, optional | -- | Wholesale selling price for the inventory item. |
retail_price | number, optional | -- | Retail selling price for the inventory item. |
description | string, optional | -- | Human-readable description of the record or business purpose. |
unit | string, optional | -- | Unit of measure for the inventory item. |
barcode | string, optional | -- | Barcode value assigned to or scanned for the inventory item. |
auto_barcode | boolean | -- | Whether Celerp should generate a barcode automatically when supported. |
gtin | string, optional | -- | Global Trade Item Number assigned to the inventory item. |
rfid_epc | string, optional | -- | RFID Electronic Product Code assigned to the inventory item. |
hs_code | string, optional | -- | Harmonized System customs classification code for the item. |
tax_codes | array of string | -- | Tax codes associated with the inventory item. |
purchase_sku | string, optional | -- | Supplier or purchasing SKU for the item. |
purchase_name | string, optional | -- | Supplier-facing or purchasing name for the item. |
purchase_unit | string, optional | -- | Unit of measure used when purchasing the item. |
purchase_conversion_factor | number, optional | -- | Conversion factor between the purchasing unit and the inventory or selling unit. |
allow_splitting | boolean | -- | Whether the inventory item may be split into child quantities or lots. |
default_sell_qty | string or number, optional | -- | How much one scan adds to a sale: "full" for everything left, or a number above 0 the item's unit allows. Unset uses the unit's default (1 for pieces, otherwise full). |
attributes | object | -- | Custom or category-specific attributes associated with the record. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
inventory_type | string, optional | -- | Inventory classification controlling how the item is tracked. |
landed_cost_kind | string, optional | -- | Landed-cost classification used for inventory costing when applicable. |
recoverable | boolean, optional | -- | Whether the item or landed-cost treatment is marked recoverable when supported. |
Responses
| Status | Description | Body |
|---|
200 | Returns the created inventory item or creation result. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/bulk/delete
Bulk Delete Inventory Items
Delete multiple selected inventory items in one request.
Request body
| Field | Type | Required | Description |
|---|
entity_ids | array of string | yes | Identifiers of the business records included in the operation. |
untouched_samples_only | boolean | -- | Untouched Samples Only |
Responses
| Status | Description | Body |
|---|
200 | Returns the IDs of the deleted items. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/bulk/delete \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/bulk/expire
Bulk Expire Inventory Items
Expire multiple selected inventory items in one request.
Request body
| Field | Type | Required | Description |
|---|
entity_ids | array of string | yes | Identifiers of the business records included in the operation. |
Responses
| Status | Description | Body |
|---|
200 | Returns the number of items expired. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/bulk/expire \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/bulk/make-available
Bulk Add Draft Items to Stock
Move multiple selected draft inventory items into available stock.
Request body
| Field | Type | Required | Description |
|---|
entity_ids | array of string | yes | Identifiers of the business records included in the operation. |
Responses
| Status | Description | Body |
|---|
200 | Returns the number of items updated and the IDs of the recorded events. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/bulk/make-available \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/bulk/restore-deleted
Restore Deleted Inventory Items
Undo a delete that moved items to Deleted. Each item comes back as the draft it was. Every selected item must be deleted. Otherwise nothing is restored and the response names the items that are not.
Request body
| Field | Type | Required | Description |
|---|
entity_ids | array of string | yes | Identifiers of the deleted items to restore. |
Responses
| Status | Description | Body |
|---|
200 | Returns `restored`, the number of items restored. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/bulk/restore-deleted \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/bulk/revert-to-draft
Bulk Revert Inventory Items to Draft
Revert multiple selected inventory items to draft status.
Request body
| Field | Type | Required | Description |
|---|
entity_ids | array of string | yes | Identifiers of the business records included in the operation. |
reason | string, optional | -- | Human-readable reason for the lifecycle change, cancellation, void, or other operation. |
Responses
| Status | Description | Body |
|---|
200 | Returns the number of items updated and the IDs of the recorded events. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/bulk/revert-to-draft \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/bulk/status
Bulk Update Inventory Status
Update the status of multiple selected inventory items in one request.
Request body
| Field | Type | Required | Description |
|---|
entity_ids | array of string | yes | Identifiers of the business records included in the operation. |
status | string | yes | Inventory status to assign to all selected items. |
Responses
| Status | Description | Body |
|---|
200 | Returns the number of items updated and the IDs of the recorded events. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/bulk/status \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/bulk/transfer
Bulk Transfer Inventory Items
Move several items to another location in one request.
Request body
| Field | Type | Required | Description |
|---|
entity_ids | array of string | yes | Identifiers of the business records included in the operation. |
to_location_id | string | yes | Identifier of the destination inventory location. |
Responses
| Status | Description | Body |
|---|
200 | Returns the number of items moved and the IDs of the recorded events. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/bulk/transfer \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
GET /items/categories
List Inventory Categories
Return the available inventory categories.
Responses
| Status | Description | Body |
|---|
200 | Returns the requested inventory categories. | array of string |
Example
curl -X GET http://localhost:8000/items/categories \
-H "Authorization: Bearer $TOKEN"
GET /items/export/csv
Export Inventory Items to CSV
Export inventory items to CSV.
Parameters
| Name | In | Required | Type | Description |
|---|
cols | query | -- | string, optional | Comma-separated column names to export, in the order they should appear. Omit for the default columns. |
q | query | -- | string, optional | Search text used to filter matching records. |
sku | query | -- | string, optional | Exact stock keeping unit used to filter inventory items. |
skus | query | -- | string, optional | Comma-separated list of exact stock keeping units to include. |
barcode | query | -- | string, optional | Barcode value used to find matching inventory items. |
gtin | query | -- | string, optional | Global Trade Item Number used to find matching inventory items. |
rfid_epc | query | -- | string, optional | RFID Electronic Product Code used to find matching inventory items. |
status | query | -- | string, optional | Record or workflow status used to filter results or select the requested lifecycle state. |
category | query | -- | string, optional | Category value used to filter or identify the requested configuration. |
inventory_type | query | -- | string, optional | Inventory type used to filter items. |
location_id | query | -- | string, optional | Identifier of the inventory or business location. |
source | query | -- | string, optional | Connected store platform, for example shopify or woocommerce. Keeps only items linked to that store. |
filter | query | -- | string, optional | Named filter: low_stock keeps items at or below their reorder point, demo keeps setup samples that were never edited or used. |
on_memo_to | query | -- | string, optional | Contact identifier used to filter inventory currently assigned on a memo to that contact. |
consigned_from | query | -- | string, optional | Contact identifier used to filter inventory received on consignment from that contact. |
sort | query | -- | string, optional | Field or supported sort key used to order the result. |
dir | query | -- | string | Sort direction, typically ascending or descending. |
Responses
| Status | Description | Body |
|---|
200 | Returns the generated file or download response. | -- |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X GET http://localhost:8000/items/export/csv \
-H "Authorization: Bearer $TOKEN"
GET /items/field-values
List Inventory Field Values
Return inventory field values matching the documented filters and pagination options.
Parameters
| Name | In | Required | Type | Description |
|---|
field | query | yes | string | Categorical inventory field whose distinct values should be returned. |
Responses
| Status | Description | Body |
|---|
200 | Returns the requested inventory field values. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X GET http://localhost:8000/items/field-values \
-H "Authorization: Bearer $TOKEN"
POST /items/import/batch
Batch Import Inventory Items
Import multiple inventory items in one request.
Request body
| Field | Type | Required | Description |
|---|
records | array of ImportRecord | yes | List of records included in the batch request. |
filename | string, optional | -- | Original or display filename associated with the import. |
upsert | boolean | -- | Whether matching imported records may update existing records. |
Responses
| Status | Description | Body |
|---|
200 | Returns how many items were created, skipped or failed, with the reason for each failure. | celerp_inventory__services__BatchImportResult |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/import/batch \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
GET /items/import/batches
List Inventory Import Batches
List all import batches for this company, newest first.
Responses
| Status | Description | Body |
|---|
200 | Returns the requested inventory import batches. | object |
Example
curl -X GET http://localhost:8000/items/import/batches \
-H "Authorization: Bearer $TOKEN"
POST /items/import/batches/{batch_id}/undo
Undo Inventory Import Batch
Undo an import batch only when none of its created items changed later.
Parameters
| Name | In | Required | Type | Description |
|---|
batch_id | path | yes | string | Identifier of the import batch. |
Responses
| Status | Description | Body |
|---|
200 | Returns `ok: true` and how many items were removed. When items changed after the import, the undo is refused and those items are listed. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/import/batches/:batch_id/undo \
-H "Authorization: Bearer $TOKEN"
POST /items/import/commit
Commit Inventory Import
Commit an item import you previewed. If the file or column mapping changed since the preview, the import is refused.
Request body
| Field | Type | Required | Description |
|---|
file_id | string | yes | Identifier of an uploaded file. |
sheet | string, optional | -- | Worksheet to import from a spreadsheet file. |
header_row | integer, optional | -- | Header Row |
upsert | boolean | -- | Whether matching imported records may update existing records. |
mapping | object, optional | -- | Source-column to Celerp-field mapping used for the import. |
decisions | ImportDecisions | -- | -- |
preview_hash | string | yes | Identifier of the previously generated import preview being committed. |
Responses
| Status | Description | Body |
|---|
200 | Returns how many items were created, skipped or failed, and the import batch ID for undo. | celerp_inventory__services__BatchImportResult |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/import/commit \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
GET /items/import/preview
Get Inventory Import Preview
Return inventory import preview.
Parameters
| Name | In | Required | Type | Description |
|---|
file_id | query | yes | string | Identifier of the uploaded or stored file. |
sheet | query | -- | string, optional | Worksheet name or index to use from the uploaded spreadsheet. |
header_row | query | -- | integer, optional | Index, counting from 0, of the row that holds the column headers. Send it when the preview asks which row to use. |
upsert | query | -- | boolean | Whether matching imported records may update existing records instead of creating only new records. |
Responses
| Status | Description | Body |
|---|
200 | Returns the requested inventory import preview result. | InventoryImportPreview |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X GET http://localhost:8000/items/import/preview \
-H "Authorization: Bearer $TOKEN"
POST /items/import/preview
Create Inventory Import Preview
Preview an uploaded catalog with an optional caller-corrected mapping.
Request body
| Field | Type | Required | Description |
|---|
file_id | string | yes | Identifier of an uploaded file. |
sheet | string, optional | -- | Worksheet to import from a spreadsheet file. |
header_row | integer, optional | -- | Header Row |
upsert | boolean | -- | Whether matching imported records may update existing records. |
mapping | object, optional | -- | Source-column to Celerp-field mapping used for the import. |
decisions | ImportDecisions | -- | -- |
Responses
| Status | Description | Body |
|---|
200 | Returns the created inventory import preview or creation result. | InventoryImportPreview |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/import/preview \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/import/rows
Import Mapped Inventory Rows
Import item rows that are already mapped to Celerp fields.
Request body
| Field | Type | Required | Description |
|---|
rows | array of object | yes | Mapped import rows to commit. |
upsert | boolean | -- | Whether matching imported records may update existing records. |
filename | string, optional | -- | Original or display filename associated with the import. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
decisions | ImportDecisions | -- | -- |
preview_hash | string, optional | -- | Preview Hash |
Responses
| Status | Description | Body |
|---|
200 | Returns how many items were created, skipped or failed, and the import batch ID for undo. | celerp_inventory__services__BatchImportResult |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/import/rows \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/import/rows/preview
Preview Mapped Inventory Rows
Preview import rows that are already mapped to Celerp fields. Nothing is written. The response returns the `preview_hash` that the commit must send. The commit is refused when the rows or what they mean now have changed since.
Request body
| Field | Type | Required | Description |
|---|
rows | array of object | yes | Mapped import rows to preview. |
upsert | boolean | -- | Whether matching imported records may update existing records. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
decisions | ImportDecisions | -- | Choices made about duplicate rows in the import. |
Responses
| Status | Description | Body |
|---|
200 | Returns the errors, the locations to create, the counts, the summary rows, the duplicate groups, the decisions and the `preview_hash`. | InventoryImportRowsPreview |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/import/rows/preview \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/merge
Merge Inventory Items
Merge several items into one, combining their stock and history.
Request body
| Field | Type | Required | Description |
|---|
source_entity_ids | array of string | yes | Identifiers of the source inventory items being merged. |
target_sku_from | string | yes | Source item whose SKU should be retained for the merged result. |
resulting_quantity | number, optional | -- | Quantity to assign to the merged inventory result. |
resulting_cost_total | number, optional | -- | Total cost to assign to the merged inventory result. |
resulting_name | string, optional | -- | Name to assign to the merged inventory result. |
resulting_sku | string, optional | -- | SKU to assign to the merged inventory result. |
resolved_attributes | object, optional | -- | Final custom attributes to assign to the merged inventory result. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
plan_fingerprint | string, optional | -- | Fingerprint from the merge preview. A merge without one is refused, and so is one whose items changed since the preview. |
Responses
| Status | Description | Body |
|---|
200 | Returns the ID of the item that the others were merged into. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/merge \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/merge/preview
Preview Inventory Merge
Show what merging these items would do to the books, before the merge is confirmed. Send the same body the merge will be confirmed with, apart from `idempotency_key` and `plan_fingerprint`. The merge is refused if the request or the items change between the preview and the confirmation.
Request body
| Field | Type | Required | Description |
|---|
source_entity_ids | array of string | yes | Identifiers of the source inventory items being merged. |
target_sku_from | string | yes | Source item whose SKU should be retained for the merged result. |
resulting_quantity | number, optional | -- | Quantity to assign to the merged inventory result. |
resulting_cost_total | number, optional | -- | Total cost to assign to the merged inventory result. |
resulting_name | string, optional | -- | Name to assign to the merged inventory result. |
resulting_sku | string, optional | -- | SKU to assign to the merged inventory result. |
resolved_attributes | object, optional | -- | Final custom attributes to assign to the merged inventory result. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
plan_fingerprint | string, optional | -- | Fingerprint from the merge preview. A merge without one is refused, and so is one whose items changed since the preview. |
Responses
| Status | Description | Body |
|---|
200 | Returns the inventory reclassification the merge would make and the `plan_fingerprint` to confirm it with. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/merge/preview \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/metadata
Get Inventory Item Metadata
Return inventory item metadata.
Request body
| Field | Type | Required | Description |
|---|
entity_ids | array of string | yes | Identifiers of the business records included in the operation. |
Responses
| Status | Description | Body |
|---|
200 | Returns the requested inventory item metadata result. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/metadata \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
GET /items/valuation
Get Inventory Valuation
Return inventory valuation.
Parameters
| Name | In | Required | Type | Description |
|---|
q | query | -- | string, optional | Search text used to filter matching records. |
sku | query | -- | string, optional | Exact stock keeping unit used to filter inventory items. |
skus | query | -- | string, optional | Comma-separated list of exact stock keeping units to include. |
barcode | query | -- | string, optional | Barcode value used to find matching inventory items. |
gtin | query | -- | string, optional | Global Trade Item Number used to find matching inventory items. |
rfid_epc | query | -- | string, optional | RFID Electronic Product Code used to find matching inventory items. |
status | query | -- | string, optional | Record or workflow status used to filter results or select the requested lifecycle state. |
category | query | -- | string, optional | Category value used to filter or identify the requested configuration. |
inventory_type | query | -- | string, optional | Inventory type used to filter items. |
location_id | query | -- | string, optional | Identifier of the inventory or business location. |
source | query | -- | string, optional | Connected store platform, for example shopify or woocommerce. Keeps only items linked to that store. |
filter | query | -- | string, optional | Named filter: low_stock keeps items at or below their reorder point, demo keeps setup samples that were never edited or used. |
on_memo_to | query | -- | string, optional | Contact identifier used to filter inventory currently assigned on a memo to that contact. |
consigned_from | query | -- | string, optional | Contact identifier used to filter inventory received on consignment from that contact. |
sort | query | -- | string, optional | Field or supported sort key used to order the result. |
dir | query | -- | string | Sort direction, typically ascending or descending. |
Responses
| Status | Description | Body |
|---|
200 | Returns the requested inventory valuation result. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X GET http://localhost:8000/items/valuation \
-H "Authorization: Bearer $TOKEN"
GET /items/{entity_id}
Get Inventory Item
Return inventory item.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Responses
| Status | Description | Body |
|---|
200 | Returns the requested inventory item result. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X GET http://localhost:8000/items/:entity_id \
-H "Authorization: Bearer $TOKEN"
PATCH /items/{entity_id}
Update Inventory Item
Update inventory item with the supplied fields.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Request body
| Field | Type | Required | Description |
|---|
fields_changed | object | -- | Fields and replacement values to apply to the existing record. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
expected_version | integer, optional | -- | Expected Version |
Responses
| Status | Description | Body |
|---|
200 | Returns the updated inventory item or update result. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X PATCH http://localhost:8000/items/:entity_id \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/{entity_id}/adjust
Adjust Inventory Quantity
Adjust an item's quantity, for example after a count.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Request body
| Field | Type | Required | Description |
|---|
new_qty | number | yes | New on-hand quantity to set for the inventory item. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
Responses
| Status | Description | Body |
|---|
200 | Returns the ID of the recorded event. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/:entity_id/adjust \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/{entity_id}/expire
Expire Inventory Item
Mark an item as expired and take it out of available stock.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Responses
| Status | Description | Body |
|---|
200 | Returns the ID of the recorded event. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/:entity_id/expire \
-H "Authorization: Bearer $TOKEN"
POST /items/{entity_id}/price
Set Inventory Item Price
Set one of an item's prices.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Request body
| Field | Type | Required | Description |
|---|
price_type | string | yes | Price field or price list to update. |
new_price | number | yes | New selling price to assign. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
Responses
| Status | Description | Body |
|---|
200 | Returns the updated inventory item price or update result. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/:entity_id/price \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
GET /items/{entity_id}/reorder-suggestion
Get Inventory Reorder Suggestion
Return inventory reorder suggestion.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Responses
| Status | Description | Body |
|---|
200 | Returns the requested inventory reorder suggestion result. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X GET http://localhost:8000/items/:entity_id/reorder-suggestion \
-H "Authorization: Bearer $TOKEN"
POST /items/{entity_id}/reserve
Reserve Inventory Quantity
Reserve some or all of an item's quantity so it cannot be sold elsewhere.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Request body
| Field | Type | Required | Description |
|---|
quantity | number | yes | Inventory or production quantity for the operation. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
Responses
| Status | Description | Body |
|---|
200 | Returns the ID of the recorded event. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/:entity_id/reserve \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/{entity_id}/split
Split Inventory Item
Split an item into separate lots, each with its own quantity.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Request body
| Field | Type | Required | Description |
|---|
children | array of SplitChild | yes | Child-item definitions created by the split operation. |
mother_qty | number, optional | -- | Quantity remaining on the original item after the split. |
mother_weight | number, optional | -- | Weight remaining on the original item after the split. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
Responses
| Status | Description | Body |
|---|
200 | Returns the event ID and the new lots created by the split. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/:entity_id/split \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
GET /items/{entity_id}/split-preview
Preview Inventory Split
Show how an item would be split into lots, without making any change.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
child_sku | query | -- | string, optional | SKU to use for the child item in the split preview. |
Responses
| Status | Description | Body |
|---|
200 | Returns the lots the split would create, with their quantities, without changing anything. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X GET http://localhost:8000/items/:entity_id/split-preview \
-H "Authorization: Bearer $TOKEN"
POST /items/{entity_id}/status
Set Inventory Item Status
Change an item's status.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Request body
| Field | Type | Required | Description |
|---|
new_status | string | yes | New lifecycle status to assign to the inventory item. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
Responses
| Status | Description | Body |
|---|
200 | Returns the updated inventory item status or update result. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/:entity_id/status \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/{entity_id}/transfer
Transfer Inventory Item
Move an item to another location.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Request body
| Field | Type | Required | Description |
|---|
to_location_id | string | yes | Identifier of the destination inventory location. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
Responses
| Status | Description | Body |
|---|
200 | Returns the ID of the recorded event. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/:entity_id/transfer \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/{entity_id}/transform
Transform Inventory Item
Turn an item into a new item, for example after processing, keeping the link to its source.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Request body
| Field | Type | Required | Description |
|---|
child_sku | string | yes | SKU to assign to the transformed child item. |
child_category | string | yes | Category to assign to the transformed child item. |
child_sell_by | string | yes | Measurement basis for the transformed child item. |
child_quantity | number | yes | Quantity of the transformed child item. |
child_name | string, optional | -- | Name of the transformed child item. |
child_weight | number, optional | -- | Weight of the transformed child item. |
child_weight_unit | string, optional | -- | Unit used for the transformed child item's weight. |
child_pieces | integer, optional | -- | Piece count for the transformed child item. |
child_cost_total | number, optional | -- | Total cost assigned to the transformed child item. |
expected_version | integer, optional | -- | Expected Version |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
Responses
| Status | Description | Body |
|---|
200 | Returns the new item's ID and SKU, and the SKU of the source item. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/:entity_id/transform \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'
POST /items/{entity_id}/undo-merge
Undo Merge
Undo a merge: the merged items hold their own stock again, each on the inventory
account it was in before, and the merge's reclassification entry is reversed.
Only while nothing has happened to the merged item or its sources since the merge;
after that the merge is part of what followed and stays.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Responses
| Status | Description | Body |
|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/:entity_id/undo-merge \
-H "Authorization: Bearer $TOKEN"
POST /items/{entity_id}/unreserve
Release Reserved Inventory
Release a reservation so the quantity is available again.
Parameters
| Name | In | Required | Type | Description |
|---|
entity_id | path | yes | string | Identifier of the requested Celerp record. |
Request body
| Field | Type | Required | Description |
|---|
quantity | number | yes | Inventory or production quantity for the operation. |
idempotency_key | string, optional | -- | Client-supplied idempotency key identifying this operation so the same request can be retried safely. |
Responses
| Status | Description | Body |
|---|
200 | Returns the ID of the recorded event. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/items/:entity_id/unreserve \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'