/v1/models returns PipeLLM’s unified model schema, not the native OpenAI or
Anthropic list-model format.
Endpoint
Authentication
Use a standard PipeLLM API key header:| Header | Example |
|---|---|
Authorization | Bearer $PIPELLM_API_KEY |
x-api-key | $PIPELLM_API_KEY |
Notes
- This route only supports
GET. - The response is PipeLLM’s unified schema.
- Hidden and unlisted models are filtered out before the response is returned.
- Results are sorted by model ID.
- Each model includes a
pricingobject by default. PipeLLM groups pricing by billing shape instead of exposing raw mapping table field names.
Example Requests
- cURL
- Python
- Node.js
Response Format
Response Fields
| Field | Type | Description |
|---|---|---|
object | string | Always "list" |
data | array | Array of model objects |
data[].id | string | Model ID used in API requests |
data[].display_name | string | Human-readable label generated from the model ID |
data[].type_target | string | Target protocol family for routing, such as openai, anthropic, or gemini |
data[].created_at | string | RFC3339 timestamp chosen from the model metadata |
data[].pricing | object | Pricing returned with the model by default |
data[].pricing.kind | string | Billing shape for the model, currently token or generation |
data[].pricing.text | object | Base token pricing for text or multimodal-understanding models |
data[].pricing.text.prompt | string | Input token price in USD per token |
data[].pricing.text.completion | string | Output token price in USD per token |
data[].pricing.text.internal_reasoning | string | Hidden internal reasoning token price in USD per token for OpenAI thinking models. When present, it follows the billed completion/output rate. |
data[].pricing.cache | object | Cache pricing for token-based models when available |
data[].pricing.cache.read | string | Cache read price in USD per token |
data[].pricing.cache.write | string | Cache write price in USD per token |
data[].pricing.cache.write_1h | string | 1-hour cache write price in USD per token |
data[].pricing.multimodal | object | Token-based multimodal pricing when available |
data[].pricing.multimodal.input_image | string | Input image token price in USD per token |
data[].pricing.multimodal.output_image | string | Output image token price in USD per token |
data[].pricing.tiers | object | Tiered pricing when the model has alternate rates |
data[].pricing.tiers.over_200k | object | Pricing used above the 200k token tier |
data[].pricing.generation | object | Output-generation pricing for pure image, audio, or video models |
data[].pricing.generation.image.per_image | string | Image generation price in USD per image |
data[].pricing.generation.audio.per_second | string | Audio generation price in USD per second |
data[].pricing.generation.video.per_second | string | Video generation price in USD per second |
data[].pricing.generation.video.per_second_with_audio | string | Video-with-audio generation price in USD per second |
total | integer | Total number of returned models |
Why This Route Matters
Use/v1/models when you need to:
- populate a model picker in your UI
- validate whether a model is visible to the current account
- decide which protocol family a model is exposed under
Related Docs
API Reference Overview
Public routes, protocol families, and routing rules
Routing & Protocols
Understand how model protocol families affect requests
Developer Tools
Use these model IDs in Claude Code, OpenCode, OpenClaw, and LangChain