Queek docs
Storefront endpoint reference

Cart

GET
/store/cart

Items and subtotal for the cart identified by X-Cart-Session (or the signed-in customer). No delivery or fees — those are computed at checkout.

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

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-Cart-Session?string

Identifies a signed-out shopper's cart. Required when no customer token is sent — without it the cart answers 422 validation_failed (Missing session token for anonymous cart.); ignored when an Authorization: Bearer customer token is present. Generate any opaque string (a UUID) when the shopper first adds to cart and send it on every cart call. The same value is also accepted as the session_token body field.

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

curl -X GET "https://example.com/store/cart" \  -H "X-Client-Key: {{clientKey}}" \  -H "X-Cart-Session: a3f1b8e2-4c5d-4e6f-8a9b-0c1d2e3f4a5b"
{  "data": [    {      "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c41",      "vendor_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01",      "vendor": {        "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01",        "name": "Zuri Atelier",        "distance": null,        "delivery_info": {          "is_free_delivery": true,          "delivery_fee": 0,          "delivery_fee_value": 0,          "min_order": 1000,          "min_order_fee": 2000,          "d_p_value": 1.5,          "s_p_value": 1.5,          "delivery_time": "45-180 min",          "delivery_message": "Open until 21:00",          "offers_free_delivery": false,          "pickup_enabled": true,          "offer_instant_delivery": true        },        "notice": [],        "slug": "zuri-atelier",        "service": null,        "currency": "NGN",        "logo": "https://media.usequeek.com/uploads/stores/2207/logo.png",        "disable_order": false,        "is_closed": false,        "temporary_unavailable": false,        "preorder_enabled": null,        "area": "Lekki Phase 1",        "banner": "https://media.usequeek.com/uploads/stores/2207/banner.png",        "support_phone": "+234 803 555 0147",        "phone": "+234 803 555 0147",        "country_code": "NG",        "phone_code": "234",        "support_email": "[email protected]",        "slogan": null,        "tags": null,        "tag": "fashion",        "is_new": false,        "rating": 4.7,        "rating_count": 486,        "short_description": null,        "address": "12B Admiralty Way, Lekki Phase 1, Lagos",        "open_time": "09:00",        "close_time": "21:00",        "service_type": "fashion",        "landmark": "Opposite NIIT",        "region_id": null,        "min_order_price": null      },      "cart_items": [        {          "item_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c42",          "title": "Ankara Midi Dress",          "variant_id": "019b0c4d-5f10-7a02-8c61-0b2d4e6f8a02",          "variant_title": "M",          "variant_option_values": {            "Size": "M"          },          "price": 28500,          "discount_price": 24225,          "discount": {            "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c31",            "title": "Lagos Fashion Week 15% Off",            "type": "percentage",            "amount": 4275          },          "quantity": 1,          "selectedAddons": [],          "requires_slot": false,          "properties": null        }      ],      "total_price": 24225,      "source": "storefront",      "promo_codes": [],      "is_valid": true,      "validation_errors": [],      "last_validated_at": "2026-09-25T15:40:00+01:00",      "created_at": "2026-09-25T15:32:00+01:00",      "updated_at": "2026-09-25T15:40:00+01:00"    }  ],  "status": "success",  "message": "Carts retrieved successfully",  "meta": {    "total_carts": 1  }}
POST
/store/cart

Upserts the whole cart in one call (cart_items[] with item_id, quantity, optional variant_id). Prefer cart/items to add lines one at a time. Items the server rejects come back in rejected_items.

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

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-Cart-Session?string

