Shopify Product Metafields API
The product fields the merchant exposes to the storefront.
GET /v1/shopify/products/{handle}/metafields1 credit Failed requests are free
About this endpoint
GET /v1/shopify/products/{handle}/metafields?store=… returns data.metafields, each with namespace, key, type and value. Pass keys=reviews.rating,global.title_tag to choose up to 25 fields; omit it for the standard keys the route asks for, such as reviews.rating, reviews.rating_count, shopify.color-pattern, global.title_tag, global.description_tag and custom.color.
Only fields the merchant exposes are returned. An empty list means none were exposed for that product, not that the product has no metafields.
Shopify Product Metafields API FAQ
Which keys can I request?
Any namespace.key the merchant exposes, up to 25. Use the same key format, for example reviews.rating.
Why is the list empty?
The store did not expose those fields to the storefront. The answer is still found; an empty list is not an error.
What is value?
The raw value the store keeps. type tells you how to read it, for example number_integer or single_line_text_field.
How do I name the store?
The store is the domain, for example allbirds.com, www.allbirds.com or weareallbirds.myshopify.com. A full URL is reduced to its host.
How is it billed?
Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.
What does lookupStatus mean?
found means the lookup succeeded. not_found means the store or entity does not exist or is not a Shopify store. private means the storefront is password-protected. restricted means it is paused or frozen. HTTP 200 only means the request finished, so branch on lookupStatus.