Search price books
Operation ID: searchPriceBook
Group: Accounting › Price Books
Open in the interactive reference
POST /accounting/price-books/search
Read-only: A read that takes its filters in the body. Changes nothing, and ignores Idempotency-Key.
Searches price books.
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. |
Request body
Required, application/json: searchPriceBookInput.
| Field | Type | Required | Description |
|---|---|---|---|
filters |
object | no | The filters to apply. A price book must match every filter you send. Omit to return all price books. |
filters.id |
string | no | Limits results to the price book with this identifier. The match is exact. |
filters.priceBookNumber |
string | no | Limits results to the price book with this price book number, for example 'PB-000123'. The match is exact. |
filters.priceBookName |
string | no | Limits results to price books whose name contains this text. The match is case-insensitive. |
filters.isStandard |
boolean | no | Limits results to the standard price book when true, or to non-standard price books when false. |
filters.active |
boolean | no | Limits results to active price books when true, or inactive ones when false. |
filters.dataSource |
string | no | Limits results to price books whose data source is this value. |
filters.createdDate |
object | no | Limits results to price books created within this date range. Both bounds are inclusive, and omitting one leaves that side open. |
filters.createdDate.start |
date-time | no | The inclusive start of the range, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
filters.createdDate.end |
date-time | no | The inclusive end of the range, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
filters.lastModifiedDate |
object | no | Limits results to price books last changed within this date range. Both bounds are inclusive, and omitting one leaves that side open. |
filters.lastModifiedDate.start |
date-time | no | The inclusive start of the range, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
filters.lastModifiedDate.end |
date-time | no | The inclusive end of the range, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
page |
object | no | Pagination controls. Omit for the first page. |
page.cursor |
string | no | The cursor from the previous response's pagination.nextCursor. Omit on the first request. |
page.size |
number | no | The number of price books per page. Defaults to 50. A value above 200 is treated as 200, not rejected. |
{
"filters": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"priceBookNumber": "<priceBookNumber>",
"priceBookName": "<priceBookName>",
"isStandard": true,
"active": true,
"dataSource": "<dataSource>",
"createdDate": {
"start": "2026-01-15T09:30:00.000Z",
"end": "2026-01-15T09:30:00.000Z"
},
"lastModifiedDate": {
"start": "2026-01-15T09:30:00.000Z",
"end": "2026-01-15T09:30:00.000Z"
}
},
"page": {
"cursor": "<cursor>",
"size": 0
}
}
Response
200 Success
Under data (searchPriceBookOutput):
| Field | Type | Required | Description |
|---|---|---|---|
items |
array<object> | yes | The price books that match, ordered by id. An empty array when nothing matches. |
items[].id |
string | yes | The unique identifier for the price book. |
items[].priceBookName |
string | yes | The display name of the price book, unique within the tenant and compared case-insensitively. |
items[].priceBookNumber |
string | no | The price book number, for example 'PB-000123'. Absent until a number range assigns one. |
items[].description |
string | no | A free-form description of the price book. Absent when none is set. |
items[].active |
boolean | no | Whether the price book is active and usable in transactions. |
items[].isStandard |
boolean | no | Whether this is the standard (default) price book. Only one price book is the standard at a time. It cannot be set through this API. |
items[].dataSource |
string | no | The source system that provided the price book data. Absent when none is set. |
items[].createdDate |
date-time | no | The date and time the price book was created, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
items[].lastModifiedDate |
date-time | yes | The date and time the price book record last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
pagination |
object | yes | The pagination cursor for this page. |
pagination.nextCursor |
string | no | The cursor for the next page. Pass it as page.cursor. Absent on the last page. |
pagination.hasMore |
boolean | yes | True when more matches remain beyond this page. |
{
"data": {
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"priceBookName": "<priceBookName>",
"priceBookNumber": "<priceBookNumber>",
"description": "<description>",
"active": true,
"isStandard": true,
"dataSource": "<dataSource>",
"createdDate": "2026-01-15T09:30:00.000Z",
"lastModifiedDate": "2026-01-15T09:30:00.000Z"
}
],
"pagination": {
"nextCursor": "<nextCursor>",
"hasMore": true
}
},
"diagnostics": [
{
"code": "<code>",
"message": "<message>",
"severity": "error",
"path": [
"<path>"
],
"details": "<details>"
}
]
}
Statuses
400— Invalid request or business failure401— The request carries no valid access token.403— Not authorized404— Not found429— Too many requests from this client address. The response has no body and noRetry-Afterheader.500— Internal server error