What's changing
The Get Costed BOM endpoint is now deprecated:
GET /rfqs/{id}/costed-bomGET /projects/{id}/costed-bom
(Both return the same data – in Luminovo, a project and an RfQ are the same thing.)
The Costed BOM endpoint was originally built to mirror Luminovo's Excel costed-BOM export one-to-one in a single API call. That made the response very large and slow to generate for bigger BOMs, and harder to integrate against reliably.
We've replaced it with a set of smaller, focused endpoints. Each one returns a single, well-defined piece of the picture – projects, sourcing scenarios, purchase options, offers, and component data – so your integration is faster, more predictable, and easier to maintain.
Nothing breaks today. The Costed BOM endpoint still works, and we'll give advance notice before it's removed. It will not receive further improvements, so we recommend planning your migration now, and building any new integration on the new endpoints from the start.
The new endpoints
Everything the Costed BOM bundled together is now available from the endpoints below.
Available today (Q2 2026)
Endpoint | Method & path |
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
Coming early Q3 2026
Endpoint | What it gives you |
Get part | Full part master data for a single part – manufacturer, MPN, description, specifications, compliance, and lifecycle. |
Assembly cost breakdown | A line-by-line cost breakdown of an assembly. |
💡 Assembly-level cost totals (material, manufacturing, and additional costs, plus whether the cost is frozen) are already available today via Get calculated assembly cost. The more detailed, line-by-line breakdown arrives in early Q3.
How the old data maps to the new endpoints
The Costed BOM combined four kinds of information. Here's where each now lives:
In the Costed BOM | Now available from |
BOM structure – projects, assemblies, designators, quantities | Get all projects · Get a project · Get BOM tree |
Part & component data – IPN, MPN, manufacturer, description, compliance, lifecycle | Get component by IPN · List components (+ Get part, early Q3) |
Sourcing & pricing – offers, selected purchase options, supplier, unit price, MOQ/MPQ, availability | Get purchase options · Get offers by part · Get an offer |
Cost summaries – per-assembly unit/total cost | Get calculated assembly cost (+ line-by-line breakdown, early Q3) |
Migrating by use case
1. Create internal part numbers (IPNs) for parts that don't have one yet
Goal: For parts that don't yet have an internal part number in your ERP, create the IPN using Luminovo's part data.
Pull your component library from Luminovo:
List components (
GET /components) returns a paginated list of every component in your tenant – page through until you've read them all.Get the list of all MPNs connected to your IPNs.
Pull the purchase options for the sourcing scenario (
GET /sourcing-scenarios/{id}/purchase-options) and pull the corresponding offers (GET /offers/{id})Extract the MPN and the manufacturer from the offer data.
Compare the data from 2(a) to the data from 1(b). If the MPN is not part of any IPN, use the MPN data to create a new part in your ERP system.
2. Update prices for parts using Luminovo data
Goal: Refresh the prices in your ERP with Luminovo's current offer data.
Gather the part IDs you want priced. You'll find these on your components (from List components or Get component by IPN – the
linked_partscarry their part IDs).Call Get offers by part (
POST /offers/find) with the part IDs:{ "ids": ["<part-id-1>", "<part-id-2>"] }Part IDs can be off-the-shelf, custom, or component (IPN) IDs. Any ID that can't be resolved is returned in
not_found_ids.The response groups offers by part. Each offer carries the supplier, availability, and one or more price tiers – each tier has a
unit_pricesuch as{ "amount": "0.0520", "currency": "EUR" }and the quantity at which it applies, plus MOQ/MPQ.Pick the relevant price and write it back to your ERP.
💡 Want only the prices Luminovo actually selected for a sourcing scenario (rather than all available market offers)? Use Get purchase options (next section) – each selected offer comes with its price.
3. Pre-fill purchase orders using purchase options
Goal: Create purchase orders in your ERP, pre-filled from the purchase options Luminovo selected.
Get all projects (
GET /projects) → find the project.Get a project (
GET /projects/{id}) → the response lists the project's sourcing scenarios; take the sourcing scenario ID you want. (Optional: call Get a sourcing scenario (GET /sourcing-scenarios/{id}) for its demands, currency, and settings.)Get purchase options (
GET /sourcing-scenarios/{id}/purchase-options) → the list of selected offers, ready for PO creation. Each entry includes:quantity– the number of offer units to orderunit_of_measurement– what one offer unit represents (e.g. 1 piece, or 5 m of cable)purchase_quantity– the total in base units (quantity × unit_of_measurement.value)pricing
the sourcing line items the offer fulfills
offer_id
(Optional) Use the
offer_idwith Get an offer (GET /offers/{id}) to pull the full offer – supplier, all price tiers, and availability.Map each purchase option to a PO line in your ERP.
This endpoint's response is designed specifically for ERP systems to create purchase orders.
