Queek docs

Changelog

Every change to the Storefront API, generated from the OpenAPI snapshot diff.

A workflow checks the live OpenAPI document every night. When the snapshot changes, it opens a pull request whose body is the endpoint and schema diff — and that same diff is appended below. Newest entries first.

2026-09-25 — POST /orders/import takes naira

unit_price, delivery_fee, discount and total are now amounts in naira with at most 2 decimals (6500 or "6500.00"), like every other Merchant API amount — they were integers in kobo. The receipt must add up: the sum of unit_price × quantity, plus delivery_fee, minus discount, equals total, or the import answers 422 validation_failed on total with the amount it expected. Caps: ₦1,000,000 per unit price, delivery fee or discount, ₦10,000,000 per total. If you sent kobo, divide by 100 before sending.

2026-09-25 — Merchant API: real examples, deletes name what they deleted

  • The reference shows real calls. Every operation now carries a realistic request body, path and page parameter values from one example store, and the exact 404 and 422 bodies that operation answers — the 422 names a field the operation validates. request_id in every example is a UUID, as the API sends it.
  • Variant and image deletes answer what they deleted. DELETE /products/{product}/variants/{variant} answered data: []; it now answers {"id": 7731, "uid": "…", "deleted": true} (the variant's own ids). DELETE /products/{product}/images/{image} answers {"id": 88215, "deleted": true} — id is null when the removed primary image was a bare URL with no media row. DELETE /products/{product} gains "deleted": true beside its id and p_id. A client that tested data for an empty list should test data.deleted.
  • A missing record's 404 names the record. Operations that answered "No query results for model [App\Models\Product] 20417" now answer "Product not found." (likewise for orders and shipping zones), and GET /customers/{customer} answers "Customer not found" (was "User not found"). error.code is unchanged (not_found) — branch on it, never on the message.
  • An imported order's customer is on shipping_address. POST /orders/import stores the platform's customer (name + phone) as the order's recipient: shipping_address.name and shipping_address.phone (new, additive; null on every other order), readable only with merchant-customers-contact-read like every contact. Webhooks carry them, as they carry customer. Queek never writes contact into metadata, and a key without the contact scope reads metadata without contact keys (customer_phone, phone, email, …).

2026-09-25 — order payload: store customer and shipment

The order object — every orders/* webhook and every Merchant API order endpoint — changed in two ways:

  • customer is the store's own record of the buyer. Its id is now the store customer id (the one GET /customers/{customer} and the customers/* events use), and name, email and phone are what this store holds — no longer the buyer's global Queek profile, which could carry the name and contact they use at other stores. customer is null when the order has no store customer record (marketplace orders, imports placed under a guest). If you matched orders to people by the old customer.id, email or name, re-key on the new customer.id.
  • New shipment key (additive): carrier tracking on a shipping order — carrier_name, tracking_number, tracking_url, zone_name, shipped_at, estimated_delivery_at, delivered_at — or null. PATCH /orders/{order}/shipment answers the order with it.

2026-09-23 — public API naming

The Merchant API moved to clean public paths under /api/v1/merchant/* (49 operations in 14 groups: Store, Products, Variants, Images, Collections, Inventory, Orders, Customers, Discounts, Coupons, Shipping zones, Metafields, Metaobjects, Content), each with a standard name and one update verb per resource; discounts gained list and retrieve. The earlier biz/vendor paths — live only hours, never announced — now refuse keys with route_not_available naming the new path. The scopes table is regenerated (32 scopes, adding discount list and retrieve).

The Storefront reference is complete: 57 operations with standard names (the committed snapshot had only 30), including the account, address, follow, order and metaobject groups, grouped by the spec's own order.

2026-09-23 — Merchant API v1

The Merchant API is documented: server-side access for a store's own systems (ERP and stock sync, fulfilment, catalogue) on https://api.usequeek.com/api/v1/biz, authenticated by a private sk_ key alone. New section beside the storefront docs with an overview, authentication & keys, a scopes table generated from the spec (30 scopes across 49 operations), idempotency & rate limits, errors, and an endpoint reference generated from the new spec/merchant-openapi.json snapshot (37 paths, 18 tags).

2026-09-22 — snapshot baseline

Baseline snapshot: 29 paths, 30 operations, 7 shared schemas. Future entries list added/removed/changed paths and schemas against this starting point.

On this page