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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
q | query | -- | string, optional | Search text used to filter matching records. |
status | query | -- | string, optional | Record or workflow status used to filter results or select the requested lifecycle state. |
date_from | query | -- | string, optional | Start date for the requested reporting or search period. |
date_to | query | -- | string, optional | End date for the requested reporting or search period. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the requested manufacturing orders. | object |
422 | The 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
| Field | Type | Required | Description |
|---|---|---|---|
description | string | yes | Human-readable description of the manufacturing or production order. |
order_type | string | -- | Manufacturing or production order type. |
inputs | array of MfgInput | -- | Input materials or components required by the production order. |
expected_outputs | array of MfgOutput | -- | Expected finished goods or outputs from the production order. |
location_id | string, optional | -- | Identifier of the inventory or business location. |
assigned_to | string, optional | -- | User, work center, or assignee responsible for the production order when supported. |
due_date | string, optional | -- | Due date for payment, delivery, or scheduled completion as applicable. |
estimated_cost | number, optional | -- | Estimated total cost of the production order. |
notes | string, optional | -- | Optional notes associated with the record or 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 created manufacturing order 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/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
| Field | Type | Required | Description |
|---|---|---|---|
run_ids | array of string | -- | Identifiers of the production runs included in the bulk action. |
action | string | -- | Manufacturing lifecycle action to apply to the selected runs. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the IDs of the orders updated and the orders skipped. | object |
422 | The 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
| Field | Type | Required | Description |
|---|---|---|---|
records | array of MfgImportRecord | yes | List of records included in the batch request. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns how many records were created, skipped or failed, with the reason for each failure. | celerp_manufacturing__routes__BatchImportResult |
422 | The 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
item_id | path | yes | string | Identifier of the inventory item. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
quantity | number | -- | Inventory or production quantity for the operation. |
complete | boolean | -- | Whether the operation should also complete the created or selected production work when supported. |
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 ID of the new production run. | object |
422 | The 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
item_id | path | yes | string | Identifier of the inventory item. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the requested item manufacturing overview result. | object |
422 | The 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
item_id | path | yes | string | Identifier of the inventory item. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
output_qty | number | -- | Finished-goods quantity produced by one recipe or build quantity. |
components | array of ComponentSpec | -- | Component requirements for the manufacturing recipe. |
labor | array of LaborLine | -- | Labor inputs or operations included in the recipe. |
overhead | array of OverheadLine | -- | Overhead inputs or costs included in the recipe. |
unit_cost | number, optional | -- | Calculated or specified cost per finished unit. |
materials_cost | number, optional | -- | Material-cost component of the recipe or manufactured item. |
labor_cost | number, optional | -- | Labor-cost component of the recipe or manufactured item. |
overhead_cost | number, optional | -- | Overhead-cost component of the recipe or manufactured item. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the updated manufacturing recipe or update result. | object |
422 | The 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
item_id | path | yes | string | Identifier of the inventory item. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the items that were re-costed and how many there were. | object |
422 | The 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
item_id | path | yes | string | Identifier of the inventory item. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
steps | array of WorkflowStep | -- | Ordered production workflow steps. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the updated manufacturing workflow or update result. | object |
422 | The 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
| Status | Description | Body |
|---|---|---|
200 | Returns 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
| Field | Type | Required | Description |
|---|---|---|---|
lines | array of WorkOrderLineRef | -- | Demand or manufacturing lines included in the operation. |
complete | boolean | -- | Whether the operation should also complete the created or selected production work when supported. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the created work orders from demand 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/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
| Field | Type | Required | Description |
|---|---|---|---|
item_ids | array of string | -- | Identifiers of the inventory items included in the operation. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the products to make, the subassemblies they need, and the raw materials required. | object |
422 | The 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
| Status | Description | Body |
|---|---|---|
200 | Returns 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
| Field | Type | Required | Description |
|---|---|---|---|
name | string | yes | Human-readable name for the record. |
wip_location_id | string, optional | -- | Identifier of the work-in-progress inventory location for the work center. |
labor_rate | number, optional | -- | Labor cost rate associated with the work center. |
capacity | number, optional | -- | Available work-center production capacity. |
hours_per_day | number, optional | -- | Available work-center hours per working day. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the created manufacturing work center 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/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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
wc_id | path | yes | string | Identifier of the manufacturing work center. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name | string, optional | -- | Human-readable name for the record. |
wip_location_id | string, optional | -- | Identifier of the work-in-progress inventory location for the work center. |
labor_rate | number, optional | -- | Labor cost rate associated with the work center. |
capacity | number, optional | -- | Available work-center production capacity. |
hours_per_day | number, optional | -- | Available work-center hours per working day. |
is_default | boolean, optional | -- | Whether this record should be the default choice for its category. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the updated manufacturing work center 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/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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
wc_id | path | yes | string | Identifier of the manufacturing work center. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns `ok: true` when the change is saved. | object |
422 | The 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
wc_id | path | yes | string | Identifier of the manufacturing work center. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the updated default manufacturing work center 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/manufacturing/work-centers/:wc_id/is_default \
-H "Authorization: Bearer $TOKEN"GET /manufacturing/{order_id}
Get Manufacturing Order
Return manufacturing order.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the requested manufacturing order result. | object |
422 | The 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
reason | string, optional | -- | Human-readable reason for the lifecycle change, cancellation, void, or other 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/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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Request body
CompleteBody, optional
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the run's new status. | object |
422 | The 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Request body
CancelBody, optional
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/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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Request body
IssueBody, optional
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the components issued and their quantities. | object |
422 | The 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Request body
celerp_manufacturing__routes__ReceiveBody, optional
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the quantity received and the ID of the new lot. | object |
422 | The 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
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/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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
due_date | string, optional | -- | Due date for payment, delivery, or scheduled completion as applicable. |
planned_start | string, optional | -- | Planned start date or time for the manufacturing order. |
priority | string, optional | -- | Scheduling priority assigned to the manufacturing order. |
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/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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
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/manufacturing/:order_id/start \
-H "Authorization: Bearer $TOKEN"