管理 API
账户与授权
创建 API 密钥
/auth/teams/{teamId}/api-keys
API 密钥用于访问 xAI API(https://api.x.ai)。它们会作为 HTTP Bearer token 包含在请求中。API 密钥绑定到团队,并与创建它们的用户关联。
路径参数
teamIdstring(字符串,必需)— API 密钥所属团队的 ID。团队 ID 可以复制到这里:https://console.x.ai/team/default/settings/team.
请求体
namestring(字符串,必需)— API 密钥的人类可读名称。不应为空。
响应体
redactedApiKeystring(字符串)— 脱敏后的 API 密钥。密钥创建后,我们不会再显示完整密钥。
apiKeystring仅在创建 API 密钥时设置。
userIdstring(字符串)— 创建此 API 密钥的用户 ID。
namestring(字符串)— API 密钥的便于识别名称。
createTimestring创建 API 密钥时的时间戳。
modifyTimestring(字符串)— API 密钥的修改时间戳。
teamIdstring(字符串)— API 密钥所属团队的 ID。
apiKeyIdstring(字符串)— API 密钥的 ID。
disabledboolean(boolean)— API 是否已被用户禁用。用户可禁用 API 密钥以阻止其发起 API 调用。
expireTimestringAPI 密钥的过期时间。如果已设置并且在过去,则该密钥将被拒绝。
qpsinteger(整数)— 如果设置,此 API 键每秒只能执行指定数量的请求。
qpminteger(整数)— 如果设置,此 API 键每分钟只能执行指定数量的请求。
tpmstring(字符串)— 如果设置,API 密钥每分钟可生成或消耗的 token 数量将受该值限制。 严格超过该限制时,限流器才会生效。导致超过限制的进行中请求不会被中止。
aclStringsarray<string>(array<string>)— API 密钥拥有的权限。默认情况下,API 密钥没有任何权限,因此此字段为空时所有请求都会失败。用户可通过 `api-key:endpoint:[endpoint name]` 和 `api-key:model:[model name]` ACL 授予两类权限:(1) 端点权限和 (2) 模型权限。
{
"name": "My API key",
"acls": [
"api-key:endpoint:*",
"api-key:model:*"
]
}{
"redactedApiKey": "xai-...oYZ4",
"apiKey": "xai-2xr2bnFV7lAbcdelZbqSxLd77pjlU6gcFmt3tPLSK3d7z7302htoH6mc4LlKlTY7nJtlU0lRXXQjoYZ4",
"userId": "6ad994df-7963-45e0-96c8-96b1ba849d9b",
"name": "My API key",
"createTime": "2025-11-13T16:14:38.164829Z",
"modifyTime": "2025-11-13T16:38:07.059039Z",
"teamId": "c9a0c990-53e6-491e-8df7-b9f18e6983ac",
"apiKeyId": "fe15b799-32e1-4d02-9e65-80236f9995f7",
"disabled": false,
"aclStrings": [
"api-key:endpoint:*",
"api-key:model:*"
]
}列出 API 密钥
/auth/teams/{teamId}/api-keys
列出团队内某个用户的 API 密钥。如果调用用户是管理员,则返回团队的所有 API 密钥;如果调用用户是成员,则返回该用户自己的 API 密钥。
路径参数
teamIdstring(字符串,必需)— 应列出其 API 密钥的团队的 ID。
查询参数
pageSizeinteger(整数)— 控制结果的页面大小。若为 `None`,则以一页返回结果。
paginationTokenstring(字符串)— 使用分页时从先前调用获得的分页 token。设为 `undefined` 可检索第一页。
aclFiltersarray<string>可选过滤器,仅返回与给定 ACL 匹配的 API 键。
activeOnlyboolean(boolean)— 若为 true,则仅返回未过期的 API 密钥。默认为 false(返回所有密钥)。
响应体
apiKeysarray<object>(array<object>)— 属于该团队的 API 密钥。
paginationTokenstring(字符串)— 在后续请求中携带此 token 以检索下一页。若为 `undefined`,则当前为最后一页。
No parameters.{
"apiKeys": [
{
"redactedApiKey": "xai-a**b",
"userId": "12106c22-fa54-4255-9887-6eb73c55787f",
"apiKeyId": "faf5f6c2-5322-4793-9b74-23129addca0c",
"teamId": "fef05426-f6a4-4242-b9a6-b1a0ea5dc5fd",
"disabled": "false",
"tpm": "100000",
"acl_strings": [
"api-key:endpoint:*",
"api-key:model:*"
]
}
]
}更新 API 密钥
/auth/api-keys/{api_key_id}
有选择地更新 API 键上的字段子集。
路径参数
api_key_idstring(字符串,必需)— API 密钥的 ID。
请求体
响应体
redactedApiKeystring(字符串)— 脱敏后的 API 密钥。密钥创建后,我们不会再显示完整密钥。
apiKeystring仅在创建 API 密钥时设置。
userIdstring(字符串)— 创建此 API 密钥的用户 ID。
namestring(字符串)— API 密钥的便于识别名称。
createTimestring创建 API 密钥时的时间戳。
modifyTimestring(字符串)— API 密钥的修改时间戳。
teamIdstring(字符串)— API 密钥所属团队的 ID。
apiKeyIdstring(字符串)— API 密钥的 ID。
disabledboolean(boolean)— API 是否已被用户禁用。用户可禁用 API 密钥以阻止其发起 API 调用。
expireTimestringAPI 密钥的过期时间。如果已设置并且在过去,则该密钥将被拒绝。
qpsinteger(整数)— 如果设置,此 API 键每秒只能执行指定数量的请求。
qpminteger(整数)— 如果设置,此 API 键每分钟只能执行指定数量的请求。
tpmstring(字符串)— 如果设置,API 密钥每分钟可生成或消耗的 token 数量将受该值限制。 严格超过该限制时,限流器才会生效。导致超过限制的进行中请求不会被中止。
aclStringsarray<string>(array<string>)— API 密钥拥有的权限。默认情况下,API 密钥没有任何权限,因此此字段为空时所有请求都会失败。用户可通过 `api-key:endpoint:[endpoint name]` 和 `api-key:model:[model name]` ACL 授予两类权限:(1) 端点权限和 (2) 模型权限。
{
"apiKey": {
"tpm": "42"
},
"fieldMask": "tpm"
}{
"redactedApiKey": "xai-...oYZ4",
"apiKey": "xai-2xr2bnFV7lAbcdelZbqSxLd77pjlU6gcFmt3tPLSK3d7z7302htoH6mc4LlKlTY7nJtlU0lRXXQjoYZ4",
"userId": "6ad994df-7963-45e0-96c8-96b1ba849d9b",
"name": "My API key",
"createTime": "2025-11-13T16:14:38.164829Z",
"modifyTime": "2025-11-13T16:38:07.059039Z",
"teamId": "c9a0c990-53e6-491e-8df7-b9f18e6983ac",
"apiKeyId": "fe15b799-32e1-4d02-9e65-80236f9995f7",
"disabled": false,
"aclStrings": [
"api-key:endpoint:*",
"api-key:model:*"
]
}轮换 API 密钥
/auth/api-keys/{apiKeyId}/rotate
!!CAUTION!!轮换现有 API 密钥的密钥值,并使旧值永久失效。
路径参数
apiKeyIdstring(字符串,必需)— API 密钥的 ID,其密钥应轮换。
请求体
响应体
redactedApiKeystring(字符串)— 脱敏后的 API 密钥。密钥创建后,我们不会再显示完整密钥。
apiKeystring仅在创建 API 密钥时设置。
userIdstring(字符串)— 创建此 API 密钥的用户 ID。
namestring(字符串)— API 密钥的便于识别名称。
createTimestring创建 API 密钥时的时间戳。
modifyTimestring(字符串)— API 密钥的修改时间戳。
teamIdstring(字符串)— API 密钥所属团队的 ID。
apiKeyIdstring(字符串)— API 密钥的 ID。
disabledboolean(boolean)— API 是否已被用户禁用。用户可禁用 API 密钥以阻止其发起 API 调用。
expireTimestringAPI 密钥的过期时间。如果已设置并且在过去,则该密钥将被拒绝。
qpsinteger(整数)— 如果设置,此 API 键每秒只能执行指定数量的请求。
qpminteger(整数)— 如果设置,此 API 键每分钟只能执行指定数量的请求。
tpmstring(字符串)— 如果设置,API 密钥每分钟可生成或消耗的 token 数量将受该值限制。 严格超过该限制时,限流器才会生效。导致超过限制的进行中请求不会被中止。
aclStringsarray<string>(array<string>)— API 密钥拥有的权限。默认情况下,API 密钥没有任何权限,因此此字段为空时所有请求都会失败。用户可通过 `api-key:endpoint:[endpoint name]` 和 `api-key:model:[model name]` ACL 授予两类权限:(1) 端点权限和 (2) 模型权限。
No parameters.{
"redactedApiKey": "xai-...oYZ4",
"apiKey": "xai-2xr2bnFV7lAbcdelZbqSxLd77pjlU6gcFmt3tPLSK3d7z7302htoH6mc4LlKlTY7nJtlU0lRXXQjoYZ4",
"userId": "6ad994df-7963-45e0-96c8-96b1ba849d9b",
"name": "My API key",
"createTime": "2025-11-13T16:14:38.164829Z",
"modifyTime": "2025-11-13T16:38:07.059039Z",
"teamId": "c9a0c990-53e6-491e-8df7-b9f18e6983ac",
"apiKeyId": "fe15b799-32e1-4d02-9e65-80236f9995f7",
"disabled": false,
"aclStrings": [
"api-key:endpoint:*",
"api-key:model:*"
]
}删除 API 密钥
/auth/api-keys/{apiKeyId}
!!CAUTION!!永久且不可撤销地删除 API 密钥。
路径参数
apiKeyIdstring(字符串,必需)— 要删除的 API 密钥的 ID。
No parameters.{}检查 API 密钥传播状态
/auth/api-keys/{apiKeyId}/propagation
检查 API 密钥是否已成功传播。
路径参数
apiKeyIdstring(字符串,必需)— 应检查其传播状态的 API 的 ID。
响应体
icPropagationobject从推理集群地址映射到指示 API 密钥是否已传播的标志。
No parameters.{
"icPropagation": {
"cloud9.api.x.ai": true,
"us-east-1.api.x.ai": true
}
}列出模型
/auth/teams/{teamId}/models
列出团队可以访问的所有模型。
路径参数
teamIdstring(字符串,必需)— 应检索其模型的团队的 ID。
响应体
clusterConfigsarray<object>包含可通过各个推理集群访问的模型。
No parameters.{
"clusterConfigs": [
{
"languageModels": [
{
"name": "grok-2-vision-1212",
"version": "1.0",
"inputModalities": [
"TEXT",
"IMAGE"
],
"outputModalities": [
"TEXT"
],
"promptTextTokenPrice": "20000",
"promptImageTokenPrice": "20000",
"promptTextTokenPriceLongContext": "0",
"cachedPromptTokenPrice": "0",
"completionTextTokenPrice": "100000",
"completionTokenPriceLongContext": "0",
"searchPrice": "0",
"rps": "10",
"rpm": "600",
"tpm": "0",
"cluster": "us-east-1",
"maxPromptLength": 32768,
"aliases": [
"grok-2-vision",
"grok-2-vision-latest"
],
"features": {
"functionCalling": true,
"structuredOutputs": true,
"reasoning": false
},
"algorithm": "MultimodalV1"
},
{
"name": "grok-code-fast-1",
"version": "1.0",
"inputModalities": [
"TEXT"
],
"outputModalities": [
"TEXT"
],
"promptTextTokenPrice": "2000",
"promptImageTokenPrice": "0",
"promptTextTokenPriceLongContext": "0",
"cachedPromptTokenPrice": "200",
"completionTextTokenPrice": "15000",
"completionTokenPriceLongContext": "0",
"searchPrice": "0",
"rps": "8",
"rpm": "480",
"tpm": "2000000",
"cluster": "us-east-1",
"maxPromptLength": 256000,
"aliases": [
"grok-code-fast",
"grok-code-fast-1-0825"
],
"features": {
"functionCalling": true,
"structuredOutputs": true,
"reasoning": true
},
"algorithm": "grok4Code"
},
{
"name": "grok-2-1212",
"version": "1.0",
"inputModalities": [
"TEXT"
],
"outputModalities": [
"TEXT"
],
"promptTextTokenPrice": "20000",
"promptImageTokenPrice": "0",
"promptTextTokenPriceLongContext": "0",
"cachedPromptTokenPrice": "0",
"completionTextTokenPrice": "100000",
"completionTokenPriceLongContext": "0",
"searchPrice": "0",
"rps": "15",
"rpm": "900",
"tpm": "0",
"cluster": "us-east-1",
"maxPromptLength": 131072,
"aliases": [
"grok-2",
"grok-2-latest"
],
"features": {
"functionCalling": true,
"structuredOutputs": true,
"reasoning": false
},
"algorithm": "MultimodalV1"
},
{
"name": "grok-3-mini",
"version": "1.0",
"inputModalities": [
"TEXT"
],
"outputModalities": [
"TEXT"
],
"promptTextTokenPrice": "3000",
"promptImageTokenPrice": "0",
"promptTextTokenPriceLongContext": "0",
"cachedPromptTokenPrice": "750",
"completionTextTokenPrice": "5000",
"completionTokenPriceLongContext": "0",
"searchPrice": "2500",
"rps": "8",
"rpm": "480",
"tpm": "0",
"cluster": "us-east-1",
"maxPromptLength": 131072,
"aliases": [
"grok-3-mini-latest",
"grok-3-mini-beta",
"grok-3-mini-fast",
"grok-3-mini-fast-latest",
"grok-3-mini-fast-beta"
],
"features": {
"functionCalling": true,
"structuredOutputs": true,
"reasoning": true
},
"algorithm": "grok3Reasoning"
},
{
"name": "grok-4-0709",
"version": "1.0",
"inputModalities": [
"TEXT"
],
"outputModalities": [
"TEXT"
],
"promptTextTokenPrice": "30000",
"promptImageTokenPrice": "30000",
"promptTextTokenPriceLongContext": "60000",
"cachedPromptTokenPrice": "7500",
"completionTextTokenPrice": "150000",
"completionTokenPriceLongContext": "300000",
"searchPrice": "2500",
"rps": "8",
"rpm": "480",
"tpm": "2000000",
"cluster": "us-east-1",
"maxPromptLength": 256000,
"aliases": [
"grok-4",
"grok-4-latest"
],
"features": {
"functionCalling": true,
"structuredOutputs": true,
"reasoning": true
},
"algorithm": "grok4",
"longContextThreshold": "128000"
},
{
"name": "grok-3",
"version": "1.0",
"inputModalities": [
"TEXT"
],
"outputModalities": [
"TEXT"
],
"promptTextTokenPrice": "30000",
"promptImageTokenPrice": "0",
"promptTextTokenPriceLongContext": "0",
"cachedPromptTokenPrice": "7500",
"completionTextTokenPrice": "150000",
"completionTokenPriceLongContext": "0",
"searchPrice": "2500",
"rps": "10",
"rpm": "600",
"tpm": "0",
"cluster": "us-east-1",
"maxPromptLength": 131072,
"aliases": [
"grok-3-latest",
"grok-3-beta",
"grok-3-fast",
"grok-3-fast-latest",
"grok-3-fast-beta"
],
"features": {
"functionCalling": true,
"structuredOutputs": true,
"reasoning": false
},
"algorithm": "grok3"
}
],
"embeddingModels": [],
"imageGenerationModels": [
{
"name": "grok-2-image-1212",
"version": "1.0",
"inputModalities": [
"TEXT",
"IMAGE"
],
"outputModalities": [
"IMAGE"
],
"imagePrice": "700000000",
"rps": "5",
"rpm": "300",
"tpm": "0",
"cluster": "us-east-1",
"aliases": [
"grok-2-image",
"grok-2-image-latest"
]
}
],
"audioModels": [],
"clusterName": "us-east-1"
},
{
"languageModels": [
{
"name": "grok-2-1212",
"version": "1.0",
"inputModalities": [
"TEXT"
],
"outputModalities": [
"TEXT"
],
"promptTextTokenPrice": "20000",
"promptImageTokenPrice": "0",
"promptTextTokenPriceLongContext": "0",
"cachedPromptTokenPrice": "0",
"completionTextTokenPrice": "100000",
"completionTokenPriceLongContext": "0",
"searchPrice": "0",
"rps": "50",
"tpm": "0",
"cluster": "eu-west-1",
"maxPromptLength": 131072,
"aliases": [
"grok-2",
"grok-2-latest"
],
"features": {
"functionCalling": true,
"structuredOutputs": true,
"reasoning": false
},
"algorithm": "MultimodalV1"
},
{
"name": "grok-2-vision-1212",
"version": "1.0",
"inputModalities": [
"TEXT",
"IMAGE"
],
"outputModalities": [
"TEXT"
],
"promptTextTokenPrice": "20000",
"promptImageTokenPrice": "20000",
"promptTextTokenPriceLongContext": "0",
"cachedPromptTokenPrice": "0",
"completionTextTokenPrice": "100000",
"completionTokenPriceLongContext": "0",
"searchPrice": "0",
"rps": "50",
"tpm": "0",
"cluster": "eu-west-1",
"maxPromptLength": 32768,
"aliases": [
"grok-2-vision",
"grok-2-vision-latest"
],
"features": {
"functionCalling": true,
"structuredOutputs": true,
"reasoning": false
},
"algorithm": "MultimodalV1"
}
],
"embeddingModels": [],
"imageGenerationModels": [],
"audioModels": [],
"clusterName": "eu-west-1"
}
]
}列出可用 endpoint ACL 值
/auth/teams/{teamId}/endpoints
列出可在 API 键上使用的所有端点 ACL。
路径参数
teamIdstring(字符串,必需)— 应接收其可访问端点的团队的 ID。
响应体
aclsarray<object>可以分配给 API 键的 ACL 列表。
No parameters.{
"acls": [
{
"acl": "api-key:endpoint:chat",
"description": "Grants access to use a specific endpoint with an API Key.",
"namespace": "api-key",
"key": "endpoint",
"value": "chat"
},
{
"acl": "api-key:endpoint:embed",
"description": "Grants access to use a specific endpoint with an API Key.",
"namespace": "api-key",
"key": "endpoint",
"value": "embed"
},
{
"acl": "api-key:endpoint:image",
"description": "Grants access to use a specific endpoint with an API Key.",
"namespace": "api-key",
"key": "endpoint",
"value": "image"
},
{
"acl": "api-key:endpoint:models",
"description": "Grants access to use a specific endpoint with an API Key.",
"namespace": "api-key",
"key": "endpoint",
"value": "models"
},
{
"acl": "api-key:endpoint:sample",
"description": "Grants access to use a specific endpoint with an API Key.",
"namespace": "api-key",
"key": "endpoint",
"value": "sample"
},
{
"acl": "api-key:endpoint:tokenize",
"description": "Grants access to use a specific endpoint with an API Key.",
"namespace": "api-key",
"key": "endpoint",
"value": "tokenize"
},
{
"acl": "api-key:endpoint:documents",
"description": "Grants access to use a specific endpoint with an API Key.",
"namespace": "api-key",
"key": "endpoint",
"value": "documents"
}
]
}验证管理密钥
/auth/management-keys/validation
用于 GET /auth/management-keys/validation 请求的 API 端点。
响应体
apiKeyIdstring该键的 ID。
teamIdstring[DEPRECATED] 使用范围和 scope_id 代替。 密钥可以代表其执行操作的团队的 ID。
scope"SCOPE_UNSPECIFIED" | "SCOPE_TEAM" | "SCOPE_ORGANIZATION"与键关联的范围。
scopeIdstring与键关联的范围的 ID。
ownerUserIdstring(字符串)— 拥有此密钥的用户的 ID。
createTimestring(字符串)— 创建密钥的时间。
modifyTimestring上次修改密钥的时间。
namestring此密钥的名称(仅供人工识别)。
aclsarray<string>该密钥的 ACL(控制可以使用该密钥访问哪些 API)。
apiKeystring仅在创建密钥时设置。
redactedApiKeystring(字符串)— 实际密钥的缩写版本。
ipRangesobjectNo parameters.{
"apiKeyId": "b86ba29d-9f47-4b3a-a6ae-e69432d5f0dc",
"teamId": "65c1e471-205f-4566-9c5a-07198badf4ce",
"scope": "SCOPE_TEAM",
"scopeId": "65c1e471-205f-4566-9c5a-07198badf4ce",
"ownerUserId": "4d52c406-6ec6-4361-9b7c-40dc7e8ff284",
"createTime": "2025-12-10T23:17:49.460374Z",
"modifyTime": "2025-12-10T23:17:49.460374Z",
"name": "test key",
"acls": [
"team-token:endpoint:ListApiKeys",
"team-token:endpoint:CheckApiKeyPropagation",
"team-token:endpoint:ListPossibleEndpointAcls"
],
"reactedApiKey": "xai-...r42q",
"ipRanges": null
}最后更新:2026 年 2 月 13 日