Claude Platform Docs
管理组织

Admin API

使用 Admin API 以编程方式管理组织成员、工作区、邀请和 API 密钥,可使用 Admin API 密钥、org:admin OAuth 令牌,或个人密钥或服务账户密钥进行身份验证。

Admin API 让您能够以编程方式管理组织的成员、工作区、邀请和 API 密钥,而无需在 Claude Console 中手动操作。

身份验证

使用三种凭证中的任意一种进行身份验证。Admin API 密钥涵盖大多数端点。服务账户、联合身份颁发者和联合规则端点仅接受 org:admin OAuth 令牌。个人密钥或服务账户密钥与 Admin API 密钥一样,通过 x-api-key 标头发送。以下示例分别使用 OAuth 令牌和 Admin API 密钥调用组织信息端点

Python、TypeScript、C#、Go、Java、PHP 和 Ruby SDK 在 client.beta.organization 下提供 Admin API,ant CLI 则在 ant beta:organization 下提供。本页的示例使用默认客户端,它会从 ANTHROPIC_API_KEY 读取 Admin API 密钥,或从 ANTHROPIC_AUTH_TOKEN 读取 OAuth bearer 令牌。Python、TypeScript、C#、Go 和 Java 中的 SDK 列表方法返回一个按需获取更多页面的迭代器,因此 limit 设置的是页面大小,而非总数。PHP、Ruby 和 curl 示例返回单页结果。在 CLI 中,--limit 会限制成员、邀请、工作区、工作区成员和 API 密钥列表的结果数量。有关每个端点的参数和响应,请参阅 Admin API 参考

OAuth bearer 令牌

使用 ant CLI 在具有 org:admin 作用域的专用配置文件下登录(请参阅管理员访问),然后导出 bearer 令牌。--profile admin 会将 org:admin 凭证存储在其自己的配置文件下,并将其设为 CLI 的活动配置文件。导出的变量适用于该 shell 中的每个 SDK 和 CLI 调用。请使用专门用于管理的 shell,完成后取消设置该变量,并使用 ant profile activate default 将 CLI 切换回去:

CLI
ant auth login --profile admin --scope "org:admin"
export ANTHROPIC_AUTH_TOKEN=$(ant auth print-credentials --profile admin --access-token)

交互式令牌的有效期很短。如果请求开始返回 401,请重新运行 export 命令以刷新令牌。

SDK 和 ant CLI 会自动读取 ANTHROPIC_AUTH_TOKEN。请在同一 shell 中保持 ANTHROPIC_API_KEY 未设置,以便它们发送 bearer 令牌。自动化工作负载可跳过登录:它们通过工作负载身份联合进行身份验证,SDK 和 CLI 会根据联合环境变量执行令牌交换。请参阅引导工作负载以管理 WIF

使用导出的令牌调用 Admin API:

client = anthropic.Anthropic()

organization = client.beta.organization.retrieve()

print(f"id: {organization.id}")
print(f"name: {organization.name}")

org:admin 令牌授予对整个组织的访问权限,无论底层配置文件或联合规则绑定到哪个工作区。

对于 CI 和其他非交互式工作负载,请使用工作负载身份联合(Workload Identity Federation)签发令牌,而不是交互式登录。请参阅使用 Admin API 管理 WIF

Admin API 密钥

要为您的组织类型创建 Admin API 密钥,请参阅创建 Admin API 密钥

client = anthropic.Anthropic()

organization = client.beta.organization.retrieve()

print(f"id: {organization.id}")
print(f"name: {organization.name}")

Admin API 的工作原理

使用身份验证中的任意凭证进行身份验证,然后管理以下资源:

  • 组织成员及其角色
  • 组织邀请
  • 工作区及其成员
  • API 密钥
  • 服务账户、联合身份颁发者和联合规则(仅限 org:admin OAuth 令牌)

常见用途包括自动化入职和离职流程、管理工作区访问权限以及审计 API 密钥。

组织角色和权限

共有五种组织级角色。详情请参阅 API Console 角色和权限

角色权限
user可以使用 playground
claude_code_user可以使用 playground 和 Claude Code
developer可以使用 playground 并管理 API 密钥
billing可以使用 playground 并管理账单详情
admin可以执行上述所有操作,并可管理用户

组织 owner 和 primary owner 拥有所有 admin 权限,并且还可以管理 admin。本页中所有对 admin 角色的引用同样适用于 owner 和 primary owner。

关键概念

组织成员

列出组织成员、更新其角色以及移除成员。

列出您组织的成员:

client = anthropic.Anthropic()

users = client.beta.organization.users.list(limit=10)

# 根据需要自动获取更多页面。
for user in users:
    print(f"{user.id}: {user.email} ({user.role})")

更新成员的角色:

client = anthropic.Anthropic()

user = client.beta.organization.users.update(
    "user_01XyDMpzjS89pFZXqSFUBDr6", role="developer"
)

print(f"id: {user.id}")
print(f"role: {user.role}")

从组织中移除成员:

client = anthropic.Anthropic()

removed_user = client.beta.organization.users.remove("user_01XyDMpzjS89pFZXqSFUBDr6")

print(f"id: {removed_user.id}")

组织邀请

邀请用户加入您的组织并管理待处理的邀请

邀请用户加入您的组织:

client = anthropic.Anthropic()

invite = client.beta.organization.invites.create(
    email="user@example.com", role="developer"
)

