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

NameInRequiredTypeDescription
limitquery--integerMaximum number of records to return.
offsetquery--integerNumber of matching records to skip before returning results.
qquery--string, optionalSearch text used to filter matching records.
skuquery--string, optionalExact stock keeping unit used to filter inventory items.
skusquery--string, optionalComma-separated list of exact stock keeping units to include.
barcodequery--string, optionalBarcode value used to find matching inventory items.
gtinquery--string, optionalGlobal Trade Item Number used to find matching inventory items.
rfid_epcquery--string, optionalRFID Electronic Product Code used to find matching inventory items.
statusquery--string, optionalRecord or workflow status used to filter results or select the requested lifecycle state.
categoryquery--string, optionalCategory value used to filter or identify the requested configuration.
inventory_typequery--string, optionalInventory type used to filter items.
location_idquery--string, optionalIdentifier of the inventory or business location.
sourcequery--string, optionalConnected store platform, for example shopify or woocommerce. Keeps only items linked to that store.
filterquery--string, optionalNamed filter: low_stock keeps items at or below their reorder point, demo keeps setup samples that were never edited or used.
on_memo_toquery--string, optionalContact identifier used to filter inventory currently assigned on a memo to that contact.
consigned_fromquery--string, optionalContact identifier used to filter inventory received on consignment from that contact.
sortquery--string, optionalField or supported sort key used to order the result.
dirquery--stringSort direction, typically ascending or descending.

Responses

StatusDescriptionBody
200Returns the requested inventory items.object
422The 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

FieldTypeRequiredDescription
skustring, optional--Stock keeping unit used to identify the inventory item.
namestringyesHuman-readable name for the record.
sell_bystring, optional--Inventory measurement basis used to sell or track the item.
quantitynumber--Inventory or production quantity for the operation.
categorystring, optional--Inventory category assigned to the item.
location_idstring, optional--Identifier of the inventory or business location.
cost_pricenumber, optional--Unit cost recorded for the inventory item.
cost_totalnumber, optional--Total cost assigned to the inventory quantity.
wholesale_pricenumber, optional--Wholesale selling price for the inventory item.
retail_pricenumber, optional--Retail selling price for the inventory item.
descriptionstring, optional--Human-readable description of the record or business purpose.
unitstring, optional--Unit of measure for the inventory item.
barcodestring, optional--Barcode value assigned to or scanned for the inventory item.
auto_barcodeboolean--Whether Celerp should generate a barcode automatically when supported.
gtinstring, optional--Global Trade Item Number assigned to the inventory item.
rfid_epcstring, optional--RFID Electronic Product Code assigned to the inventory item.
hs_codestring, optional--Harmonized System customs classification code for the item.
tax_codesarray of string--Tax codes associated with the inventory item.
purchase_skustring, optional--Supplier or purchasing SKU for the item.
purchase_namestring, optional--Supplier-facing or purchasing name for the item.
purchase_unitstring, optional--Unit of measure used when purchasing the item.
purchase_conversion_factornumber, optional--Conversion factor between the purchasing unit and the inventory or selling unit.
allow_splittingboolean--Whether the inventory item may be split into child quantities or lots.
default_sell_qtystring 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).
attributesobject--Custom or category-specific attributes associated with the record.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.
inventory_typestring, optional--Inventory classification controlling how the item is tracked.
landed_cost_kindstring, optional--Landed-cost classification used for inventory costing when applicable.
recoverableboolean, optional--Whether the item or landed-cost treatment is marked recoverable when supported.

Responses

StatusDescriptionBody
200Returns the created inventory item or creation result.object
422The 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

FieldTypeRequiredDescription
entity_idsarray of stringyesIdentifiers of the business records included in the operation.
untouched_samples_onlyboolean--Untouched Samples Only

Responses

StatusDescriptionBody
200Returns the IDs of the deleted items.object
422The 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

FieldTypeRequiredDescription
entity_idsarray of stringyesIdentifiers of the business records included in the operation.

Responses

StatusDescriptionBody
200Returns the number of items expired.object
422The 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

FieldTypeRequiredDescription
entity_idsarray of stringyesIdentifiers of the business records included in the operation.

