Get the aggregated compliance and lifecycle of a component (IPN).
A single IPN in Luminovo can be linked to many off-the-shelf manufacturer parts (directly, or indirectly through matched generic parts). Each of those linked parts has its own compliance and lifecycle data. The fields returned here are the result of aggregating across all linked off-the-shelf parts of the IPN:
Compliance fields (
rohs_compliant,reach_compliant,aecq_compliant) — the worst status across all linked parts is returned. The ordering, from worst to best, is:NonCompliant<Unknown<NotRequired<CompliantWithExemption<Compliant. In other words, a singleNonCompliantlinked part makes the IPNNonCompliant; the IPN is only reported asCompliantif every linked part is. When no linked parts are available, the default isUnknown.lifecycle_status— the best lifecycle across all linked parts is returned. The ordering, from worst to best, is:Obsolete<Aftermarket<EndOfLife<NotRecommendedForNewDesigns<Acquired<Unknown<Active<PreRelease. So as long as at least one linked part isActive, the IPN is reported asActive, even if other linked parts areEndOfLifeorObsolete. This is intentional: the user of the IPN can always fall back to the healthiest available match.lifecycle_yteol(years to end of life) — the maximum value across all linked parts that report a YTEOL, rounded down to one decimal place. This mirrors the "best case" semantics oflifecycle_status. Returnsnullif no linked part has a YTEOL value.std_factory_lead_time(days) — the minimum factory lead time across every offer on every off-the-shelf part linked to the IPN, including both tenant-private and public offers. Returnsnullif none of those offers carries a factory lead time.
Note that these are the same aggregation rules used by the Component Library and BoM Health dashboards in the Luminovo UI, so the values returned here match what you see in the product.
curl -i -X GET \
'https://api.luminovo.com/components/{ipn}/risk' \
-H 'Accept: application/api.luminovo.component-risk-v1+json' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'{ "components": [ { … } ] }