管理 API
账户和授权
POST /auth/teams/{teamId}/api-keys
API 密钥用于访问 xAI API (https://api.x.ai)。它们作为 HTTP Bearer 令牌包含在请求中。API 密钥绑定到团队,并与创建它们的用户关联。
路径参数
teamId(字符串, 必需) — 此 API 密钥所属团队的 ID。团队 ID 可以在此处复制:https://console.x.ai/team/default/settings/team。
请求正文
name(字符串, 必需) — API 密钥的可读名称。不应为空。acls(数组<字符串>) — 默认情况下,API 密钥没有任何访问权限。要实际使用 API 密钥,必须授予其对 (1) 端点和 (2) 模型的访问权限。访问权限通过字符串形式授予,格式为 `api-key:endpoint:[端点名称]` 和 `api-key:model:[模型名称]`,其中 `端点名称` 和 `模型名称` 可以分别通过 `/auth/teams/{team_id}/endpoints` 和 `/auth/teams/{team_id}/models` 端点获取。
ACL 也支持通配符。如果要创建一个有权访问所有模型和端点的 API 密钥,请添加两个 ACL:`api-key:endpoint:*` 和 `api-key:model:*`。
qps(整数) — 如果设置,则 API 密钥限制为每秒执行此数量的查询。qpm(整数) — 如果设置,则 API 密钥限制为每分钟执行此数量的查询。tpm(字符串) — 如果设置,则 API 密钥限制为每分钟生成/消耗设定数量的令牌。当限制被严格超过时,限制器会启动。导致限制超出的进行中的请求不会被中止。expireTime(字符串) — API 密钥的过期时间。如果已设置且在过去,则该密钥将被拒绝。
响应正文
redactedApiKey(字符串) — 一个被遮蔽的 API 密钥。创建后我们不会显示完整的密钥。apiKey(字符串) — 仅在创建 API 密钥时设置。userId(字符串) — 创建此 API 密钥的用户 ID。name(字符串) — API 密钥的可读名称。createTime(字符串) — 创建 API 密钥时的时间戳。modifyTime(字符串) — 修改 API 密钥时的时间戳。teamId(字符串) — 此 API 密钥所属团队的 ID。apiKeyId(字符串) — API 密钥的 ID。disabled(boolean) — API 是否被用户禁用。用户可以禁用 API 密钥以防止它们进行 API 调用。expireTime(字符串) — API 密钥的过期时间。如果已设置且在过去,则该密钥将被拒绝。qps(整数) — 如果设置,则此 API 密钥每秒只能执行指定数量的请求。qpm(整数) — 如果设置,则此 API 密钥每分钟只能执行指定数量的请求。tpm(字符串) — 如果设置,则 API 密钥限制为每分钟生成/消耗设定数量的令牌。当限制被严格超过时,限制器会启动。导致限制超出的进行中的请求不会被中止。aclStrings(数组<字符串>) — API 密钥拥有的权限。默认情况下,API 密钥没有任何权限,如果此字段为空,则所有请求都会失败。用户可以授予两种权限:(1) 端点和 (2) 模型,通过 `api-key:endpoint:[端点名称]` 和 `api-key:model:[模型名称]` ACL。如果要授予对特定端点和模型的访问权限,可以使用相应的 `/endpoints` 和 `/models` 端点来获取 `端点名称` 和 `模型名称` 的可能值。
如果要创建一个有权访问所有端点和模型的 API 密钥,可以使用通配符 ACL `api-key:endpoint:*` 和 `api-key:model:*`。
请求示例:
{
"name": "My API key",
"acls": [
"api-key:endpoint:*",
"api-key:model:*"
]
}响应示例:
{
"redactedApiKey": "xai-...oYZ4",
"apiKey": "xai-YOUR_API_KEY_PLACEHOLDER",
"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:*"
]
}GET /auth/teams/{teamId}/api-keys
列出属于团队内用户的 API 密钥。如果调用用户是管理员,则返回所有团队 API 密钥。如果调用用户是成员,则返回该用户的 API 密钥。
路径参数
teamId(字符串, 必需) — 要列出其 API 密钥的团队的 ID。
查询参数
pageSize(整数) — 控制结果的页面大小。如果为 None,则结果作为一页返回。paginationToken(字符串) — 使用分页时从前一次调用中接收的分页令牌。设置为 `undefined` 以检索第一页。aclFilters(数组<字符串>) — 可选过滤器,仅返回与给定 ACL 匹配的 API 密钥。activeOnly(boolean) — 如果为 true,则仅返回未过期的 API 密钥。默认为 false(返回所有密钥)。
响应正文
apiKeys(数组<对象>) — 属于团队的 API 密钥。redactedApiKey(字符串) — 一个被遮蔽的 API 密钥。创建后我们不会显示完整的密钥。apiKey(字符串) — 仅在创建 API 密钥时设置。userId(字符串) — 创建此 API 密钥的用户 ID。name(字符串) — API 密钥的可读名称。createTime(字符串) — 创建 API 密钥时的时间戳。modifyTime(字符串) — 修改 API 密钥时的时间戳。teamId(字符串) — 此 API 密钥所属团队的 ID。apiKeyId(字符串) — API 密钥的 ID。disabled(boolean) — API 是否被用户禁用。用户可以禁用 API 密钥以防止它们进行 API 调用。expireTime(字符串) — API 密钥的过期时间。如果已设置且在过去,则该密钥将被拒绝。qps(整数) — 如果设置,则此 API 密钥每秒只能执行指定数量的请求。qpm(整数) — 如果设置,则此 API 密钥每分钟只能执行指定数量的请求。tpm(字符串) — 如果设置,则 API 密钥限制为每分钟生成/消耗设定数量的令牌。当限制被严格超过时,限制器会启动。导致限制超出的进行中的请求不会被中止。aclStrings(数组<字符串>) — API 密钥拥有的权限。默认情况下,API 密钥没有任何权限,如果此字段为空,则所有请求都会失败。用户可以授予两种权限:(1) 端点和 (2) 模型,通过 `api-key:endpoint:[端点名称]` 和 `api-key:model:[模型名称]` ACL。如果要授予对特定端点和模型的访问权限,可以使用相应的 `/endpoints` 和 `/models` 端点来获取 `端点名称` 和 `模型名称` 的可能值。
如果要创建一个有权访问所有端点和模型的 API 密钥,可以使用通配符 ACL `api-key:endpoint:*` 和 `api-key:model:*`。
paginationToken(字符串) — 在后续请求中包含此令牌以检索下一页。如果为 `undefined`,则这是最后一页。
响应示例:
{
"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:*"
]
}
]
}PUT /auth/api-keys/{api_key_id}
选择性地更新 API 密钥的子集字段。
路径参数
api_key_id(字符串, 必需) — API 密钥的 ID。
请求正文
apiKey(对象, 必需) — API 密钥。redactedApiKey(字符串) — 一个被遮蔽的 API 密钥。创建后我们不会显示完整的密钥。apiKey(字符串) — 仅在创建 API 密钥时设置。userId(字符串) — 创建此 API 密钥的用户 ID。name(字符串) — API 密钥的可读名称。createTime(字符串) — 创建 API 密钥时的时间戳。modifyTime(字符串) — 修改 API 密钥时的时间戳。teamId(字符串) — 此 API 密钥所属团队的 ID。disabled(boolean) — API 是否被用户禁用。用户可以禁用 API 密钥以防止它们进行 API 调用。expireTime(字符串) — API 密钥的过期时间。如果已设置且在过去,则该密钥将被拒绝。qps(整数) — 如果设置,则此 API 密钥每秒只能执行指定数量的请求。qpm(整数) — 如果设置,则此 API 密钥每分钟只能执行指定数量的请求。tpm(字符串) — 如果设置,则 API 密钥限制为每分钟生成/消耗设定数量的令牌。当限制被严格超过时,限制器会启动。导致限制超出的进行中的请求不会被中止。aclStrings(数组<字符串>) — API 密钥拥有的权限。默认情况下,API 密钥没有任何权限,如果此字段为空,则所有请求都会失败。用户可以授予两种权限:(1) 端点和 (2) 模型,通过 `api-key:endpoint:[端点名称]` 和 `api-key:model:[模型名称]` ACL。如果要授予对特定端点和模型的访问权限,可以使用相应的 `/endpoints` 和 `/models` 端点来获取 `端点名称` 和 `模型名称` 的可能值。
如果要创建一个有权访问所有端点和模型的 API 密钥,可以使用通配符 ACL `api-key:endpoint:*` 和 `api-key:model:*`。
fieldMask(字符串) — 指示哪些字段将被修改的字段掩码。
响应正文
redactedApiKey(字符串) — 一个被遮蔽的 API 密钥。创建后我们不会显示完整的密钥。apiKey(字符串) — 仅在创建 API 密钥时设置。userId(字符串) — 创建此 API 密钥的用户 ID。name(字符串) — API 密钥的可读名称。createTime(字符串) — 创建 API 密钥时的时间戳。modifyTime(字符串) — 修改 API 密钥时的时间戳。teamId(字符串) — 此 API 密钥所属团队的 ID。apiKeyId(字符串) — API 密钥的 ID。disabled(boolean) — API 是否被用户禁用。用户可以禁用 API 密钥以防止它们进行 API 调用。expireTime(字符串) — API 密钥的过期时间。如果已设置且在过去,则该密钥将被拒绝。qps(整数) — 如果设置,则此 API 密钥每秒只能执行指定数量的请求。qpm(整数) — 如果设置,则此 API 密钥每分钟只能执行指定数量的请求。tpm(字符串) — 如果设置,则 API 密钥限制为每分钟生成/消耗设定数量的令牌。当限制被严格超过时,限制器会启动。导致限制超出的进行中的请求不会被中止。aclStrings(数组<字符串>) — API 密钥拥有的权限。默认情况下,API 密钥没有任何权限,如果此字段为空,则所有请求都会失败。用户可以授予两种权限:(1) 端点和 (2) 模型,通过 `api-key:endpoint:[端点名称]` 和 `api-key:model:[模型名称]` ACL。如果要授予对特定端点和模型的访问权限,可以使用相应的 `/endpoints` 和 `/models` 端点来获取 `端点名称` 和 `模型名称` 的可能值。
如果要创建一个有权访问所有端点和模型的 API 密钥,可以使用通配符 ACL `api-key:endpoint:*` 和 `api-key:model:*`。
请求示例:
{
"apiKey": {
"tpm": "42"
},
"fieldMask": "tpm"
}响应示例:
{
"redactedApiKey": "xai-...oYZ4",
"apiKey": "xai-YOUR_API_KEY_PLACEHOLDER",
"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:*"
]
}POST /auth/api-keys/{apiKeyId}/rotate
!!警告!! 旋转现有 API 密钥的密钥,永久使其失效。
路径参数
apiKeyId(字符串, 必需) — 其密钥应被旋转的 API 密钥的 ID。
请求正文
expireTime(字符串) — 如果设置,则更新新 API 密钥的过期时间。如果未设置,新密钥将继承旧密钥的过期时间。oldSecretExpireTime(字符串) — 旧密钥停止被接受的时间。如果未设置,则默认为从现在起 24 小时(对于未过期的密钥)。不能超过从现在起 7 天。
响应正文
redactedApiKey(字符串) — 一个被遮蔽的 API 密钥。创建后我们不会显示完整的密钥。apiKey(字符串) — 仅在创建 API 密钥时设置。userId(字符串) — 创建此 API 密钥的用户 ID。name(字符串) — API 密钥的可读名称。createTime(字符串) — 创建 API 密钥时的时间戳。modifyTime(字符串) — 修改 API 密钥时的时间戳。teamId(字符串) — 此 API 密钥所属团队的 ID。apiKeyId(字符串) — API 密钥的 ID。disabled(boolean) — API 是否被用户禁用。用户可以禁用 API 密钥以防止它们进行 API 调用。expireTime(字符串) — API 密钥的过期时间。如果已设置且在过去,则该密钥将被拒绝。qps(整数) — 如果设置,则此 API 密钥每秒只能执行指定数量的请求。qpm(整数) — 如果设置,则此 API 密钥每分钟只能执行指定数量的请求。tpm(字符串) — 如果设置,则 API 密钥限制为每分钟生成/消耗设定数量的令牌。当限制被严格超过时,限制器会启动。导致限制超出的进行中的请求不会被中止。aclStrings(数组<字符串>) — API 密钥拥有的权限。默认情况下,API 密钥没有任何权限,如果此字段为空,则所有请求都会失败。用户可以授予两种权限:(1) 端点和 (2) 模型,通过 `api-key:endpoint:[端点名称]` 和 `api-key:model:[模型名称]` ACL。如果要授予对特定端点和模型的访问权限,可以使用相应的 `/endpoints` 和 `/models` 端点来获取 `端点名称` 和 `模型名称` 的可能值。
如果要创建一个有权访问所有端点和模型的 API 密钥,可以使用通配符 ACL `api-key:endpoint:*` 和 `api-key:model:*`。
响应示例:
{
"redactedApiKey": "xai-...oYZ4",
"apiKey": "xai-YOUR_API_KEY_PLACEHOLDER",
"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:*"
]
}DELETE /auth/api-keys/{apiKeyId}
!!警告!! 永久且不可撤销地删除 API 密钥。
路径参数
apiKeyId(字符串, 必需) — 要删除的 API 密钥的 ID。
响应示例:
{}GET /auth/api-keys/{apiKeyId}/propagation
检查 API 密钥是否已成功传播。
路径参数
apiKeyId(字符串, 必需) — 其传播状态应检查的 API 的 ID。
响应正文
icPropagation(对象) — 从推理集群地址到指示 API 密钥是否已传播的标志的映射。
响应示例:
{
"icPropagation": {
"cloud9.api.x.ai": true,
"us-east-1.api.x.ai": true
}
}GET /auth/teams/{teamId}/models
列出团队可访问的所有模型。
路径参数
teamId(字符串, 必需) — 要检索其模型的团队的 ID。
响应正文
clusterConfigs(数组<对象>) — 包含可通过各个推理集群访问的模型。languageModels(数组<对象>) — 可用的语言模型。name(字符串) — 模型在 API 中可用的名称。version(字符串) — 此模型的版本号。有时模型会被原地更新(即它们保留其名称,但部署了同一模型的更新版本)。inputModalities(数组<"INVALID" | "TEXT" | "IMAGE" | "AUDIO" | "VIDEO">) — 模型支持的输入模态类型。outputModalities(数组<"INVALID" | "TEXT" | "IMAGE" | "AUDIO" | "VIDEO">) — 模型支持的输出模态类型。promptTextTokenPrice(字符串) — 每 1 亿文本提示令牌的价格(以美分计)。promptImageTokenPrice(字符串) — 每 1 亿图像提示令牌的价格(以美分计)。promptTextTokenPriceLongContext(字符串) — 如果请求是长上下文请求,则每个提示令牌的价格。此价格适用于请求中的所有令牌。价格以 1/100,000,000 美分存储。cachedPromptTokenPrice(字符串) — 每 1 亿缓存提示令牌的价格(以美分计)。
version(string) — 此模型的版本号。有时模型会原地更新(即它们保留其名称,但部署的是同一模型的更新版本)。inputModalities(array<"INVALID" | "TEXT" | "IMAGE" | "AUDIO" | "VIDEO">) — 模型支持的输入模态类型。outputModalities(array<"INVALID" | "TEXT" | "IMAGE" | "AUDIO" | "VIDEO">) — 模型支持的输出模态类型。imagePrice(string) — [已弃用] 每张图片的固定价格。请改用 resolution_pricing。rps(string) — 此团队允许的最大每秒请求数。rpm(string) — 如果已配置,最大每分钟请求数。tpm(string) — 允许的每分钟令牌数。如果为 0,则不应用限制。rph(string) — 如果已配置,最大每小时请求数。rpd(string) — 如果已配置,最大每天请求数。cluster(string) — 模型所在的集群名称。aliases(array<string>)) — 模型可用的其他名称。resolutionPricing(array<object>) — 基于分辨率的定价层级。resolution("IMAGE_RESOLUTION_UNSPECIFIED" | "IMAGE_RESOLUTION_1K" | "IMAGE_RESOLUTION_2K" | "IMAGE_RESOLUTION_4K") — 定价的图像分辨率选项。- IMAGE_RESOLUTION_1K: ~1024x1024 - IMAGE_RESOLUTION_2K: ~2048x2048 - IMAGE_RESOLUTION_4K: ~4096x4096
pricePerImage(string) — 此分辨率的每张图片价格(以 1/100,000,000 美元分为单位)。
pricePerInputImage(string) — 每张输入图像的价格(以 1/100,000,000 美元分为单位)。rateLimits(object)queryOffset(string)queryBaseRate(string)queryMultiplier(string)tokenOffset(string)tokenBaseRate(string)tokenMultiplier(string)
audioModels(array<object>) — 可用的音频模型。name(string) — 模型在 API 中可用的名称。version(string) — 此模型的版本号。有时模型会原地更新(即它们保留其名称,但部署的是同一模型的更新版本)。inputModalities(array<"INVALID" | "TEXT" | "IMAGE" | "AUDIO" | "VIDEO">) — 模型支持的输入模态类型。outputModalities(array<"INVALID" | "TEXT" | "IMAGE" | "AUDIO" | "VIDEO">) — 模型支持的输出模态类型。promptTokenPrice(string) — 每 1 亿个提示令牌的价格(以美元分为单位)。completionTokenPrice(string) — 每 1 亿个完成令牌的价格(以美元分为单位)。supportedClients(array<object>) — 支持的客户端。例如,您可以将其作为查询参数传递给模型 websocket 端点,格式为 "?client=..."。clientName(string) — 描述此客户端在 API 中的简短类 ID 字符串。description(string) — 此类型客户端的可读描述。
rps(string) — 此团队允许的最大每秒请求数。rpm(string) — 如果已配置,最大每分钟请求数。tpm(string) — 允许的每分钟令牌数。如果为 0,则不应用限制。rph(string) — 如果已配置,最大每小时请求数。rpd(string) — 如果已配置,最大每天请求数。cluster(string) — 模型所在的集群名称。aliases(array<string>) — 模型可用的其他名称。rateLimits(object)queryOffset(string)queryBaseRate(string)queryMultiplier(string)tokenOffset(string)tokenBaseRate(string)tokenMultiplier(string)
videoGenerationModels(array<object>) — 可用的视频生成模型。name(string) — 模型在 API 中可用的名称。version(string) — 此模型的版本号。有时模型会原地更新(即它们保留其名称,但部署的是同一模型的更新版本)。inputModalities(array<"INVALID" | "TEXT" | "IMAGE" | "AUDIO" | "VIDEO">) — 模型支持的输入模态类型(例如,图像到视频的 TEXT、IMAGE)。outputModalities(array<"INVALID" | "TEXT" | "IMAGE" | "AUDIO" | "VIDEO">) — 模型支持的输出模态类型。rps(string) — 此团队允许的最大每秒请求数。rpm(string) — 如果已配置,最大每分钟请求数。tpm(string) — 允许的每分钟令牌数。如果为 0,则不应用限制。rph(string) — 如果已配置,最大每小时请求数。rpd(string) — 如果已配置,最大每天请求数。cluster(string) — 模型所在的集群名称。aliases(array<string>) — 模型可用的其他名称。resolutionPricing(array<object>) — 基于分辨率的定价层级。resolution("VIDEO_RESOLUTION_UNSPECIFIED" | "VIDEO_RESOLUTION_480P" | "VIDEO_RESOLUTION_720P" | "VIDEO_RESOLUTION_1080P") — 定价的视频分辨率选项。pricePerSecond(string) — 此分辨率的每秒视频价格(以 1/100,000,000 美元分为单位)。
pricePerInputImage(string) — 每张输入图像的价格(以 1/100,000,000 美元分为单位)。pricePerInputVideoSecond(string) — 每秒输入视频的价格(以 1/100,000,000 美元分为单位)。rateLimits(object)queryOffset(string)queryBaseRate(string)queryMultiplier(string)tokenOffset(string)tokenBaseRate(string)tokenMultiplier(string)
clusterName(string) — 推理集群的名称,例如 'us-east-1'。
响应示例:
{
"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"
}
]
}GET /auth/teams/{teamId}/endpoints
列出可用于 API 密钥的所有端点 ACL。
路径参数
teamId(string, required) — 将接收其可访问端点的团队 ID。
响应体
acls(array<object>) — 可以分配给 API 密钥的 ACL 列表。acl(string) — 要在 API 密钥上使用的 acl 键。description(string) — 描述此 ACL 功能的说明。namespace(string) — ACL 命名空间。key(string) — ACL 键。value(string) — ACL 值(可选)。
响应示例:
{
"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"
}
]
}GET /auth/management-keys/validation
GET 请求到 /auth/management-keys/validation 的 API 端点。
响应体
apiKeyId(string) — 此密钥的 ID。teamId(string) — [已弃用] 请使用 scope 和 scope_id。 密钥可以代表其操作的团队 ID。scope("SCOPE_UNSPECIFIED" | "SCOPE_TEAM" | "SCOPE_ORGANIZATION")) — 密钥关联的范围。scopeId(string) — 密钥关联的范围 ID。ownerUserId(string) — 拥有此密钥的用户 ID。createTime(string) — 密钥创建的时间。modifyTime(string) — 密钥上次修改的时间。name(string) — 此密钥的名称(仅用于人类)。acls(array<string>) — 此密钥的 ACL(控制可以使用密钥访问哪些 API)。apiKey(string) — 仅在密钥创建时设置。redactedApiKey(string) — 实际密钥的缩短版本。ipRanges(object)ipRanges(array<object>)) — IP 范围列表。address(object)ipv4(string)ipv6(string)
prefixLength(integer)
响应示例:
{
"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
}