Models
返回当前凭证可调用的模型列表。
- 手动 API Key:返回当前 key 绑定分组的模型
- OAuth token +
?groups=all:返回所有已授权分组的聚合模型列表
Endpoint
http
GET https://api.sakrylle.com/v1/models请求头
| 名称 | 必填 | 说明 |
|---|---|---|
Authorization | 是 | Bearer sk-xxxxxxxxxxxxxxxx 或 Bearer sk_oauth_xxxxxxxxxxxxxxxx |
Query 参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
groups | string | 否 | 设为 all 时返回所有已授权分组的聚合模型列表;仅 OAuth token 生效 |
普通响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
object | string | 固定为 list |
data | array | 模型数组 |
data[].id | string | 请求时使用的模型 ID |
data[].object | string | 固定为 model |
data[].type | string | 固定为 model |
data[].display_name | string | 展示名;通常与模型名相同 |
data[].owned_by | string | 平台标识,如 openai / anthropic / google |
data[].created | integer | 占位时间戳 |
data[].created_at | string | 占位 RFC3339 时间 |
data[].allow_image_generation | boolean | 仅 OpenAI 平台分组返回;表示该分组是否允许图像生成相关能力 |
普通响应示例
json
{
"object": "list",
"data": [
{
"id": "gpt-5.6-sol",
"object": "model",
"type": "model",
"display_name": "gpt-5.6-sol",
"owned_by": "openai",
"created": 1704067200,
"created_at": "2024-01-01T00:00:00Z",
"allow_image_generation": true
},
{
"id": "codex-auto-review",
"object": "model",
"type": "model",
"display_name": "codex-auto-review",
"owned_by": "openai",
"created": 1704067200,
"created_at": "2024-01-01T00:00:00Z",
"allow_image_generation": true
}
]
}OAuth 聚合模型列表
OAuth token 调用 GET /v1/models?groups=all 时,data[].id 会变成数值分组前缀格式:
text
<group_id>:<model>例如:
json
{
"object": "list",
"data": [
{
"id": "3:gpt-5.6-sol",
"object": "model",
"type": "model",
"display_name": "gpt-5.6-sol",
"owned_by": "openai",
"created": 1704067200,
"created_at": "2024-01-01T00:00:00Z",
"allow_image_generation": true,
"group": {
"id": 3,
"name": "GPT-Pro",
"rate_multiplier": 0.5
}
}
]
}聚合响应补充字段
| 字段 | 类型 | 说明 |
|---|---|---|
data[].id | string | 形如 <group_id>:<model>,可直接原样写回后续请求的 model |
data[].group | object | 模型所属分组 |
data[].group.id | integer | 数值分组 ID |
data[].group.name | string | 分组名 |
data[].group.rate_multiplier | number | 当前分组倍率 |
data[].allow_image_generation | boolean | 仅 OpenAI 平台分组返回 |
TIP
如果你在单个 OAuth token 下跨多个分组调用模型,最稳妥的做法是:
- 先调
/v1/models?groups=all - 直接使用返回的
data[].id
不要自己拼字符串别名。
说明
- 手动 API Key 会忽略
?groups=all allow_image_generation是能力提示,不等于“该分组一定卖图像模型”;图像模型列表仍以data[].id为准created/created_at为兼容字段,不表示模型真实发布时间
错误
401 authentication_error— 鉴权失败
代码示例
bash
curl https://api.sakrylle.com/v1/models \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx"python
from openai import OpenAI
client = OpenAI(
api_key="sk-xxxxxxxxxxxxxxxx",
base_url="https://api.sakrylle.com/v1",
)
models = client.models.list()
for m in models.data:
print(m.id, m.owned_by)javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-xxxxxxxxxxxxxxxx",
baseURL: "https://api.sakrylle.com/v1",
});
const models = await client.models.list();
for (const m of models.data) {
console.log(m.id, m.owned_by);
}go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET",
"https://api.sakrylle.com/v1/models", nil)
req.Header.Set("Authorization", "Bearer sk-xxxxxxxxxxxxxxxx")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(string(out))
}rust
use reqwest::Client;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = Client::new();
let resp: serde_json::Value = client
.get("https://api.sakrylle.com/v1/models")
.bearer_auth("sk-xxxxxxxxxxxxxxxx")
.send()
.await?
.json()
.await?;
println!("{resp:#}");
Ok(())
}java
import java.net.URI;
import java.net.http.*;
public class Models {
public static void main(String[] args) throws Exception {
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.sakrylle.com/v1/models"))
.header("Authorization", "Bearer sk-xxxxxxxxxxxxxxxx")
.GET()
.build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
}
}csharp
using System.Net.Http.Headers;
var http = new HttpClient();
http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", "sk-xxxxxxxxxxxxxxxx");
var resp = await http.GetAsync("https://api.sakrylle.com/v1/models");
Console.WriteLine(await resp.Content.ReadAsStringAsync());