---
title: "List Products"
method: GET
path: "/locations/{location_id}/products"
tags: ["Products"]
---

# List Products

`GET /locations/{location_id}/products`

Retrieve Products for a Location as JSON:API resource objects.

Pagination uses `page` and `limit`. The response includes the effective
`page`, calculated `offset`, and `limit` in `meta.pagination`.

Related data can be requested by repeating the `include` parameter. The
`actual_cost` value is returned only when requested and when the Business
User has permission to view it.

## Path parameters

- `location_id` integer, required

## Query parameters

- `filter[ids][]` integer[]
- `filter[related_loyalty_entity_slug]` 'common' | 'loyalty_abonement' | 'loyalty_certificate'
- `page` integer
- `limit` integer
- `include` string[]

## Headers

- `Accept` string, required
- `Authorization` string, required

## Response `200`

Products retrieved successfully

- object
  - `data` ProductResource[], required
    - `type` 'good', required — Literal JSON:API resource type
    - `id` string, required — Product ID
    - `attributes` object, required
      - `category_id` integer, required — Product Category ID
      - `title` string, required — Product name
      - `sale_unit_id` integer, required — Sale Unit ID
      - `consumable_unit_id` integer, required — Consumable Unit ID
      - `sale_unit_to_consumable_unit_ratio` number, required — Number of Consumable Units in one Sale Unit
      - `loyalty_abonement_type_id` integer, nullable, required — Membership type ID, when the Product represents a membership
      - `loyalty_certificate_type_id` integer, nullable, required — Certificate type ID, when the Product represents a certificate
      - `cost` number, required — Product sale price
      - `actual_cost` number, nullable, required — Current Product cost when `actual_cost` is requested and the Business User has permission to view it; otherwise `null`.
      - `is_chain` boolean, required — Whether the Product belongs to the Chain catalog
    - `relationships` object — Present when related data is requested through `include`
      - `loyalty_abonement_type` ToOneRelationship
        - `data` ResourceIdentifier, required
          - `type` string, required
          - `id` string, required
      - `loyalty_certificate_type` ToOneRelationship
        - `data` ResourceIdentifier, required
          - `type` string, required
          - `id` string, required
      - `mark_settings` ToOneRelationship
        - `data` ResourceIdentifier, required
          - `type` string, required
          - `id` string, required
      - `storage_amounts` ToManyRelationship
        - `data` ResourceIdentifier[], required
          - `type` string, required
          - `id` string, required
  - `included` IncludedResource[] — Resources requested through `include`, when available
    - `type` string, required
    - `id` string, required
    - `attributes` object, required
    - `relationships` object
  - `meta` object, required
    - `pagination` Pagination, required
      - `page` integer, required
      - `offset` integer, required
      - `limit` integer, required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden - No permission to read Products for this Location
- `404` — Location not found
- `422` — Invalid filter, pagination, or include value

---

[API](https://skmtc.net/alteg/apis/business-management.md) · [All operations](https://skmtc.net/alteg/apis/business-management/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/alteg/business-management/revisions/bc9cbcc9c5f1/schema)
