List models
The models your key can call, in OpenRouter's shape. Prices are decimal strings in US dollars per token. An audio model's prompt price is per second of audio or per character of input; an image model lists its output price in image_output, and a model priced per image adds image_token. With a key, a model carries reasoning_efforts where its provider lists them. A speech-to-text model carries verbose_json, and a text-to-speech model supported_voices, default_voice and speech_speed. Without an Authorization header it lists the public models, priced at each model's first-ranked public provider.
curl https://api.llm.buzz/api/v1/models \
-H "Authorization: Bearer $LLM_BUZZ_KEY"{
"object": "list",
"data": [
{
"id": "deepseek/deepseek-v4.1-flash",
"canonical_slug": "deepseek/deepseek-v4.1-flash",
"name": "DeepSeek: DeepSeek V4.1 Flash",
"description": "DeepSeek V4.1 Flash is a sparse mixture-of-experts model from DeepSeek...",
"created": 1792497912,
"context_length": 1048576,
"architecture": {
"input_modalities": [
"text",
"image"
],
"output_modalities": [
"text"
],
"modality": "text+image->text"
},
"pricing": {
"prompt": "0.0000002",
"completion": "0.0000006",
"input_cache_read": "0.000000006"
},
"top_provider": {
"is_moderated": false,
"context_length": 1048576,
"max_completion_tokens": 131072
},
"per_request_limits": null,
"supported_parameters": [
"max_tokens",
"response_format",
"structured_outputs",
"temperature",
"tool_choice",
"tools"
],
"links": {
"details": "/api/v1/models/deepseek/deepseek-v4.1-flash/endpoints"
}
}
],
"total_count": 54,
"links": {
"next": null
}
}{
"error": {
"code": 400,
"message": "...",
"metadata": {
"error_type": "invalid_request",
"gateway_code": "invalid_request",
"param": "messages"
}
}
}Authorization
Optional. With an inference key it answers the models that key can call; without one, the public catalog.
Parameters
output_modalitiesstringquerydefault "text"textby default;alllists every model, and a comma list such astext,embeddingslists models that produce any of them. The values aretext,image,embeddings,transcription(speech to text) andspeech(text to speech).limitintegerqueryPage size.
offsetintegerqueryRows to skip.
regionstringqueryeulists only models with an EU provider, priced over those providers. It changes the listing, never how a call routes.eu
Response 200
data, total_count (the matches before paging) and links.
Errors
400A field is missing or malformed (
invalid_request, withmetadata.param), or the model cannot do what the request asks (unsupported_capability).