# Get product by ID

> Returns detailed information about a specified product by its ID.

Source: https://help.boltapp.com/api-reference/checkout-everywhere/callbacks/products-get

`GET /products/{productId}`

## OpenAPI definition

This endpoint as it appears in the OpenAPI document, with every schema it references included.

```json
{
  "openapi": "3.2.0",
  "info": {
    "title": "Checkout Everywhere API Reference (Beta)",
    "version": "0.1.0"
  },
  "security": [
    {
      "ApiKey": []
    }
  ],
  "paths": {
    "/products/{productId}": {
      "get": {
        "summary": "Get product by ID",
        "operationId": "products.get",
        "description": "Returns detailed information about a specified product by its ID.",
        "tags": [
          "Callbacks"
        ],
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the product.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/product"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "product": {
        "type": "object",
        "description": "Details of a product.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the product."
          },
          "id": {
            "type": "string",
            "description": "Unique identifier for the product."
          },
          "url": {
            "type": "string",
            "description": "URL of the product on the merchant's site."
          },
          "brand": {
            "type": "string",
            "description": "Brand of the product."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "2024-11-06T15:31:45Z",
            "description": "Timestamp of the last modification to the product's content or availability, provided in ISO 8601 format as UTC. If an exact value cannot be provided, this may be an estimate."
          },
          "category": {
            "type": "string",
            "nullable": true,
            "description": "Category of the product. This can be a top-level category or a string in the format 'Apparel & Accessories > Clothing > Dresses', representing a hierarchical category structure."
          },
          "description": {
            "type": "string",
            "description": "Description of the product."
          },
          "multimedia": {
            "$ref": "#/components/schemas/multimedia_product"
          },
          "variants": {
            "type": "array",
            "description": "Variants of the product.",
            "items": {
              "$ref": "#/components/schemas/variant"
            }
          }
        },
        "additionalProperties": false
      },
      "multimedia_product": {
        "type": "object",
        "description": "Multimedia resources associated with a product.",
        "properties": {
          "image_urls": {
            "type": "array",
            "nullable": false,
            "description": "URLs of product images. At least one image must be provided.",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "variant": {
        "type": "object",
        "description": "Variant of a product.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the variant."
          },
          "id": {
            "type": "string",
            "description": "Identifier for the variant."
          },
          "url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the variant on the merchant's site."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the variant."
          },
          "multimedia": {
            "$ref": "#/components/schemas/multimedia_variant"
          },
          "price": {
            "$ref": "#/components/schemas/price",
            "description": "Regular price of variant. Represents the usual cost for the shopper."
          },
          "sale_price": {
            "$ref": "#/components/schemas/price",
            "description": "Discounted price of the variant, if the item is on sale. Represents a temporary, lower price compared to the regular price."
          },
          "availability": {
            "$ref": "#/components/schemas/availability"
          },
          "identifiers": {
            "$ref": "#/components/schemas/identifiers"
          },
          "properties": {
            "$ref": "#/components/schemas/properties"
          },
          "attributes": {
            "type": "object",
            "description": "Attributes of the given variant displayed to the shopper when they select a variant.",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "multimedia_variant": {
        "type": "object",
        "description": "Multimedia resources associated with a variant.",
        "properties": {
          "image_urls": {
            "type": "array",
            "nullable": true,
            "description": "URLs of variant images.",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "price": {
        "type": "object",
        "description": "A monetary amount, i.e. a base unit amount and a supported currency.",
        "properties": {
          "units": {
            "type": "integer",
            "format": "int64",
            "description": "A monetary amount, represented in its base units (e.g. USD/EUR cents)."
          },
          "currency": {
            "type": "string",
            "description": "A supported currency.",
            "enum": [
              "USD"
            ]
          }
        },
        "additionalProperties": false
      },
      "availability": {
        "type": "object",
        "description": "Product availability information.",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/availability_status"
          },
          "stock_count": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "The exact stock count of the product. The value of `status` takes precedence over the `stock_count`. \nIf the status is `out_of_stock`, the `stock_count` is not relevant.\n"
          }
        },
        "additionalProperties": false
      },
      "availability_status": {
        "type": "string",
        "description": "The status indicating the product's availability.",
        "enum": [
          "in_stock",
          "out_of_stock"
        ]
      },
      "identifiers": {
        "type": "object",
        "description": "Identifiers for the product such as SKU or GTIN.",
        "properties": {
          "sku": {
            "type": "string",
            "nullable": true,
            "description": "Stock Keeping Unit identifier."
          },
          "gtin": {
            "type": "string",
            "nullable": true,
            "description": "Global Trade Item Number."
          },
          "mpn": {
            "type": "string",
            "nullable": true,
            "description": "Manufacturer Part Number."
          }
        },
        "additionalProperties": false
      },
      "properties": {
        "type": "object",
        "description": "Additional product properties such as color and material.",
        "properties": {
          "color": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "description": "Color options for the product."
          },
          "material": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "description": "Material options for the product."
          },
          "condition": {
            "$ref": "#/components/schemas/condition"
          }
        },
        "additionalProperties": false
      },
      "condition": {
        "type": "string",
        "description": "The condition of the product.",
        "enum": [
          "new",
          "refurbished",
          "used"
        ]
      },
      "error_response": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/error"
          }
        }
      },
      "error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int64",
            "description": "For list of potential error codes please see https://help.boltapp.com/developers/error-codes/"
          },
          "data": {
            "$ref": "#/components/schemas/reasons"
          }
        }
      },
      "reasons": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/reason"
        }
      },
      "reason": {
        "type": "object",
        "description": "The reason for the error.",
        "properties": {
          "reason": {
            "type": "string",
            "example": "This product is out of stock."
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "name": "X-Api-Key",
        "in": "header",
        "description": "API key provided on the Custom API Connector 'Integrations' page."
      }
    }
  }
}
```