Responses

StatusDescriptionBody
200Returns the number of items updated and the IDs of the recorded events.object
422The 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

FieldTypeRequiredDescription
entity_idsarray of stringyesIdentifiers of the deleted items to restore.

Responses

StatusDescriptionBody
200Returns `restored`, the number of items restored.object
422The 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

FieldTypeRequiredDescription
entity_idsarray of stringyesIdentifiers of the business records included in the operation.
reasonstring, optional--Human-readable reason for the lifecycle change, cancellation, void, or other operation.

Responses

StatusDescriptionBody
200Returns the number of items updated and the IDs of the recorded events.object
422The 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

FieldTypeRequiredDescription
entity_idsarray of stringyesIdentifiers of the business records included in the operation.
statusstringyesInventory status to assign to all selected items.

Responses

StatusDescriptionBody
200Returns the number of items updated and the IDs of the recorded events.object
422The 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

FieldTypeRequiredDescription
entity_idsarray of stringyesIdentifiers of the business records included in the operation.
to_location_idstringyesIdentifier of the destination inventory location.

Responses

StatusDescriptionBody
200Returns the number of items moved and the IDs of the recorded events.object
422The 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

StatusDescriptionBody
200Returns 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

NameInRequiredTypeDescription
colsquery--string, optionalComma-separated column names to export, in the order they should appear. Omit for the default columns.
qquery--string, optionalSearch text used to filter matching records.
skuquery--string, optionalExact stock keeping unit used to filter inventory items.
skusquery--string, optionalComma-separated list of exact stock keeping units to include.
barcodequery--string, optionalBarcode value used to find matching inventory items.
gtinquery--string, optionalGlobal Trade Item Number used to find matching inventory items.
rfid_epcquery--string, optionalRFID Electronic Product Code used to find matching inventory items.
statusquery--string, optionalRecord or workflow status used to filter results or select the requested lifecycle state.
categoryquery--string, optionalCategory value used to filter or identify the requested configuration.
inventory_typequery--string, optionalInventory type used to filter items.
location_idquery--string, optionalIdentifier of the inventory or business location.
sourcequery--string, optionalConnected store platform, for example shopify or woocommerce. Keeps only items linked to that store.
filterquery--string, optionalNamed filter: low_stock keeps items at or below their reorder point, demo keeps setup samples that were never edited or used.
on_memo_toquery--string, optionalContact identifier used to filter inventory currently assigned on a memo to that contact.
consigned_fromquery--string, optionalContact identifier used to filter inventory received on consignment from that contact.
sortquery--string, optionalField or supported sort key used to order the result.
dirquery--stringSort direction, typically ascending or descending.

Responses

StatusDescriptionBody
200Returns the generated file or download response.--
422The 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

NameInRequiredTypeDescription
fieldqueryyesstringCategorical inventory field whose distinct values should be returned.

Responses

StatusDescriptionBody
200Returns the requested inventory field values.object
422The 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

FieldTypeRequiredDescription
recordsarray of ImportRecordyesList of records included in the batch request.
filenamestring, optional--Original or display filename associated with the import.
upsertboolean--Whether matching imported records may update existing records.

Responses

StatusDescriptionBody
200Returns how many items were created, skipped or failed, with the reason for each failure.celerp_inventory__services__BatchImportResult
422The 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

StatusDescriptionBody
200Returns 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

NameInRequiredTypeDescription
batch_idpathyesstringIdentifier of the import batch.

Responses

StatusDescriptionBody
200Returns `ok: true` and how many items were removed. When items changed after the import, the undo is refused and those items are listed.object
422The 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

FieldTypeRequiredDescription
file_idstringyesIdentifier of an uploaded file.
sheetstring, optional--Worksheet to import from a spreadsheet file.
header_rowinteger, optional--Header Row
upsertboolean--Whether matching imported records may update existing records.
mappingobject, optional--Source-column to Celerp-field mapping used for the import.
decisionsImportDecisions----
preview_hashstringyesIdentifier of the previously generated import preview being committed.

Responses

StatusDescriptionBody
200Returns how many items were created, skipped or failed, and the import batch ID for undo.celerp_inventory__services__BatchImportResult
422The 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

