API key (recommended)
Create a key in organization settings. Send it as:API keys are organization-scoped. Do not send
organizationId for API-key
requests. Session-authenticated UI calls still require organizationId.OAuth client credentials
Machine clients can use:
For API-initiated enrichment,
skills:read loads organization skills without requiring AOP access. New keys include this scope by default; custom scope selections can omit it during creation or later in key settings. Existing keys receive it through a one-time migration. Enable documents:read for knowledge-base evidence, and branding:read plus branding:write for brand-kit lookup and resolution. Resolution can create a missing brand kit. The general Omni agent uses agents:invoke. See Omni agent API.
Exact scope requirements are listed on each endpoint in the API reference and in the guides.
Session auth (first-party UI)
Browser sessions (cookies) work for first-party OmniCommerce UI flows. Those requests must includeorganizationId in the query string (GET) or JSON/multipart body (writes).
Direct script execution through /api/scripts/... requires this app session and organization permissions. An OmniCommerce API key or OAuth token alone does not authenticate these routes. Windmill’s native API uses a separate Windmill bearer token.
Playground
The Mintlify API playground uses bearer auth. Paste youromni_sk_... key when using Try it. Prefer non-production keys when testing.
Error responses
Unauthenticated or under-scoped requests return401 / 403 with a JSON error body. Retry only after fixing credentials or scopes—do not spin on auth failures.