Shopify hub

Shopify Pages API

Every published page on a storefront, with its body and SEO.

GET /v1/shopify/pages

1 credit Failed requests are free

About this endpoint

GET /v1/shopify/pages?store=… returns data.pages, each with id, gid, handle, title, url, body, bodySummary, seo, createdAt and updatedAt. Use limit and cursor to page.

body can be null for a page built from theme sections rather than editor content, while bodySummary still gives you the first part of the text where the store provides it.

Shopify Pages API FAQ

Why is body null?

Some pages are built from theme sections rather than page content. The store then has no body HTML to return, but the page row still carries its title, handle and URL.

How do I get one page?

Use GET /v1/shopify/pages/{handle} with the handle from this list.

How do I page?

Read page.hasMore and pass page.nextCursor back as cursor with the same filters.

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. Each paginated page is a separate billed request.

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.