CLI First
Browser sign-in (no password)
naive auth runs a browser-based login and drops the resulting API key into your local CLI config — the fastest passwordless setup for new and existing accounts.
127.0.0.1, open your browser to authenticate, and receive the credential back on the loopback — nothing is pasted or echoed to the terminal.
naive auth google / naive auth email establish your developer identity and API key — different from the Auth primitive, which manages the end-users of an app you deploy.Human session (for consent-gated actions)
A few actions are human-only and cannot be performed with an agent API key alone — voice cloning and voice revocation record a legal consent affirmation, so they require a signed-in human session (a cookie), not just a key.GET /v1/auth/oauth/google (Google) or POST /v1/auth/magic/start (email magic link), and the human session is a naive_session cookie validated by the API on consent-gated routes.
API Keys
Every request requires a Bearer token:Authorization: Bearer nv_sk_live_...
Keys are scoped to one agent inside one company. Identity is resolved automatically — you never need to pass agent or company IDs.
Getting a Key
Option A: Self-Register (new account)
Option B: Login (existing account)
If you already registered or have a dashboard account:POST /v1/auth/select-company to switch.
Option C: Email Magic Link (passwordless)
For a new or existing account without a password:127.0.0.1, exchanges the
single-use callback code, and saves the resulting API key. Direct API clients
should use registration/login or the browser OAuth flow; the retired
/v1/auth/link and /v1/auth/verify endpoints no longer mint credentials.
Key Management
Rate Limiting
Rate limit headers on every response:
Error Format
Every error follows this structure:Error Codes
Idempotency
For mutation requests, pass anIdempotency-Key header to prevent duplicate operations: