REST API

Manufacturing API

Manufacturing API for production orders, recipes, work centers, workflows, material requirements, costing, scheduling, component issue, and finished-goods receipt.

Generated from the Celerp 2.5.0 OpenAPI schema, 21 September 2026.

GET /manufacturing

List Manufacturing Orders

Return manufacturing orders matching the documented filters and pagination options.

Parameters

NameInRequiredTypeDescription
qquery--string, optionalSearch text used to filter matching records.
statusquery--string, optionalRecord or workflow status used to filter results or select the requested lifecycle state.
date_fromquery--string, optionalStart date for the requested reporting or search period.
date_toquery--string, optionalEnd date for the requested reporting or search period.

Responses

StatusDescriptionBody
200Returns the requested manufacturing orders.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X GET http://localhost:8000/manufacturing \
  -H "Authorization: Bearer $TOKEN"

POST /manufacturing

Create Manufacturing Order

Create a manufacturing order from the supplied request data.

Request body

FieldTypeRequiredDescription
descriptionstringyesHuman-readable description of the manufacturing or production order.
order_typestring--Manufacturing or production order type.
inputsarray of MfgInput--Input materials or components required by the production order.
expected_outputsarray of MfgOutput--Expected finished goods or outputs from the production order.
location_idstring, optional--Identifier of the inventory or business location.
assigned_tostring, optional--User, work center, or assignee responsible for the production order when supported.
due_datestring, optional--Due date for payment, delivery, or scheduled completion as applicable.
estimated_costnumber, optional--Estimated total cost of the production order.
notesstring, optional--Optional notes associated with the record or operation.
idempotency_keystring, optional--Client-supplied idempotency key identifying this operation so the same request can be retried safely.

Responses

StatusDescriptionBody
200Returns the created manufacturing order or creation result.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X POST http://localhost:8000/manufacturing \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /manufacturing/bulk-action

Bulk Update Manufacturing Orders

Apply the requested manufacturing lifecycle action to multiple production orders. Orders that cannot accept the action in their current state are skipped.

Request body

FieldTypeRequiredDescription
run_idsarray of string--Identifiers of the production runs included in the bulk action.
actionstring--Manufacturing lifecycle action to apply to the selected runs.

Responses

StatusDescriptionBody
200Returns the IDs of the orders updated and the orders skipped.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X POST http://localhost:8000/manufacturing/bulk-action \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /manufacturing/import/batch

Batch Import Manufacturing Orders

Import multiple manufacturing orders in one request.

Request body

FieldTypeRequiredDescription
recordsarray of MfgImportRecordyesList of records included in the batch request.

Responses

StatusDescriptionBody
200Returns how many records were created, skipped or failed, with the reason for each failure.celerp_manufacturing__routes__BatchImportResult
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X POST http://localhost:8000/manufacturing/import/batch \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /manufacturing/items/{item_id}/build

Build Manufacturable Inventory Item

Create a production run to build a quantity of an item from its recipe. With `complete=true` the run is created, issued, received and completed in one step.

Parameters

NameInRequiredTypeDescription
item_idpathyesstringIdentifier of the inventory item.

Request body

FieldTypeRequiredDescription
quantitynumber--Inventory or production quantity for the operation.
completeboolean--Whether the operation should also complete the created or selected production work when supported.
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 ID of the new production run.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X POST http://localhost:8000/manufacturing/items/:item_id/build \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

GET /manufacturing/items/{item_id}/hub

Get Item Manufacturing Overview

Return manufacturing demand and production orders for the selected inventory item, with item identifiers resolved for readable display.

Parameters

NameInRequiredTypeDescription
item_idpathyesstringIdentifier of the inventory item.

Responses

StatusDescriptionBody
200Returns the requested item manufacturing overview result.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X GET http://localhost:8000/manufacturing/items/:item_id/hub \
  -H "Authorization: Bearer $TOKEN"

PUT /manufacturing/items/{item_id}/recipe

Set Manufacturing Recipe

Replace an item's recipe. The standard cost is recalculated from current component costs. A recipe that uses itself, unknown SKUs, or a loop is rejected.

Parameters

NameInRequiredTypeDescription
item_idpathyesstringIdentifier of the inventory item.

Request body

FieldTypeRequiredDescription
output_qtynumber--Finished-goods quantity produced by one recipe or build quantity.
componentsarray of ComponentSpec--Component requirements for the manufacturing recipe.
laborarray of LaborLine--Labor inputs or operations included in the recipe.
overheadarray of OverheadLine--Overhead inputs or costs included in the recipe.
unit_costnumber, optional--Calculated or specified cost per finished unit.
materials_costnumber, optional--Material-cost component of the recipe or manufactured item.
labor_costnumber, optional--Labor-cost component of the recipe or manufactured item.
overhead_costnumber, optional--Overhead-cost component of the recipe or manufactured item.

