---
title: "Get all products"
method: GET
path: "/v2/billing/products"
tags: ["Billing"]
---

# Get all products

`GET /v2/billing/products`

Returns a list of products with optional filters.

The content field structure varies by quantity type and includes price, cost, taxable, and other type-specific fields:
- **MANUAL**: price, cost, taxable, billing, quantity, productIds
- **DEVICE_COUNTS**: price, cost, taxable, billing, anyRole, groupIds, allGroups, nodeRoles, productIds
- **END_USER_COUNTS**: price, cost, taxable, billing, anyRole, endUserRoles, matchAllRoles, productIds
- **BACKUP_STORAGE_COUNTS**: price, cost, taxable, billing, anyRole, groupIds, allGroups, nodeRoles, isStorageIncludedPerDevice, includedStorage, productIds
- **TIME_ENTRIES**: price, cost, taxable, billing, autoRoundTimeEntries, laborCodes, userRoles, onSiteMultiplier, offHoursMultiplier, remoteMultiplier, normalHoursMultiplier, scheduleTypeOffHours, scheduleTypeNormalHours, locationTypeOnSite, locationTypeRemote, includeTime, includedTimeAmountUnlimited, includedHours, unusedCarryOverUnlimited, carryOverLimit, balance, productIds

## Query parameters

- `name` string
- `quantityType` string
- `accountCode` string

## Response `200`

List of products successfully retrieved

- object[]
  - `id` integer — Unique identifier of the product.
  - `name` string — Name of the product.
  - `description` string — Description of the product.
  - `quantityType` 'MANUAL' | 'DEVICE_COUNTS' | 'TIME_ENTRIES' | 'END_USER_COUNTS' | 'BACKUP_STORAGE_COUNTS' | 'SOFTWARE_LICENSE' — Quantity type of the product.
  - `content` object — Additional content/configuration for the product. Structure varies by quantity type. Includes price, cost, taxable, and other type-specific fields.
  - `createTime` number, double — Timestamp when the product was created.
  - `updateTime` number, double — Timestamp when the product was last updated.
  - `accountId` integer — Account ID associated with the product.
  - `group` boolean — Whether the product is a group product.
  - `taxId` integer, nullable — Tax ID associated with the product. Null if no specific tax is set.
  - `inheritTaxFromAgreement` boolean — Whether the product inherits tax from the agreement.
  - `active` boolean — Indicates if the product is active.

## Other responses

- `500` — Permission denied

---

[API](https://skmtc.net/ninjarmm/apis/ninjaone-public-api-2-0.md) · [All operations](https://skmtc.net/ninjarmm/apis/ninjaone-public-api-2-0/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ninjarmm/ninjaone-public-api-2-0/revisions/753f26d46650/schema)
