Get How a Product Is Made
GET/api/manufacturing/products/:product/chain
How a product is made, worked out by walking its recipes.
manufacturing:readGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: requires a Bearer token.
There is no stored chain. Starting from the product's live recipe, each component that itself has a live recipe is the stage before it, so the stages are derived and can never disagree with the recipes.
Returns an empty stages array when the product has no live recipe, and a single-element array when it is made in one step. Only the first stage lists components — every later stage consumes the stage before it.
Each stage carries the terms of the product it produces: is_contract_manufactured, contractor_name, service_fee_rate and cost_basis for an outsourced stage, or operations_cost_per_unit — the absorbed labour and overhead from the recipe's own operations, costed for one output unit — for a stage run in house. A vendor's charge is a payable and in-house work is absorbed cost, so the two are reported separately and never summed into one field. operations_cost_per_unit is null when the recipe has no operations.
A chain deeper than 5 stages, or recipes that reference each other in a loop, are reported in blockers.
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.