Products
The store’s published catalogue, one page at a time: walk with starting_after = the previous next_cursor while has_more is true, or read page=N (≤ 100 per page). No totals or page counts are sent. Filter with keyword, category_slug (or category_id), sort (latest|popular|price_low|price_high), has_video, and metafield[namespace.key]=value (typed, exact match against the store’s own definitions). Every price is the final customer price.
Authorization
clientKey The store's API key (Dashboard → Settings → API keys). pk_live_… public keys are for browser code and only work from an origin on the key's allowlist; sk_live_… private keys are for servers and native apps and need no Origin.
In: header
Query Parameters
Keyset cursor: pass the previous page next_cursor. Walk while has_more is true; a stale, tampered, cross-list or filter-changed cursor answers 422 starting_after_invalid. Never combine with page.
Items per read (alias of per_page, max 100). page mode caps at page 50 (page_too_deep); walk the cursor past that.
Filter to products whose custom.fabric metafield exactly equals this value (metafield[namespace.key]=value, ANDed across handles, at most 5). The definition behind the handle is on GET store/metafield-definitions.
Search product titles and descriptions (at most 100 chars).
length <= 100Filter to one category by slug (resolved to its id — send either this or category_id, never both).
length <= 120Filter to one category by id (UUID).
uuidOrdering: latest (default), popular, price_low, price_high.
"latest"Value in
- "latest"
- "popular"
- "price_low"
- "price_high"
Only products with a video (true) or without one (false).
Items per page (1–100).
1 <= value <= 100Page number.
1 <= valueFilter to variants carrying these option pairs (attributes[Option]=Value, one entry per option).
Hand-pick products by id (theme blocks that feature exact products; at most 20 UUIDs).
items <= 20Render this read in a published store locale (see GET store/locales). Unknown or unpublished codes fall back to the primary locale; the answer carries the locale used in Content-Language.
Header Parameters
Your store API key (Dashboard → Settings → API keys). pk_live_… public keys are for browser code and only work from an origin on the key's allowlist; sk_live_… private keys are for servers and native apps and need no Origin.
Your own correlation id (8–128 chars, ^[A-Za-z0-9_.:-]+$). Echoed back on the response and on every log line of the request; one is generated when you omit it.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/store/products?starting_after=WzEsIjRhOTYzOGNlMjFlYTllNWFiOWJlMmZmZDdkZjA2ZWI5MTVmMzVhMzNlMmQ4NjU1MDUyNjBjNGQ3NTQ1YWZkNTEiLCJleUp3Y205a2RXTjBjeTVqY21WaGRHVmtYMkYwSWpvaU1qQXlOaTB3T1MweU1DQXhNRG93TURvd01DSXNJbkJ5YjJSMVkzUnpMbWxrSWpvaU1ERTVZakJqTkdRdE5XVTJaaTAzWVRoaUxUbGpNR1F0TVdVeVpqTmhOR0kxWXpFeElpd2lYM0J2YVc1MGMxUnZUbVY0ZEVsMFpXMXpJanAwY25WbGZRIl0&limit=15&metafield%5Bcustom.fabric%5D=cotton&keyword=ankara&category_id=019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c21&sort=latest&has_video=false&per_page=15&page=1&attributes%5BSize%5D=M&ids%5B%5D=019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c11" \ -H "X-Client-Key: {{clientKey}}"{ "status": "success", "message": "Products retrieved", "data": [ { "shop_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01", "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c11", "p_id": 31501, "title": "Ankara Midi Dress", "slug": "ankara-midi-dress", "excerpt": "Flared ankara midi with pockets, cut in Lagos.", "description": "Our signature flared midi in premium cotton ankara, with side pockets and a concealed back zip. Cut and finished in our Lekki atelier.", "image": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "thumbnail_image": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "video_url": null, "video_poster_url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "type": "product", "commerce_mode": "shop", "currency": "NGN", "price": 28500, "discount_price": 24225, "compare_at_price": 28500, "is_price_from": false, "price_range": { "min": 28500, "max": 28500 }, "has_variants": true, "has_addons": false, "tax_inclusive": false, "discount": { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c31", "title": "Lagos Fashion Week 15% Off", "type": "percentage", "value": 15, "amount": 4275, "final_price": 24225, "image_url": "https://media.usequeek.com/uploads/stores/2207/discounts/fashion-week.jpg" }, "discounts": [ { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c31", "title": "Lagos Fashion Week 15% Off", "type": "percentage", "value": 15, "amount": 4275, "final_price": 24225, "image_url": "https://media.usequeek.com/uploads/stores/2207/discounts/fashion-week.jpg" } ], "media": { "thumbnail": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "image": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "original": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "primary_variant_image": null, "image_variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "w": 1200, "h": 1500 } }, "primary_variant_image_variants": null, "images": [ { "id": 77101, "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "alt": "Ankara midi dress on a mannequin", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "w": 1200, "h": 1500 } } }, { "id": 77103, "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card.webp", "alt": "Ankara midi dress, back view", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back.jpg", "w": 1200, "h": 1500 } } } ] }, "inventory": { "in_stock": true, "tracking": true, "quantity": 18 }, "variant_summary": { "count": 3, "min_price": 28500, "max_price": 28500, "total_stock": 18, "tracks_inventory": true, "in_stock": true }, "variants_count": 3, "rating": 4.5, "review_count": 132, "flags": { "featured": false, "is_marketplace": false, "is_wholesale": false, "is_new": false }, "metafields": {}, "created_at": "2026-06-18 09:40:00", "updated_at": "2026-09-22 16:05:00" }, { "shop_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01", "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c12", "p_id": 31502, "title": "Aso-Oke Head Wrap", "slug": "aso-oke-head-wrap", "excerpt": "Hand-woven aso-oke wrap in burnt orange.", "description": "Hand-woven aso-oke head wrap in burnt orange with metallic striping. Two metres, ready to tie.", "image": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card.webp", "thumbnail_image": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-thumb.webp", "video_url": null, "video_poster_url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card.webp", "type": "product", "commerce_mode": "shop", "currency": "NGN", "price": 8500, "discount_price": 8500, "compare_at_price": null, "is_price_from": false, "price_range": null, "has_variants": false, "has_addons": false, "tax_inclusive": false, "discount": null, "discounts": [], "media": { "thumbnail": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-thumb.webp", "image": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card.webp", "original": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap.jpg", "primary_variant_image": null, "image_variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card.webp", "w": 480, "h": 480 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card2x.webp", "w": 800, "h": 800 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-view.webp", "w": 1200, "h": 1200 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-wa.jpg", "w": 1080, "h": 1080 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap.jpg", "w": 1200, "h": 1200 } }, "primary_variant_image_variants": null, "images": [ { "id": 77102, "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card.webp", "alt": "Burnt-orange aso-oke head wrap, folded", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card.webp", "w": 480, "h": 480 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card2x.webp", "w": 800, "h": 800 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-view.webp", "w": 1200, "h": 1200 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-wa.jpg", "w": 1080, "h": 1080 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap.jpg", "w": 1200, "h": 1200 } } } ] }, "inventory": { "in_stock": true, "tracking": true, "quantity": 34 }, "variant_summary": null, "variants_count": 0, "rating": 4.9, "review_count": 58, "flags": { "featured": false, "is_marketplace": false, "is_wholesale": false, "is_new": false }, "metafields": {}, "created_at": "2026-07-02 13:15:00", "updated_at": "2026-09-22 16:05:00" } ], "meta": { "listing_mode": "listing", "filters": { "attributes": [ { "name": "Size", "slug": "size", "type": "size", "values": [ { "value": "L", "slug": "l", "count": 1, "selected": false, "color_code": null }, { "value": "M", "slug": "m", "count": 1, "selected": false, "color_code": null }, { "value": "S", "slug": "s", "count": 1, "selected": false, "color_code": null } ] } ] } }, "has_more": false, "next_cursor": null}Full product by slug: images (with image_variants), price and compare_at_price when discounted, description, has_variants with variants[] and options, stock flags, category and collections.
Authorization
clientKey The store's API key (Dashboard → Settings → API keys). pk_live_… public keys are for browser code and only work from an origin on the key's allowlist; sk_live_… private keys are for servers and native apps and need no Origin.
In: header
Path Parameters
Query Parameters
Render this read in a published store locale (see GET store/locales). Unknown or unpublished codes fall back to the primary locale; the answer carries the locale used in Content-Language.
Header Parameters
Your store API key (Dashboard → Settings → API keys). pk_live_… public keys are for browser code and only work from an origin on the key's allowlist; sk_live_… private keys are for servers and native apps and need no Origin.
Your own correlation id (8–128 chars, ^[A-Za-z0-9_.:-]+$). Echoed back on the response and on every log line of the request; one is generated when you omit it.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/store/products/ankara-midi-dress" \ -H "X-Client-Key: {{clientKey}}"{ "status": "success", "message": "Product retrieved", "data": { "shop_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01", "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c11", "p_id": 31501, "title": "Ankara Midi Dress", "slug": "ankara-midi-dress", "excerpt": "Flared ankara midi with pockets, cut in Lagos.", "description": "Our signature flared midi in premium cotton ankara, with side pockets and a concealed back zip. Cut and finished in our Lekki atelier.", "image": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "thumbnail_image": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "video_url": null, "video_poster_url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "type": "product", "commerce_mode": "shop", "currency": "NGN", "price": 28500, "discount_price": 24225, "compare_at_price": 28500, "is_price_from": false, "price_range": { "min": 28500, "max": 28500 }, "has_variants": true, "has_addons": false, "tax_inclusive": false, "discount": { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c31", "title": "Lagos Fashion Week 15% Off", "type": "percentage", "value": 15, "amount": 4275, "final_price": 24225, "image_url": "https://media.usequeek.com/uploads/stores/2207/discounts/fashion-week.jpg" }, "discounts": [ { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c31", "title": "Lagos Fashion Week 15% Off", "type": "percentage", "value": 15, "amount": 4275, "final_price": 24225, "image_url": "https://media.usequeek.com/uploads/stores/2207/discounts/fashion-week.jpg" } ], "media": { "thumbnail": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "image": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "original": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "primary_variant_image": null, "image_variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "w": 1200, "h": 1500 } }, "primary_variant_image_variants": null, "images": [ { "id": 77101, "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "alt": "Ankara midi dress on a mannequin", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "w": 1200, "h": 1500 } } }, { "id": 77103, "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card.webp", "alt": "Ankara midi dress, back view", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back.jpg", "w": 1200, "h": 1500 } } } ], "video_url": null, "video_poster_url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp" }, "inventory": { "in_stock": true, "tracking": true, "quantity": 18, "allow_backorder": false, "low_stock_threshold": 5, "updated_at": "2026-09-22 16:05:00" }, "variant_summary": { "count": 3, "min_price": 28500, "max_price": 28500, "total_stock": 18, "tracks_inventory": true, "in_stock": true }, "variants_count": 3, "rating": 4.5, "review_count": 132, "flags": { "featured": false, "is_marketplace": false, "is_wholesale": false, "is_new": false }, "metafields": {}, "created_at": "2026-06-18 09:40:00", "updated_at": "2026-09-22 16:05:00", "shop": { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01", "name": "Zuri Atelier", "slug": "zuri-atelier", "logo": "https://media.usequeek.com/uploads/stores/2207/logo.png", "rating": 4.7, "rating_count": 486 }, "addons": [], "taxonomy": { "categories": [ { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c21", "name": "Dresses", "slug": "dresses" } ], "tags": [], "brand": null, "collections": [ { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c25", "name": "New Season", "slug": "new-season", "mode": "manual" } ] }, "purchase_limits": { "min_qty": 1, "max_qty": null, "step_qty": 1 }, "measurement": { "weight": { "value": 0.5, "unit": "kg" }, "dimensions": null }, "specs": [], "options": [ { "name": "Size", "type": "size", "values": [ "S", "M", "L" ], "values_detailed": [ { "value": "S", "color_code": null, "image": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg" }, { "value": "M", "color_code": null, "image": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg" }, { "value": "L", "color_code": null, "image": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg" } ] } ], "variants": [ { "id": "019b0c4d-5f10-7a02-8c61-0b2d4e6f8a01", "sku": "ZRA-AMD-S", "title": "S", "option_values": { "Size": "S" }, "price": 28500, "discount_price": 24225, "discount_amount": 4275, "has_discount": true, "compare_at_price": null, "stock": 6, "track_inventory": true, "is_active": true, "in_stock": true, "weight": 0.4, "position": 0, "media": { "thumbnail": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "image": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "image_media_id": null, "image_variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "w": 1200, "h": 1500 } }, "images": [ { "id": 77101, "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "alt": "Ankara midi dress on a mannequin", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "w": 1200, "h": 1500 } } }, { "id": 77103, "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card.webp", "alt": "Ankara midi dress, back view", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back.jpg", "w": 1200, "h": 1500 } } } ], "video_url": null, "source": "product" } }, { "id": "019b0c4d-5f10-7a02-8c61-0b2d4e6f8a02", "sku": "ZRA-AMD-M", "title": "M", "option_values": { "Size": "M" }, "price": 28500, "discount_price": 24225, "discount_amount": 4275, "has_discount": true, "compare_at_price": null, "stock": 8, "track_inventory": true, "is_active": true, "in_stock": true, "weight": 0.45, "position": 1, "media": { "thumbnail": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "image": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "image_media_id": null, "image_variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "w": 1200, "h": 1500 } }, "images": [ { "id": 77101, "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "alt": "Ankara midi dress on a mannequin", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "w": 1200, "h": 1500 } } }, { "id": 77103, "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card.webp", "alt": "Ankara midi dress, back view", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back.jpg", "w": 1200, "h": 1500 } } } ], "video_url": null, "source": "product" } }, { "id": "019b0c4d-5f10-7a02-8c61-0b2d4e6f8a03", "sku": "ZRA-AMD-L", "title": "L", "option_values": { "Size": "L" }, "price": 28500, "discount_price": 24225, "discount_amount": 4275, "has_discount": true, "compare_at_price": null, "stock": 4, "track_inventory": true, "is_active": true, "in_stock": true, "weight": 0.5, "position": 2, "media": { "thumbnail": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "image": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "image_media_id": null, "image_variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "w": 1200, "h": 1500 } }, "images": [ { "id": 77101, "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "alt": "Ankara midi dress on a mannequin", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress.jpg", "w": 1200, "h": 1500 } } }, { "id": 77103, "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card.webp", "alt": "Ankara midi dress, back view", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card.webp", "w": 480, "h": 600 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-card2x.webp", "w": 800, "h": 1000 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-view.webp", "w": 1200, "h": 1500 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back-wa.jpg", "w": 1080, "h": 1350 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/ankara-midi-dress-back.jpg", "w": 1200, "h": 1500 } } } ], "video_url": null, "source": "product" } } ], "fulfillment": { "type": "delivery_or_pickup", "is_digital": false, "delivery_available": true, "pickup_available": true, "lead_time_min": null, "lead_time_max": null }, "compliance": { "warranty_months": 0, "country_of_origin": null, "safety_notes": null }, "seo": { "meta_title": null, "meta_description": null, "canonical_url": null, "keywords": [] }, "analytics": { "sales_count": 0, "view_count": 0, "favorite_count": 0, "review_count": 132 } }}Products to show alongside one product (same category/collections), for "you may also like".
Authorization
clientKey The store's API key (Dashboard → Settings → API keys). pk_live_… public keys are for browser code and only work from an origin on the key's allowlist; sk_live_… private keys are for servers and native apps and need no Origin.
In: header
Path Parameters
Query Parameters
Render this read in a published store locale (see GET store/locales). Unknown or unpublished codes fall back to the primary locale; the answer carries the locale used in Content-Language.
Header Parameters
Your store API key (Dashboard → Settings → API keys). pk_live_… public keys are for browser code and only work from an origin on the key's allowlist; sk_live_… private keys are for servers and native apps and need no Origin.
Your own correlation id (8–128 chars, ^[A-Za-z0-9_.:-]+$). Echoed back on the response and on every log line of the request; one is generated when you omit it.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/store/products/ankara-midi-dress/related" \ -H "X-Client-Key: {{clientKey}}"{ "status": "success", "message": "Related products", "data": [ { "shop_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01", "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c12", "p_id": 31502, "title": "Aso-Oke Head Wrap", "slug": "aso-oke-head-wrap", "excerpt": "Hand-woven aso-oke wrap in burnt orange.", "description": "Hand-woven aso-oke head wrap in burnt orange with metallic striping. Two metres, ready to tie.", "image": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card.webp", "thumbnail_image": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-thumb.webp", "video_url": null, "video_poster_url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card.webp", "type": "product", "commerce_mode": "shop", "currency": "NGN", "price": 8500, "discount_price": 8500, "compare_at_price": null, "is_price_from": false, "price_range": null, "has_variants": false, "has_addons": false, "tax_inclusive": false, "discount": null, "discounts": [], "media": { "thumbnail": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-thumb.webp", "image": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card.webp", "original": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap.jpg", "primary_variant_image": null, "image_variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card.webp", "w": 480, "h": 480 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card2x.webp", "w": 800, "h": 800 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-view.webp", "w": 1200, "h": 1200 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-wa.jpg", "w": 1080, "h": 1080 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap.jpg", "w": 1200, "h": 1200 } }, "primary_variant_image_variants": null, "images": [ { "id": 77102, "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card.webp", "alt": "Burnt-orange aso-oke head wrap, folded", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card.webp", "w": 480, "h": 480 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-card2x.webp", "w": 800, "h": 800 }, "view": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-view.webp", "w": 1200, "h": 1200 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap-wa.jpg", "w": 1080, "h": 1080 }, "original": { "url": "https://media.usequeek.com/uploads/stores/2207/aso-oke-head-wrap.jpg", "w": 1200, "h": 1200 } } } ] }, "inventory": { "in_stock": true, "tracking": true, "quantity": 34 }, "variant_summary": null, "variants_count": 0, "rating": 4.9, "review_count": 58, "flags": { "featured": false, "is_marketplace": false, "is_wholesale": false, "is_new": false }, "metafields": {}, "created_at": "2026-07-02 13:15:00", "updated_at": "2026-09-22 16:05:00", "shop": { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01", "name": "Zuri Atelier", "slug": "zuri-atelier", "logo": "https://media.usequeek.com/uploads/stores/2207/logo.png", "rating": 4.7, "rating_count": 486 } } ], "has_more": false, "next_cursor": null}Paginated reviews for one product: rating, text, reviewer name, date.
Authorization
clientKey The store's API key (Dashboard → Settings → API keys). pk_live_… public keys are for browser code and only work from an origin on the key's allowlist; sk_live_… private keys are for servers and native apps and need no Origin.
In: header
Path Parameters
Query Parameters
Value in
- "1"
- "2"
- "3"
- "4"
- "5"
- null
Value in
- "newest"
- "oldest"
- "highest"
- "lowest"
- null
1 <= value <= 50Keyset cursor: pass the previous page next_cursor. Walk while has_more is true; a stale, tampered, cross-list or filter-changed cursor answers 422 starting_after_invalid. Never combine with page.
Items per read (alias of per_page, max 50). page mode caps at page 50 (page_too_deep); walk the cursor past that.
Header Parameters
Your store API key (Dashboard → Settings → API keys). pk_live_… public keys are for browser code and only work from an origin on the key's allowlist; sk_live_… private keys are for servers and native apps and need no Origin.
Your own correlation id (8–128 chars, ^[A-Za-z0-9_.:-]+$). Echoed back on the response and on every log line of the request; one is generated when you omit it.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/store/products/ankara-midi-dress/reviews?rating=5&sort=newest&per_page=10&limit=15" \ -H "X-Client-Key: {{clientKey}}"{ "status": "success", "message": "Product reviews retrieved", "data": { "product": { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c11", "slug": "ankara-midi-dress", "title": "Ankara Midi Dress" }, "summary": { "average_rating": 4.5, "total_reviews": 132, "rating_breakdown": { "1": 3, "2": 4, "3": 9, "4": 27, "5": 89 } }, "reviews": [ { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c55", "rating": 5, "title": "Perfect fit, rich fabric", "description": "The M fits exactly like the size guide says and the cotton is thick, not the market thin stuff. Wore it to a wedding.", "media": [], "vendor_response": "Thank you Adaeze — you wore it so well! Send us pictures next time.", "vendor_response_at": "2026-09-21T09:05:00.000000Z", "status": "approved", "is_verified_purchase": true, "created_at": "2026-09-20T17:44:00.000000Z", "updated_at": "2026-09-21T09:05:00.000000Z", "edited_at": null, "submitted_at": null, "source": null, "author_display_name": null, "user": { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c51", "name": "Adaeze Okafor", "avatar": "https://media.usequeek.com/uploads/avatars/adaeze-okafor.jpg" } }, { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c56", "rating": 4, "title": "Lovely, delivery took a while", "description": "Dress is beautiful and well finished. Took four days to reach Abuja, so order early.", "media": [], "vendor_response": null, "vendor_response_at": null, "status": "approved", "is_verified_purchase": true, "created_at": "2026-09-22T10:20:00.000000Z", "updated_at": "2026-09-22T10:20:00.000000Z", "edited_at": null, "submitted_at": null, "source": null, "author_display_name": null, "user": { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c52", "name": "Funmi Adeyinka", "avatar": "https://media.usequeek.com/uploads/avatars/funmi-adeyinka.jpg" } } ] }, "has_more": false, "next_cursor": null}Average rating, review count and the 1–5 star distribution for one product.
Authorization
clientKey The store's API key (Dashboard → Settings → API keys). pk_live_… public keys are for browser code and only work from an origin on the key's allowlist; sk_live_… private keys are for servers and native apps and need no Origin.
In: header
Path Parameters
Header Parameters
Your store API key (Dashboard → Settings → API keys). pk_live_… public keys are for browser code and only work from an origin on the key's allowlist; sk_live_… private keys are for servers and native apps and need no Origin.
Your own correlation id (8–128 chars, ^[A-Za-z0-9_.:-]+$). Echoed back on the response and on every log line of the request; one is generated when you omit it.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/store/products/ankara-midi-dress/reviews/summary" \ -H "X-Client-Key: {{clientKey}}"{ "status": "success", "message": "Product review summary retrieved", "data": { "product": { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c11", "slug": "ankara-midi-dress", "title": "Ankara Midi Dress" }, "summary": { "average_rating": 4.5, "total_reviews": 132, "rating_breakdown": { "1": 3, "2": 4, "3": 9, "4": 27, "5": 89 } }, "latest_reviews": [ { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c55", "rating": 5, "title": "Perfect fit, rich fabric", "description": "The M fits exactly like the size guide says and the cotton is thick, not the market thin stuff. Wore it to a wedding.", "media": [], "vendor_response": "Thank you Adaeze — you wore it so well! Send us pictures next time.", "vendor_response_at": "2026-09-21T09:05:00.000000Z", "status": "approved", "is_verified_purchase": true, "created_at": "2026-09-20T17:44:00.000000Z", "updated_at": "2026-09-21T09:05:00.000000Z", "edited_at": null, "submitted_at": null, "source": null, "author_display_name": null, "user": { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c51", "name": "Adaeze Okafor", "avatar": "https://media.usequeek.com/uploads/avatars/adaeze-okafor.jpg" } } ] }, "has_more": false, "next_cursor": null}Customer questions on one product with the store’s answers, paginated.
Authorization
clientKey The store's API key (Dashboard → Settings → API keys). pk_live_… public keys are for browser code and only work from an origin on the key's allowlist; sk_live_… private keys are for servers and native apps and need no Origin.
In: header
Path Parameters
Query Parameters
1 <= value <= 50Keyset cursor: pass the previous page next_cursor. Walk while has_more is true; a stale, tampered, cross-list or filter-changed cursor answers 422 starting_after_invalid. Never combine with page.
Items per read (alias of per_page, max 50). page mode caps at page 50 (page_too_deep); walk the cursor past that.
Header Parameters
Your store API key (Dashboard → Settings → API keys). pk_live_… public keys are for browser code and only work from an origin on the key's allowlist; sk_live_… private keys are for servers and native apps and need no Origin.
Your own correlation id (8–128 chars, ^[A-Za-z0-9_.:-]+$). Echoed back on the response and on every log line of the request; one is generated when you omit it.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/store/products/ankara-midi-dress/questions?per_page=10&limit=15" \ -H "X-Client-Key: {{clientKey}}"{ "status": "success", "message": "Product questions retrieved", "data": { "product": { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c11", "slug": "ankara-midi-dress", "title": "Ankara Midi Dress" }, "questions": [ { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c61", "question": "Does this run true to size? I am between M and L.", "answer": "It runs true to size — take M if you are between sizes. The L is cut for a relaxed owambe fit.", "status": "answered", "created_at": "2026-09-19T08:12:00.000000Z", "answered_at": "2026-09-19T13:30:00.000000Z", "user": { "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c51", "name": "Adaeze Okafor", "avatar": "https://media.usequeek.com/uploads/avatars/adaeze-okafor.jpg" } } ] }, "has_more": false, "next_cursor": null}