Identifies a signed-out shopper's cart. Required when no customer token is sent — without it the cart answers 422 validation_failed (Missing session token for anonymous cart.); ignored when an Authorization: Bearer customer token is present. Generate any opaque string (a UUID) when the shopper first adds to cart and send it on every cart call. The same value is also accepted as the session_token body field.

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.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/store/cart" \  -H "X-Client-Key: {{clientKey}}" \  -H "X-Cart-Session: a3f1b8e2-4c5d-4e6f-8a9b-0c1d2e3f4a5b" \  -H "Content-Type: application/json" \  -d '{    "vendor_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01",    "cart_items": [      {        "item_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c42",        "title": "Ankara Midi Dress",        "price": 28500,        "quantity": 1,        "variant_id": "019b0c4d-5f10-7a02-8c61-0b2d4e6f8a02"      },      {        "item_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c43",        "title": "Aso-Oke Head Wrap",        "price": 8500,        "quantity": 2      }    ],    "source": "storefront"  }'
{  "status": "success",  "message": "Cart saved successfully",  "data": {    "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c41",    "vendor_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01",    "vendor": {      "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01",      "name": "Zuri Atelier",      "distance": null,      "delivery_info": {        "is_free_delivery": true,        "delivery_fee": 0,        "delivery_fee_value": 0,        "min_order": 1000,        "min_order_fee": 2000,        "d_p_value": 1.5,        "s_p_value": 1.5,        "delivery_time": "45-180 min",        "delivery_message": "Open until 21:00",        "offers_free_delivery": false,        "pickup_enabled": true,        "offer_instant_delivery": true      },      "notice": [],      "slug": "zuri-atelier",      "service": null,      "currency": "NGN",      "logo": "https://media.usequeek.com/uploads/stores/2207/logo.png",      "disable_order": false,      "is_closed": false,      "temporary_unavailable": false,      "preorder_enabled": null,      "area": "Lekki Phase 1",      "banner": "https://media.usequeek.com/uploads/stores/2207/banner.png",      "support_phone": "+234 803 555 0147",      "phone": "+234 803 555 0147",      "country_code": "NG",      "phone_code": "234",      "support_email": "[email protected]",      "slogan": null,      "tags": null,      "tag": "fashion",      "is_new": false,      "rating": 4.7,      "rating_count": 486,      "short_description": null,      "address": "12B Admiralty Way, Lekki Phase 1, Lagos",      "open_time": "09:00",      "close_time": "21:00",      "service_type": "fashion",      "landmark": "Opposite NIIT",      "region_id": null,      "min_order_price": null    },    "cart_items": [      {        "item_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c42",        "title": "Ankara Midi Dress",        "variant_id": "019b0c4d-5f10-7a02-8c61-0b2d4e6f8a02",        "variant_title": "M",        "variant_option_values": {          "Size": "M"        },        "price": 28500,        "discount_price": 24225,        "discount": {          "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c31",          "title": "Lagos Fashion Week 15% Off",          "type": "percentage",          "amount": 4275        },        "quantity": 1,        "selectedAddons": [],        "requires_slot": false,        "properties": null      }    ],    "total_price": 24225,    "source": "storefront",    "promo_codes": [],    "is_valid": true,    "validation_errors": [],    "last_validated_at": "2026-09-25T15:40:00+01:00",    "created_at": "2026-09-25T15:32:00+01:00",    "updated_at": "2026-09-25T15:40:00+01:00"  }}
POST
/store/cart/items

Adds one line (product_id, optional variant_id, quantity) without touching other lines. Replies result: "added" with the cart, or result: "customise" with the variant/addon options the product needs — show them and call again with the choice.

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

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-Cart-Session?string

Identifies a signed-out shopper's cart. Required when no customer token is sent — without it the cart answers 422 validation_failed (Missing session token for anonymous cart.); ignored when an Authorization: Bearer customer token is present. Generate any opaque string (a UUID) when the shopper first adds to cart and send it on every cart call. The same value is also accepted as the session_token body field.

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.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/store/cart/items" \  -H "X-Client-Key: {{clientKey}}" \  -H "X-Cart-Session: a3f1b8e2-4c5d-4e6f-8a9b-0c1d2e3f4a5b" \  -H "Content-Type: application/json" \  -d '{    "product_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c11",    "variant_id": "019b0c4d-5f10-7a02-8c61-0b2d4e6f8a02",    "quantity": 1  }'
{  "status": "success",  "message": "Item added to cart",  "data": {    "result": "added",    "cart": {      "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c41",      "vendor_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01",      "vendor": {        "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01",        "name": "Zuri Atelier",        "distance": null,        "delivery_info": {          "is_free_delivery": true,          "delivery_fee": 0,          "delivery_fee_value": 0,          "min_order": 1000,          "min_order_fee": 2000,          "d_p_value": 1.5,          "s_p_value": 1.5,          "delivery_time": "45-180 min",          "delivery_message": "Open until 21:00",          "offers_free_delivery": false,          "pickup_enabled": true,          "offer_instant_delivery": true        },        "notice": [],        "slug": "zuri-atelier",        "service": null,        "currency": "NGN",        "logo": "https://media.usequeek.com/uploads/stores/2207/logo.png",        "disable_order": false,        "is_closed": false,        "temporary_unavailable": false,        "preorder_enabled": null,        "area": "Lekki Phase 1",        "banner": "https://media.usequeek.com/uploads/stores/2207/banner.png",        "support_phone": "+234 803 555 0147",        "phone": "+234 803 555 0147",        "country_code": "NG",        "phone_code": "234",        "support_email": "[email protected]",        "slogan": null,        "tags": null,        "tag": "fashion",        "is_new": false,        "rating": 4.7,        "rating_count": 486,        "short_description": null,        "address": "12B Admiralty Way, Lekki Phase 1, Lagos",        "open_time": "09:00",        "close_time": "21:00",        "service_type": "fashion",        "landmark": "Opposite NIIT",        "region_id": null,        "min_order_price": null      },      "cart_items": [        {          "item_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c42",          "title": "Ankara Midi Dress",          "variant_id": "019b0c4d-5f10-7a02-8c61-0b2d4e6f8a02",          "variant_title": "M",          "variant_option_values": {            "Size": "M"          },          "price": 28500,          "discount_price": 24225,          "discount": {            "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c31",            "title": "Lagos Fashion Week 15% Off",            "type": "percentage",            "amount": 4275          },          "quantity": 1,          "selectedAddons": [],          "requires_slot": false,          "properties": null        }      ],      "total_price": 24225,      "source": "storefront",      "promo_codes": [],      "is_valid": true,      "validation_errors": [],      "last_validated_at": "2026-09-25T15:40:00+01:00",      "created_at": "2026-09-25T15:32:00+01:00",      "updated_at": "2026-09-25T15:40:00+01:00"    }  }}
POST
/store/cart/validate

