Skip to main content
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

LevelWhat it isExample (Nvidia)
segmentTop-level business segmentCompute & Networking
product_lineProduct line within a segmentData Center Accelerators
productIndividual product or serviceBlackwell GPUs

Lifecycle statuses

StatusMeaning
activeCurrently available
announcedAnnounced but not yet released
discontinuedNo longer available
rumoredReported 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.
Response (truncated)
{
  "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.