Models
curl --request GET \
--url https://api.redpill.ai/v1/models \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.redpill.ai/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.redpill.ai/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.redpill.ai/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.redpill.ai/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.redpill.ai/v1/models")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.redpill.ai/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_bodyEndpoints
Models
List available models with providers, context windows, and pricing.
GET
/
models
Models
curl --request GET \
--url https://api.redpill.ai/v1/models \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.redpill.ai/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.redpill.ai/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.redpill.ai/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.redpill.ai/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.redpill.ai/v1/models")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.redpill.ai/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_bodyReturns the current model catalog, including model IDs, context windows, providers, modalities, and token pricing.
No API key is required to list models. Embedding models are listed separately by
Both filters compose. Combining them returns models that satisfy each constraint.
Response entries have the same shape as the unfiltered catalog. There is no
GET https://api.redpill.ai/v1/models
GET /v1/embeddings/models.
Query parameters
string
Set to
true to return only models that can be served under zero data retention, meaning the
upstream provider does not retain prompt or completion content.A model is included when at least one provider that can serve it operates under zero data
retention. Listing a model here means a request for it with provider: {"zdr": true} can be
routed. See Zero data retention.true is the only accepted value. Any other value, including false, returns 400. Omit the
parameter to list the full catalog.curl "https://api.redpill.ai/v1/models?zdr=true"
string
Set to
true to return only models that are offered confidentially, meaning the model object
carries is_tee: true.This filter reports a model’s own capability. It does not promise that a given request will reach
an attested provider, which depends on the deployment serving it. To require attestation for a
request, send provider: {"aci_verified": true}. See
Attested routing.true is the only accepted value. Any other value, including false, returns 400. Omit the
parameter to list the full catalog.curl "https://api.redpill.ai/v1/models?tee=true"
zdr field on a model
object: the filter is the way to read this property.
An invalid value returns 400:
{
"error": {
"message": "Invalid 'zdr' query parameter. The only accepted value is 'true'; omit it for unfiltered results.",
"type": "invalid_request_error"
}
}
Example
curl https://api.redpill.ai/v1/models
Model object fields
| Field | Description |
|---|---|
id | Model identifier for API calls. |
name | Human-readable name. |
is_tee | true if the model can be served confidentially, on a verified TEE provider. |
created | Unix timestamp when the model was added. |
context_length | Maximum context window. |
max_output_length | Maximum output length. |
input_modalities | Accepted inputs, for example text, image, file, video. |
output_modalities | Produced outputs, for example text. |
pricing.prompt | Price per prompt token. Multiply by 1,000,000 for the per-million-token price. |
pricing.completion | Price per completion token. Multiply by 1,000,000 for the per-million-token price. |
pricing.input_cache_read | Price per cached input token when the model exposes cache pricing. |
supported_parameters | Request parameters this model accepts, for example max_tokens or max_completion_tokens. |
supported_features | Higher-level capabilities declared for the model, for example tools, reasoning, or structured_outputs. |
providers | Confidential providers that can serve the model, for example near-ai, tinfoil, chutes. |
Related
Models
Confidential versus standard models, and how to confirm which served a response.
Zero data retention
Attested routing
Was this page helpful?