# Get a catalog item

Returns one catalog item with its category, attachments, options and attributes.

Endpoint: GET /v1/catalog/{catalogGuid}/catalog_items/{catalogItemGuid}
Version: 1.19
Security: ApiKey, ApiSecret, UserGuid, UserToken, SupplierGuid

## Security:

  - `ApiKey` (unknown)
    apiKey in header x-apiKey

  - `ApiSecret` (unknown)
    apiKey in header x-apiSecret

  - `UserGuid` (unknown)
    apiKey in header userGuid

  - `UserToken` (unknown)
    apiKey in header userToken

  - `SupplierGuid` (unknown)
    apiKey in header supplierGuid

## Path parameters:

  - `catalogGuid` (string, required)
    GUID of the catalog. Must belong to the authenticated supplier.

  - `catalogItemGuid` (string, required)
    GUID of the catalog item.

## Header parameters:

  - `vendorGuid` (string)
    GUID of the customer (vendor) to act for. With API key authentication this selects the customer context; with user session headers it is the vendor the user is acting on behalf of.

## Response 200:

  - `200` (unknown)
    The catalog item.

## Response 200 fields (application/json):

  - `catalog_item` (object, required)
    A product. With API key authentication the paged list endpoint returns exactly the fields below; other endpoints (and user session calls) return the full model, which has many more optional fields.

  - `catalog_item.id` (integer)

  - `catalog_item.guid` (string)

  - `catalog_item.catalog_id` (integer)

  - `catalog_item.category_id` (integer)

  - `catalog_item.sku` (string)

  - `catalog_item.upc` (string)

  - `catalog_item.name` (string)

  - `catalog_item.description` (string)

  - `catalog_item.manufacturer` (string)

  - `catalog_item.color` (string)

  - `catalog_item.style` (string)

  - `catalog_item.active` (boolean)

  - `catalog_item.is_taxable` (boolean)

  - `catalog_item.msrp` (number)

  - `catalog_item.cost_per_uom` (number)
    Supplier cost. Omitted for customer (vendor) users.

  - `catalog_item.pricing` (object)
    Price per price group, keyed by price group name. `"N/A"` means not offered to that group.
    Example: {"Retail":99.99,"Wholesale":79.99,"Distributor":"N/A"}

  - `catalog_item.has_inventory` (boolean)
    Whether stock is tracked for this item.

  - `catalog_item.qty_on_hand` (number)

  - `catalog_item.qty_incoming` (number)

  - `catalog_item.reserved_qty_on_hand` (number)

  - `catalog_item.qty_backordered` (number)

  - `catalog_item.qty_held_for_backorders` (number)

  - `catalog_item.min_qty_on_hand` (number)

  - `catalog_item.max_qty_on_hand` (number)

  - `catalog_item.min_order_qty` (number)

  - `catalog_item.allow_backorder` (boolean)

  - `catalog_item.qty_break` (number)
    Quantity at which `qty_break_price` applies.

  - `catalog_item.qty_break_price` (number)

  - `catalog_item.has_serials` (boolean)

  - `catalog_item.has_lots` (boolean)

  - `catalog_item.has_exp_date` (boolean)

  - `catalog_item.width` (number)

  - `catalog_item.height` (number)

  - `catalog_item.depth` (number)

  - `catalog_item.item_weight` (number)

  - `catalog_item.shipping_weight` (number)

  - `catalog_item.is_product_group` (boolean)

  - `catalog_item.product_group_type` (string)
    Enum: "flat", "multi", "null"

  - `catalog_item.product_group_display_style` (string)

  - `catalog_item.group_parent_catalog_item_id` (integer)

  - `catalog_item.group_sequence` (integer)

  - `catalog_item.group_title` (string)

  - `catalog_item.subsection_id` (integer)

  - `catalog_item.third_party_sku` (string)

  - `catalog_item.third_party_pricing` (string)

  - `catalog_item.third_party_size` (string)

  - `catalog_item.Category` (object)

  - `catalog_item.Category.id` (integer)

  - `catalog_item.Category.guid` (string)

  - `catalog_item.Category.catalog_id` (integer)

  - `catalog_item.Category.parent_category_id` (integer)

  - `catalog_item.Category.name` (string)

  - `catalog_item.Category.sequence` (integer)

  - `catalog_item.Category.hide_category` (boolean)

  - `catalog_item.Category.created_at` (string)

  - `catalog_item.Category.updated_at` (string)

  - `catalog_item.CategoryHierarchy` (array)
    Root-to-leaf category path, when category retrieval is not skipped.

  - `catalog_item.created_at` (string)

  - `catalog_item.updated_at` (string)

  - `catalog_item.deleted_at` (string)
    Present only in delta-sync responses for soft-deleted items.

  - `resource` (string, required)
    Example: catalog_item

## Response 400:

  - `400` (unknown)
    The request is malformed or references a resource the supplier does not own (for example an unknown catalog GUID).

## Response 400 fields (application/json):

  - `message` (string, required)
    Human-readable error message.
    Example: Invalid Catalog GUID

  - `error` (string)
    Underlying error detail, when available.

  - `code` (string)
    Machine-readable code for specific failures (for example `INVALID_DELTA_CURSOR`).

## Response 401:

  - `401` (unknown)
    Missing or invalid credentials.

## Response 401 fields (application/json):

  - `message` (string, required)
    Human-readable error message.
    Example: Invalid Catalog GUID

  - `error` (string)
    Underlying error detail, when available.

  - `code` (string)
    Machine-readable code for specific failures (for example `INVALID_DELTA_CURSOR`).

## Response 403:

  - `403` (unknown)
    The credentials are valid but the user lacks the access level this endpoint requires.

## Response 403 fields (application/json):

  - `message` (string, required)
    Human-readable error message.
    Example: Invalid Catalog GUID

  - `error` (string)
    Underlying error detail, when available.

  - `code` (string)
    Machine-readable code for specific failures (for example `INVALID_DELTA_CURSOR`).

## Response 404:

  - `404` (unknown)
    No resource with that GUID is visible to the authenticated supplier.

## Response 404 fields (application/json):

  - `message` (string, required)
    Human-readable error message.
    Example: Invalid Catalog GUID

  - `error` (string)
    Underlying error detail, when available.

  - `code` (string)
    Machine-readable code for specific failures (for example `INVALID_DELTA_CURSOR`).

## Response 500:

  - `500` (unknown)
    Unexpected server error. Some legacy endpoints return the message as `text/plain` instead of JSON.

## Response 500 fields (application/json):

  - `message` (string, required)
    Human-readable error message.
    Example: Invalid Catalog GUID

  - `error` (string)
    Underlying error detail, when available.

  - `code` (string)
    Machine-readable code for specific failures (for example `INVALID_DELTA_CURSOR`).

