Models
List models without a key
Every model an app can call, with its lab and modalities and no prices. Needs no API key.
curl -X GET "https://api.pre.dev/v1/models/public"fetch("https://api.pre.dev/v1/models/public", { method: "GET"})package mainimport ( "fmt" "net/http" "io/ioutil")func main() { url := "https://api.pre.dev/v1/models/public" req, _ := http.NewRequest("GET", url, nil) res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body))}import requestsurl = "https://api.pre.dev/v1/models/public"response = requests.request("GET", url)print(response.text)import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.net.http.HttpResponse.BodyHandlers;import java.time.Duration;HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build();HttpRequest.Builder requestBuilder = HttpRequest.newBuilder() .uri(URI.create("https://api.pre.dev/v1/models/public")) .GET() .build();try { HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString()); System.out.println("Status code: " + response.statusCode()); System.out.println("Response body: " + response.body());} catch (Exception e) { e.printStackTrace();}using System;using System.Net.Http;using System.Text;var client = new HttpClient();var response = await client.GetAsync("https://api.pre.dev/v1/models/public");var responseBody = await response.Content.ReadAsStringAsync();use reqwest::{Result, Client};async fn main() -> Result<()> { let client = Client::new(); let url = "https://api.pre.dev/v1/models/public"; let res = client .get(url) .send() .await? .text() .await?; println!("{}", res); Ok(())}{ "object": "list", "updated_at": "2026-09-27T19:34:01.315Z", "total": 2, "counts": { "text": 1, "image": 0, "video": 0, "embeddings": 1 }, "labs": [ { "id": "anthropic", "name": "Anthropic", "models": 1 }, { "id": "openai", "name": "OpenAI", "models": 1 } ], "data": [ { "id": "anthropic/claude-sonnet-5", "name": "Claude Sonnet 5", "lab": "anthropic", "type": "text", "input": [ "text", "image", "file" ], "output": [ "text" ], "context_length": 1000000, "created": 1782843083 }, { "id": "openai/text-embedding-3-small", "name": "Text Embedding 3 Small", "lab": "openai", "type": "embeddings", "input": [ "text" ], "output": [ "embeddings" ], "context_length": 8192, "created": 1761857455 } ]}Header Parameters
The ETag from an earlier response.
Response Body
application/json
The model directory.
TypeScript Definitions
Use the response body type in TypeScript.
Not modified since the ETag you sent.
application/json
Unexpected error.
TypeScript Definitions
Use the response body type in TypeScript.
An error raised by pre.dev, in the OpenAI error shape with an extra predev object (absent on catalog_unavailable from the catalog listings). Branch on error.code.
application/json
The catalog is refreshing.
TypeScript Definitions
Use the response body type in TypeScript.
An error raised by pre.dev, in the OpenAI error shape with an extra predev object (absent on catalog_unavailable from the catalog listings). Branch on error.code.