# Price and shipping for one catalog product

**GET** `/catalog/products/{product_id}/pricing`

## Parameters

### `product_id` (_path_, required)

Catalog product id (`products.id`)

- **Type:** `string`
- **Example:** `"34"`
- **Constraints:** pattern `^[1-9]\d*$`

### `delivery_country` (_query_, required)

ISO 3166-1 alpha-2 delivery country code (e.g. FR). Filters catalog by available_countries; cart line items must use a country allowed for the catalog product.

- **Type:** `string`
- **Example:** `"FR"`

### `currency` (_query_, required)

ISO 4217 alpha-3 currency code for the price row to return

- **Type:** `string`
- **Example:** `"EUR"`

### `acquisition_mode` (_query_, required)

LEASING vs one-time purchase (BUY). For catalog pricing, LEASING selects monthly lease; BUY selects purchase price.

- **Type:** `string`
- **Example:** `"LEASING"`
- **Enum:** `"LEASING"`, `"BUY"`

### `keyboard_layout` (_query_, optional)

Required when the catalog product has a keyboard or is a keyboard product; same enum as cart `keyboard_layout` and device characteristics.

- **Type:** `string`
- **Example:** `"FRENCH_AZERTY"`
- **Enum:** `"FRENCH_AZERTY"`, `"SPANISH_QWERTY"`, `"ITALIAN_QWERTY"`, `"INTERNATIONAL_ENGLISH_QWERTY"`, `"GERMAN_QWERTZ"`, `"PORTUGUESE_QWERTY"`, `"ENGLISH_QWERTY"`, `"SWISS_QWERTZ"`, `"AMERICAN_ENGLISH_QWERTY"`, `"CANADIAN_ENGLISH_QWERTY"`, `"DUTCH_QWERTY"`

## Responses

### 200

Shipping bounds and a single price amount for the requested currency and acquisition_mode (LEASING vs BUY)

**application/json**

_Schema ref:_ `#/components/schemas/GetCatalogProductPricingResponse` (GetCatalogProductPricingResponse)

```json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "min_shipping": {
          "type": "number",
          "nullable": true
        },
        "max_shipping": {
          "type": "number",
          "nullable": true
        },
        "amount": {
          "type": "number"
        }
      },
      "required": [
        "min_shipping",
        "max_shipping",
        "amount"
      ]
    }
  },
  "required": [
    "data"
  ]
}
```

### 400

Validation or business rule error

**application/json**

_Schema ref:_ `#/components/schemas/CatalogPricingBadRequestResponse` (CatalogPricingBadRequestResponse)

```json
{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "error": {
          "type": "string"
        }
      },
      "required": [
        "error"
      ]
    },
    {
      "type": "object",
      "properties": {
        "error": {
          "type": "string",
          "enum": [
            "KEYBOARD_LAYOUT_REQUIRED"
          ]
        }
      },
      "required": [
        "error"
      ]
    }
  ]
}
```

### 404

Resource not found

**application/json**

_Schema ref:_ `#/components/schemas/CatalogPricingNotFoundErrorResponse` (CatalogPricingNotFoundErrorResponse)

```json
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string",
      "enum": [
        "COMPANY_NOT_FOUND",
        "COUNTRY_NOT_FOUND",
        "DELIVERY_COUNTRY_NOT_FOUND",
        "PRODUCT_NOT_FOUND",
        "PRODUCT_PRICING_UNAVAILABLE"
      ]
    }
  },
  "required": [
    "error"
  ]
}
```

### 500

Internal server error

**application/json**

_Schema ref:_ `#/components/schemas/CatalogPricingInternalErrorResponse` (CatalogPricingInternalErrorResponse)

```json
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string",
      "enum": [
        "INTERNAL_ERROR"
      ]
    }
  },
  "required": [
    "error"
  ]
}
```

## Security

```json
[
  {
    "bearerAuth": []
  }
]
```

**bearerAuth:** Bearer token using a Fleet platform API key (flt_sk_…).

---

_Generated from the OpenAPI specification for raw Markdown / tooling use._
