List public models
curl --request GET \
--url https://api.caprioletech.com/v1/modelsimport requests
url = "https://api.caprioletech.com/v1/models"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.caprioletech.com/v1/models', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.caprioletech.com/v1/models",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.caprioletech.com/v1/models"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.caprioletech.com/v1/models")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.caprioletech.com/v1/models")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "openai-latest"
},
{
"id": "openai/gpt-5.6-terra"
},
{
"id": "openai/gpt-5.6-luna"
},
{
"id": "openai/gpt-5.5"
},
{
"id": "openai/gpt-5.4-mini"
},
{
"id": "claude-latest"
},
{
"id": "anthropic/claude-fable-5"
},
{
"id": "anthropic/claude-opus-5"
},
{
"id": "anthropic/claude-opus-4-8"
},
{
"id": "anthropic/claude-opus-4-7"
},
{
"id": "anthropic/claude-opus-4-6"
},
{
"id": "anthropic/claude-sonnet-4-6"
},
{
"id": "google-latest"
},
{
"id": "google/gemini-3.1-pro-preview"
},
{
"id": "google/gemini-3.5-flash"
},
{
"id": "xai/grok-4.5"
},
{
"id": "zai/glm-5.2"
},
{
"id": "moonshot/kimi-k3"
}
]
}{
"detail": "Rate limit exceeded: 100 per 1 minute"
}{
"detail": "An internal server error occurred. Please try again later."
}端点
列出模型
返回当前公开模型目录。
GET
/
v1
/
models
List public models
curl --request GET \
--url https://api.caprioletech.com/v1/modelsimport requests
url = "https://api.caprioletech.com/v1/models"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.caprioletech.com/v1/models', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.caprioletech.com/v1/models",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.caprioletech.com/v1/models"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.caprioletech.com/v1/models")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.caprioletech.com/v1/models")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "openai-latest"
},
{
"id": "openai/gpt-5.6-terra"
},
{
"id": "openai/gpt-5.6-luna"
},
{
"id": "openai/gpt-5.5"
},
{
"id": "openai/gpt-5.4-mini"
},
{
"id": "claude-latest"
},
{
"id": "anthropic/claude-fable-5"
},
{
"id": "anthropic/claude-opus-5"
},
{
"id": "anthropic/claude-opus-4-8"
},
{
"id": "anthropic/claude-opus-4-7"
},
{
"id": "anthropic/claude-opus-4-6"
},
{
"id": "anthropic/claude-sonnet-4-6"
},
{
"id": "google-latest"
},
{
"id": "google/gemini-3.1-pro-preview"
},
{
"id": "google/gemini-3.5-flash"
},
{
"id": "xai/grok-4.5"
},
{
"id": "zai/glm-5.2"
},
{
"id": "moonshot/kimi-k3"
}
]
}{
"detail": "Rate limit exceeded: 100 per 1 minute"
}{
"detail": "An internal server error occurred. Please try again later."
}使用此端点获取当前公开模型目录。
模型目录会先列出提供商级别的 latest alias,再列出具体模型 ID。
在
Anthropic Messages 端点也接受
openai-latestclaude-latestgoogle-latest
| 模型选择 | 适用场景 |
|---|---|
openai-latest、claude-latest、google-latest | 配置一次,让 Capriole AI 持续使用当前推荐的旗舰模型 |
openai/gpt-5.6-terra 等具体模型 ID | 固定到一个特定模型版本 |
POST /v1/chat 和 POST /v1/chat/completions 中,latest alias 按以下方式解析。
| Latest alias | 解析结果 |
|---|---|
openai-latest | openai/gpt-5.6-terra |
claude-latest | anthropic/claude-fable-5 |
google-latest | google/gemini-3.1-pro-preview |
| 端点 | 支持的 latest alias |
|---|---|
POST /v1/chat | openai-latest、claude-latest、google-latest |
POST /v1/chat/completions | openai-latest、claude-latest、google-latest |
POST /v1/responses | openai-latest |
POST /v1/messages | claude-latest |
POST /v1/messages/count_tokens | claude-latest |
claude-fable-5、claude-opus-5、claude-opus-4-8、claude-opus-4-7、claude-opus-4-6 和 claude-sonnet-4-6 等不带提供商前缀的具体 Claude Messages 模型 ID。
在 POST /v1/messages 和 POST /v1/messages/count_tokens 中,claude-latest 会解析为 claude-fable-5,与 Chat 和 Chat Completions 的 latest alias 保持一致。
请使用上面列出的 alias ID,不要添加提供商前缀。openai/openai-latest 这样的写法属于客户端的提供商选择格式,不是 Capriole AI 模型 ID。响应
Public model list
Show child attributes
Show child attributes
最后修改于 2026年8月18日
⌘I