Skip to main content
The CmsService class (accessed via client.cms) provides access to content-driven features like blog posts and lookbooks, allowing you to build rich discovery experiences and content-led commerce.

Blog Posts

listPosts

Retrieve a paginated list of published blog posts, newest first. This is ideal for building a “News” or “Magazine” section on your storefront. Only published posts are returned — there is no status filter. Filter by category with the category slug (category: 'buying-guides').
Post Metadata: The listing response includes light metadata like excerpt, featured_image, slug, and product_count (how many products a shoppable post links to). For the full content, use getPost.

getPost

Retrieve the full content of a specific published blog post by its slug, including any linked products for shoppable posts (each entry in the products array carries the product’s name, sku, price, images, and display_type). Returns 404 if no published post matches the slug.
Response

Lookbooks

Lookbooks are curated collections of lifestyle images linked to specific products, perfect for “Shop the Look” features.

listLookbooks

Retrieve a list of published lookbooks, newest first. Only published lookbooks are returned — there is no status filter.

getLookbook

Retrieve the full details of a published lookbook by its slug, including its ordered image gallery and the shoppable hotspots placed on each image. Returns 404 if no published lookbook matches the slug. Each lookbook exposes status (always "published" from the public API) and collection_id — the product collection that backs the lookbook, or null if it is standalone. The gallery lives under images[], where each image has a url and a hotspots[] array tagging the products featured at specific points in the photo (your “Shop the Look” markers).
Response
status is always "published" from the public API. collection_id is the backing product collection, or null when the lookbook is standalone (as above). Each images[] entry carries a hotspots[] array — empty here, otherwise one marker per tagged product.

Pro Discovery Tip: Use Lookbooks to increase Average Order Value (AOV) by encouraging customers to buy entire outfits or coordinated room sets featured in lifestyle photography.

Newsletter

subscribeNewsletter

Capture a newsletter signup from your storefront. The email address is the identity, so this works for both anonymous visitors and signed-in shoppers (a signed-in storefront simply prefills the email field). When the merchant has connected a marketing tool, new subscribers are automatically synced to their chosen list.
Response
It is safe to call repeatedly — re-subscribing the same email returns 200 with already_subscribed: true and never creates a duplicate; a brand-new signup returns 201. This endpoint accepts both publishable and secret keys (it’s a storefront write, like cart), so you can call it directly from the browser.

Response Codes

The read endpoints (posts, lookbooks) are GET; subscribeNewsletter is a POST. All accept both publishable and secret keys. Slug validation is enforced — empty or whitespace-only slugs return 400 without hitting the database.