NameInRequiredTypeDescription
file_idqueryyesstringIdentifier of the uploaded or stored file.
sheetquery--string, optionalWorksheet name or index to use from the uploaded spreadsheet.
header_rowquery--integer, optionalIndex, counting from 0, of the row that holds the column headers. Send it when the preview asks which row to use.
upsertquery--booleanWhether matching imported records may update existing records instead of creating only new records.

Responses

StatusDescriptionBody
200Returns the requested inventory import preview result.InventoryImportPreview
422The 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

FieldTypeRequiredDescription
file_idstringyesIdentifier of an uploaded file.
sheetstring, optional--Worksheet to import from a spreadsheet file.
header_rowinteger, optional--Header Row
upsertboolean--Whether matching imported records may update existing records.
mappingobject, optional--Source-column to Celerp-field mapping used for the import.
decisionsImportDecisions----

Responses

StatusDescriptionBody
200Returns the created inventory import preview or creation result.InventoryImportPreview
422The 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

FieldTypeRequiredDescription
rowsarray of objectyesMapped import rows to commit.
upsertboolean--Whether matching imported records may update existing records.
filenamestring, optional--Original or display filename associated with the import.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.
decisionsImportDecisions----
preview_hashstring, optional--Preview Hash

Responses

StatusDescriptionBody
200Returns how many items were created, skipped or failed, and the import batch ID for undo.celerp_inventory__services__BatchImportResult
422The 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

FieldTypeRequiredDescription
rowsarray of objectyesMapped import rows to preview.
upsertboolean--Whether matching imported records may update existing records.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.
decisionsImportDecisions--Choices made about duplicate rows in the import.

Responses

StatusDescriptionBody
200Returns the errors, the locations to create, the counts, the summary rows, the duplicate groups, the decisions and the `preview_hash`.InventoryImportRowsPreview
422The 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

FieldTypeRequiredDescription
source_entity_idsarray of stringyesIdentifiers of the source inventory items being merged.
target_sku_fromstringyesSource item whose SKU should be retained for the merged result.
resulting_quantitynumber, optional--Quantity to assign to the merged inventory result.
resulting_cost_totalnumber, optional--Total cost to assign to the merged inventory result.
resulting_namestring, optional--Name to assign to the merged inventory result.
resulting_skustring, optional--SKU to assign to the merged inventory result.
resolved_attributesobject, optional--Final custom attributes to assign to the merged inventory result.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.
plan_fingerprintstring, optional--Fingerprint from the merge preview. A merge without one is refused, and so is one whose items changed since the preview.

Responses

StatusDescriptionBody
200Returns the ID of the item that the others were merged into.object
422The 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

FieldTypeRequiredDescription
source_entity_idsarray of stringyesIdentifiers of the source inventory items being merged.
target_sku_fromstringyesSource item whose SKU should be retained for the merged result.
resulting_quantitynumber, optional--Quantity to assign to the merged inventory result.
resulting_cost_totalnumber, optional--Total cost to assign to the merged inventory result.
resulting_namestring, optional--Name to assign to the merged inventory result.
resulting_skustring, optional--SKU to assign to the merged inventory result.
resolved_attributesobject, optional--Final custom attributes to assign to the merged inventory result.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.
plan_fingerprintstring, optional--Fingerprint from the merge preview. A merge without one is refused, and so is one whose items changed since the preview.

Responses

StatusDescriptionBody
200Returns the inventory reclassification the merge would make and the `plan_fingerprint` to confirm it with.object
422The 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

FieldTypeRequiredDescription
entity_idsarray of stringyesIdentifiers of the business records included in the operation.

Responses

StatusDescriptionBody
200Returns the requested inventory item metadata result.object
422The 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

