curl --request GET \
--url https://api.example.com/v2/llm-modelsimport requests
url = "https://api.example.com/v2/llm-models"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v2/llm-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.example.com/v2/llm-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.example.com/v2/llm-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.example.com/v2/llm-models")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v2/llm-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{
"status": "success",
"message": "LLM models retrieved successfully",
"data": {
"items": [
{
"llm_model_id": "9d259647-d5ec-423d-96a9-2750980e8ecb",
"llm_type": [
"simple",
"flow"
],
"model_provider": "openai",
"provider_display_name": "OpenAI",
"model_name": "gpt-4o-mini",
"model_type": "builtIn",
"model_display_name": "GPT-4o mini",
"language_code": [
"en-US",
"ja-JP"
],
"model_description": "Fast, low-cost general-purpose model.",
"is_realtime_model": false,
"pca_enabled": true,
"latency_in_ms": 600,
"tag": null,
"max_tokens": 4096,
"model_temperature": 0.7,
"priority": 10,
"organization_id": null,
"workspace_id": null,
"created_by_user_id": "usr_admin01",
"modified_by_user_id": "usr_admin01",
"created_at": "2026-05-04T08:00:00Z",
"modified_at": "2026-09-12T11:20:00Z",
"status": "ACTIVE"
}
],
"next_page_token": "eyJwcmlvcml0eSI6MTAsIl9pZCI6IjY4YzFmMGExZTRiMGEyYzNkNGU1ZjZhNyJ9"
}
}List LLM models
List the LLM models you can use in an agent. Use a model’s llm_model_id as llm.llm_id when you create or update an agent.
The catalog holds the platform’s built-in models plus the custom models of your organization. A model can be used only if its status is ACTIVE and its llm_type array contains the agent’s llm_type (simple or flow).
Filters
| Parameter | Notes |
|---|---|
llm_model_ids | Restrict to specific ids. Repeat the parameter or pass a comma-separated list. |
language_code | Models that support these language codes. Repeatable. |
status | ACTIVE, INACTIVE or DELETED. Defaults to ACTIVE. |
model_type | builtIn or custom. |
model_provider | Provider key, for example openai. |
sort_direction | asc or desc. |
Results are paged with a cursor. Pass data.next_page_token back as page_token. When it is absent, you have reached the last page. A page_size outside 1–100 or an unknown sort_direction returns 422.
The response uses the v3 envelope: status (lowercase), message and data, with the models in data.items. List items include every field, with explicit nulls.
curl --request GET \
--url https://api.example.com/v2/llm-modelsimport requests
url = "https://api.example.com/v2/llm-models"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v2/llm-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.example.com/v2/llm-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.example.com/v2/llm-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.example.com/v2/llm-models")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v2/llm-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{
"status": "success",
"message": "LLM models retrieved successfully",
"data": {
"items": [
{
"llm_model_id": "9d259647-d5ec-423d-96a9-2750980e8ecb",
"llm_type": [
"simple",
"flow"
],
"model_provider": "openai",
"provider_display_name": "OpenAI",
"model_name": "gpt-4o-mini",
"model_type": "builtIn",
"model_display_name": "GPT-4o mini",
"language_code": [
"en-US",
"ja-JP"
],
"model_description": "Fast, low-cost general-purpose model.",
"is_realtime_model": false,
"pca_enabled": true,
"latency_in_ms": 600,
"tag": null,
"max_tokens": 4096,
"model_temperature": 0.7,
"priority": 10,
"organization_id": null,
"workspace_id": null,
"created_by_user_id": "usr_admin01",
"modified_by_user_id": "usr_admin01",
"created_at": "2026-05-04T08:00:00Z",
"modified_at": "2026-09-12T11:20:00Z",
"status": "ACTIVE"
}
],
"next_page_token": "eyJwcmlvcml0eSI6MTAsIl9pZCI6IjY4YzFmMGExZTRiMGEyYzNkNGU1ZjZhNyJ9"
}
}Query Parameters
Restrict the result to these model ids.
Only models that support these language codes.
Filter by lifecycle status.
ACTIVE, INACTIVE, DELETED Built-in platform models or your organization's custom models.
builtIn, custom Filter by provider key.
Sort order. Any other value returns 422.
asc, desc Number of results per page, 1–100.
1 <= x <= 100Cursor from the previous response's next_page_token. Omit for the first page.

