# productByHandle Get a single product by handle ## Authentication > **Public Access**: Accessible with the public API key ## Query Structure ```graphql { productByHandle(handle: String!) { handle seoDescription seoTitle seoKeywords id combinedListing firstAvailableVariant hasOnlyDefaultVariant variants options optionsWithValues optionsByHandle defaultOrSelectedVariant tags customFields inPreview isAvailable isDirectlyBuyable title manufacturer shortDescription description images videos featuredImage featuredVideo compatible similar related deliverer productGroups returnPolicyTimeLimit rating reviewCount maxRating reviews attachments reviewsAreEnabled reviewsRequireAccount reviewsRequirePurchase reviewsRequireApproval taxonomy createdAt updatedAt rate inCustomersWishlist customerHasReviewed customerCanReview customerHasPurchased metafields metafield } } ``` ## Arguments | Argument | Type | Required | Description | |----------|------|----------|-------------| | handle | String | Yes | The handle of the product to retrieve | ## Return Type [Product](/reference/storefront/1.3.0/objects/product) - A product in the store, including details, variants, images, pricing, and reviews. ## Example ```graphql query { productByHandle(handle: "premium-wireless-headphones") { id title handle description shortDescription isAvailable isDirectlyBuyable rating reviewCount featuredImage { url alt } variants { id title price } tags seoTitle seoDescription } } ``` ## Related Types - [Product](/reference/storefront/1.3.0/objects/product) - String