Authentication

Authenticate the SDK with a personal access token or a service account.

Kortix accepts one bearer token per request. Pass it through getToken in createKortix. The SDK sends it as Authorization: Bearer <token>.

import { createKortix } from '@kortix/sdk';

const kortix = createKortix({
  backendUrl: 'https://api.kortix.com/v1',
  getToken: async () => process.env.KORTIX_API_KEY!,
});

backendUrl and getToken are required. The SDK caches nothing: it calls getToken on every request, so your app owns token storage and refresh.

Personal access tokens

A personal access token (PAT) is the credential for the SDK, the CLI, and CI. Create one at User settings → API keys. The key starts with kortix_pat_ and shows only once, at creation. Store it as a secret.

A PAT acts as the user who created it. Its scope is fixed at creation:

ScopeReach
Account (default)Every project in the account
ProjectOne project only; every other project returns 403

Choose the project scope for CI and other narrow-purpose credentials. kortix login mints a PAT and stores it locally — it is the same credential type, not a separate token kind.

Service accounts

A service account is a separate credential family for non-human callers, prefixed kortix_sa_. Create one at Account settings → Service accounts.

A new service account has no project access. If you point getToken at one before you grant it access, every call returns 403 "You do not have access to this project". Grant the service account access first, or use a personal access token for the SDK, the CLI, and demos instead.

Supabase JWT

If your app uses Kortix's own sign-in, return the live session token instead of a PAT:

getToken: async () =>
  (await supabase.auth.getSession()).data.session?.access_token ?? null,

The SDK calls getToken on every request, so a refreshed token takes effect automatically.

Choose a credential

You are buildingUse
A backend, script, or CI jobA personal access token, account-wide or project-scoped
The Kortix CLIkortix login (mints a personal access token)
A web app on Kortix sign-inA Supabase JWT
An automated caller with a granted projectA service account
Authentication – Kortix Docs