Organizations
An Organization is the top-level account in Bedrock. Every AgentTemplate, Agent, API Key, and private Adapter belongs to exactly one organization. Users become members of an organization when they sign up (they create a new org) or when they accept an invite to an existing one. Organizations also hold the org-wide LLM provider keys (openai_api_key, anthropic_api_key). These are used for every agent run in the organization, with a fallback to the OPENAI_API_KEY / ANTHROPIC_API_KEY environment variables.
Structure
- Organization — owns everything else
- Members — Bedrock portal users with
OrganizationMembership - Invites — pending email invites that create a member on acceptance
- API Keys — organization-scoped Bearer keys
- Templates — AgentTemplates that blueprint new agents
- Adapters (private) — custom adapters visible only to this org
- LLM Provider Keys —
openai_api_key/anthropic_api_keyused by every agent in the org
- Members — Bedrock portal users with
Each user can belong to exactly one organization at a time (
OrganizationMembership is one-to-one on user). To switch orgs, a user must be invited to the other org and create a new account.Admin Orgs
Organizations have anis_admin flag. Admin orgs unlock access to the full list
of organizations via GET /api/organizations/organizations/.
Non-admin orgs only see themselves. is_admin is set manually by Bedrock operators; it is not exposed as a mutation in the API.
Authentication Endpoints
All endpoints below live under/api/organizations/auth/.
Sign Up
Creates an organization, user, membership, and token in a single transaction.Log In
Authorization: Token <value>.
Current User
Log Out
Deletes the caller’s token. Subsequent requests with that token will fail with401.
Members
List members of the current organization:Invites
Send an email invite for someone to join the org:- The email must not already be invited (pending) or an active member.
- Only the
emailis accepted;invited_by,created_at, andaccepted_atare set automatically.
Accepting an Invite
The accept endpoint is unauthenticated — the invite ID is the capability. The invitee provides a password and (optionally) name, and Bedrock creates the user + membership + token:accepted_at after this call.
Organization API Keys
Organization-scoped API keys live at/api/organizations/api-keys/ and grant Bearer access to every resource owned by the organization — templates, agents, memory, tools, tracing, and default adapter state.
When you create an API key, the response returns the full key once:
abcd1234...wxyz. Save the full value immediately.
Organization CRUD
Organizations are returned byGET /api/organizations/organizations/ and are filtered to your own org unless is_admin is set. You’ll typically only touch this endpoint to read or rename your own org, or to set org-wide LLM provider keys:
openai_api_key and anthropic_api_key are write-only. They can be set or replaced but are never returned on read.API Summary
| Method | Endpoint | Description |
|---|---|---|
POST | /api/organizations/auth/signup/ | Create org + user |
POST | /api/organizations/auth/login/ | Log in |
GET | /api/organizations/auth/me/ | Current user + org |
POST | /api/organizations/auth/logout/ | Invalidate token |
GET / PATCH / DELETE | /api/organizations/organizations/{id}/ | Organization CRUD |
GET / POST / DELETE | /api/organizations/api-keys/ | Org-scoped API keys |
GET / DELETE | /api/organizations/members/{user_id}/ | Manage members |
GET / POST / DELETE | /api/organizations/invites/ | Manage invites |
POST | /api/organizations/invites/{id}/accept/ | Accept invite (no auth) |