Queek docs
Storefront endpoint reference

Categories

GET
/store/categories

The store’s product categories. Use a category’s id or slug with categories/{category}/products.

Authorization

clientKey
X-Client-Key<token>

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

include_empty?boolean|null
locale?string

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

X-Client-Key*string

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.

X-Request-Id?string

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

curl -X GET "https://example.com/store/categories" \  -H "X-Client-Key: {{clientKey}}"
{  "data": [    {      "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c21",      "name": "Dresses",      "slug": "dresses",      "image": "https://media.usequeek.com/uploads/stores/2207/categories/dresses.jpg",      "image_variants": null,      "products_count": 1,      "children": []    },    {      "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c22",      "name": "Head Wraps",      "slug": "head-wraps",      "image": "https://media.usequeek.com/uploads/stores/2207/categories/head-wraps.jpg",      "image_variants": null,      "products_count": 1,      "children": []    }  ],  "status": "success",  "message": "Categories retrieved",  "meta": []}
GET
/store/categories/{category}/products

Paginated products in one category. Same product shape and filters as products.

Authorization

clientKey
X-Client-Key<token>

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

category*string

Query Parameters

keyword?|
Lengthlength <= 100
sort?|

Value in

  • "newest"
  • "price_low"
  • "price_high"
  • "popular"
  • null
in_stock?boolean|null
per_page?|
Range1 <= value <= 50
starting_after?string

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.

limit?integer

Items per read (alias of per_page, max 50). page mode caps at page 50 (page_too_deep); walk the cursor past that.

attributes?array<array<|>>
locale?string

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

X-Client-Key*string

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.

X-Request-Id?string

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/categories/dresses/products?sort=newest&per_page=15&limit=15" \  -H "X-Client-Key: {{clientKey}}"
{  "status": "success",  "message": "Category 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",        "name": "Zuri Atelier",        "slug": "zuri-atelier",        "logo": "https://media.usequeek.com/uploads/stores/2207/logo.png",        "rating": 4.7,        "rating_count": 486      }    }  ],  "meta": {    "category": {      "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c21",      "name": "Dresses",      "slug": "dresses",      "image": "https://media.usequeek.com/uploads/stores/2207/categories/dresses.jpg",      "image_variants": null,      "products_count": 1,      "children": []    },    "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}