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: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
- Subjects are added to Scopes via Memberships
- Roles are assigned to Memberships via Role Assignments
- Permissions are assigned to Roles via Role Permissions
- Resources are created within Scopes with Resource Types
- Tags can be applied to resources, subjects, and other entities
- 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 thex-api-key header (the Bedrock console authenticates human users via session):
kind that determines which API surfaces it may reach:
- The core control-plane endpoints require a
platformkey — auser/servicekey receives403. - The decision path requires a
service(orplatform) key, and aservicekey may only evaluate within its own tenant’s scopes — a request whosescopeIdbelongs to another tenant receives403. - A negative authorization decision from
/evaluateis still200with{ "allowed": false }. The401/403responses are only about whether the caller’s key may use the endpoint at all — they are distinct from the decision result.