List product lines

Operation ID: productLines

Group: Accounting › Products › Product Lines

Open in the interactive reference

GET /accounting/product-lines

Read-only: Reads and returns; changes nothing.

Lists product lines. Each item is the product line without its tax records, pricing, and external identifiers. To get the tax records, pricing, and external identifiers, use GET accounting/product-lines/:id or POST accounting/product-lines/search. To filter by free text, product line number, CRM identifier, or external identifier, use POST accounting/product-lines/search.

Parameters

Name In Type Required Description
Api-Version header string · v1 yes The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1.

Query surface

Response

200 Success

Under data, an array of productLinesRow:

Field Type Required Filter Sort Description
id string no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes The unique identifier for the product line.
productId string no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes The product the product line belongs to. See id on GET accounting/products/:id.
productName string | null no no yes The display name of the product. See productName on GET accounting/products/:id.
productLineNumber string | null no no no The product line number, assigned by the system and unique within the tenant. Example: 'PL-1001'.
name string no no yes The name of the product line.
lineType string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes The type of product line. Possible values: 'recurring', 'oneTime', 'commitWithOverage', 'payAsYouGo', 'usage', 'prepaid', 'billableTime', 'billableTravelExpense', 'billablePassThrough'.
priceModel string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes How the product line is priced. Possible values: 'flat', 'perUnit', 'tiered', 'volume', 'stairstep', 'rateCard', 'thresholdBased'.
pricingTerm string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes The pricing term of the product line. Possible values: 'monthly', 'biMonthly', 'once', 'quarterly', 'semiAnnually', 'annually'.
invoiceFrequency string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes How often the product line is invoiced. Possible values: 'monthly', 'biMonthly', 'quarterly', 'semiAnnually', 'annually', 'once', 'custom', 'template', 'milestone', 'allAtOnce', 'termEnd'.
unitOfMeasure string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes The unit the product line's quantities are measured in. Possible values: 'instance', 'gigabyte', 'terabyte', 'user', 'seat', 'minute', 'hour', 'day', 'month', 'each', 'license', 'activeUser', 'megabyte', 'message', 'text', 'platform', 'employee', 'personnel', 'credit', 'currency', 'package', 'case', 'word', 'record'.
taxMode string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes How the product line's prices are quoted for tax. Possible values: 'TaxInclusive', 'TaxExclusive'. Absent if no tax provider was enabled in your tenant when the product line was last saved.
enforceListPrice boolean | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) yes Whether the list price of the product line is enforced. When true, the list price comes from the price book and can't be changed on a sales order, a quote, or a subscription change. An unset value counts as true.
hasUsage boolean | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) yes Whether the product line has a paired 'usage' line. True for 'prepaid' lines, and for 'recurring' lines whose priceModel is 'thresholdBased' or whose commitInvoicing has a value.
hasBeenUsed boolean | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) yes Whether the product line is on at least one sales order.
commitInvoicing string | null no no no When the minimum spend commit of a 'recurring' product line is invoiced. Possible values: 'advance', 'arrears'. Absent when the product line has no minimum spend commit.
prepaidBalanceOverConsumptionBehavior string | null no no no What happens when usage exceeds the prepaid balance. Possible values: 'allowNegative', 'overage'. Applies only when lineType is 'prepaid'.
prepaidBalanceRolloverAtRenewal boolean | null no no no Whether the remaining prepaid balance rolls over at renewal. Applies only when lineType is 'prepaid'.
parentProductLineId string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes The product line this 'usage' line is paired with. See id on GET accounting/product-lines/:id. Absent when the product line is not a paired 'usage' line.
crmProductId string | null no no no The product line's identifier in an external CRM system.
dataSource string | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) yes The source system or import job that produced the product line. Examples: 'Salesforce', 'NetSuite', 'Stripe'.
createdDate date-time | null no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) yes The date and time the product line was created, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
lastModifiedDate date-time no Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) yes The date and time the product line last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
{
  "data": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "productName": "<productName>",
      "productLineNumber": "<productLineNumber>",
      "name": "<name>",
      "lineType": "<lineType>",
      "priceModel": "<priceModel>",
      "pricingTerm": "<pricingTerm>",
      "invoiceFrequency": "<invoiceFrequency>",
      "unitOfMeasure": "<unitOfMeasure>",
      "taxMode": "<taxMode>",
      "enforceListPrice": true,
      "hasUsage": true,
      "hasBeenUsed": true,
      "commitInvoicing": "<commitInvoicing>",
      "prepaidBalanceOverConsumptionBehavior": "<prepaidBalanceOverConsumptionBehavior>",
      "prepaidBalanceRolloverAtRenewal": true,
      "parentProductLineId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "crmProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "dataSource": "<dataSource>",
      "createdDate": "2026-01-15T09:30:00.000Z",
      "lastModifiedDate": "2026-01-15T09:30:00.000Z"
    }
  ],
  "pagination": {
    "hasMore": true,
    "nextCursor": "<nextCursor>"
  }
}

Statuses