Shopify Article API
One article with its content and comment thread.
GET /v1/shopify/blogs/{blogHandle}/articles/{handle}1 credit Failed requests are free
About this endpoint
GET /v1/shopify/blogs/{blogHandle}/articles/{handle}?store=… returns data.article with id, gid, handle, title, url, excerpt, content, contentHtml, publishedAt, tags, seo, author, image, comments and commentsHasMore.
The comment thread pages through data.commentsPage. Set commentLimit, then pass commentsPage.nextCursor back as cursor while commentsPage.hasMore is true. A missing article returns not_found with article null.
Shopify Article API FAQ
How do I get every comment?
Set commentLimit, read commentsPage.hasMore and pass commentsPage.nextCursor back as cursor until it is false.
What does author contain?
The public display name and bio the store publishes. The email field is never requested or returned.
What if the article or blog is missing?
The answer is not_found with article null. Check both the blog handle and the article handle.
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.