VUZDevelopers
Auth

Choosing a credential

API key vs. OAuth — which one fits your integration.

The public-API-accessible routes (see API Reference) accept either credential, interchangeably, on the same endpoint. Send exactly one:

  • X-Api-Key: vuz_... header, or
  • Authorization: Bearer vuz_at_... header

Sending both on the same request is rejected with 400 ambiguous_credentials — pick one.

Comparison

API keyOAuth 2.0
Best forScripts, backend jobs, quick integrations you control yourselfStore plugins (WooCommerce, etc.) a merchant installs and authorizes themselves
Who creates itYou, from your own dashboard (Settings → Integrations → API Keys)The merchant, via an authorize/consent screen — you never see their raw secret
Credential shapeSingle long-lived secret (vuz_...), you rotate it yourselfShort-lived access token (vuz_at_..., 1 hour) + refresh token, auto-rotated
Setup complexityLow — one API call or a dashboard clickHigher — you register as an OAuth client and implement Authorization Code + PKCE
RevocationYou revoke your own key any timeThe merchant can revoke access from their VUZ dashboard at any time — your integration must handle a sudden 401 token_revoked
ScopesSet per key at creationGranted by the merchant on the consent screen
Rate limitsPer-key (rateLimitPerMinute/rateLimitPerHour, configurable)App-tier defaults (120/min, 10,000/hour)

The rule of thumb

  • Building a tool for your own single VUZ business? Use an API key. It's the fastest path — no OAuth flow to implement.
  • Building something a third party (a merchant, a customer) installs and connects themselves to their own VUZ business? Use OAuth — never ask a merchant to generate and hand you their API key.

Both paths land in the exact same place: a PublicApiContext bound to one business, with a set of granted scopes, enforced by the same scope model on every request.

On this page