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": [
{}
]
}モデル一覧
Phaseo Gateway で Gateway ネイティブモデルを確認します。現在ルーティングできないモデルの可用性情報も任意で取得できます。
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 を設定すると、既知だが現在利用できないモデルも含まれます。
カタログのレスポンスは 5 分間キャッシュされ、キャッシュの再検証中はさらに 5 分間提供される場合があります。これは現在のカタログの JSON、RSS、Atom 表現に適用されます。リリースフィードには、より短い独自のポーリングキャッシュがあります。
GET /models/me は、現在の呼び出し元に適用されるガードレールに基づくモデルの絞り込みに将来使用するための予約パスです。現在は 501 not implemented を返すため、共通の Gateway カタログには GET /models を使用してください。
便利なフィルター
endpointsではchat.completions、responses、messagesなどの公開名を指定しますstatusはactive、deprecated、retiredなどのモデルのライフサイクルで絞り込みますproviderはopenai、anthropic、google_vertexなどの公開プロバイダー ID で絞り込みますprovider_statusはactive、beta、alpha、not_readyなどのプロバイダーの展開段階で絞り込みますprovider_routing_statusはプロバイダー単位のルーティング状態で絞り込みますmodel_routing_statusはモデル単位のルーティング状態で絞り込みますcapability_statusは要求されたエンドポイントの対応付けに対するプロバイダー機能の状態で絞り込みますprovider_availability_statusはactive、coming_soon、inactiveなどのプロバイダー可用性で絞り込みますprovider_availability_reasonはpreview_only、provider_not_ready、gated、access_limited、region_limitedなどのプロバイダー可用性の理由で絞り込みますorganisationは公開モデル ID のプレフィックスで絞り込みます。たとえばanthropic/claude-3-haikuのanthropicを指定しますavailability=activeがデフォルトですavailability=allはcoming_soon、inactive、または一般公開のルーティング対象になっていないモデルやプロバイダーを含みますinput_modalitiesはinput_typesの別名ですoutput_modalitiesはoutput_typesの別名ですsupported_parametersはparamsの別名です
GET /models/{author}/{slug}/endpoints を呼び出します。レスポンスではプロバイダーのルートが分けられ、各行に公開パス、モダリティ、対応パラメーターの詳細、可用性、ルーティング状態、プロバイダー側モデルのスラッグ、料金の概要が含まれます。
プロバイダーの各項目には、次の情報も含まれる場合があります。
availability_statusavailability_reasonprovider_statusprovider_routing_statusmodel_routing_statuscapability_status
レスポンス
{
"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 は、プロバイダーの項目が有効、プレビューのみ、または無効である理由を説明する単一のフィールドです。承認
Bearer トークンによる認証
クエリパラメータ
モデル ID、名前、説明、組織を対象に、大文字と小文字を区別せず検索します。
200プロバイダーまたはモデルの組織を、大文字と小文字を区別せず検索します。
100対応する入力モダリティを必須とします。
text, image, audio, video 入力コンテキストに少なくともこの数のトークンを要求します。
x >= 0入力トークン 100 万個あたりの上限価格(米ドル)。
x >= 0ルーティング可能なゲートウェイの提供ルートが少なくとも 1 つあるモデルのみを返します。
モデル検出結果の並べ替えに使うフィールド。
relevance, input_price, output_price, context_length, provider_count 任意の並べ替え方向。価格は標準で昇順、それ以外の数値は標準で降順に並べ替えます。
asc, desc エンドポイントで絞り込む
組織で絞り込む 組織の識別子です。
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 プロバイダー ID で絞り込む
プロバイダーのロールアウト状態で絞り込む
プロバイダーのルーティング状態で絞り込む
モデルのルーティング状態で絞り込む
プロバイダーの機能状態で絞り込む
プロバイダーの利用可能性状態で絞り込む
プロバイダーの利用可能性の理由で絞り込む
モデルの状態で絞り込む
入力タイプで絞り込む
input_types の公開エイリアスです。
出力タイプで絞り込む
output_types の公開エイリアスです。
パラメーターで絞り込む
params の公開エイリアスです。
利用可能性フィルターです。active はパブリックにルーティングできるモデルのみを返し、all はルーティングできない利用可能性レコードも含みます。
active, all 結果の件数を制限
1 <= x <= 250ページネーションのオフセット
0 <= x <= 5000応答形式です。既定値は json です。
json, rss, atom format のエイリアスです。json、rss、atom を指定できます。
json, rss, atom