API
Models & catalogue
Pendra exposes two model surfaces: a live models endpoint that lists what's actually serving right now across connected workers, and a catalogue endpoint that lists everything Pendra can install for you via the curated-install flow.
Live models
GET /api/v1/models returns the OpenAI-shaped models list:
curl https://api.pendra.ai/api/v1/models \
-H "Authorization: Bearer pdr_sk_..." Response
Standard OpenAI list envelope. Each entry is what's actually
serving on a connected worker right now — restart a worker and the list
updates within seconds.
{
"object": "list",
"data": [
{
"id": "llama3.3:70b",
"object": "model",
"created": 1715000000,
"owned_by": "pendra"
},
{
"id": "qwen3.6:27b",
"object": "model",
"created": 1715000000,
"owned_by": "pendra"
},
{
"id": "nomic-embed-text:latest",
"object": "model",
"created": 1715000000,
"owned_by": "pendra"
}
]
} Filter by type
Pass ?type= to narrow the list to a single capability:
chat, image, embedding,
ocr, or transcription.
curl "https://api.pendra.ai/api/v1/models?type=embedding" \
-H "Authorization: Bearer pdr_sk_..." Codex compatibility
OpenAI Codex sends a client_version query parameter and
expects a different envelope ({"models": [...]} instead
of the standard OpenAI list). Pendra detects Codex and returns the right
shape automatically — no configuration needed.
The model catalogue
GET /api/v1/catalogue is a public endpoint
(no auth required) listing every model Pendra can install on your worker
via one click in the console. Every entry is vetted by Pendra before it
appears in the catalogue.
curl https://api.pendra.ai/api/v1/catalogue Catalogue response
Returns a flat list of catalogue entries. Each entry describes a canonical Pendra model plus its variants (sizes, quantisations, and backend-specific IDs).
{
"data": [
{
"id": "qwen3.6:27b",
"name": "Qwen 3.6 27B",
"backend": "both",
"capability": "chat",
"parameter_size": "27B",
"context_length": 32768,
"licence": "apache-2.0",
"variants": [
{
"id": "qwen3.6:27b",
"quantization": "Q4_K_M",
"size_bytes": 17000000000,
"lmstudio_id": "lmstudio-community/Qwen3.6-27B-GGUF"
}
]
},
{
"id": "whisper-large-v3-turbo",
"name": "Whisper Large v3 Turbo",
"backend": "speaches",
"capability": "transcription",
"variants": [{ "id": "whisper-large-v3-turbo" }]
}
]
} What's in a catalogue entry
id— canonical Pendra ID (e.g.qwen3.6:27b).backend— which backend can install it (ollama,lmstudio,vllm,both, etc.).variants— quantizations and sizes, with backend-specific IDs (e.g.lmstudio_id).- capability flags, parameter count, context length, licence.
Curated installs
For models whose backend is ollama,
lmstudio, or both, you can install with one
click from the console. See the backend
capability matrix for which backends support curated install and
uninstall.
Naming conventions
Pendra uses the Ollama-style name:tag convention for chat
models (e.g. qwen3.6:27b, llama3.3:70b). Whisper and
image models use shorter slugs (whisper-large-v3-turbo,
x/z-image-turbo). The full set of names lives in the
catalogue endpoint above.