Re-checks every line against current stock and prices and returns is_valid with validation_errors. Call before sending the shopper to checkout_url.

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

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-Cart-Session?string

Identifies a signed-out shopper's cart. Required when no customer token is sent — without it the cart answers 422 validation_failed (Missing session token for anonymous cart.); ignored when an Authorization: Bearer customer token is present. Generate any opaque string (a UUID) when the shopper first adds to cart and send it on every cart call. The same value is also accepted as the session_token body field.

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.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/store/cart/validate" \  -H "X-Client-Key: {{clientKey}}" \  -H "X-Cart-Session: a3f1b8e2-4c5d-4e6f-8a9b-0c1d2e3f4a5b" \  -H "Content-Type: application/json" \  -d '{    "cart_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c41"  }'
{  "status": "success",  "message": "Cart is valid",  "data": {    "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c41",    "vendor_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01",    "vendor": {      "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c01",      "name": "Zuri Atelier",      "distance": null,      "delivery_info": {        "is_free_delivery": true,        "delivery_fee": 0,        "delivery_fee_value": 0,        "min_order": 1000,        "min_order_fee": 2000,        "d_p_value": 1.5,        "s_p_value": 1.5,        "delivery_time": "45-180 min",        "delivery_message": "Open until 21:00",        "offers_free_delivery": false,        "pickup_enabled": true,        "offer_instant_delivery": true      },      "notice": [],      "slug": "zuri-atelier",      "service": null,      "currency": "NGN",      "logo": "https://media.usequeek.com/uploads/stores/2207/logo.png",      "disable_order": false,      "is_closed": false,      "temporary_unavailable": false,      "preorder_enabled": null,      "area": "Lekki Phase 1",      "banner": "https://media.usequeek.com/uploads/stores/2207/banner.png",      "support_phone": "+234 803 555 0147",      "phone": "+234 803 555 0147",      "country_code": "NG",      "phone_code": "234",      "support_email": "[email protected]",      "slogan": null,      "tags": null,      "tag": "fashion",      "is_new": false,      "rating": 4.7,      "rating_count": 486,      "short_description": null,      "address": "12B Admiralty Way, Lekki Phase 1, Lagos",      "open_time": "09:00",      "close_time": "21:00",      "service_type": "fashion",      "landmark": "Opposite NIIT",      "region_id": null,      "min_order_price": null    },    "cart_items": [      {        "item_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c42",        "title": "Ankara Midi Dress",        "variant_id": "019b0c4d-5f10-7a02-8c61-0b2d4e6f8a02",        "variant_title": "M",        "variant_option_values": {          "Size": "M"        },        "price": 28500,        "discount_price": 24225,        "discount": {          "id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c31",          "title": "Lagos Fashion Week 15% Off",          "type": "percentage",          "amount": 4275        },        "quantity": 1,        "selectedAddons": [],        "requires_slot": false,        "properties": null      }    ],    "total_price": 24225,    "source": "storefront",    "promo_codes": [],    "is_valid": true,    "validation_errors": [],    "last_validated_at": "2026-09-25T15:40:00+01:00",    "created_at": "2026-09-25T15:32:00+01:00",    "updated_at": "2026-09-25T15:40:00+01:00"  },  "meta": {    "is_valid": true,    "validation_errors": []  }}
DELETE
/store/cart/clear

Removes every line from the cart identified by X-Cart-Session (or the signed-in customer).

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

cart_id?|
Formatuuid

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-Cart-Session?string

Identifies a signed-out shopper's cart. Required when no customer token is sent — without it the cart answers 422 validation_failed (Missing session token for anonymous cart.); ignored when an Authorization: Bearer customer token is present. Generate any opaque string (a UUID) when the shopper first adds to cart and send it on every cart call. The same value is also accepted as the session_token body field.

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

application/json

curl -X DELETE "https://example.com/store/cart/clear?cart_id=019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c41" \  -H "X-Client-Key: {{clientKey}}" \  -H "X-Cart-Session: a3f1b8e2-4c5d-4e6f-8a9b-0c1d2e3f4a5b"
{  "status": "success",  "message": "Cart cleared successfully",  "data": {    "cleared_cart_id": "019b0c4d-5e6f-7a8b-9c0d-1e2f3a4b5c41"  }}