TokenCode は OpenAI API プロトコルに完全互換です。OpenAI SDK または OpenAI プロトコル互換の任意のクライアントから直接接続できます。
https://tokencode.dev/v1
すべてのエンドポイントには認証が必要です:
現在利用可能なモデル一覧を返します。
curl https://tokencode.dev/v1/models \
-H "Authorization: Bearer sk-your-api-key"
レスポンス例:
{
"object": "list",
"data": [
{ "id": "gpt-5.5", "object": "model", "owned_by": "openai" },
{ "id": "claude-sonnet-4-6", "object": "model", "owned_by": "anthropic" },
{ "id": "gemini-2.5-pro", "object": "model", "owned_by": "google" }
]
}
OpenAI 互換のチャット補完エンドポイント。すべての上流モデルに対応しており、OpenAI モデルに限定されません。
curl https://tokencode.dev/v1/chat/completions \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{"role": "system", "content": "あなたは役立つアシスタントです。"},
{"role": "user", "content": "量子コンピューティングについて説明して"}
],
"temperature": 0.7,
"max_tokens": 1024
}'
リクエストパラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| model | string | はい | モデル ID(例:gpt-5.5、claude-sonnet-4-6) |
| messages | array | はい | メッセージオブジェクトの配列 |
| stream | boolean | いいえ | ストリーミングレスポンスを有効にするかどうか |
| temperature | number | いいえ | サンプリング温度(0-2) |
| max_tokens | integer | いいえ | 最大生成 Token 数 |
| top_p | number | いいえ | 核サンプリング確率 |
| n | integer | いいえ | 生成候補数 |
| stop | string/array | いいえ | ストップシーケンス |
| presence_penalty | number | いいえ | 存在ペナルティ(-2 〜 2) |
| frequency_penalty | number | いいえ | 頻度ペナルティ(-2 〜 2) |
| tools | array | いいえ | Function Calling ツール定義 |
| tool_choice | string/object | いいえ | ツール呼び出し戦略 |
レスポンス例:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1700000000,
"model": "gpt-5.5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "量子コンピューティングは量子力学の原理を利用した..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 128,
"total_tokens": 153
}
}
"stream": true を設定すると、レスポンスは SSE 形式になります:
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"content":"量"},"index":0}]}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"content":"子"},"index":0}]}
data: [DONE]
テキストのベクトル埋め込みを生成します。
curl https://tokencode.dev/v1/embeddings \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-3-small",
"input": "Hello world"
}'
リクエストパラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| model | string | はい | 埋め込みモデル ID |
| input | string/array | はい | 埋め込むテキスト |
| encoding_format | string | いいえ | エンコーディング形式(float または base64) |
TokenCode の主な利点の一つはプロトコル自動変換です。OpenAI 互換エンドポイントから OpenAI 以外のモデル(Claude、Gemini など)を呼び出すと、プラットフォームが自動的に以下を処理します:
つまり、同じ OpenAI SDK コードですべてのモデルを呼び出すことができ、基盤となるプロトコルの違いを気にする必要はありません。
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://tokencode.dev/v1"
)
# OpenAI モデルの呼び出し
response = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "こんにちは"}]
)
# Claude モデルの呼び出し — 同じコードでプロトコル自動変換
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "こんにちは"}]
)
# Gemini モデルの呼び出し — 同じ方法
response = client.chat.completions.create(
model="gemini-2.5-pro",
messages=[{"role": "user", "content": "こんにちは"}]
)
すべてのエラーは OpenAI エラー形式に従います:
{
"error": {
"message": "Invalid API key",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
| HTTP ステータスコード | 意味 |
|---|---|
| 400 | リクエストパラメータが無効 |
| 401 | 認証失敗 — API Key が無効 |
| 403 | 権限不足 — モデルが利用不可 |
| 429 | レート制限または残高不足 |
| 500 | サーバー内部エラー |
| 502 | 上流サービスエラー |