curl --request GET \
--url https://api.veryfront.com/catalog/modelsimport requests
url = "https://api.veryfront.com/catalog/models"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.veryfront.com/catalog/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.veryfront.com/catalog/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.veryfront.com/catalog/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.veryfront.com/catalog/models")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/catalog/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-sonnet-4-6",
"modelId": "anthropic/claude-sonnet-4-6",
"provider": "anthropic",
"providerLabel": "Anthropic",
"providerLogoKey": "anthropic",
"name": "Claude Sonnet",
"aliases": [
"sonnet",
"anthropic/claude-sonnet-4-6"
],
"supportedProviderTools": [
"web_search",
"web_fetch"
],
"temperature": {
"min": 1,
"max": 1
},
"capabilities": {
"webResearch": true,
"streaming": true,
"tools": true,
"vision": true,
"supported_parameters": [
"max_tokens",
"temperature",
"top_p",
"tools",
"tool_choice"
],
"reasoning": true,
"tool_call": true,
"temperature": true,
"open_weights": true,
"modalities": {
"input": [
"text",
"image"
]
},
"thinking": true,
"attachment": true,
"structured_output": true,
"reasoning_mode": "budget",
"transport": "chat-completions",
"reasoning_budget_tokens": 2048,
"chat_completions_reasoning_with_function_tools": false,
"chat_completions_consecutive_system_messages": true,
"limit": {
"context": 1000000,
"output": 128000
}
},
"pricing": {
"inputUsdPer1M": 1,
"outputUsdPer1M": 1,
"inputEurPer1M": 1,
"outputEurPer1M": 1,
"cacheCreationInputUsdPer1M": 1,
"cacheCreation1hInputUsdPer1M": 1,
"cacheReadInputUsdPer1M": 1,
"audioInputUsdPer1M": 1,
"audioOutputUsdPer1M": 1,
"audioCacheReadInputUsdPer1M": 1,
"cacheCreationInputEurPer1M": 1,
"cacheCreation1hInputEurPer1M": 1,
"cacheReadInputEurPer1M": 1,
"audioInputEurPer1M": 1,
"audioOutputEurPer1M": 1,
"audioCacheReadInputEurPer1M": 1
},
"providerPricing": {
"inputEurPer1M": 1,
"outputEurPer1M": 1,
"cacheCreationInputEurPer1M": 1,
"cacheCreation1hInputEurPer1M": 1,
"cacheReadInputEurPer1M": 1,
"audioInputEurPer1M": 1,
"audioOutputEurPer1M": 1,
"audioCacheReadInputEurPer1M": 1,
"tiers": [
{
"id": "long-context",
"label": "Long context",
"appliesTo": "Prompts over 200k tokens",
"inputEurPer1M": 1,
"outputEurPer1M": 1,
"cacheCreationInputEurPer1M": 1,
"cacheCreation1hInputEurPer1M": 1,
"cacheReadInputEurPer1M": 1,
"audioInputEurPer1M": 1,
"audioOutputEurPer1M": 1,
"audioCacheReadInputEurPer1M": 1
}
]
},
"deployments": [
{
"tier": "eu-resident",
"jurisdiction": "US",
"region": "europe-west1",
"processing": "eu",
"processing_label": "EU (europe-west1, Belgium)",
"operator": "Google LLC",
"quantization": "unknown",
"precisionSource": "unknown",
"certifications": [
"<string>"
],
"supportedProviderTools": [
"web_search"
],
"dataRetention": "unknown",
"pricing": {
"inputUsdPer1M": 1,
"outputUsdPer1M": 1,
"inputEurPer1M": 1,
"outputEurPer1M": 1,
"cacheCreationInputUsdPer1M": 1,
"cacheCreation1hInputUsdPer1M": 1,
"cacheReadInputUsdPer1M": 1,
"audioInputUsdPer1M": 1,
"audioOutputUsdPer1M": 1,
"audioCacheReadInputUsdPer1M": 1,
"cacheCreationInputEurPer1M": 1,
"cacheCreation1hInputEurPer1M": 1,
"cacheReadInputEurPer1M": 1,
"audioInputEurPer1M": 1,
"audioOutputEurPer1M": 1,
"audioCacheReadInputEurPer1M": 1
}
}
],
"description": "Most efficient for everyday tasks"
}
],
"providers": [
"<string>"
],
"defaultModelId": "mistral/mistral-small-2503",
"fx": {
"base": "EUR",
"quote": "USD",
"rate": 1.1403,
"source": "ECB euro foreign exchange reference rate",
"date": "2026-09-25"
}
}List public model catalog
Returns the public platform model catalog: models, capabilities, customer pricing, provider cost and, per deployment, the residency tier, the legal domicile of the operator (jurisdiction), the processing region, the normalised processing location (processing: eu, us, worldwide or unknown, with a display processing_label), precision, certifications and retention. Requires no authentication, reads no caller context and is identical for every caller, so it is cacheable. Provider cost (providerPricing) is served in EUR only; EUR prices are converted from USD at the fx rate the response states, except provider cost on a host that invoices in EUR, which is the published EUR list of that host. Pricing source links are not part of this payload; the authenticated GET /ai/models carries those.
curl --request GET \
--url https://api.veryfront.com/catalog/modelsimport requests
url = "https://api.veryfront.com/catalog/models"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.veryfront.com/catalog/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.veryfront.com/catalog/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.veryfront.com/catalog/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.veryfront.com/catalog/models")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/catalog/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-sonnet-4-6",
"modelId": "anthropic/claude-sonnet-4-6",
"provider": "anthropic",
"providerLabel": "Anthropic",
"providerLogoKey": "anthropic",
"name": "Claude Sonnet",
"aliases": [
"sonnet",
"anthropic/claude-sonnet-4-6"
],
"supportedProviderTools": [
"web_search",
"web_fetch"
],
"temperature": {
"min": 1,
"max": 1
},
"capabilities": {
"webResearch": true,
"streaming": true,
"tools": true,
"vision": true,
"supported_parameters": [
"max_tokens",
"temperature",
"top_p",
"tools",
"tool_choice"
],
"reasoning": true,
"tool_call": true,
"temperature": true,
"open_weights": true,
"modalities": {
"input": [
"text",
"image"
]
},
"thinking": true,
"attachment": true,
"structured_output": true,
"reasoning_mode": "budget",
"transport": "chat-completions",
"reasoning_budget_tokens": 2048,
"chat_completions_reasoning_with_function_tools": false,
"chat_completions_consecutive_system_messages": true,
"limit": {
"context": 1000000,
"output": 128000
}
},
"pricing": {
"inputUsdPer1M": 1,
"outputUsdPer1M": 1,
"inputEurPer1M": 1,
"outputEurPer1M": 1,
"cacheCreationInputUsdPer1M": 1,
"cacheCreation1hInputUsdPer1M": 1,
"cacheReadInputUsdPer1M": 1,
"audioInputUsdPer1M": 1,
"audioOutputUsdPer1M": 1,
"audioCacheReadInputUsdPer1M": 1,
"cacheCreationInputEurPer1M": 1,
"cacheCreation1hInputEurPer1M": 1,
"cacheReadInputEurPer1M": 1,
"audioInputEurPer1M": 1,
"audioOutputEurPer1M": 1,
"audioCacheReadInputEurPer1M": 1
},
"providerPricing": {
"inputEurPer1M": 1,
"outputEurPer1M": 1,
"cacheCreationInputEurPer1M": 1,
"cacheCreation1hInputEurPer1M": 1,
"cacheReadInputEurPer1M": 1,
"audioInputEurPer1M": 1,
"audioOutputEurPer1M": 1,
"audioCacheReadInputEurPer1M": 1,
"tiers": [
{
"id": "long-context",
"label": "Long context",
"appliesTo": "Prompts over 200k tokens",
"inputEurPer1M": 1,
"outputEurPer1M": 1,
"cacheCreationInputEurPer1M": 1,
"cacheCreation1hInputEurPer1M": 1,
"cacheReadInputEurPer1M": 1,
"audioInputEurPer1M": 1,
"audioOutputEurPer1M": 1,
"audioCacheReadInputEurPer1M": 1
}
]
},
"deployments": [
{
"tier": "eu-resident",
"jurisdiction": "US",
"region": "europe-west1",
"processing": "eu",
"processing_label": "EU (europe-west1, Belgium)",
"operator": "Google LLC",
"quantization": "unknown",
"precisionSource": "unknown",
"certifications": [
"<string>"
],
"supportedProviderTools": [
"web_search"
],
"dataRetention": "unknown",
"pricing": {
"inputUsdPer1M": 1,
"outputUsdPer1M": 1,
"inputEurPer1M": 1,
"outputEurPer1M": 1,
"cacheCreationInputUsdPer1M": 1,
"cacheCreation1hInputUsdPer1M": 1,
"cacheReadInputUsdPer1M": 1,
"audioInputUsdPer1M": 1,
"audioOutputUsdPer1M": 1,
"audioCacheReadInputUsdPer1M": 1,
"cacheCreationInputEurPer1M": 1,
"cacheCreation1hInputEurPer1M": 1,
"cacheReadInputEurPer1M": 1,
"audioInputEurPer1M": 1,
"audioOutputEurPer1M": 1,
"audioCacheReadInputEurPer1M": 1
}
}
],
"description": "Most efficient for everyday tasks"
}
],
"providers": [
"<string>"
],
"defaultModelId": "mistral/mistral-small-2503",
"fx": {
"base": "EUR",
"quote": "USD",
"rate": 1.1403,
"source": "ECB euro foreign exchange reference rate",
"date": "2026-09-25"
}
}Response
Public model catalog
Public model catalog with customer pricing.
Publicly listed AI models
Show child attributes
Show child attributes
Provider names represented in the catalog
Default unified model ID recommended by the API
"mistral/mistral-small-2503"
1 base = rate quote. EUR prices converted from USD are the USD price divided by rate, rounded to 6 decimal places. For a host that invoices in EUR the EUR prices are that host's published EUR list, unconverted and unrounded.
Show child attributes
Show child attributes