導入ガイド

base_url を Y-API に向けるだけで、ほかのコードは変更不要です。以下のサンプルはそのままコピーして動きますし、20 種類のモデルはすべて同じ書き方です。

ステップ 1

基本設定

OpenAI 互換の SDK なら、この 3 項目を差し替えるだけで動きます。api_key はコンソールの「API キー」ページで発行し、model には「利用できるモデル」にある ID を指定してください。

base_url
https://api.y-api.bestvirtualgoods.com/v1
api_key
sk-...(コンソールで作成)
model
deepseek/deepseek-v4-flash

エージェントを書く場合や、クライアントコードを自動生成する場合は、機械可読な OpenAPI 3.1 仕様をご利用ください。実際に存在する 3 つのエンドポイント、リクエストとレスポンスの全フィールド、そして SDK が自動でリトライしてしまう失敗がまとめてあります。

モデル一覧は JSON でも公開しており、こちらは API キーなしで読めます。モデル ID、提供元、そしてクレジット価格と実支払い価格の両方が入っています。ゲートウェイ自身の GET /v1/models にはキーが必要です——このファイルはその認証なし版で、内容は前回のビルド時点のものです。

ステップ 2

最初のリクエストを送る

3 つのサンプルはいずれも等価です。お使いのものをコピーしてください。

cURL
curl https://api.y-api.bestvirtualgoods.com/v1/chat/completions \
  -H "Authorization: Bearer $YAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek/deepseek-v4-flash",
    "messages": [{"role": "user", "content": "こんにちは"}]
  }'
Python(openai SDK)
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.y-api.bestvirtualgoods.com/v1",
    api_key=os.environ["YAPI_KEY"],  # コンソールで作成したキー
)

response = client.chat.completions.create(
    model="deepseek/deepseek-v4-flash",
    messages=[{"role": "user", "content": "こんにちは"}],
)
print(response.choices[0].message.content)
Node.js(openai SDK)
import OpenAI from 'openai'

const client = new OpenAI({
  baseURL: 'https://api.y-api.bestvirtualgoods.com/v1',
  apiKey: process.env.YAPI_KEY, // コンソールで作成したキー
})

const response = await client.chat.completions.create({
  model: 'deepseek/deepseek-v4-flash',
  messages: [{ role: 'user', content: 'こんにちは' }],
})
console.log(response.choices[0].message.content)

応用

ストリーミング

stream パラメータを追加するだけです。返ってくるチャンクの形式は OpenAI と同じ SSE なので、クライアント側で特別な処理は必要ありません。

stream = client.chat.completions.create(
    model="deepseek/deepseek-v4-flash",
    messages=[{"role": "user", "content": "こんにちは"}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

応用

モデルの切り替え

すべてのモデルが同じ base_url と同じキーを共有するため、切り替えは model フィールドを書き換えるだけです。全一覧は「利用できるモデル」ページにあります。

# 低価格。高頻度・バッチ処理向け
client.chat.completions.create(model="deepseek/deepseek-v4-flash", messages=msgs)

# より高性能。複雑な推論向け
client.chat.completions.create(model="deepseek/deepseek-v4-flash", messages=msgs)
モデル一覧をすべて見る →

トラブルシューティング

エラーハンドリング

よくあるエラーは 2 つで、いずれもコンソールのリクエストログに記録が残ります。

エラーハンドリング
401意味キーが無効か、すでに失効しています。対処方法コンソールの「API キー」ページでキーが残っているか確認し、必要であれば新しく発行してください。
403意味アカウントのクレジットを使い切っています。429ではありません。しかもメッセージは中国語なので、英語で検索しても何も出てきません。対処方法https://y-api.bestvirtualgoods.com/app/billing で入金すればすぐに復旧します。キーは有効なままで、コードを変更する必要もありません。

原因をステータスコードから読み取らないでください。本サイトが返す 7 件のステータスコードのうち 5 件は数字の意味と実際の原因が違い、そのうち 2 件は公式 SDK が既定で 2 回、黙って再試行してからプログラムに渡します。エラーコード参照ページには全件と、それぞれが実際に返す原文を載せています。

すべてのエラーコードを 1 件ずつ実測 →

まだキーをお持ちでない場合

Google または GitHub でログインすると、アカウントが自動で開設され、既定のキーが 1 本作成されます。