NameInRequiredTypeDescription
qquery--string, optionalSearch text used to filter matching records.
skuquery--string, optionalExact stock keeping unit used to filter inventory items.
skusquery--string, optionalComma-separated list of exact stock keeping units to include.
barcodequery--string, optionalBarcode value used to find matching inventory items.
gtinquery--string, optionalGlobal Trade Item Number used to find matching inventory items.
rfid_epcquery--string, optionalRFID Electronic Product Code used to find matching inventory items.
statusquery--string, optionalRecord or workflow status used to filter results or select the requested lifecycle state.
categoryquery--string, optionalCategory value used to filter or identify the requested configuration.
inventory_typequery--string, optionalInventory type used to filter items.
location_idquery--string, optionalIdentifier of the inventory or business location.
sourcequery--string, optionalConnected store platform, for example shopify or woocommerce. Keeps only items linked to that store.
filterquery--string, optionalNamed filter: low_stock keeps items at or below their reorder point, demo keeps setup samples that were never edited or used.
on_memo_toquery--string, optionalContact identifier used to filter inventory currently assigned on a memo to that contact.
consigned_fromquery--string, optionalContact identifier used to filter inventory received on consignment from that contact.
sortquery--string, optionalField or supported sort key used to order the result.
dirquery--stringSort direction, typically ascending or descending.

Responses

StatusDescriptionBody
200Returns the requested inventory valuation result.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Responses

StatusDescriptionBody
200Returns the requested inventory item result.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Request body

FieldTypeRequiredDescription
fields_changedobject--Fields and replacement values to apply to the existing record.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.
expected_versioninteger, optional--Expected Version

Responses

StatusDescriptionBody
200Returns the updated inventory item or update result.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Request body

FieldTypeRequiredDescription
new_qtynumberyesNew on-hand quantity to set for the inventory item.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.

Responses

StatusDescriptionBody
200Returns the ID of the recorded event.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Responses

StatusDescriptionBody
200Returns the ID of the recorded event.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Request body

FieldTypeRequiredDescription
price_typestringyesPrice field or price list to update.
new_pricenumberyesNew selling price to assign.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.

Responses

StatusDescriptionBody
200Returns the updated inventory item price or update result.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Responses

StatusDescriptionBody
200Returns the requested inventory reorder suggestion result.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Request body

FieldTypeRequiredDescription
quantitynumberyesInventory or production quantity for the operation.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.

Responses

StatusDescriptionBody
200Returns the ID of the recorded event.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Request body

FieldTypeRequiredDescription
childrenarray of SplitChildyesChild-item definitions created by the split operation.
mother_qtynumber, optional--Quantity remaining on the original item after the split.
mother_weightnumber, optional--Weight remaining on the original item after the split.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.

Responses

StatusDescriptionBody
200Returns the event ID and the new lots created by the split.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.
child_skuquery--string, optionalSKU to use for the child item in the split preview.

Responses

StatusDescriptionBody
200Returns the lots the split would create, with their quantities, without changing anything.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Request body

FieldTypeRequiredDescription
new_statusstringyesNew lifecycle status to assign to the inventory item.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.

Responses

StatusDescriptionBody
200Returns the updated inventory item status or update result.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Request body

FieldTypeRequiredDescription
to_location_idstringyesIdentifier of the destination inventory location.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.

Responses

StatusDescriptionBody
200Returns the ID of the recorded event.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Request body

FieldTypeRequiredDescription
child_skustringyesSKU to assign to the transformed child item.
child_categorystringyesCategory to assign to the transformed child item.
child_sell_bystringyesMeasurement basis for the transformed child item.
child_quantitynumberyesQuantity of the transformed child item.
child_namestring, optional--Name of the transformed child item.
child_weightnumber, optional--Weight of the transformed child item.
child_weight_unitstring, optional--Unit used for the transformed child item's weight.
child_piecesinteger, optional--Piece count for the transformed child item.
child_cost_totalnumber, optional--Total cost assigned to the transformed child item.
expected_versioninteger, optional--Expected Version
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.

Responses

StatusDescriptionBody
200Returns the new item's ID and SKU, and the SKU of the source item.object
422The 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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

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

NameInRequiredTypeDescription
entity_idpathyesstringIdentifier of the requested Celerp record.

Request body

FieldTypeRequiredDescription
quantitynumberyesInventory or production quantity for the operation.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.

Responses

StatusDescriptionBody
200Returns the ID of the recorded event.object
422The 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 '{ ... }'