print(f"id: {invite.id}")
print(f"email: {invite.email}")
print(f"status: {invite.status}")
print(f"expires_at: {invite.expires_at}")

列出待处理的邀请:

client = anthropic.Anthropic()

invites = client.beta.organization.invites.list(limit=10)

# 根据需要自动获取更多页面。
for invite in invites:
    print(f"{invite.id}: {invite.email} ({invite.status})")

删除邀请:

client = anthropic.Anthropic()

deleted_invite = client.beta.organization.invites.delete(
    "invite_015gWxHNr6h6TdRPZTmuCGnn"
)

print(f"id: {deleted_invite.id}")

工作区

有关 Console 和 API 示例,请参阅工作区

工作区成员

管理用户对特定工作区的访问权限

向工作区添加成员:

client = anthropic.Anthropic()

member = client.beta.organization.workspaces.members.add(
    "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
    user_id="user_01XyDMpzjS89pFZXqSFUBDr6",
    workspace_role="workspace_developer",
)

print(f"user_id: {member.user_id}")
print(f"workspace_role: {member.workspace_role}")

列出工作区的成员:

client = anthropic.Anthropic()

members = client.beta.organization.workspaces.members.list(
    "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", limit=10
)

# 根据需要自动获取更多页面。
for member in members:
    print(f"{member.user_id}: {member.workspace_role}")

更新工作区成员的角色:

client = anthropic.Anthropic()

member = client.beta.organization.workspaces.members.update(
    "user_01XyDMpzjS89pFZXqSFUBDr6",
    workspace_id="wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
    workspace_role="workspace_admin",
)

print(f"user_id: {member.user_id}")
print(f"workspace_role: {member.workspace_role}")

从工作区中移除成员:

client = anthropic.Anthropic()

removed_member = client.beta.organization.workspaces.members.remove(
    "user_01XyDMpzjS89pFZXqSFUBDr6", workspace_id="wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
)

print(f"user_id: {removed_member.user_id}")

API 密钥

监控和管理 API 密钥。响应中的每个密钥都包含其 expires_at 时间戳(对于没有过期时间的密钥为 null)和 principal,即该密钥所代表的身份(请参阅密钥类型)。对于个人密钥,principal{"type": "user_actor", "user_id": "user_..."};对于服务账户密钥,为 {"type": "service_account_actor", "service_account_id": "svac_..."};对于工作区密钥,为 null。每个密钥还有一个 scope 对象:对于绑定到单个工作区的密钥为 {"type": "workspace", "workspace_id": "wrkspc_..."},对于可在账户有权访问的任何工作区中使用的密钥为 {"type": "organization"}。顶层 workspace_id 字段已弃用,对于绑定到默认工作区的密钥和没有工作区作用域的密钥均为 null;请使用 scope 来区分它们。使用默认工作区的 ID 按 workspace_id 筛选列表时,仅返回绑定到默认工作区的密钥;没有工作区作用域的密钥不会在任何 workspace_id 筛选条件下返回。

列出工作区中的活动 API 密钥:

client = anthropic.Anthropic()

api_keys = client.beta.organization.api_keys.list(
    limit=10, status="active", workspace_id="wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
)

# 根据需要自动获取更多页面。
for api_key in api_keys:
    print(f"{api_key.id}: {api_key.name} ({api_key.status})")

重命名或停用 API 密钥:

client = anthropic.Anthropic()

api_key = client.beta.organization.api_keys.update(
    "apikey_01Rj2N8SVvo6BePZj99NhmiT", status="inactive", name="New Key Name"
)

print(f"id: {api_key.id}")
print(f"name: {api_key.name}")
print(f"status: {api_key.status}")

服务账户

创建和管理服务账户(svac_...),即服务账户密钥工作负载身份联合令牌所代表的非人类身份。这些端点与联合身份颁发者和联合规则端点一样,需要 org:admin OAuth 令牌。请参阅使用 Admin API 管理 WIF

联合身份颁发者

注册其令牌可为您的组织声明工作负载身份的 OIDC 身份提供商(fdis_...)。请参阅使用 Admin API 管理 WIF

联合规则

管理将颁发者令牌映射到服务账户和作用域的规则(fdrl_...)。请参阅使用 Admin API 管理 WIF

访问组织信息

/v1/organizations/me 端点返回您的凭证所属的组织:

client = anthropic.Anthropic()

organization = client.beta.organization.retrieve()

print(f"id: {organization.id}")
print(f"name: {organization.name}")
{
  "id": "12345678-1234-5678-1234-567812345678",
  "type": "organization",
  "name": "Organization Name"
}

有关参数详情和响应架构,请参阅组织信息 API 参考

用量和成本报告

使用用量和成本 API 跟踪您组织的用量和成本。

Claude Code 分析

使用 Claude Code 分析 API 监控开发者生产力和 Claude Code 采用情况。

速率限制

使用速率限制 API 读取为您的组织及其工作区配置的速率限制。

合规 API

使用合规 API 检索您组织的审计和活动数据。Admin API 密钥只能读取活动源(Activity Feed)。如需完整访问权限,请参阅设置合规 API

最佳实践

  • 为工作区和 API 密钥使用有意义的名称和描述
  • 处理失败操作产生的错误
  • 定期审计成员角色和权限
  • 清理未使用的工作区和已过期的邀请
  • 监控 API 密钥使用情况,审计每个密钥的 expires_at,并定期轮换密钥

常见问题

有关工作区的具体问题,请参阅工作区常见问题

Was this page helpful?