Create an organization
To create a new organization:- Click your organization name in the breadcrumbs at the top of the page and select + Create organization.
- Enter a name for your organization.
- Select a data plane region (US or EU) from the dropdown. The region is pre-selected based on your location, but you can change it before continuing.
- Click Continue.
Data plane region
Braintrust’s architecture has two main components:- The data plane stores all sensitive data, including experiment records, logs, traces, spans, datasets, and prompt completions. It consists of the Braintrust API, a PostgreSQL database, Redis cache, object storage, and Brainstore (a high-performance query engine for real-time trace ingestion).
- The control plane provides the web UI, authentication, user management, and metadata storage (project names, experiment names, organization settings). The control plane does not store or process your sensitive data.
Breakdown of where data is stored
Breakdown of where data is stored
https://gateway.braintrust.dev is the global hosted Gateway endpoint. It uses DNS latency routing and health checks across Braintrust-hosted Gateway regions. Gateway routing is separate from your organization’s data plane region. When logging is enabled, Gateway logs are written to your organization’s configured data plane.Find your organization ID
Your organization ID is a UUID used in API calls, self-hosting configuration, and audit log queries. To copy your organization ID or name to the clipboard:- Click your organization name in the breadcrumbs at the top of the page.
- Hover over the current organization (marked with a checkmark) to open its submenu.
- Select Copy organization ID or Copy organization name.
Manage members
Invite members
To add members to your organization:- Go to Settings > Members.
- Click Invite.
- Enter email addresses (one per line for multiple invites).
- Select one or more permission groups.
- Click Send invites.
When SCIM provisioning manages your organization’s membership, Invite is disabled and the API rejects membership changes. Add the user to your identity provider’s mapped group instead. Service accounts are exempt and can still be added by hand.
Remove members
To remove members from your organization:- Go to Settings > Members.
- Find the member you want to remove.
- Click the icon next to their name.
Organizations must have at least one member. You cannot remove yourself from an organization. To transfer ownership or leave an organization, ensure another member is present and can manage the organization after you leave.
When SCIM provisioning manages your organization’s membership, the remove control is disabled and the API rejects membership changes. Remove the user from your identity provider’s mapped group instead. Service accounts are exempt and can still be removed by hand.
Configure permission groups
Permission groups are the core of Braintrust’s access control system. They are collections of users that can be granted specific permissions to projects, experiments, and datasets.- Go to Settings > Permissions.
- View existing groups or create new ones.
- Assign users to groups when inviting members.
Manage API keys
Create API keys for authentication:- Go to Settings > API keys.
- Click + API key.
- Enter a name to identify the key.
- Choose an expiration. It defaults to one year and cannot be changed after creation.
- Click Create.
- Copy the key immediately (it won’t be shown again).
GET /v1/organization/api_keys as an organization owner:
curl
GET /v1/service_token. GET /v1/api_key returns only your own keys, even for organization owners.
- The endpoint lists keys in the organization your API key is scoped to. If your key isn’t scoped to an organization, pass the
org_idquery parameter. - Callers who aren’t owners of the organization get an empty list, not an error. A request whose
org_iddoesn’t match the organization your API key is scoped to also gets an empty list. - Each request returns up to 1,000 keys. To list more, pass the last key’s
idas thestarting_afterquery parameter and repeat until a request returns no keys.
API keys can be created only in the Braintrust UI, not through the API.
Store API keys securely. Anyone with an API key can access Braintrust with the permissions of the key’s creator.
Disable API key creation
To prevent members from creating new API keys:- Go to Settings > API keys.
- Toggle Disable API key creation on.
Create service tokens
Service tokens enable system integrations without tying credentials to individual users:- Go to Settings > Service tokens.
- Click + Service token.
- Enter a name for the service account.
- Assign permission groups or grant specific permissions.
- Enter a name for the service token.
- Choose an expiration. It defaults to one year and cannot be changed after creation.
- Click Create.
- Copy the token immediately (it won’t be shown again).
bt-st- prefix. Pass a service token as the bearer token in API requests or as the API key in SDK calls. Requests use the service account’s permissions.
Service tokens also support user impersonation when the service account has the Owner role in every organization the target user belongs to. The target user must belong to at least one organization. These requirements apply to the service account, not the person who created the token.
Organization owners and Owners of an active project group in the organization can create service tokens, either at Settings > Service tokens in the Braintrust UI or by calling
POST /v1/service_token and authenticating with a service token whose account has organization-owner permissions or owns an active project group in the organization. Project-group Owners can list or revoke tokens for an account with a permission grant on a project group they own. Creating a token requires all of the account’s permissions in the organization. If you are missing any permissions, the request returns a 403 error. Existing tokens continue to use the account’s permissions after permission changes. User API keys cannot be used to create service tokens. If the calling service token has an expiration, the new token’s expires_in_seconds must be set and can’t exceed the caller’s remaining lifetime. Otherwise, the request returns a 403 error that states the maximum allowed value.Configure AI providers
Configure organization-wide AI provider credentials so playgrounds, experiments, and the gateway can call models without users needing individual API keys. See Configure AI providers.Configure Loop
Choose models for Loop
Loop runs on Braintrust’s built-in models or on your organization’s own OpenAI-compatible AI providers.Set a default provider for Loop
Choose the provider that new Loop threads and automations use across your organization. Loop selects that provider’s recommended model. Automations with Auto on follow this setting on every run, so changing it affects their future runs. Members can choose a different provider or model for individual threads and automations.On self-hosted deployments where Loop runs in the browser instead of on the Loop runtime, the Loop default provider setting isn’t available.
- Go to Settings > Models.
- Under Loop default provider, select Braintrust, if built-in models are available, or an organization provider that serves a supported Loop model. Only organization providers can be the default. To add a provider, select Add provider.
- Unavailable default: If Loop default provider shows Provider unavailable, choose another provider or resolve the issue shown, such as missing access or no supported Loop models. See Models and providers for how new threads choose a provider in this case.
- Project overrides: Inside a project, a project provider with the same name as the default overrides it. If that provider serves no supported Loop model, the default is unavailable in the project, and Loop doesn’t fall back to the organization provider.
Control Loop logging
By default, Braintrust logs frontend Loop interactions for product improvement and support. To opt out:- Go to Settings > Models.
- Turn off Enable logging for Loop.
Enable Slack integration
Connect Slack to send alerts and notifications to your channels. Only members of the Owners permission group, or a custom permission group with the Manage settings organization permission, can manage the Slack workspace connection.- Go to Settings > Integrations.
- Click Enable Slack.
- Authorize Braintrust to access your Slack workspace.
- Select which channels Braintrust can access.
Braintrust link previews in Slack
When the Slack integration is enabled, Braintrust automatically expands links to logs, traces, and experiments that you paste into Slack. What each preview shows depends on whether you have linked your Slack account. Supported link types:- Log URLs.
- Trace URLs.
- Experiment URLs.
/braintrust link in any Slack channel, or click Link Braintrust account in the prompt Braintrust sends when you open the Slack App Home or first interact with a link preview.
When you link from the App Home prompt and the Braintrust account you are signed in to uses a different email address than your Slack account, the authorization page displays a warning with a Switch account option. To unlink later, run /braintrust unlink in Slack.
Set environment variables
Define secrets available to all functions in your organization:- Go to Settings > Runtime.
- Under Environment variables, enter a name and value in the Add a variable form.
- Click Save.
Configure API URLs (self-hosted)
Configuring custom data plane URLs is only available on the Enterprise plan.
- Go to Settings > Data plane.
-
Enter your URLs:
- API URL: Main API endpoint.
- Gateway URL: Gateway endpoint.
- Realtime URL: Realtime API endpoint.
- If your data plane is deployed behind a VPN or on a private network (not accessible from the public internet), enable Data plane is on a private network. This checkbox enables detection of Chrome Local Network Access permission issues. When enabled, if fetch requests fail due to blocked LNA permissions, Braintrust will display instructions on how to grant the necessary permissions in Chrome settings.
- Click Save.
Braintrust-hosted organizations (US or EU) can view their region and API URL in Settings > Data plane.
Set git metadata logging
Control which git metadata fields are logged:- Go to Settings > Ingestion.
- Under Git metadata, enable Collect git metadata.
- Select the fields to log. Your changes save automatically.
Diff content is opt-in. By default, Braintrust collects standard git metadata but not the Diff field. To capture diffs, enable Diff here. The server strips
git_diff from logged repo info unless your org has enabled it, regardless of what the SDK sends (data plane v2.2.0 or later).Until you save a policy here, the Python SDK (v0.23.0+) collects no git metadata by default. Pass git_metadata_settings in code to override.Redact sensitive log data
Ingestion redaction detects and replaces sensitive text in incoming project logs. Create protected fields for one project or all projects in your organization. See Create a protected field for setup and permissions. To hide fields from selected members when they read logs, without changing stored data, use read rules.Control image rendering
External images in logs can send sensitive data to untrusted servers when your browser loads them. Configure image rendering to control this risk:- Go to Settings > Runtime.
- Under Image rendering, select a mode:
- Auto-load images: Images are loaded automatically (default).
- Click to load: Show placeholder, click to load each image.
- Block all images: Never load external images.
Some image URLs are never loaded automatically, whichever mode you select. This covers URLs that name a host on your local or private network, such as
localhost, a .local name, or a private or link-local IP address, and URLs using a scheme that a browser should never load an image from, such as javascript: or file:.In Auto-load images and Click to load, these images show a Load image button, so loading one is always a deliberate choice. In Block all images, they are blocked along with every other external image. Inline data: and blob: images are unaffected, because they never leave the browser.Configure environments
Create environments to version prompts and functions:- Go to Settings > Environments.
- Click + Environment.
- Enter environment name (e.g., “production”, “staging”, “dev”).
- Click Create environment.
Monitor infrastructure (self-hosted)
Organization owners and admins can view infrastructure metrics for self-hosted deployments directly from the Braintrust UI. See Monitor your infrastructure for details.Delete an organization
To delete an organization, contact Braintrust.Next steps
- Control access with permission groups
- Manage projects within your organization
- Use the Braintrust gateway for centralized provider access
- Set up alerts and data management