Responses

StatusDescriptionBody
200Returns the updated manufacturing recipe or update result.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X PUT http://localhost:8000/manufacturing/items/:item_id/recipe \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /manufacturing/items/{item_id}/recost-dependents

Recalculate Dependent Manufacturing Costs

Recalculate the cost of every item whose recipe uses this item.

Parameters

NameInRequiredTypeDescription
item_idpathyesstringIdentifier of the inventory item.

Responses

StatusDescriptionBody
200Returns the items that were re-costed and how many there were.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X POST http://localhost:8000/manufacturing/items/:item_id/recost-dependents \
  -H "Authorization: Bearer $TOKEN"

PUT /manufacturing/items/{item_id}/workflow

Set Manufacturing Workflow

Replace an item's production workflow, the sequence of steps used on the shop floor. This is separate from its costing recipe.

Parameters

NameInRequiredTypeDescription
item_idpathyesstringIdentifier of the inventory item.

Request body

FieldTypeRequiredDescription
stepsarray of WorkflowStep--Ordered production workflow steps.

Responses

StatusDescriptionBody
200Returns the updated manufacturing workflow or update result.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X PUT http://localhost:8000/manufacturing/items/:item_id/workflow \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

GET /manufacturing/to-make

Get Manufacturing Demand

Return manufacturing demand.

Responses

StatusDescriptionBody
200Returns the requested manufacturing demand result.object

Example

curl -X GET http://localhost:8000/manufacturing/to-make \
  -H "Authorization: Bearer $TOKEN"

POST /manufacturing/to-make/make

Create Work Orders from Demand

Create a work orders from demand from the supplied request data.

Request body

FieldTypeRequiredDescription
linesarray of WorkOrderLineRef--Demand or manufacturing lines included in the operation.
completeboolean--Whether the operation should also complete the created or selected production work when supported.

Responses

StatusDescriptionBody
200Returns the created work orders from demand or creation result.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X POST http://localhost:8000/manufacturing/to-make/make \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /manufacturing/to-make/requirements

Calculate Material Requirements

Calculate consolidated raw-material and subassembly requirements for the selected products and quantities still to be manufactured.

Request body

FieldTypeRequiredDescription
item_idsarray of string--Identifiers of the inventory items included in the operation.

Responses

StatusDescriptionBody
200Returns the products to make, the subassemblies they need, and the raw materials required.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X POST http://localhost:8000/manufacturing/to-make/requirements \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

GET /manufacturing/work-centers

List Manufacturing Work Centers

Return the available manufacturing work centers.

Responses

StatusDescriptionBody
200Returns the requested manufacturing work centers.object

Example

curl -X GET http://localhost:8000/manufacturing/work-centers \
  -H "Authorization: Bearer $TOKEN"

POST /manufacturing/work-centers

Create Manufacturing Work Center

Create a manufacturing work center from the supplied request data.

Request body

FieldTypeRequiredDescription
namestringyesHuman-readable name for the record.
wip_location_idstring, optional--Identifier of the work-in-progress inventory location for the work center.
labor_ratenumber, optional--Labor cost rate associated with the work center.
capacitynumber, optional--Available work-center production capacity.
hours_per_daynumber, optional--Available work-center hours per working day.

Responses

StatusDescriptionBody
200Returns the created manufacturing work center or creation result.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X POST http://localhost:8000/manufacturing/work-centers \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

PATCH /manufacturing/work-centers/{wc_id}

Update Manufacturing Work Center

Update manufacturing work center with the supplied fields.

Parameters

NameInRequiredTypeDescription
wc_idpathyesstringIdentifier of the manufacturing work center.

Request body

FieldTypeRequiredDescription
namestring, optional--Human-readable name for the record.
wip_location_idstring, optional--Identifier of the work-in-progress inventory location for the work center.
labor_ratenumber, optional--Labor cost rate associated with the work center.
capacitynumber, optional--Available work-center production capacity.
hours_per_daynumber, optional--Available work-center hours per working day.
is_defaultboolean, optional--Whether this record should be the default choice for its category.

Responses

StatusDescriptionBody
200Returns the updated manufacturing work center or update result.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X PATCH http://localhost:8000/manufacturing/work-centers/:wc_id \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

DELETE /manufacturing/work-centers/{wc_id}

Delete Manufacturing Work Center

Delete a work center.

