Skip to content
Kitenzo Headless is currently invite-only. To enable it on your store, email support@kitenzo.com.

CORS

The API is built to be called from the browser, so it implements CORS itself — keyed to each API key’s allowed origins. There’s no proxy to run. The merchant-facing setup is covered in CORS & allowed origins; this page is the protocol-level reference.

CORS handling applies to requests under /api/headless/v1/. Requests are CSRF-exempt (they authenticate by API key, not session cookies).

HeaderValue
Access-Control-Allow-Originthe request’s Origin
Access-Control-Allow-Credentialstrue
Access-Control-Allow-MethodsGET, POST, OPTIONS
Access-Control-Allow-HeadersAuthorization, Content-Type
Access-Control-Max-Age86400
VaryOrigin

Browsers send preflight requests without the Authorization header, so the API can’t identify the specific key. Instead it checks whether any active key for the shop allows the Origin, and responds:

HTTP/1.1 204 No Content
Access-Control-Allow-Origin: https://mystore.com
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Authorization, Content-Type
Access-Control-Max-Age: 86400

If no key allows the origin, the preflight returns 204 without CORS headers and the browser blocks the real request.

On a GET/POST, CORS headers are added only after the key authenticates and the request’s origin is in that key’s allowed_origins.