List Models
curl --request GET \
--url https://control-plane.kubiya.ai/api/v1/models \
--header 'Authorization: Bearer <token>'import requests
url = "https://control-plane.kubiya.ai/api/v1/models"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://control-plane.kubiya.ai/api/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://control-plane.kubiya.ai/api/v1/models",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://control-plane.kubiya.ai/api/v1/models"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://control-plane.kubiya.ai/api/v1/models")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://control-plane.kubiya.ai/api/v1/models")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "<string>",
"value": "<string>",
"label": "<string>",
"provider": "<string>",
"model_type": "<string>",
"logo": "<string>",
"description": "<string>",
"enabled": true,
"recommended": true,
"compatible_runtimes": [
"<string>"
],
"capabilities": {},
"pricing": {},
"display_order": 123,
"created_at": "<string>",
"updated_at": "<string>"
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}API Reference
List Models
List all LLM models from LiteLLM server with database fallback.
Models are fetched dynamically from the configured LiteLLM server with caching for performance. Falls back to database models if LiteLLM is unavailable.
Query Parameters:
- provider: Filter by provider name (e.g., ‘xai’, ‘anthropic’, ‘openai’)
- runtime: Filter by compatible runtime (e.g., ‘claude_code’, ‘default’)
- type: Filter by model type (e.g., ‘embedding’, ‘text-generation’, ‘multimodal’)
- skip/limit: Pagination
Example:
GET /api/v1/models
GET /api/v1/models?provider=xai
GET /api/v1/models?runtime=claude_code
GET /api/v1/models?type=embedding
GET /api/v1/models?type=text-generation&provider=anthropic
GET
/
api
/
v1
/
models
List Models
curl --request GET \
--url https://control-plane.kubiya.ai/api/v1/models \
--header 'Authorization: Bearer <token>'import requests
url = "https://control-plane.kubiya.ai/api/v1/models"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://control-plane.kubiya.ai/api/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://control-plane.kubiya.ai/api/v1/models",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://control-plane.kubiya.ai/api/v1/models"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://control-plane.kubiya.ai/api/v1/models")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://control-plane.kubiya.ai/api/v1/models")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "<string>",
"value": "<string>",
"label": "<string>",
"provider": "<string>",
"model_type": "<string>",
"logo": "<string>",
"description": "<string>",
"enabled": true,
"recommended": true,
"compatible_runtimes": [
"<string>"
],
"capabilities": {},
"pricing": {},
"display_order": 123,
"created_at": "<string>",
"updated_at": "<string>"
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Enter your Kubiya API token (format: Bearer )
Query Parameters
Filter by provider (e.g., 'xai', 'anthropic')
Filter by compatible runtime (e.g., 'claude_code')
Filter by model type (e.g., 'embedding', 'text-generation')
Required range:
x >= 0Required range:
1 <= x <= 1000Response
Successful Response
Was this page helpful?