One API. Clear rules.
Every Queek store answers at the same base URL with the same keys, errors and limits. Learn them once and build on any store.
- Stable error codes
- Idempotency keys
- A request id on every response
https://client.usequeek.com/v1
Public key
pk_live_…For browser code. Works only from origins the merchant allows.
Private key
sk_live_…For servers, build steps and native apps. Never in a browser.
Test key
sk_test_…Reaches only your dev store. Swap it to go live.
The headers that carry the contract.
A handful of headers do the work, and they mean the same thing on every Queek store.
You send
X-Client-Key- Your public, private or test key, on every request.
Idempotency-Key- On a write, so a retry can't run twice.
X-Request-Id- Optional. Your own id, to match your trace to ours.
You get back
X-Request-Id- On every response, error bodies included.
X-Queek-Api-Version- The API version, on every response.
X-Queek-Mode: test- On every response from a dev store.
Idempotent-Replayed: true- When a retry replayed the first response.
Retry-After- With too_many_requests, when to try again.
Errors that tell you what to fix.
Every error returns a stable code, a readable message, a request id and a link to its own docs entry, plus the field at fault when there is one. Switch on the code, never the message.
403 · client.usequeek.com/v1
- "error": {
- "code": "origin_not_allowed",
- "doc_url": "…/errors#origin_not_allowed",
- "request_id": "req_…"
- }
Retry without doubling up.
Send an Idempotency-Key with a write and a retry can't run twice. The same key and body replays the first response; a failed request stays retryable.
POST /store/cart/items
- Idempotency-Key: 7f3c…
- # network drops, retry
- Idempotency-Key: 7f3c…
- → Idempotent-Replayed: true
The small things, done properly.
What makes a Queek integration easy to run and easy to debug.
Read the docsLimits that grow with the plan
Private keys get a larger quota on higher plans.
Request ids
Send X-Request-Id or read ours on every response.
Versioned
X-Queek-Api-Version on every response.
Metafields and metaobjects
Custom fields and content types, typed and filterable.
OpenAPI spec
The full schema at client.usequeek.com/openapi.json.
Written for agents too
An endpoint guide at client.usequeek.com/llms.txt.
The rules, in full.
- AuthenticationOne header, two kinds of key, and the rules the browser key plays by.docs.usequeek.com/docs/storefront/authentication
- Dev storesA dev store with its own test keys, and nothing that can reach a real customer.docs.usequeek.com/docs/sandbox
- Versioning and errorsWhat v1 promises, how a change is announced, and the shape every failure answers in.docs.usequeek.com/docs/versioning-and-errors
- Idempotency keysHow a retried write replays the first response instead of running twice.docs.usequeek.com/docs/storefront/payments#idempotency-key
API questions, answered.
The rules, in plain words.
Frequently asked questions
Which plans can use the API?
Every plan, the free plan included. Higher plans give private keys a larger request quota.
What happens if I go over the limit?
You get too_many_requests with a Retry-After header telling you when to try again.
Can a test key reach the live store?
No. Test keys only reach your dev store and live keys only the live one. Mixing them returns api_key_mode_mismatch.
Can I create orders through the API?
No. You build a cart and send the shopper to its checkout_url. Queek checkout completes delivery, payment and the order.
$ curl client.usequeek.com/llms.txt
Get a key and make your first call.
Create a dev store, copy its test key, and read the docs as you go.