Parameters

NameInRequiredTypeDescription
wc_idpathyesstringIdentifier of the manufacturing work center.

Responses

StatusDescriptionBody
200Returns `ok: true` when the change is saved.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X DELETE http://localhost:8000/manufacturing/work-centers/:wc_id \
  -H "Authorization: Bearer $TOKEN"

PATCH /manufacturing/work-centers/{wc_id}/is_default

Set Default Manufacturing Work Center

Make this the company's default work center, clearing the previous one.

Parameters

NameInRequiredTypeDescription
wc_idpathyesstringIdentifier of the manufacturing work center.

Responses

StatusDescriptionBody
200Returns the updated default manufacturing work center or update result.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X PATCH http://localhost:8000/manufacturing/work-centers/:wc_id/is_default \
  -H "Authorization: Bearer $TOKEN"

GET /manufacturing/{order_id}

Get Manufacturing Order

Return manufacturing order.

Parameters

NameInRequiredTypeDescription
order_idpathyesstringIdentifier of the manufacturing order.

Responses

StatusDescriptionBody
200Returns the requested manufacturing order result.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X GET http://localhost:8000/manufacturing/:order_id \
  -H "Authorization: Bearer $TOKEN"

POST /manufacturing/{order_id}/cancel

Cancel Manufacturing Order

Cancel a production run.

Parameters

NameInRequiredTypeDescription
order_idpathyesstringIdentifier of the manufacturing order.

Request body

FieldTypeRequiredDescription
reasonstring, optional--Human-readable reason for the lifecycle change, cancellation, void, or other 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/manufacturing/:order_id/cancel \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /manufacturing/{order_id}/complete

Complete Manufacturing Order

Finish a run now: any remaining components are issued, the remaining output is received, and the run is closed.

Parameters

NameInRequiredTypeDescription
order_idpathyesstringIdentifier of the manufacturing order.

Request body

CompleteBody, optional

Responses

StatusDescriptionBody
200Returns the run's new status.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X POST http://localhost:8000/manufacturing/:order_id/complete \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /manufacturing/{order_id}/hold

Hold Manufacturing Order

Put an active run on hold (paused). Reversible via /resume.

Parameters

NameInRequiredTypeDescription
order_idpathyesstringIdentifier of the manufacturing order.

Request body

CancelBody, optional

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/manufacturing/:order_id/hold \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /manufacturing/{order_id}/issue

Issue Manufacturing Components

Take components out of stock and into a run. Omit `items` to issue everything still outstanding. A planned run moves to In Progress.

Parameters

NameInRequiredTypeDescription
order_idpathyesstringIdentifier of the manufacturing order.

Request body

IssueBody, optional

Responses

StatusDescriptionBody
200Returns the components issued and their quantities.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X POST http://localhost:8000/manufacturing/:order_id/issue \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /manufacturing/{order_id}/receive

Receive Manufactured Goods

Receive finished goods from a run into stock as a new lot. Omit `quantity` to receive everything outstanding; the run completes once all output is received.

Parameters

NameInRequiredTypeDescription
order_idpathyesstringIdentifier of the manufacturing order.

Request body

celerp_manufacturing__routes__ReceiveBody, optional

Responses

StatusDescriptionBody
200Returns the quantity received and the ID of the new lot.object
422The request failed validation. The response lists each invalid field and why.HTTPValidationError

Example

curl -X POST http://localhost:8000/manufacturing/:order_id/receive \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /manufacturing/{order_id}/resume

Resume Manufacturing Order

Resume an on-hold run (back to In Progress).

Parameters

NameInRequiredTypeDescription
order_idpathyesstringIdentifier of the manufacturing order.

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/manufacturing/:order_id/resume \
  -H "Authorization: Bearer $TOKEN"

POST /manufacturing/{order_id}/schedule

Schedule Manufacturing Order

Update the due date, planned start, or priority for the selected manufacturing order.

Parameters

NameInRequiredTypeDescription
order_idpathyesstringIdentifier of the manufacturing order.

Request body

FieldTypeRequiredDescription
due_datestring, optional--Due date for payment, delivery, or scheduled completion as applicable.
planned_startstring, optional--Planned start date or time for the manufacturing order.
prioritystring, optional--Scheduling priority assigned to the manufacturing order.
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/manufacturing/:order_id/schedule \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /manufacturing/{order_id}/start

Start Manufacturing Order

Start a planned production run.

Parameters

NameInRequiredTypeDescription
order_idpathyesstringIdentifier of the manufacturing order.

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/manufacturing/:order_id/start \
  -H "Authorization: Bearer $TOKEN"