Customer price lists. Prices need cost:read.
idintegercodestringnullabledescriptionstringnullableend_datestringnullableitemsarray of objectsnullableOn GET /price-lists/{price_list_id} only; null on the list.
itemscustom_namestringnullableThe name documents use for the product; null means its own name.
pricenumbernullableThe list price. Requires cost:read; null means redacted.
product_idintegernamestringnullablestart_datestringnullable/price-listssales:readitems is null here: retrieve a price list for its prices.
searchstringnullableFree-text match on code, name or description.
namestringnullablePartial match on the name.
sortstringnullableComma-separated field:direction pairs, e.g. id:desc. Sortable: code, id, name. id is always added last, so paging is stable.
limitintegerRows to return. Maximum 200.
offsetintegerRows to skip. Maximum 10000: to read further, narrow the filters or page with updated_since.
data, with pagination.curl "https://public-api.nutrasoft.ca/v1/price-lists?limit=50" \
-H "Authorization: Bearer $NUTRASOFT_API_KEY"{
"data": [
{
"id": 123,
"code": "SAMPLE-01",
"description": "string",
"end_date": "2026-09-10T14:30:00Z",
"items": null,
"name": "Sample name",
"start_date": "2026-09-10T14:30:00Z"
}
],
"pagination": {
"limit": 50,
"offset": 0,
"total": 1,
"has_more": false
},
"order": "id:asc"
}/price-lists/{price_list_id}sales:readIncludes the list's products. Prices require cost:read.
price_list_idintegerrequiredThe price list's id.
data.curl "https://public-api.nutrasoft.ca/v1/price-lists/123" \
-H "Authorization: Bearer $NUTRASOFT_API_KEY"{
"data": {
"id": 123,
"code": "SAMPLE-01",
"description": "string",
"end_date": "2026-09-10T14:30:00Z",
"items": [
{
"custom_name": "Sample name",
"price": 12.5,
"product_id": 123
}
],
"name": "Sample name",
"start_date": "2026-09-10T14:30:00Z"
}
}