JA ▾
API キーを取得

Codex API Base URLの指定方法

このサービスのCodex API Base URLはhttps://api.getcodexapi.com/v1です。モデルIDはuncensoredで、API キーは標準的なBearerヘッダーに設定します。これらの値を変更すれば、任意のOpenAI SDKまたはクライアントが動作します。

更新日:

クライアントをAPI Base URLに接続する様子を示す、ラップトップとサーバーキューブを結ぶ光るケーブル

主要ポイント

  • Base URL:https://api.getcodexapi.com/v1(/v1を含め、エンドポイントパスは除外)。
  • モデルIDはuncensoredで、API キーはAPI キー付きのAuthorization: Bearerを使用します。
  • 大きなアプリを接続する前に、GET /v1/modelsで接続をテストしてください。
  • ほとんどの失敗は、/v1の重複、余分なパス、または間違ったAPI キーに起因します。

必要な3つの値

OpenAI互換のクライアントは、すべて同じ3つの値を求めます。このサービスに必要な値は以下の通りです。

設定値
ベース URLhttps://api.getcodexapi.com/v1
API キーAPI キーページからのキー
モデルuncensored

キーは Authorization: Bearer YOUR_KEY として送信されます。呼び出せるエンドポイントは POST /v1/chat/completions と GET /v1/models の2つです。これは独立したサービスで1つのオープンウェイトモデルを実行しており、OpenAI の Codex ではありません。そのため、同じ設定に OpenAI 固有のエンドポイントや OpenAI キーを貼り付けないでください。

curlで接続を確認する

アプリの設定を編集する前に、ターミナルからAPI キーとURLが機能することを確認してください。モデルの一覧表示は最もコストの低いチェックで、プロンプトが必要ありません:

curl https://api.getcodexapi.com/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

モデル uncensored を含むJSONリストが取得できるはずです。その後、1つの生成リクエストを送信してください。

curl https://api.getcodexapi.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Say hello in five words."}]
  }'

両方の呼び出しが成功すれば、その後の失敗の原因はサービスではなくクライアント設定にあります。レスポンスヘッダーには、特定の呼び出しを追跡する必要がある場合に有用なX-Request-Idが含まれ、残りのクレジットを示すX-Balance-USDが含まれます。

OpenAI SDKを使用したPython

公式の openai パッケージは、クライアントのコンストラクタでベースURLを受け取ります。コードの他の部分は変更の必要ありません。

from openai import OpenAI

client = OpenAI(
    base_url="https://api.getcodexapi.com/v1",
    api_key="YOUR_API_KEY",
)

resp = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "Explain what a base URL is in two sentences."},
    ],
)
print(resp.choices[0].message.content)

設定をコードから分離したい場合は、SDKは環境変数OPENAI_BASE_URLとOPENAI_API_KEYも読み取ります:

export OPENAI_BASE_URL="https://api.getcodexapi.com/v1"
export OPENAI_API_KEY="YOUR_API_KEY"

これらが設定されていれば、引数なしのOpenAI()がそれらを取得します。これは便利です。SDKをベースにしたサードパーティツールは、コード変更なしに同じ変数を継承するためです。

Node.js

JavaScript SDKは同じオプション名を使用し、baseURLと表記されます。

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.getcodexapi.com/v1",
  apiKey: process.env.API_KEY,
});

const stream = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Write a haiku about version control." }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

ストリーミングはstream: trueでサーバー送信イベントとして返され、使用量は最後に含まれます。ストリーミングリクエストはストリーミングが完了するまで並行リクエストスロットの1つを占有するため、閉じずに放棄したストリームは制限に対してカウントされ続けます。

設定画面のあるアプリ

デスクトップツールやエディタは、フィールドを次の3つのいずれかでラベル付けすることが多いです。「Base URL」、「API Base」、または「OpenAI互換エンドポイント」。すべて同じ文字列を要求します。時間を節約するためのいくつかのメモ:

  • ベンダー固有のものではなく、OpenAIまたは「カスタムOpenAI互換」プロバイダータイプを選択します。
  • アプリにフリーテキストボックスがある場合は、モデル名を手動で入力してください。uncensoredが正確なIDです。
  • アプリに「接続テスト」ボタンがある場合、通常はモデル一覧を呼び出します。このAPIはそれをサポートしています。
  • 一部のアプリは、以前のプロバイダーからモデル一覧をキャッシュします。ドロップダウンが正しくない場合は、古いエントリを削除して新しいエントリを追加してください。

特定のエディタでの具体的な例については、Cursorへの接続に関するガイド、または全体像を示す コーディングAPIページ を参照してください。パラメータの完全なリファレンスは APIドキュメント に記載されています。

接続が動作したら、URL、モデル名、API キー作成日など、後で見つけられる場所に正確な値を保存してください。チームは、古い値を保持した設定のコピーのために、後で1時間無駄にすることがよくあります。リポジトリに単一の共有例ファイル(実際のAPI キーの代わりにプレースホルダーを使用)を配置すると、これを防げます。

