Models
List Models
Returns a list of available models supported by the Venice.ai API across text, image, audio, video, and related inference types.
GET
/
models
/api/v1/models
curl --request GET \
--url https://api.venice.ai/api/v1/models \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.venice.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://api.venice.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://api.venice.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://api.venice.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://api.venice.ai/api/v1/models")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.venice.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{
"data": [
{
"created": 1727966436,
"id": "llama-3.2-3b",
"model_spec": {
"availableContextTokens": 131072,
"capabilities": {
"optimizedForCode": false,
"quantization": "fp16",
"supportsAudioInput": false,
"supportsFunctionCalling": true,
"supportsLogProbs": true,
"supportsMultipleImages": false,
"supportsReasoning": false,
"supportsReasoningEffort": false,
"supportsResponseSchema": true,
"supportsTeeAttestation": false,
"supportsE2EE": false,
"supportsVision": false,
"supportsVideoInput": false,
"supportsWebSearch": true,
"supportsXSearch": false
},
"constraints": {
"temperature": {
"default": 0.8
},
"top_p": {
"default": 0.9
}
},
"description": "Compact and efficient model for quick responses and lighter workloads.",
"name": "Llama 3.2 3B",
"modelSource": "https://huggingface.co/meta-llama/Llama-3.2-3B",
"offline": false,
"privacy": "private",
"pricing": {
"input": {
"usd": 0.15,
"diem": 0.15
},
"output": {
"usd": 0.6,
"diem": 0.6
}
},
"traits": [
"fastest"
]
},
"object": "model",
"owned_by": "venice.ai",
"type": "text"
}
],
"object": "list",
"type": "text"
}{
"error": "<string>"
}Quality-Tier Pricing
For image models that accept the optionalquality parameter (currently gpt-image-2 and gpt-image-2-edit), the response exposes a per-quality price matrix under model_spec.pricing.quality. Each top-level key is a resolution tier (1K, 2K, 4K) and each nested key is a quality level (low, medium, high) carrying its own usd and diem price:
"pricing": {
"resolutions": {
"1K": { "usd": 0.27, "diem": 0.27 },
"2K": { "usd": 0.51, "diem": 0.51 },
"4K": { "usd": 0.84, "diem": 0.84 }
},
"quality": {
"1K": {
"low": { "usd": 0.02, "diem": 0.02 },
"medium": { "usd": 0.07, "diem": 0.07 },
"high": { "usd": 0.26, "diem": 0.26 }
},
"2K": {
"low": { "usd": 0.03, "diem": 0.03 },
"medium": { "usd": 0.13, "diem": 0.13 },
"high": { "usd": 0.50, "diem": 0.50 }
},
"4K": {
"low": { "usd": 0.05, "diem": 0.05 },
"medium": { "usd": 0.21, "diem": 0.21 },
"high": { "usd": 0.83, "diem": 0.83 }
}
}
}
pricing.resolutions is the legacy per-image schedule kept for backward compatibility. pricing.quality is the per-(resolution, quality) matrix that applies whenever the quality parameter is supported. Both fields are kept in the response so clients can detect quality support and surface the matrix in their own UIs.
Postman Collection
For additional examples, please see this Postman Collection.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Filter models by type. Use "all" to get all model types.
Available options:
asr, decision, embedding, image, music, text, tts, upscale, inpaint, video Example:
"text"
Response
OK
List of available models
Show child attributes
Show child attributes
Available options:
list Type of models returned.
Available options:
asr, decision, embedding, image, music, text, tts, upscale, inpaint, video Example:
"text"
Was this page helpful?
⌘I
/api/v1/models
curl --request GET \
--url https://api.venice.ai/api/v1/models \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.venice.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://api.venice.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://api.venice.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://api.venice.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://api.venice.ai/api/v1/models")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.venice.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{
"data": [
{
"created": 1727966436,
"id": "llama-3.2-3b",
"model_spec": {
"availableContextTokens": 131072,
"capabilities": {
"optimizedForCode": false,
"quantization": "fp16",
"supportsAudioInput": false,
"supportsFunctionCalling": true,
"supportsLogProbs": true,
"supportsMultipleImages": false,
"supportsReasoning": false,
"supportsReasoningEffort": false,
"supportsResponseSchema": true,
"supportsTeeAttestation": false,
"supportsE2EE": false,
"supportsVision": false,
"supportsVideoInput": false,
"supportsWebSearch": true,
"supportsXSearch": false
},
"constraints": {
"temperature": {
"default": 0.8
},
"top_p": {
"default": 0.9
}
},
"description": "Compact and efficient model for quick responses and lighter workloads.",
"name": "Llama 3.2 3B",
"modelSource": "https://huggingface.co/meta-llama/Llama-3.2-3B",
"offline": false,
"privacy": "private",
"pricing": {
"input": {
"usd": 0.15,
"diem": 0.15
},
"output": {
"usd": 0.6,
"diem": 0.6
}
},
"traits": [
"fastest"
]
},
"object": "model",
"owned_by": "venice.ai",
"type": "text"
}
],
"object": "list",
"type": "text"
}{
"error": "<string>"
}