Skip to content

Models

GET /v1/models

Returns the list of models currently registered in the gateway in OpenAI-compatible format. Each model entry includes gateway-specific metadata such as provider, reasoning tier, and streaming support.

{
"object": "list",
"data": [
{
"id": "llama-3.3-70b-versatile",
"object": "model",
"created": 1714000000,
"owned_by": "groq",
"provider": "groq",
"reasoning_tier": null,
"supports_streaming": true
},
{
"id": "gemini-2.0-flash",
"object": "model",
"created": 1714000000,
"owned_by": "gemini",
"provider": "gemini",
"reasoning_tier": null,
"supports_streaming": true
},
{
"id": "gemini-2.0-flash-thinking-exp",
"object": "model",
"created": 1714000000,
"owned_by": "gemini",
"provider": "gemini",
"reasoning_tier": "high",
"supports_streaming": true
},
{
"id": "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
"object": "model",
"created": 1714000000,
"owned_by": "workers_ai",
"provider": "workers_ai",
"reasoning_tier": null,
"supports_streaming": true
},
{
"id": "voyage-3",
"object": "model",
"created": 1714000000,
"owned_by": "voyage_ai",
"provider": "voyage_ai",
"reasoning_tier": null,
"supports_streaming": false
}
]
}
FieldTypeDescription
idstringModel identifier to use in request bodies.
objectstringAlways "model".
creatednumberUnix timestamp when the model was registered.
owned_bystringThe provider that owns/hosts the model.
providerstringGateway provider key. One of groq, gemini, workers_ai, openrouter, cerebras, voyage_ai.
reasoning_tierstring | nullReasoning capability tier ("low", "medium", "high"), or null for standard models.
supports_streamingbooleanWhether the model supports SSE streaming.
Terminal window
curl https://your-gateway.workers.dev/v1/models \
-H "Authorization: Bearer <GATEWAY_API_KEY>"

You can filter client-side after fetching the full list:

const response = await fetch('https://your-gateway.workers.dev/v1/models', {
headers: { 'Authorization': 'Bearer <GATEWAY_API_KEY>' },
});
const { data: models } = await response.json();
const groqModels = models.filter((m) => m.provider === 'groq');
const reasoningModels = models.filter((m) => m.reasoning_tier !== null);
const embeddingModels = models.filter((m) => !m.supports_streaming);

Pass any id value directly as the model field in a chat or embeddings request:

Terminal window
curl https://your-gateway.workers.dev/v1/chat/completions \
-H "Authorization: Bearer <GATEWAY_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.3-70b-versatile",
"messages": [{ "role": "user", "content": "Hello from Groq!" }]
}'

Or use "auto" to let the gateway pick the healthiest available provider automatically.