> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/shopify/products-handle-metafields>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/shopify/products-handle-metafields.mdx>

---

# Shopify Product Metafields API

The product fields the merchant exposes to the storefront.

`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.

## Request

- **Endpoint:** `GET /v1/shopify/products/{handle}/metafields`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by store and handle
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/shopify/products/handle/metafields/get)
- **Platform page:** [/platforms/shopify](https://www.socialfetch.dev/platforms/shopify)

## 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.
