Skip to main content

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
    • TemplatesAgentTemplates that blueprint new agents
    • Adapters (private) — custom adapters visible only to this org
    • LLM Provider Keysopenai_api_key / anthropic_api_key used by every agent in the org
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 an is_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.
Response:

Log In

Returns the same shape as signup (token + user + organization). The token is what the Bedrock portal stores and sends as Authorization: Token <value>.

Current User

Log Out

Deletes the caller’s token. Subsequent requests with that token will fail with 401.

Members

List members of the current organization:
Remove a member:
You cannot remove yourself — the API returns 400 Bad Request. Have another member remove you if needed.
Member objects look like:

Invites

Send an email invite for someone to join the org:
Constraints:
  • The email must not already be invited (pending) or an active member.
  • Only the email is accepted; invited_by, created_at, and accepted_at are set automatically.
List pending (uncaccepted) invites:
Revoke a pending invite:

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:
Response mirrors signup (token + user + organization). The invite is marked 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:
Subsequent list/get calls return a masked key like abcd1234...wxyz. Save the full value immediately.

Organization CRUD

Organizations are returned by GET /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