---
title: "List company products"
method: GET
path: "/v1/companies/{id}/products"
tags: ["Companies", "tier:standard"]
---

# List company products

`GET /v1/companies/{id}/products`

## Request

- Base URL: `https://api.particle.pro`
- URL: `https://api.particle.pro/v1/companies/{id}/products`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Returns the product hierarchy for a company as a nested tree. Segments contain product lines, which contain individual products. Identify the company by slug (e.g., 'apple'), domain, or ID. Defaults to active products only.

## Path parameters

- `id` string, required: Company slug (e.g., 'apple'), domain (e.g., 'apple.com'), or ID

## Query parameters

- `status` string[], nullable: Filter by lifecycle status (default: active), comma-separated for union. Case-insensitive.

## Response `200`

OK

- PageCompanyProduct
  - `cursor` string: Pass to next request for more results
  - `data` CompanyProduct[], nullable, required: List of results
    - `children` CompanyProduct[], nullable: Child products in the hierarchy
    - `company_id` string, required: Parent company identifier (domain, slug, or encoded ID)
    - `description` string: Product description
    - `id` string, required: Unique identifier
    - `level` string, required: Hierarchy position: segment, product_line, or product
    - `name` string, required: Product name
    - `product_url` string: Canonical product page URL
    - `status` string, required: Lifecycle status: active, announced, discontinued, or rumored
    - `updated_at` string, date-time: Last updated timestamp
  - `has_more` boolean, required: Whether more results exist

## Other responses

- `402`: Payment Required. Read error_code. payment_required is the x402 path: either a keyless request being challenged — pay $0.03 in USDC per request (requirements in the PAYMENT-REQUIRED header) or send a pp_ API key — or a supplied payment that failed settlement (details in the PAYMENT-RESPONSE header; retry the same signature before signing a new one). See https://docs.particle.pro/x402. Any other code means the credential was accepted but does not cover this request (a plan or session gate such as premium_required or paid_plan_confirmation_required); its resolve says how to obtain access, and no payment header is sent.
- `default`: Error

---

[API](https://skmtc.dev/particle/apis/particle-api.md) · [All operations](https://skmtc.dev/particle/apis/particle-api/llms.txt) · [OpenAPI document](https://skmtc.dev/particle/apis/particle-api/revisions/416ba82ab9d7?raw)
