Authentication methods and authorization levels
Vectara has robust authentication and authorization methods in place to secure your data and operations, whether you are an Admin configuring the system or tenant, a developer building applications for your enterprise, or an end user issuing queries through an application. We provide a structured authentication and authorization model to control access to our platform and your data.
This overview introduces the supported mechanisms and access control levels, helps you understand what is platform-enforced versus application-enforced, and provides a quick reference to help answer key questions for internal discussions.
Authentication methods in Vectara
Vectara supports two authentication strategies:
- API Keys – Lightweight tokens for direct API access, often used for quick prototyping or front-end queries.
- OAuth 2.0 Tokens – Expiring JWT tokens generated by app clients, suited for secure production environments.
Use the following table to understand the key types, whether you develop applications and test APIs, or a platform admin configuring systems or managing corpora.
| API Key Type | Key Prefix | Allowed Operations | Access Scope | Intended Use |
|---|---|---|---|---|
| Personal API Key | zut_... | All operations, with some limitations such as not deleting your account or creating users | Account-wide (inherits user’s permissions) | Administrative tasks, prototyping, full access across corpora |
| Query API Key | zqt_... | Read-only search operations | Corpus-specific | Front-end applications, public-facing query requests |
| Index API Key | zwt_... | Read and write (indexing and querying) | Corpus-specific | Server-side indexing and querying |
| OAuth 2.0 Token | (JWT token) | Scoped by roles granted to OAuth client | Account or corpus scope | Secure production authentication, third-party integrations |
See Choosing the Right Authentication Method to decide whether to use API keys or OAuth based on your use case.
Authorization levels in Vectara
Vectara primarily enforces authorization at the account and corpus level through Role-Based Access Control (RBAC), critical for Admins managing users on the Vectara Platform, or Developers scoping corpus access. You can layer Attribute-Based Access Control (ABAC) by applying metadata-based filters at query time. Let's explore the various authorization levels to help you implement secure access control.
Account administration roles
These roles enable you to define administrators. For example, by assigning someone Owner or Account Admin permissions in the Console, they will have broad control over the platform’s data and user access. But by not assigning them Billing Admin permissions, they will be restricted from accessing billing data.
How it works: Vectara assigns account-level roles (Owner, Account Admin, Billing Admin) to grant full administrative access. Owners have unrestricted control, including account deletion, while Account Admins manage corpora and users (excluding billing). Billing Admins focus solely on billing tasks. These roles do not allow direct access to document contents.
Supported mechanisms: RBAC with predefined roles, managed by admins through the Console.
Limitations: Fully supported with no restrictions, but roles do not provide granular document access. Use corpus-level roles.
Corpus access management
Limit access to corpora by assigning roles like Query (QRY), Index (IDX), or Admin (ADM) per corpus, scoping API keys or OAuth tokens to specific corpora via the Console. For example, a developer can assign a Query role to an API key for read-only access to a marketing corpus, ensuring isolated, secure data interactions.
How it works: Corpus-level roles—QRY for read-only searches, IDX for write and
query, and ADM for full control—are assigned per corpus. API keys (zqt_, zwt_)
or OAuth tokens are scoped to individual corpora, preventing cross-corpus access
unless explicitly granted.
Supported mechanisms: RBAC with QRY, IDX, and ADM roles, configurable by admins.
Limitations: Fully supported and the primary method for data segmentation. This is ideal for secure, isolated access.