Returns a comprehensive list of all AI models with their configurations, pricing, and capabilities
curl --request GET \
--url https://api.helicone.ai/v1/public/model-registry/modelsimport requests
url = "https://api.helicone.ai/v1/public/model-registry/models"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.helicone.ai/v1/public/model-registry/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.helicone.ai/v1/public/model-registry/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.helicone.ai/v1/public/model-registry/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.helicone.ai/v1/public/model-registry/models")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.helicone.ai/v1/public/model-registry/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{
"models": [
{
"id": "claude-opus-4-1",
"name": "Anthropic: Claude Opus 4.1",
"author": "anthropic",
"contextLength": 200000,
"endpoints": [
{
"provider": "anthropic",
"providerSlug": "anthropic",
"supportsPtb": true,
"pricing": {
"prompt": 15,
"completion": 75,
"cacheRead": 1.5,
"cacheWrite": 18.75
}
}
],
"maxOutput": 32000,
"trainingDate": "2025-08-05",
"description": "Most capable Claude model with extended context",
"inputModalities": [
null
],
"outputModalities": [
null
],
"supportedParameters": [
null,
null,
null,
null,
null,
null,
null
]
}
],
"total": 150,
"filters": {
"providers": [
{
"name": "anthropic",
"displayName": "Anthropic"
},
{
"name": "openai",
"displayName": "OpenAI"
},
{
"name": "google",
"displayName": "Google"
}
],
"authors": [
"anthropic",
"openai",
"google",
"meta"
],
"capabilities": [
"audio",
"image",
"thinking",
"caching",
"reasoning"
]
}
}Models
Get Model Registry
Returns all models and endpoints supported by the Helicone AI Gateway
GET
/
v1
/
public
/
model-registry
/
models
Returns a comprehensive list of all AI models with their configurations, pricing, and capabilities
curl --request GET \
--url https://api.helicone.ai/v1/public/model-registry/modelsimport requests
url = "https://api.helicone.ai/v1/public/model-registry/models"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.helicone.ai/v1/public/model-registry/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.helicone.ai/v1/public/model-registry/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.helicone.ai/v1/public/model-registry/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.helicone.ai/v1/public/model-registry/models")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.helicone.ai/v1/public/model-registry/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{
"models": [
{
"id": "claude-opus-4-1",
"name": "Anthropic: Claude Opus 4.1",
"author": "anthropic",
"contextLength": 200000,
"endpoints": [
{
"provider": "anthropic",
"providerSlug": "anthropic",
"supportsPtb": true,
"pricing": {
"prompt": 15,
"completion": 75,
"cacheRead": 1.5,
"cacheWrite": 18.75
}
}
],
"maxOutput": 32000,
"trainingDate": "2025-08-05",
"description": "Most capable Claude model with extended context",
"inputModalities": [
null
],
"outputModalities": [
null
],
"supportedParameters": [
null,
null,
null,
null,
null,
null,
null
]
}
],
"total": 150,
"filters": {
"providers": [
{
"name": "anthropic",
"displayName": "Anthropic"
},
{
"name": "openai",
"displayName": "OpenAI"
},
{
"name": "google",
"displayName": "Google"
}
],
"authors": [
"anthropic",
"openai",
"google",
"meta"
],
"capabilities": [
"audio",
"image",
"thinking",
"caching",
"reasoning"
]
}
}This endpoint returns the complete catalog of AI models and provider endpoints that the Helicone AI Gateway can route to. The gateway uses this registry to determine which providers support a requested model and how to intelligently route requests for maximum reliability and cost optimization.
When you request a model through the AI Gateway (like
gpt-4o-mini), the gateway consults this registry to find all providers offering that model, then applies routing logic to select the best provider based on your configuration, availability, and pricing.Was this page helpful?