const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.phaseo.app/v1/models', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.phaseo.app/v1/models"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)curl --request GET \
--url https://api.phaseo.app/v1/models \
--header 'Authorization: Bearer <token>'package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.phaseo.app/v1/models"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.phaseo.app/v1/models")
.header("Authorization", "Bearer <token>")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.phaseo.app/v1/models",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.phaseo.app/v1/models")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"ok": true,
"availability_mode": "active",
"limit": 50,
"offset": 0,
"total": 128,
"models": [
{
"id": "<string>",
"base_model_id": "<string>",
"variant": "<string>",
"variants": {},
"name": "<string>",
"description": "<string>",
"organization": {
"id": "<string>",
"name": "<string>",
"color": "<string>"
},
"aliases": [
"<string>"
],
"lifecycle": {
"status": "active",
"released_at": "<string>",
"deprecated_at": "<string>",
"retires_at": "<string>",
"replacement_id": "<string>",
"message": "<string>"
},
"modalities": {
"input": [
"<string>"
],
"output": [
"<string>"
]
},
"limits": {
"input_tokens": 1,
"output_tokens": 1
},
"capabilities": {
"parameters": [
"<string>"
],
"parameter_details": {},
"endpoints": [
"<string>"
]
},
"availability": {
"status": "active",
"provider_count": 1,
"active_provider_count": 1,
"coming_soon_provider_count": 1,
"inactive_provider_count": 1
},
"pricing": {
"pricing_plan": "standard",
"meters": {}
},
"offers": [
{
"provider": {
"id": "<string>",
"name": "<string>"
},
"model": "<string>",
"status": "active",
"status_reason": "active",
"routable": true,
"endpoints": [
"<string>"
],
"modalities": {
"input": [
"<string>"
],
"output": [
"<string>"
]
},
"capabilities": {
"parameters": [
"<string>"
],
"parameter_details": {},
"endpoints": [
"<string>"
]
},
"routing": {
"provider": "active",
"model": "active",
"capability": "active"
},
"effective": {
"from": "<string>",
"to": "<string>"
},
"pricing": {
"pricing_plan": "standard",
"meters": {}
}
}
]
}
]
}{
"ok": false,
"error": "invalid_request",
"message": "Invalid request parameters.",
"max_offset": 1
}{
"error": "error_type",
"ok": false,
"message": "Human-readable error message",
"description": "Additional error details.",
"generation_id": "G-abc123",
"status_code": 502,
"error_type": "system",
"error_origin": "upstream",
"reason": "all_candidates_failed",
"attempt_count": 2,
"failed_providers": [
"google-ai-studio",
"openai"
],
"failed_statuses": [
403,
429
],
"upstream_error": {
"code": "PERMISSION_DENIED",
"message": "The caller does not have permission.",
"description": "<string>",
"param": "<string>"
},
"failure_sample": [
{
"provider": "<string>",
"type": "<string>",
"status": 123,
"upstream_error_code": "<string>",
"upstream_error_message": "<string>",
"upstream_error_description": "<string>",
"upstream_error_param": "<string>",
"upstream_payload_preview": "<string>",
"retryable": true
}
],
"provider_failure_diagnostics": {
"category": "credentials_not_configured",
"hint": "<string>",
"provider": "<string>"
},
"routing_diagnostics": {
"filterStages": [
{
"stage": "<string>",
"beforeCount": 123,
"afterCount": 123,
"droppedProviders": [
{
"providerId": "<string>",
"reason": "<string>"
}
]
}
]
},
"provider_candidate_diagnostics": {
"totalProviders": 123,
"supportsEndpointCount": 123,
"candidateCount": 123,
"droppedUnsupportedEndpoint": [
"<string>"
],
"droppedMissingAdapter": [
{
"providerId": "<string>",
"endpoint": "<string>"
}
]
},
"provider_enablement": {
"capability": "<string>",
"providersBefore": [
"<string>"
],
"providersAfter": [
"<string>"
],
"dropped": [
{
"providerId": "<string>",
"reason": "<string>"
}
]
},
"missing_pricing_providers": [
"<string>"
],
"provider_payment_required_provider": "openai",
"provider_payment_required_support_notice": "Our upstream provider billing appears to be unavailable. If this persists, contact support.",
"details": [
{}
]
}{
"error": "error_type",
"ok": false,
"message": "Human-readable error message",
"description": "Additional error details.",
"generation_id": "G-abc123",
"status_code": 502,
"error_type": "system",
"error_origin": "upstream",
"reason": "all_candidates_failed",
"attempt_count": 2,
"failed_providers": [
"google-ai-studio",
"openai"
],
"failed_statuses": [
403,
429
],
"upstream_error": {
"code": "PERMISSION_DENIED",
"message": "The caller does not have permission.",
"description": "<string>",
"param": "<string>"
},
"failure_sample": [
{
"provider": "<string>",
"type": "<string>",
"status": 123,
"upstream_error_code": "<string>",
"upstream_error_message": "<string>",
"upstream_error_description": "<string>",
"upstream_error_param": "<string>",
"upstream_payload_preview": "<string>",
"retryable": true
}
],
"provider_failure_diagnostics": {
"category": "credentials_not_configured",
"hint": "<string>",
"provider": "<string>"
},
"routing_diagnostics": {
"filterStages": [
{
"stage": "<string>",
"beforeCount": 123,
"afterCount": 123,
"droppedProviders": [
{
"providerId": "<string>",
"reason": "<string>"
}
]
}
]
},
"provider_candidate_diagnostics": {
"totalProviders": 123,
"supportsEndpointCount": 123,
"candidateCount": 123,
"droppedUnsupportedEndpoint": [
"<string>"
],
"droppedMissingAdapter": [
{
"providerId": "<string>",
"endpoint": "<string>"
}
]
},
"provider_enablement": {
"capability": "<string>",
"providersBefore": [
"<string>"
],
"providersAfter": [
"<string>"
],
"dropped": [
{
"providerId": "<string>",
"reason": "<string>"
}
]
},
"missing_pricing_providers": [
"<string>"
],
"provider_payment_required_provider": "openai",
"provider_payment_required_support_notice": "Our upstream provider billing appears to be unavailable. If this persists, contact support.",
"details": [
{}
]
}Listar modelos
Consulta los modelos propios de Gateway mediante Phaseo Gateway, incluidos los detalles opcionales de disponibilidad de modelos que no se pueden enrutar.
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.phaseo.app/v1/models', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.phaseo.app/v1/models"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)curl --request GET \
--url https://api.phaseo.app/v1/models \
--header 'Authorization: Bearer <token>'package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.phaseo.app/v1/models"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.phaseo.app/v1/models")
.header("Authorization", "Bearer <token>")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.phaseo.app/v1/models",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.phaseo.app/v1/models")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"ok": true,
"availability_mode": "active",
"limit": 50,
"offset": 0,
"total": 128,
"models": [
{
"id": "<string>",
"base_model_id": "<string>",
"variant": "<string>",
"variants": {},
"name": "<string>",
"description": "<string>",
"organization": {
"id": "<string>",
"name": "<string>",
"color": "<string>"
},
"aliases": [
"<string>"
],
"lifecycle": {
"status": "active",
"released_at": "<string>",
"deprecated_at": "<string>",
"retires_at": "<string>",
"replacement_id": "<string>",
"message": "<string>"
},
"modalities": {
"input": [
"<string>"
],
"output": [
"<string>"
]
},
"limits": {
"input_tokens": 1,
"output_tokens": 1
},
"capabilities": {
"parameters": [
"<string>"
],
"parameter_details": {},
"endpoints": [
"<string>"
]
},
"availability": {
"status": "active",
"provider_count": 1,
"active_provider_count": 1,
"coming_soon_provider_count": 1,
"inactive_provider_count": 1
},
"pricing": {
"pricing_plan": "standard",
"meters": {}
},
"offers": [
{
"provider": {
"id": "<string>",
"name": "<string>"
},
"model": "<string>",
"status": "active",
"status_reason": "active",
"routable": true,
"endpoints": [
"<string>"
],
"modalities": {
"input": [
"<string>"
],
"output": [
"<string>"
]
},
"capabilities": {
"parameters": [
"<string>"
],
"parameter_details": {},
"endpoints": [
"<string>"
]
},
"routing": {
"provider": "active",
"model": "active",
"capability": "active"
},
"effective": {
"from": "<string>",
"to": "<string>"
},
"pricing": {
"pricing_plan": "standard",
"meters": {}
}
}
]
}
]
}{
"ok": false,
"error": "invalid_request",
"message": "Invalid request parameters.",
"max_offset": 1
}{
"error": "error_type",
"ok": false,
"message": "Human-readable error message",
"description": "Additional error details.",
"generation_id": "G-abc123",
"status_code": 502,
"error_type": "system",
"error_origin": "upstream",
"reason": "all_candidates_failed",
"attempt_count": 2,
"failed_providers": [
"google-ai-studio",
"openai"
],
"failed_statuses": [
403,
429
],
"upstream_error": {
"code": "PERMISSION_DENIED",
"message": "The caller does not have permission.",
"description": "<string>",
"param": "<string>"
},
"failure_sample": [
{
"provider": "<string>",
"type": "<string>",
"status": 123,
"upstream_error_code": "<string>",
"upstream_error_message": "<string>",
"upstream_error_description": "<string>",
"upstream_error_param": "<string>",
"upstream_payload_preview": "<string>",
"retryable": true
}
],
"provider_failure_diagnostics": {
"category": "credentials_not_configured",
"hint": "<string>",
"provider": "<string>"
},
"routing_diagnostics": {
"filterStages": [
{
"stage": "<string>",
"beforeCount": 123,
"afterCount": 123,
"droppedProviders": [
{
"providerId": "<string>",
"reason": "<string>"
}
]
}
]
},
"provider_candidate_diagnostics": {
"totalProviders": 123,
"supportsEndpointCount": 123,
"candidateCount": 123,
"droppedUnsupportedEndpoint": [
"<string>"
],
"droppedMissingAdapter": [
{
"providerId": "<string>",
"endpoint": "<string>"
}
]
},
"provider_enablement": {
"capability": "<string>",
"providersBefore": [
"<string>"
],
"providersAfter": [
"<string>"
],
"dropped": [
{
"providerId": "<string>",
"reason": "<string>"
}
]
},
"missing_pricing_providers": [
"<string>"
],
"provider_payment_required_provider": "openai",
"provider_payment_required_support_notice": "Our upstream provider billing appears to be unavailable. If this persists, contact support.",
"details": [
{}
]
}{
"error": "error_type",
"ok": false,
"message": "Human-readable error message",
"description": "Additional error details.",
"generation_id": "G-abc123",
"status_code": 502,
"error_type": "system",
"error_origin": "upstream",
"reason": "all_candidates_failed",
"attempt_count": 2,
"failed_providers": [
"google-ai-studio",
"openai"
],
"failed_statuses": [
403,
429
],
"upstream_error": {
"code": "PERMISSION_DENIED",
"message": "The caller does not have permission.",
"description": "<string>",
"param": "<string>"
},
"failure_sample": [
{
"provider": "<string>",
"type": "<string>",
"status": 123,
"upstream_error_code": "<string>",
"upstream_error_message": "<string>",
"upstream_error_description": "<string>",
"upstream_error_param": "<string>",
"upstream_payload_preview": "<string>",
"retryable": true
}
],
"provider_failure_diagnostics": {
"category": "credentials_not_configured",
"hint": "<string>",
"provider": "<string>"
},
"routing_diagnostics": {
"filterStages": [
{
"stage": "<string>",
"beforeCount": 123,
"afterCount": 123,
"droppedProviders": [
{
"providerId": "<string>",
"reason": "<string>"
}
]
}
]
},
"provider_candidate_diagnostics": {
"totalProviders": 123,
"supportsEndpointCount": 123,
"candidateCount": 123,
"droppedUnsupportedEndpoint": [
"<string>"
],
"droppedMissingAdapter": [
{
"providerId": "<string>",
"endpoint": "<string>"
}
]
},
"provider_enablement": {
"capability": "<string>",
"providersBefore": [
"<string>"
],
"providersAfter": [
"<string>"
],
"dropped": [
{
"providerId": "<string>",
"reason": "<string>"
}
]
},
"missing_pricing_providers": [
"<string>"
],
"provider_payment_required_provider": "openai",
"provider_payment_required_support_notice": "Our upstream provider billing appears to be unavailable. If this persists, contact support.",
"details": [
{}
]
}availability=all para incluir modelos conocidos que todavía no están disponibles.
Las respuestas del catálogo se almacenan en caché durante cinco minutos y pueden servirse otros cinco minutos mientras se revalida la caché. Esto se aplica a las representaciones JSON, RSS y Atom del catálogo actual; el feed de lanzamientos tiene su propia caché de consulta, de menor duración.
GET /models/me está reservado para filtrar en el futuro los modelos según los guardrails del usuario actual. Ahora devuelve 501 not implemented, así que por el momento usa GET /models para consultar el catálogo compartido de Gateway.
Filtros útiles
endpointsusa nombres públicos comochat.completions,responsesymessagesstatusfiltra por ciclo de vida del modelo, por ejemploactive,deprecatedoretiredproviderfiltra por ID público del proveedor, por ejemploopenai,anthropicogoogle_vertexprovider_statusfiltra por nivel de despliegue del proveedor, por ejemploactive,beta,alphaonot_readyprovider_routing_statusfiltra por estado de enrutamiento del proveedormodel_routing_statusfiltra por estado de enrutamiento del modelocapability_statusfiltra por estado de capacidad del proveedor para la asignación de endpoint solicitadaprovider_availability_statusfiltra por disponibilidad del proveedor, por ejemploactive,coming_soonoinactiveprovider_availability_reasonfiltra por motivo de disponibilidad del proveedor, por ejemplopreview_only,provider_not_ready,gated,access_limitedoregion_limitedorganisationfiltra por el prefijo del ID público del modelo; por ejemplo,anthropicenanthropic/claude-3-haikuavailability=activees el valor predeterminadoavailability=allincluye modelos o proveedores que estáncoming_soon,inactiveo aún no se pueden enrutar públicamenteinput_modalitieses un alias deinput_typesoutput_modalitieses un alias deoutput_typessupported_parameterses un alias deparams
GET /models/{author}/{slug}/endpoints. La respuesta separa las rutas por proveedor e incluye, en cada fila, la ruta pública, las modalidades, los detalles de los parámetros compatibles, la disponibilidad, el estado de enrutamiento, el slug del modelo del proveedor y un resumen de precios.
Las entradas de proveedores también pueden incluir:
availability_statusavailability_reasonprovider_statusprovider_routing_statusmodel_routing_statuscapability_status
Respuesta
{
"ok": true,
"privacy_scope": "shared",
"availability_mode": "all",
"limit": 50,
"offset": 0,
"total": 99,
"models": [
{
"id": "anthropic/claude-3-haiku",
"canonical_slug": "anthropic/claude-3-haiku",
"model_id": "anthropic/claude-3-haiku",
"name": "anthropic/claude-3-haiku",
"description": "anthropic/claude-3-haiku via Phaseo Gateway. Supports chat.completions, messages, responses.",
"created": null,
"release_date": null,
"deprecation_date": null,
"retirement_date": null,
"status": "active",
"availability": {
"status": "coming_soon",
"provider_count": 1,
"active_provider_count": 0,
"inactive_provider_count": 0
},
"organisation_id": "anthropic",
"organisation_name": null,
"organisation_colour": null,
"aliases": [],
"endpoints": ["chat.completions", "messages", "responses"],
"input_types": ["text"],
"output_types": ["text"],
"architecture": {
"modality": "text->text",
"input_modalities": ["text"],
"output_modalities": ["text"],
"tokenizer": null,
"instruct_type": "chat"
},
"providers": [
{
"api_provider_id": "anthropic",
"api_provider_name": "Anthropic",
"provider_model_slug": "claude-3-haiku-20240307",
"is_active_gateway": false,
"availability_status": "coming_soon",
"availability_reason": "preview_only",
"provider_status": "beta",
"provider_routing_status": "active",
"model_routing_status": "active",
"capability_status": "coming_soon",
"effective_from": "2026-06-01T00:00:00Z",
"effective_to": null,
"endpoints": ["responses"],
"input_modalities": ["text"],
"output_modalities": ["text"],
"params": [
"max_tokens",
"response_format",
"stop",
"structured_outputs",
"temperature",
"tool_choice",
"tools",
"top_k",
"top_p"
],
"supported_parameters": [
"max_tokens",
"response_format",
"stop",
"structured_outputs",
"temperature",
"tool_choice",
"tools",
"top_k",
"top_p"
],
"supported_parameters_detail": {
"temperature": {
"supported": true,
"type": "number",
"minimum": 0,
"maximum": 2
}
}
}
],
"supported_params": [
"max_tokens",
"response_format",
"stop",
"structured_outputs",
"temperature",
"tool_choice",
"tools",
"top_k",
"top_p"
],
"supported_params_detail": {
"temperature": {
"supported": true,
"type": "number",
"minimum": 0,
"maximum": 2,
"providers": ["openai"]
}
},
"supported_parameters": [
"max_tokens",
"response_format",
"stop",
"structured_outputs",
"temperature",
"tool_choice",
"tools",
"top_k",
"top_p"
],
"supported_parameters_detail": {
"temperature": {
"supported": true,
"type": "number",
"minimum": 0,
"maximum": 2,
"providers": ["openai"]
}
},
"top_provider_id": null,
"top_provider": {
"context_length": null,
"max_completion_tokens": null,
"is_moderated": false
},
"pricing": {
"prompt": null,
"completion": null,
"request": null,
"image": null,
"input_cache_read": null,
"input_cache_write": null,
"web_search": null
},
"pricing_detail": {
"pricing_plan": "standard",
"meters": {}
},
"per_request_limits": null
}
]
}
availability_reason es el campo que explica por qué una entrada de proveedor está activa, disponible solo en vista previa o inactiva.Autorizaciones
Autenticación con token Bearer
Parámetros de consulta
Búsqueda sin distinguir mayúsculas en identificadores, nombres y descripciones de modelos y organizaciones.
200Búsqueda de proveedores u organizaciones de modelos sin distinguir mayúsculas.
100Exigir una modalidad de entrada compatible.
text, image, audio, video Exigir al menos este número de tokens de contexto de entrada.
x >= 0Precio máximo en USD de entrada por millón de tokens.
x >= 0Devolver solo modelos con al menos una oferta enrutable del gateway.
Campo usado para ordenar los resultados del descubrimiento de modelos.
relevance, input_price, output_price, context_length, provider_count Dirección de orden opcional. Los precios se ordenan de forma ascendente por defecto; los demás valores numéricos, de forma descendente.
asc, desc Filtrar por endpoints
Filtrar por organización Identificador de la organización.
01-ai, adept, ai21, aion-labs, aisingapore, alibaba, allenai, amazon, anthracite-org, anthropic, arcee-ai, baai, baichuan, baidu, bigcode, black-forest-labs, bytedance, bytedance-seed, cogito, cognitivecomputations, cohere, crofai, cursor, cyfragovpl, databricks, decart, deepseek, dots-studio, early-access, eleven-labs, essential-ai, fastino, fish-audio, github, google, gryphe, hexgrad, ibm, ibm-granite, inception, inclusionai, inference-net, inflection, intfloat, jetbrains, kblab, kling, kuaishou, kwaipilot, kwaivgi, lg, lightricks, liquid-ai, mancer, medaibase, meituan, meta, microsoft, mindai, minimax, mistral, mistralai, moonshotai, morph, naver-hyperclova, near-ai, nex-agi, nous, nousresearch, novasearch, nvidia, openai, openbmb, opencompass, opengvlab, orcarouter, ornith, perceptron, perplexity, phala, pixverse, poe, poolside, prime-intellect, prism-ml, qwen, reka, relace, runway, sakana, sao10k, sapiens-ai, sentence-transformers, sference, shanghai-ai-laboratory, shengshu-ai, snowflake, sourceful, spacex-ai, speakleash, stability-ai, stealth, stepfun, suno, tencent, thedrummer, thinking-machines, undi95, upstage, venice, vercel, villanova-ai, voyage, windsurf, writer, xai, xgenerationlab, xiaomi, z-ai, zyphra Filtrar por ID del proveedor
Filtrar por estado de despliegue del proveedor
Filtrar por estado de enrutamiento del proveedor
Filtrar por estado de enrutamiento del modelo
Filtrar por estado de capacidades del proveedor
Filtrar por estado de disponibilidad del proveedor
Filtrar por motivo de disponibilidad del proveedor
Filtrar por estado del modelo
Filtrar por tipos de entrada
Alias público de input_types.
Filtrar por tipos de salida
Alias público de output_types.
Filtrar por parámetros
Alias público de params.
Filtro de disponibilidad. active devuelve solo los modelos enrutables públicamente; all incluye registros de disponibilidad no enrutables.
active, all Limitar el número de resultados
1 <= x <= 250Desplazamiento para la paginación
0 <= x <= 5000Formato de respuesta. De forma predeterminada, es json.
json, rss, atom Alias de format. Acepta json, rss o atom.
json, rss, atom Respuesta
Lista de modelos
true
active, all "active"
1 <= x <= 25050
0 <= x <= 50000
x >= 0128
Show child attributes
Show child attributes
¿Esta página le ayudó?