> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rxscale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Products

> List products and SKUs via the Management API

# Products

Retrieve a paginated list of all products for your organisation, including connected SKUs, shop SKUs, shop products, and pharmacy SKUs.

## List Products

```bash theme={null}
GET /v1/management/products
```

<ParamField query="page" type="integer" default="0">
  Page number (0-indexed)
</ParamField>

<ParamField query="limit" type="integer" default="50">
  Number of products per page
</ParamField>

**Required permission:** `product:read`

### Example Request

```bash theme={null}
curl -X GET "https://api.rxscale.com/v1/management/products?page=0&limit=25" \
  -H "X-API-Key: your-api-key-here"
```

### Response

```json theme={null}
{
  "products": [
    {
      "uid": "prod-abc123",
      "display_name": "Medication X",
      "skus": [
        {
          "uid": "sku-456",
          "display_name": "Medication X 100mg",
          "pzn": "12345678",
          "shop_skus": [
            {
              "uid": "ssku-789",
              "shop_uid": "shop-001",
              "external_id": "shopify-variant-123"
            }
          ],
          "pharmacy_skus": [
            {
              "uid": "psku-012",
              "pharmacy_uid": "ph-xyz",
              "price": 1299,
              "stock": 50,
              "external_id": "EXT-001"
            }
          ]
        }
      ],
      "shop_products": [
        {
          "uid": "sp-345",
          "shop_uid": "shop-001",
          "external_id": "shopify-product-456"
        }
      ]
    }
  ],
  "totalRegistries": 42,
  "totalPages": 2
}
```

### Response Fields

| Field                             | Type    | Description                                    |
| --------------------------------- | ------- | ---------------------------------------------- |
| `products`                        | array   | List of product objects                        |
| `products[].uid`                  | string  | Product UID                                    |
| `products[].display_name`         | string  | Product display name                           |
| `products[].skus`                 | array   | SKUs belonging to this product                 |
| `products[].skus[].pzn`           | string  | Pharmazentralnummer (German pharmaceutical ID) |
| `products[].skus[].pharmacy_skus` | array   | Pharmacy-specific SKU data (price, stock)      |
| `totalRegistries`                 | integer | Total number of products                       |
| `totalPages`                      | integer | Total number of pages for the given limit      |

<Note>
  The `price` field on pharmacy SKUs is in **euro cents** (e.g., `1299` = 12.99 EUR).
</Note>

## Get Product Details

```bash theme={null}
GET /v1/management/products/{product_uid}
```

<ParamField path="product_uid" type="string" required>
  The product UID
</ParamField>

**Required permission:** `product:read`

### Example Request

```bash theme={null}
curl -X GET "https://api.rxscale.com/v1/management/products/prod-abc123" \
  -H "X-API-Key: your-api-key-here"
```

### Response

Returns the same product structure as the list endpoint, but for a single product including all connected SKUs, shop SKUs, shop products, and pharmacy SKUs.

```json theme={null}
{
  "uid": "prod-abc123",
  "display_name": "Medication X",
  "skus": [...],
  "shop_products": [...]
}
```