一般的なミスと修正方法

URLが/v1/v1になる

一部のクライアントは自動的に /v1 を付加します。リクエストが失敗し、クライアントログに /v1/v1/chat/completions といったパスが表示される場合は、入力したベースURLから /v1 を削除してください。その逆も同様です:これを付加しないクライアントの場合は、設定にこれを追加する必要があります。リクエストパスのログを確認すれば、すぐに解決します。

Base URLに完全なエンドポイントを入力した

Base URLは/v1で終わります。そこに/chat/completionsを入力しないでください。SDKは各呼び出しにパスを追加します。

末尾のスラッシュまたはホストのタイプミス

ほとんどのSDKは末尾のスラッシュを許容しますが、一部の古いツールはパスを単純な連結で構築し、二重スラッシュになります。奇妙な404レスポンスが表示される場合は、それを削除してください。

間違ったAPI キー、または別のサービスのAPI キー

OpenAIのAPI キーはここでは機能せず、こちらのAPI キーは他では機能しません。API キーエラーはほとんどがコピー&ペーストの問題(文字の欠落や末尾のスペースなど)を意味します。

curlでは動作するがアプリでは動作しない

curlは成功し、同じURLとAPI キーでアプリケーションが失敗する場合、違いは環境にあります。アプリがプロキシの背後で実行されているか、外部アクセスのないコンテナ内にあるか、他のプロジェクトから残った古い環境変数(例えばOPENAI_BASE_URL)を読み取っていないか、設定ファイルがコードで設定した値を上書きしていないかを確認してください。リクエスト直前にクライアントが呼び出す最終URLを出力すると、これらのケースのほとんどが1分以内に解決します。

HTTP 429

これは制限に達したことを意味します。エラーコードrate_limitedは1分あたりのリクエスト数を示し、concurrencyは一度に多すぎるリクエストを示します。完全なキーでは同時8リクエスト、1分あたり300リクエストまで許可され、トライアルキーでは同時2リクエスト、1分あたり60リクエストまでです。一時的な過負荷時には、Retry-After: 5ヘッダー付きの429も返されるため、5秒待ってから再試行してください。

LangChainとURLを一箇所に保持する

OpenAIクライアントをベースにしたフレームワークは同じ値を受け取ります。LangChainのOpenAI統合では、引数は次のように名前が付けられています:

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="uncensored",
    base_url="https://api.getcodexapi.com/v1",
    api_key="YOUR_API_KEY",
)
print(llm.invoke("Name three uses of a base URL.").content)

フレームワークが何であれ、URLをコード中に散在させないでください。環境変数または設定ファイルの1か所に配置し、そこから読み取ってください。そうすれば、試用版API キーと本番用API キーの間、またはマシン間で移動する際に、変更するのは1行だけで済みます。また、API キーをリポジトリから遠ざけることもできます。API キーは環境変数またはシークレットマネージャーに保存し、コミットされたファイルには保存しないでください。

OpenAI自身のCodex製品のEndpointをお探しの場合は、これがそれではありません。それらのBase URLとAPI キーはOpenAIによって文書化されているため、それらの現在のドキュメントに従ってください。このページのアドレスは独立したサービスのものであり、ここで発行されたAPI キーのみを受け入れます。

接続後に送信できる値

このエンドポイントはストリーミング、ツール呼び出し(tools、tool_choice、結果は role: "tool" メッセージとして返されます)、および response_format: {"type": "json_object"} によるJSONモードをサポートしています。パラメータ temperature、top_p、stop、seed およびペナルティはそのまま渡されます。コンテキストウィンドウはプロンプトと生成を合わせて100,000トークン、最大リクエストボディは8 MBです。

テキストのみです。画像や音声の生成、埋め込み、ファインチューニングはサポートしていないため、それらに依存するクライアント機能はこのベースURLでは動作しません。利用料はトークン単位で課金され、入力は100万トークンあたり$0.15、出力は100万トークンあたり$0.50です。料金ページに計算例があります。

質問と回答

Base URLは何ですか?

これは https://api.getcodexapi.com/v1 です。OpenAI互換のSDKやアプリでベースURLとして使用し、モデルを uncensored に設定してください。

これは公式のOpenAI Codexエンドポイントですか?

いいえ。これは独立したOpenAI互換APIで、1つのオープンウェイトモデルを実行しています。OpenAIやその他のモデルベンダーによって運用されているわけではありません。

Base URLを変更した後、なぜ404エラーが発生するのですか?

通常、パスが間違っています。/v1が重複しているか、Base URLにエンドポイントパスが含まれている可能性があります。クライアントのリクエストログを確認し、調整してください。

特別なSDKが必要ですか?

いいえ。PythonおよびNode用の標準的なOpenAI SDKや、curlを使ったプレーンなHTTPも動作します。Base URL、キー、モデル名のみを変更してください。

キーはフォーム 1 つで手に入ります

アカウントを作成し、キーをコピーし、ベースURLを変更します。これでセットアップは完了です。

API キーを取得