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": [
{}
]
}Lister les modèles
Parcourir les modèles natifs Gateway via Phaseo Gateway, avec des informations facultatives sur la disponibilité des modèles non routables.
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 pour inclure les modèles connus mais indisponibles pour le moment.
Les réponses du catalogue sont mises en cache pendant cinq minutes et peuvent être servies pendant cinq minutes supplémentaires lors de la revalidation du cache. Cela s’applique aux représentations JSON, RSS et Atom du catalogue actuel ; le flux des nouvelles versions dispose de son propre cache de consultation, plus court.
GET /models/me est réservé à un futur filtrage des modèles adapté aux garde-fous de l’appelant actuel. Il renvoie actuellement 501 not implemented ; utilisez donc GET /models pour accéder au catalogue Gateway partagé.
Filtres utiles
endpointsaccepte des noms publics commechat.completions,responsesetmessagesstatusfiltre le cycle de vie du modèle, par exempleactive,deprecatedouretiredproviderfiltre l’identifiant public du fournisseur, par exempleopenai,anthropicougoogle_vertexprovider_statusfiltre le niveau de déploiement du fournisseur, par exempleactive,beta,alphaounot_readyprovider_routing_statusfiltre l’état de routage du fournisseurmodel_routing_statusfiltre l’état de routage du modèlecapability_statusfiltre l’état des capacités du fournisseur pour la correspondance de point de terminaison demandéeprovider_availability_statusfiltre la disponibilité du fournisseur, par exempleactive,coming_soonouinactiveprovider_availability_reasonfiltre le motif de disponibilité du fournisseur, par exemplepreview_only,provider_not_ready,gated,access_limitedouregion_limitedorganisationfiltre le préfixe de l’identifiant public du modèle, par exempleanthropicdansanthropic/claude-3-haikuavailability=activeest la valeur par défautavailability=allinclut les modèles ou fournisseurscoming_soon,inactiveou pas encore routables publiquementinput_modalitiesest un alias deinput_typesoutput_modalitiesest un alias deoutput_typessupported_parametersest un alias deparams
GET /models/{author}/{slug}/endpoints. La réponse sépare les routes de chaque fournisseur et indique, pour chaque ligne, le chemin public, les modalités, le détail des paramètres pris en charge, la disponibilité, l’état du routage, le slug du modèle du fournisseur et un récapitulatif des tarifs.
Les entrées de fournisseur peuvent aussi inclure :
availability_statusavailability_reasonprovider_statusprovider_routing_statusmodel_routing_statuscapability_status
Réponse
{
"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 est le champ unique qui explique pourquoi une entrée de fournisseur est active, réservée à la préversion ou inactive.Autorisations
Authentification par jeton Bearer
Paramètres de requête
Recherche insensible à la casse dans les identifiants, noms et descriptions des modèles et les organisations.
200Recherche insensible à la casse de fournisseurs ou d’organisations de modèles.
100Exiger une modalité d’entrée prise en charge.
text, image, audio, video Exiger au moins ce nombre de tokens de contexte d’entrée.
x >= 0Prix maximal en USD par million de tokens d’entrée.
x >= 0Renvoyer uniquement les modèles ayant au moins une offre routable du gateway.
Champ utilisé pour trier les résultats de découverte des modèles.
relevance, input_price, output_price, context_length, provider_count Sens de tri facultatif. Les prix sont triés par ordre croissant par défaut ; les autres valeurs numériques par ordre décroissant.
asc, desc Filtrer par points de terminaison
Filtrer par organisation Identifiant de l’organisation.
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 Filtrer par ID du fournisseur
Filtrer par état de déploiement du fournisseur
Filtrer par état de routage du fournisseur
Filtrer par état de routage du modèle
Filtrer par état des capacités du fournisseur
Filtrer par état de disponibilité du fournisseur
Filtrer par motif de disponibilité du fournisseur
Filtrer par état du modèle
Filtrer par types d’entrée
Alias public de input_types.
Filtrer par types de sortie
Alias public de output_types.
Filtrer par paramètres
Alias public de params.
Filtre de disponibilité. active renvoie uniquement les modèles routables publiquement ; all inclut les états de disponibilité non routables.
active, all Limiter le nombre de résultats
1 <= x <= 250Décalage pour la pagination
0 <= x <= 5000Format de réponse. json est utilisé par défaut.
json, rss, atom Alias de format. Accepte json, rss ou atom.
json, rss, atom Réponse
Liste des modèles
true
active, all "active"
1 <= x <= 25050
0 <= x <= 50000
x >= 0128
Show child attributes
Show child attributes
Cette page vous a-t-elle été utile ?