# productByHandle Get a single product by handle ## Authentication > **Public Access**: Accessible with the public API key ## Query Structure ```graphql { productByHandle(handle: String!) { # Product fields } } ``` ## Arguments | Argument | Type | Required | Description | |----------|------|----------|-------------| | handle | String | Yes | The handle of the product to retrieve | ## Return Type [Product](/reference/storefront/v1/objects/product) - Describes a product with detailed information including variants, images, pricing, and related products. ## Example ```graphql { productByHandle(handle: "awesome-product") { id title handle description shortDescription seoTitle seoDescription seoKeywords rating reviewCount maxRating isAvailable isDirectlyBuyable featuredImage { src alt } variants { id title price compareAtPrice isAvailable } optionsWithValues { handle name values } tags manufacturer { name } related { id title handle } } } ``` ## Related Types - [Product](/reference/storefront/v1/objects/product) - [ProductVariant](/reference/storefront/v1/objects/product-variant) - [ProductOption](/reference/storefront/v1/objects/product-option) - [Image](/reference/storefront/v1/objects/image) - [Video](/reference/storefront/v1/objects/video) - [Manufacturer](/reference/storefront/v1/objects/manufacturer) - [Review](/reference/storefront/v1/objects/review) - [CustomField](/reference/storefront/v1/objects/custom-field) - [Attachment](/reference/storefront/v1/objects/attachment) - [ProductTaxonomy](/reference/storefront/v1/objects/product-taxonomy) - [CombinedListing](/reference/storefront/v1/objects/combined-listing) - [ProductGroup](/reference/storefront/v1/objects/product-group) - [Deliverer](/reference/storefront/v1/objects/deliverer)