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.8.0 OpenAPI schema, 2 November 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. |
output_item_id | string, optional | -- | Output Item Id |
quantity | number | -- | Quantity |
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. |
idempotency_key | string, optional | -- | Idempotency Key |
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. |
idempotency_key | string, optional | -- | Idempotency Key |
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 '{ ... }'GET /manufacturing/{order_id}/reconcile
Reconcile Needs
Why a run needs reconciling, the components whose value reconciling it records, the output an older release already received from it, which takes its share of that value, the quantity it recorded as received without making any stock, and what each inventory account holds beyond its stock on hand.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
Example
curl -X GET http://localhost:8000/manufacturing/:order_id/reconcile \
-H "Authorization: Bearer $TOKEN"POST /manufacturing/{order_id}/reconcile
Reconcile Order
Record the value of the materials in a run whose history cannot prove it, and the account that value comes off, so the run can carry on.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
components | array of ReconcileValue | yes | Components |
account | string, optional | -- | Account |
idempotency_key | string, optional | -- | Idempotency Key |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
Example
curl -X POST http://localhost:8000/manufacturing/:order_id/reconcile \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'POST /manufacturing/{order_id}/reopen
Reopen Order
Reopen a completed run, reversing what completing it did.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Request body
KeyBody, optional
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
Example
curl -X POST http://localhost:8000/manufacturing/:order_id/reopen \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'POST /manufacturing/{order_id}/repair-output
Repair Order Output
Put right what an older release recorded about a run's output, so it can be unwound or carry on.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
output_item_id | string, optional | -- | Output Item Id |
idempotency_key | string, optional | -- | Idempotency Key |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
Example
curl -X POST http://localhost:8000/manufacturing/:order_id/repair-output \
-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. |
Request body
KeyBody, 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/resume \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'POST /manufacturing/{order_id}/return
Return Order Materials
Return issued components to the lots they came from, at the value they were issued at. Omitting `items` returns everything issued.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Request body
celerp_manufacturing__routes__ReturnBody, optional
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
Example
curl -X POST http://localhost:8000/manufacturing/:order_id/return \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'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. |
Request body
KeyBody, 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/start \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'POST /manufacturing/{order_id}/undo-receipt
Undo Order Receipt
Take back a lot this run received, while it is exactly as the run left it.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | path | yes | string | Identifier of the manufacturing order. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
lot_item_id | string | yes | Lot Item Id |
idempotency_key | string, optional | -- | Idempotency Key |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
Example
curl -X POST http://localhost:8000/manufacturing/:order_id/undo-receipt \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'