Skip to content

FAQ

Self-serve from the web-client settings page, or ask Voyage staff to issue one. A key is minted off your brand’s connected shop, so any brand already connected to a Shopify shop can get a key with no new app install. See the Quickstart.

Why can’t I use my API key to rotate or revoke keys?

Section titled “Why can’t I use my API key to rotate or revoke keys?”

Key management requires a session credential — an API key can never manage keys. This is a containment guarantee: a leaked key cannot mint itself a replacement or rotate around its own revocation. See Authentication.

Why do I get a 404 for a profile I expected to exist?

Section titled “Why do I get a 404 for a profile I expected to exist?”

A single-profile read returns 404 for both a non-existent id and an id that belongs to another brand — they are deliberately indistinguishable, so a brand cannot probe for another brand’s ids. Confirm the id belongs to your shop scope.

offset + limit must stay inside the 10,000-row OpenSearch result window. To enumerate beyond it, drop ?offset and follow the nextCursor token instead. See Pagination.

totalSize is an OpenSearch result-window estimate capped at 10,000 — not a true total. When paginating with the cursor, ignore totalSize and keep going until nextCursor is null.

No. POST /cdp/ingest is credential-free by design — the browser sends only Content-Type and the server injects the upstream credential. Any Authorization you send is ignored. See Ingest.

What status does a successful ingest return?

Section titled “What status does a successful ingest return?”

Treat success as 2xx. Today the proxy returns the upstream status (typically 200); a parallel change (CDLA-033) moves ingest to 202 Accepted for asynchronous forwarding. Branch on the 2xx class.

The CDP runs on one shared cluster across every brand. A tight, bounded page size keeps a single caller from degrading the cluster for everyone. The staff-internal cap is higher; the public API is intentionally half of it.