curl --request GET \
--url https://api.example.com/v1/models \
--header 'Authorization: <authorization>'{
"object": "<string>",
"data": [
{}
],
"id": "<string>",
"created": 123,
"owned_by": "<string>",
"metadata": {},
"metadata.display_name": "<string>",
"metadata.description": "<string>",
"metadata.context_window": 123,
"metadata.input_modalities": [
{}
],
"metadata.supported_reasoning_levels": [
{}
],
"metadata.default_reasoning_level": {},
"metadata.supports_reasoning_summaries": true,
"metadata.support_verbosity": true,
"metadata.default_verbosity": {},
"metadata.prefer_websockets": true,
"metadata.supports_parallel_tool_calls": true,
"metadata.supported_in_api": true,
"metadata.minimal_client_version": {},
"metadata.priority": 123
}Retrieve the list of available models
curl --request GET \
--url https://api.example.com/v1/models \
--header 'Authorization: <authorization>'{
"object": "<string>",
"data": [
{}
],
"id": "<string>",
"created": 123,
"owned_by": "<string>",
"metadata": {},
"metadata.display_name": "<string>",
"metadata.description": "<string>",
"metadata.context_window": 123,
"metadata.input_modalities": [
{}
],
"metadata.supported_reasoning_levels": [
{}
],
"metadata.default_reasoning_level": {},
"metadata.supports_reasoning_summaries": true,
"metadata.support_verbosity": true,
"metadata.default_verbosity": {},
"metadata.prefer_websockets": true,
"metadata.supports_parallel_tool_calls": true,
"metadata.supported_in_api": true,
"metadata.minimal_client_version": {},
"metadata.priority": 123
}Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Soju06/codex-lb/llms.txt
Use this file to discover all available pages before exploring further.
/v1/models endpoint returns a list of models available to your API key. The response is filtered based on your API key’s allowed_models configuration if present.
This endpoint is useful for:
Bearer YOUR_API_KEY"list".model parameter for completions.Examples: "gpt-4.1", "gpt-5.2", "o3-pro""model"."codex-lb"."GPT-4.1 Turbo", "O3 Pro"128000, 200000"text": Text input"image": Image input"audio": Audio input"video": Video inputeffort (string): Effort level identifier (e.g., "low", "medium", "high")description (string): Description of the reasoning level"medium""normal", "concise""1.2.0"curl https://api.example.com/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"
{
"object": "list",
"data": [
{
"id": "gpt-4.1",
"object": "model",
"created": 1709481600,
"owned_by": "codex-lb",
"metadata": {
"display_name": "GPT-4.1 Turbo",
"description": "Advanced language model with enhanced reasoning",
"context_window": 128000,
"input_modalities": ["text", "image"],
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with minimal reasoning"
},
{
"effort": "medium",
"description": "Balanced reasoning and speed"
},
{
"effort": "high",
"description": "Deep reasoning for complex problems"
}
],
"default_reasoning_level": "medium",
"supports_reasoning_summaries": false,
"support_verbosity": true,
"default_verbosity": "normal",
"prefer_websockets": false,
"supports_parallel_tool_calls": true,
"supported_in_api": true,
"minimal_client_version": null,
"priority": 100
}
},
{
"id": "gpt-5.2",
"object": "model",
"created": 1709481600,
"owned_by": "codex-lb",
"metadata": {
"display_name": "GPT-5.2",
"description": "Next-generation model with advanced capabilities",
"context_window": 200000,
"input_modalities": ["text", "image", "audio"],
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Quick responses"
},
{
"effort": "medium",
"description": "Standard reasoning"
},
{
"effort": "high",
"description": "Extended reasoning"
},
{
"effort": "max",
"description": "Maximum reasoning capability"
}
],
"default_reasoning_level": "medium",
"supports_reasoning_summaries": true,
"support_verbosity": true,
"default_verbosity": "normal",
"prefer_websockets": true,
"supports_parallel_tool_calls": true,
"supported_in_api": true,
"minimal_client_version": "2.0.0",
"priority": 200
}
},
{
"id": "o3-pro",
"object": "model",
"created": 1709481600,
"owned_by": "codex-lb",
"metadata": {
"display_name": "O3 Pro",
"description": "Specialized model for complex reasoning tasks",
"context_window": 128000,
"input_modalities": ["text"],
"supported_reasoning_levels": [
{
"effort": "high",
"description": "Deep reasoning only"
}
],
"default_reasoning_level": "high",
"supports_reasoning_summaries": true,
"support_verbosity": false,
"default_verbosity": null,
"prefer_websockets": false,
"supports_parallel_tool_calls": false,
"supported_in_api": true,
"minimal_client_version": null,
"priority": 150
}
}
]
}
allowed_models configured, the response will only include those models:
API Key with restrictions:
{
"allowed_models": ["gpt-4.1", "gpt-5.2"]
}
{
"object": "list",
"data": [
{
"id": "gpt-4.1",
...
},
{
"id": "gpt-5.2",
...
}
]
}
allowed_models list will not appear in the response.
allowed_models restrictions (or allowed_models is null/empty), all available models are returned.
const response = await fetch('https://api.example.com/v1/models', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const { data: models } = await response.json();
// Find models that support parallel tool calls
const parallelToolModels = models.filter(
m => m.metadata.supports_parallel_tool_calls
);
// Find models with large context windows
const largeContextModels = models.filter(
m => m.metadata.context_window >= 128000
);
// Find models that support image input
const imageModels = models.filter(
m => m.metadata.input_modalities.includes('image')
);
// Get highest priority model
const topModel = models.sort(
(a, b) => b.metadata.priority - a.metadata.priority
)[0];
// Get model with largest context window
const largestContext = models.sort(
(a, b) => b.metadata.context_window - a.metadata.context_window
)[0];
// Get reasoning-capable model
const reasoningModel = models.find(
m => m.metadata.supports_reasoning_summaries
);
const hasAccess = models.some(m => m.id === 'gpt-5.2');
if (!hasAccess) {
console.error('API key does not have access to gpt-5.2');
}
/v1/models endpoint is subject to the same rate limiting as other API endpoints. Each request counts toward your API key’s request quota.
{
"object": "list",
"data": []
}
{
"error": {
"message": "Invalid API key",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
/v1/models format with the following additions:
Standard OpenAI fields:
id, object, created, owned_bymetadata object with comprehensive model capabilities