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
Consulte modelos nativos do Gateway pelo Phaseo Gateway, incluindo detalhes opcionais de disponibilidade para modelos não roteáveis.
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 conhecidos, mas que ainda não estão disponíveis.
As respostas do catálogo ficam em cache por cinco minutos e podem ser servidas por mais cinco minutos enquanto o cache é revalidado. Isso se aplica às representações JSON, RSS e Atom do catálogo atual; o feed de lançamentos tem seu próprio cache de consulta, com duração menor.
GET /models/me está reservado para uma filtragem futura de modelos com base nos guardrails do solicitante atual. No momento, ele retorna 501 not implemented; por isso, use GET /models para consultar o catálogo compartilhado do Gateway.
Filtros úteis
endpointsusa nomes públicos, comochat.completions,responsesemessagesstatusfiltra o ciclo de vida do modelo, por exemplo,active,deprecatedouretiredproviderfiltra pelo ID público do provedor, por exemplo,openai,anthropicougoogle_vertexprovider_statusfiltra o nível de rollout do provedor, comoactive,beta,alphaounot_readyprovider_routing_statusfiltra o estado de roteamento do provedormodel_routing_statusfiltra o estado de roteamento do modelocapability_statusfiltra o estado de capacidade do provedor para o mapeamento do endpoint solicitadoprovider_availability_statusfiltra a disponibilidade do provedor, comoactive,coming_soonouinactiveprovider_availability_reasonfiltra o motivo de disponibilidade do provedor, comopreview_only,provider_not_ready,gated,access_limitedouregion_limitedorganisationfiltra pelo prefixo do ID público do modelo, por exemplo,anthropicemanthropic/claude-3-haikuavailability=activeé o padrãoavailability=allinclui modelos ou provedorescoming_soon,inactiveou ainda não roteáveis publicamenteinput_modalitiesé um alias deinput_typesoutput_modalitiesé um alias deoutput_typessupported_parametersé um alias deparams
GET /models/{author}/{slug}/endpoints. A resposta separa as rotas dos provedores e inclui, em cada linha, o caminho público, as modalidades, os detalhes dos parâmetros compatíveis, a disponibilidade, o estado do roteamento, o slug do modelo no provedor e um resumo de preços.
As entradas de provedores também podem incluir:
availability_statusavailability_reasonprovider_statusprovider_routing_statusmodel_routing_statuscapability_status
Resposta
{
"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 é o campo único que explica por que uma entrada de provedor está ativa, disponível apenas em prévia ou inativa.Autorizações
Autenticação com token Bearer
Parâmetros de consulta
Pesquisa sem diferenciar maiúsculas e minúsculas em identificadores, nomes e descrições de modelos e organizações.
200Pesquisa de provedores ou organizações de modelos sem diferenciar maiúsculas e minúsculas.
100Exigir uma modalidade de entrada suportada.
text, image, audio, video Exigir pelo menos esta quantidade de tokens de contexto de entrada.
x >= 0Preço máximo em USD de entrada por milhão de tokens.
x >= 0Retornar apenas modelos com pelo menos uma oferta roteável do gateway.
Campo usado para ordenar os resultados da descoberta de modelos.
relevance, input_price, output_price, context_length, provider_count Direção de ordenação opcional. Preços são ordenados de forma crescente por padrão; outros valores numéricos, de forma decrescente.
asc, desc Filtrar por endpoints
Filtrar por organização Identificador da organização.
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 do provedor
Filtrar pelo status de lançamento do provedor
Filtrar pelo status de roteamento do provedor
Filtrar pelo status de roteamento do modelo
Filtrar pelo status de recursos do provedor
Filtrar pelo status de disponibilidade do provedor
Filtrar pelo motivo de disponibilidade do provedor
Filtrar pelo status do modelo
Filtrar por tipos de entrada
Alias público de input_types.
Filtrar por tipos de saída
Alias público de output_types.
Filtrar por parâmetros
Alias público de params.
Filtro de disponibilidade. active retorna somente modelos roteáveis publicamente; all inclui registros de disponibilidade não roteáveis.
active, all Limitar o número de resultados
1 <= x <= 250Deslocamento da paginação
0 <= x <= 5000Formato da resposta. O padrão é json.
json, rss, atom Alias de format. Aceita json, rss ou atom.
json, rss, atom Resposta
Lista de modelos
true
active, all "active"
1 <= x <= 25050
0 <= x <= 50000
x >= 0128
Show child attributes
Show child attributes
Esta página foi útil?