Skip to content

Authentication and scopes

Every request carries a bearer API key. Each key holds only the scopes you grant it.

API keys#

Send the key in the Authorization header. Keys look like rubi_live_ followed by 40 characters. The dashboard only ever shows the prefix after creation.

http
GET /v1/interviews HTTP/1.1
Host: api.rubikyt.com
Authorization: Bearer rubi_live_2b9X...

Keys can expire (expires_in_days) and can be revoked at any time. A revoked or expired key answers 401 with code unauthenticated.

Scopes#

A request without the required permission answers 403 with code forbidden. These are the scopes an API key can carry:

ScopeAllows
interviews:readList interviews, read details, reports, playback and captions.
interviews:createCreate interviews, reissue links, retakes and share links.
interviews:decideRecord analyst decisions and assessments.
interviews:deleteDelete interviews and their media.
traders:readList traders and read profiles, accounts, trades and payouts.
traders:writeCreate and update traders, add and delete notes.
integrations:readRead integration health, sync runs and egress ranges.
integrations:manageCreate, test, update, sync and delete integrations.
analytics:readRead the analytics overview.
webhooks:manageCreate, update, test and delete webhook endpoints.
audit:readRead the audit log.
Human only permissions
members:read, members:manage, api_keys:manage, billing:read and settings:manage exist for dashboard users only. An API key can never manage members, keys or billing.

Roles#

Dashboard users receive permissions through their role in the organization.

RoleDescription
AdminFull access: members, billing, settings, integrations and every interview.
Risk analystCreates interviews, reviews reports and records decisions. Manages traders.
DeveloperManages integrations, API keys and webhooks. Read access to interviews.
ViewerRead only access to interviews, traders and analytics.

Tenancy#

A key belongs to one organization and every request is scoped to it. There is no way to read another firm's data, and the learning memory is kept per organization.