Skip to main content

Welcome

The Bedrock API provides a comprehensive authorization and access control system. It enables you to manage subjects (users, API keys, services, agents), scopes (organizational hierarchies), roles, permissions, resources, tags, and fine-grained access control through overrides.

ID Format

All entity IDs use a namespaced UUIDv7 format for easy identification and sorting:
You can provide your own IDs when creating entities. This is useful for batch operations where you need to reference entities within the same request.

Core Concepts

Subjects

Users, API keys, services, or agents that can be granted access

Scopes

Hierarchical organizational units (orgs, teams, projects)

Roles

Named collections of permissions assignable to memberships

Permissions

Granular access rights (e.g., read:documents, write:documents)

Resources

Protected objects with types and hierarchies

Tags

Flexible metadata and categorization

How It Works

  1. Subjects are added to Scopes via Memberships
  2. Roles are assigned to Memberships via Role Assignments
  3. Permissions are assigned to Roles via Role Permissions
  4. Resources are created within Scopes with Resource Types
  5. Tags can be applied to resources, subjects, and other entities
  6. Scope Overrides allow fine-tuning inherited roles/permissions at child scopes

Batch Operations

Most create endpoints support batch operations via a /batch suffix. Batch requests:
  • Accept an array of objects
  • Support client-provided IDs for in-batch references
  • Validate ID uniqueness within the batch
  • Return an array of created entities

Authentication and Authorization

Programmatic clients authenticate with a Bedrock API key sent in the x-api-key header (the Bedrock console authenticates human users via session):
Every API key carries a kind that determines which API surfaces it may reach:
  • The core control-plane endpoints require a platform key — a user/service key receives 403.
  • The decision path requires a service (or platform) key, and a service key may only evaluate within its own tenant’s scopes — a request whose scopeId belongs to another tenant receives 403.
  • A negative authorization decision from /evaluate is still 200 with { "allowed": false }. The 401/403 responses are only about whether the caller’s key may use the endpoint at all — they are distinct from the decision result.
Upgrading existing keys. API keys created before credential tiers existed default to kind: user (least privilege). If you use an existing key for programmatic /evaluate calls or core control-plane operations, re-mint it as a service or platform key — otherwise those requests now return 403.

Base URL

API Groups

Core Authorization

Tags & Classification

Management Models (Bedrock Cloud)