# List prices in a price list

URL: https://docs.sparklayer.io/developers/api/pricing/get-pricing-by-price-list
Operation: `GET /api/v1/price-lists/{slug}/pricing` (operationId `getPriceListPricingData`)
OpenAPI spec: https://docs.sparklayer.io/openapi/pricing.yaml

Returns every price stored on the price list, one entry per SKU and quantity break, ordered by SKU. Prices derived from the list's rules are not included. Send the request with a `Content-Type: text/csv` header to receive the same data as a CSV file.

Returns `204` with no body if the price list has no prices, and `404` if the price list does not exist.

`GET /api/v1/price-lists/{slug}/pricing`

**Base URLs:** `https://app.sparklayer.io` (Live), `https://test.app.sparklayer.io` (Test)

**Authentication:** send `Authorization: Bearer <access_token>` and `Site-Id: <site id>` with every request. Get the token from [Get an access token](https://docs.sparklayer.io/developers/api/core/get-an-access-token.md); see [Authentication](https://docs.sparklayer.io/developers/authentication.md).

### Example request

```bash
curl "https://app.sparklayer.io/api/v1/price-lists/base-list/pricing" \
  -H "Authorization: Bearer $SPARKLAYER_TOKEN" \
  -H "Site-Id: $SPARKLAYER_SITE_ID"
```

Set `SPARKLAYER_TOKEN` to an access token and `SPARKLAYER_SITE_ID` to your Site ID. For the test environment, use `https://test.app.sparklayer.io`.

### Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `slug` | string | Yes | The price list's slug. Example: `base-list` |

### Header parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `Site-Id` | string | Yes | Your SparkLayer Site ID, from Settings > API in the SparkLayer Dashboard. Example: `jones-climbing` |

### Responses

#### 200: The prices stored on the price list, as JSON or, when requested, CSV.

`application/json`:

An array. Each item:

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `[].quantity` | integer | | The quantity at which the specified price is applicable. This allows for quantity discount pricing to be set up. Default: `1`. Min 1. |
| `[].price` | number (float) | | |
| `[].unit_of_measure` | string \| null | | The unit of measure associated with this quantity. When specifying a unit of measure, it must match the pattern. To remove any value set, either omit the property or set the value as null. Pattern: `^[a-zA-Z0-9-]+$`. |
| `[].display_tax_rate` | number (float) \| null | | Tax rate used only to display a tax-inclusive price, expressed as a whole percentage (10 means 10%). Stored prices remain net and the eCommerce platform remains authoritative for the tax actually charged at checkout. On an update the field has three states: omit it to leave any stored rate unchanged (so a price-only sync never disturbs it), send null to clear it, or send a value to set it. Min 0, max 100. |
| `[].sku` | string | | Length: max 128. |

```json
[
  {
    "quantity": 1,
    "price": 10.49,
    "unit_of_measure": "pallet",
    "display_tax_rate": 10,
    "sku": "SKU-1"
  }
]
```

`text/csv`:

```csv
sku,   quantity, price
SKU-1, 1,        10.99
```

#### 204: The price list has no prices. No body.

#### Other statuses: An error. The body describes the problem: see [Errors](https://docs.sparklayer.io/developers/errors.md).

`application/problem+json`: the standard error body (below).

### Error body

Error responses with a body use this RFC 7807 problem details object. See [Errors](https://docs.sparklayer.io/developers/errors.md) for every status code and which errors to retry.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `detail` | string | | Human-readable summary of the error |
| `status` | integer | | HTTP Status code returned from API |
| `title` | string | | Machine-readable error code |
| `type` | string | | |

```json
{
  "detail": "Data Validation Failed",
  "status": 400,
  "title": "invalid-api-request-contents",
  "type": "https://docs.sparklayer.io/tech-docs"
}
```
