Authorization header on every /v1 route.
sk-kupe-. Dashboard sessions can send a Supabase user JWT instead.
Environment
SDKs always join paths as
{base}/v1/.... Do not put /v1 in KUPE_BASE_URL.
Who am I?
API keys are scoped to one org and one project. JWT callers are a user, not a project, so those IDs are null."api_key" | "jwt"
How this request was authenticated.
string | null
Set for API keys. Null for JWT.
string | null
Set for API keys. Null for JWT.
string | null
Set for JWT callers.
string | null
Set for API-key callers.
GET /v1/orgs/{org_id}/projects/{project_id}/agents.
JWT-only routes
Voice clone / patch / delete require a signed-in user (auth: jwt). Calling them with an API key returns 403. Listing catalog voices, preview, and speak still work with a key where noted in the Voices guide.
Keys
Create and revoke keys from a project:POST /v1/projects/{project_id}/api-keysGET /v1/projects/{project_id}/api-keysDELETE /v1/projects/{project_id}/api-keys/{key_id}
sk-kupe-... to git.
