List an agent's available models
curl --request GET \
--url https://api.onecli.sh/v1/agents/{agentId}/models \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.onecli.sh/v1/agents/{agentId}/models"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.onecli.sh/v1/agents/{agentId}/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.onecli.sh/v1/agents/{agentId}/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://api.onecli.sh/v1/agents/{agentId}/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://api.onecli.sh/v1/agents/{agentId}/models")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onecli.sh/v1/agents/{agentId}/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{
"provider": "<string>",
"providerLabel": "<string>",
"providerScope": "<string>",
"models": [
{
"id": "<string>",
"label": "<string>"
}
],
"efforts": [
{
"id": "<string>",
"label": "<string>"
}
],
"defaults": {
"model": "<string>",
"effort": "<string>"
},
"selected": {
"model": "<string>",
"effort": "<string>",
"overridden": true
},
"degraded": true
}{
"error": "<string>"
}{
"error": "<string>"
}Agents
List the models an agent can use
Shows the models an agent’s granted LLM key can run, the provider defaults, and the current selection. No granted key yields an empty list.
GET
/
agents
/
{agentId}
/
models
List an agent's available models
curl --request GET \
--url https://api.onecli.sh/v1/agents/{agentId}/models \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.onecli.sh/v1/agents/{agentId}/models"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.onecli.sh/v1/agents/{agentId}/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.onecli.sh/v1/agents/{agentId}/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://api.onecli.sh/v1/agents/{agentId}/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://api.onecli.sh/v1/agents/{agentId}/models")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onecli.sh/v1/agents/{agentId}/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{
"provider": "<string>",
"providerLabel": "<string>",
"providerScope": "<string>",
"models": [
{
"id": "<string>",
"label": "<string>"
}
],
"efforts": [
{
"id": "<string>",
"label": "<string>"
}
],
"defaults": {
"model": "<string>",
"effort": "<string>"
},
"selected": {
"model": "<string>",
"effort": "<string>",
"overridden": true
},
"degraded": true
}{
"error": "<string>"
}{
"error": "<string>"
}Shows which models the agent can choose from based on its granted LLM key. It always answers
200 for an existing agent. See LLMs to add an LLM key.
The models the agent’s granted LLM key can run, the provider’s defaults, and the agent’s current selection. Always 200 for an existing agent — no granted key yields an empty list.
Availability: Cloud · Community (self-hosted) · Enterprise (self-hosted)
Authorizations
A workspace API key (oc_…) or organization API key (oc_org_…). Workspace-scoped endpoints called with an organization key also need X-Workspace-Id.
Path Parameters
Response
The model view
What a hosted agent can run and what it runs now, derived from the LLM key granted to it.
The LLM provider of the granted key (anthropic, openai), or null when no key is granted.
Where the granted key lives (workspace or organization).
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
True when the live model list could not be fetched and a static fallback is shown.