---
title: "Get merchant"
method: GET
path: "/merchants/{merchant_id}"
tags: ["merchants"]
---

# Get merchant

`GET /merchants/{merchant_id}`

Returns a merchant with its full denormalized catalog tree.

## Path parameters

- `merchant_id` string, required

## Response `200`

The merchant.

- Merchant — Merchant catalog payload containing denormalized catalogs.
  - `id` string, required — Merchant identifier.
  - `name` string, required — Merchant name.
  - `timezone` string, required — IANA timezone for availability schedules.
  - `last_updated` string, date-time — RFC 3339 timestamp of the latest catalog update.
  - `catalogs` Catalog[], required — Catalogs available for the merchant.
    - `id` string, required — Catalog identifier.
    - `name` string, required — Catalog name.
    - `description` string — Catalog description.
    - `categories` CatalogCategory[], required — Ordered top-level categories.
      - `id` string, required — Category identifier.
      - `name` string, required — Category display name.
      - `description` string — Optional category description.
      - `categories` CatalogCategory[] — Ordered child categories for nested category trees.
      - `items` CatalogItem[], required — Ordered items in this category.
        - `id` string, required — Item identifier.
        - `name` string, required — Item name.
        - `description` string, required — Item description.
        - `price` Amount, required — Amount with explicit currency. Value is always in minor units (e.g., cents for USD).
          - `value` string, required — Value in minor currency units as an integer string.
          - `currency` union, required — Currency descriptor (fiat or EVM token).
            - FiatCurrency — Fiat currency descriptor.
              - …
            - EvmCurrency — EVM token currency descriptor.
              - …
        - `media` Media[] — Item media (images, videos, 3D models).
          - `type` 'image' | 'video' | 'model_3d', required — Media type discriminator.
          - `url` string, uri, required — URL to the media resource.
          - `alt_text` string — Accessibility text describing the media.
          - `width` integer — Width in pixels.
          - `height` integer — Height in pixels.
        - `modifier_groups` ModifierGroup[] — Modifier groups available for this item.
          - `id` string, required — Modifier group identifier.
          - `name` string, required — Display name for the modifier group.
          - `description` string — Optional modifier group description.
          - `minimum_selections` integer — Minimum selections required.
          - `maximum_selections` integer — Maximum selections allowed.
          - `allow_quantities` boolean — Whether options can be selected with quantities > 1.
          - `max_per_modifier` integer — Maximum quantity per modifier option.
          - `modifier_options` ModifierOption[], required — Ordered modifier options within this group.
            - `id` string, required — Modifier option identifier.
            - `modifier_item` ModifierItem, required — A purchasable modifier item within a modifier group.
              - …
            - `child_modifier_groups` ModifierGroup[] — Nested modifier groups required after selecting this option.
            - `is_default` boolean — Whether this option is selected by default.
            - `metadata` object — Business-defined custom data.
          - `type` string — Modifier group type classification.
          - `metadata` object — Business-defined custom data.
        - `availability` Availability — Availability schedule for a catalog, category, or item.
          - `timezone` string — IANA timezone. Defaults to merchant timezone when omitted.
          - `intervals` Interval[], required — Availability intervals (weekly or date-specific).
            - union — A single time interval for a day of the week or a specific date.
              - …
        - `metadata` object — Business-defined custom data.
      - `availability` Availability — Availability schedule for a catalog, category, or item.
        - `timezone` string — IANA timezone. Defaults to merchant timezone when omitted.
        - `intervals` Interval[], required — Availability intervals (weekly or date-specific).
          - union — A single time interval for a day of the week or a specific date.
            - object
              - …
            - object
              - …
      - `metadata` object — Business-defined custom data.
    - `items` CatalogItem[] — Items not assigned to a category.
      - `id` string, required — Item identifier.
      - `name` string, required — Item name.
      - `description` string, required — Item description.
      - `price` Amount, required — Amount with explicit currency. Value is always in minor units (e.g., cents for USD).
        - `value` string, required — Value in minor currency units as an integer string.
        - `currency` union, required — Currency descriptor (fiat or EVM token).
          - FiatCurrency — Fiat currency descriptor.
            - `symbol` string, required — ISO 4217 currency code (e.g., 'USD', 'EUR', 'JPY').
          - EvmCurrency — EVM token currency descriptor.
            - `chain_id` integer, required — EVM chain id.
            - `address` string, required — Token contract address.
            - `decimals` integer, required — Decimal places for the token.
      - `media` Media[] — Item media (images, videos, 3D models).
        - `type` 'image' | 'video' | 'model_3d', required — Media type discriminator.
        - `url` string, uri, required — URL to the media resource.
        - `alt_text` string — Accessibility text describing the media.
        - `width` integer — Width in pixels.
        - `height` integer — Height in pixels.
      - `modifier_groups` ModifierGroup[] — Modifier groups available for this item.
        - `id` string, required — Modifier group identifier.
        - `name` string, required — Display name for the modifier group.
        - `description` string — Optional modifier group description.
        - `minimum_selections` integer — Minimum selections required.
        - `maximum_selections` integer — Maximum selections allowed.
        - `allow_quantities` boolean — Whether options can be selected with quantities > 1.
        - `max_per_modifier` integer — Maximum quantity per modifier option.
        - `modifier_options` ModifierOption[], required — Ordered modifier options within this group.
          - `id` string, required — Modifier option identifier.
          - `modifier_item` ModifierItem, required — A purchasable modifier item within a modifier group.
            - `id` string, required — Modifier item identifier.
            - `name` string, required — Modifier item name.
            - `description` string — Optional modifier item description.
            - `price` Amount, required — Amount with explicit currency. Value is always in minor units (e.g., cents for USD).
              - …
            - `metadata` object — Business-defined custom data.
          - `child_modifier_groups` ModifierGroup[] — Nested modifier groups required after selecting this option.
          - `is_default` boolean — Whether this option is selected by default.
          - `metadata` object — Business-defined custom data.
        - `type` string — Modifier group type classification.
        - `metadata` object — Business-defined custom data.
      - `availability` Availability — Availability schedule for a catalog, category, or item.
        - `timezone` string — IANA timezone. Defaults to merchant timezone when omitted.
        - `intervals` Interval[], required — Availability intervals (weekly or date-specific).
          - union — A single time interval for a day of the week or a specific date.
            - object
              - …
            - object
              - …
      - `metadata` object — Business-defined custom data.
    - `availability` Availability — Availability schedule for a catalog, category, or item.
      - `timezone` string — IANA timezone. Defaults to merchant timezone when omitted.
      - `intervals` Interval[], required — Availability intervals (weekly or date-specific).
        - union — A single time interval for a day of the week or a specific date.
          - object
            - `day` string, required — Day of week (e.g., Monday, Tuesday).
            - `date` string, date — Calendar date in YYYY-MM-DD.
            - `from_hour` integer, required — Start hour (0-23).
            - `from_minute` integer, required — Start minute (0-59).
            - `to_hour` integer, required — End hour (0-23).
            - `to_minute` integer, required — End minute (0-59).
          - object
            - `day` string — Day of week (e.g., Monday, Tuesday).
            - `date` string, date, required — Calendar date in YYYY-MM-DD.
            - `from_hour` integer, required — Start hour (0-23).
            - `from_minute` integer, required — Start minute (0-59).
            - `to_hour` integer, required — End hour (0-23).
            - `to_minute` integer, required — End minute (0-59).
    - `metadata` object — Business-defined custom data.
  - `metadata` object — Business-defined custom data.

## Other responses

- `404` — Merchant not found.

---

[API](https://skmtc.net/palette-labs-inc/apis/local-protocol.md) · [All operations](https://skmtc.net/palette-labs-inc/apis/local-protocol/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/palette-labs-inc/local-protocol/revisions/7db6ad75e16d/schema)
