Every company has a structured product tree: segments contain product lines, which contain individual products. Each node carries a lifecycle status (active, announced, discontinued, rumored) and, where available, a canonical product_url.
Hierarchy
| Level | What it is | Example (Nvidia) |
|---|
segment | Top-level business segment | Compute & Networking |
product_line | Product line within a segment | Data Center Accelerators |
product | Individual product or service | Blackwell GPUs |
Lifecycle statuses
| Status | Meaning |
|---|
active | Currently available |
announced | Announced but not yet released |
discontinued | No longer available |
rumored | Reported but not confirmed |
Get a company’s products
curl "https://api.particle.pro/v1/companies/nvidia/products" \
-H "X-API-Key: $PARTICLE_API_KEY"
The response uses the standard list envelope. data is the array of root-level segment nodes; each node may contain children of the next level down, recursively.
{
"data": [
{
"id": "6BsVni5re7N3JP5H5BzVjD",
"name": "Automotive",
"level": "segment",
"status": "active",
"children": [
{
"name": "NVIDIA DRIVE",
"level": "product_line",
"status": "active",
"children": [
{ "name": "DRIVE AGX Hardware & OS", "level": "product", "status": "active" },
{ "name": "DRIVE Hyperion Platform", "level": "product", "status": "active" },
{ "name": "DRIVE Software Suite", "level": "product", "status": "active" }
// …
]
}
// …
]
},
{
"id": "4P3oLUiJTgz5dcjdwy9iLb",
"name": "Compute & Networking",
"level": "segment",
"status": "active",
"children": [
{
"name": "Data Center Accelerators",
"level": "product_line",
"status": "active",
"children": [
{ "name": "Blackwell GPUs", "level": "product", "status": "active" },
{ "name": "Hopper GPUs", "level": "product", "status": "active" },
{ "name": "Grace and Vera CPUs", "level": "product", "status": "active" }
// …
]
}
// …
]
}
// …
],
"has_more": false,
"cursor": null
}
Filtering by status
By default only active products are returned. Pass status as a comma-separated list to include other lifecycle stages:
# Active and announced
curl "https://api.particle.pro/v1/companies/nvidia/products?status=active,announced" \
-H "X-API-Key: $PARTICLE_API_KEY"
# Only discontinued
curl "https://api.particle.pro/v1/companies/nvidia/products?status=discontinued" \
-H "X-API-Key: $PARTICLE_API_KEY"
Tree integrity is preserved when filtering: if a parent doesn’t match the status filter it’s removed along with its children, even if some children individually match. To traverse without parent constraints, request all statuses and filter on your side.
Common patterns
Flatten to a list of products
function flattenProducts(nodes, out = []) {
for (const node of nodes) {
if (node.level === "product") out.push(node);
if (node.children) flattenProducts(node.children, out);
}
return out;
}
const { data: segments } = await fetch(".../v1/companies/nvidia/products", {
headers: { "X-API-Key": process.env.PARTICLE_API_KEY },
}).then((r) => r.json());
const products = flattenProducts(segments);
Track product launches
Combine ?status=announced with periodic polling to see when companies announce new products. Combine with ?status=discontinued to detect end-of-life.