3行でいうと

  • ChatGPTとAPIは、請求の仕組みが別です。公式ヘルプは、ChatGPTとAPI platformには別々の請求システムがある、と書き、Plusのヘルプも、API利用は別に独立して請求される、と書いています。管理画面も別で、ChatGPTは chatgpt.com、APIは platform.openai.com です。
  • 公式が新しいプロジェクトに勧める入口は、Responses APIです。公式は、Chat Completionsは引き続き対応としつつ、Responsesを新規向けに勧めています。エージェントを組むならAgents SDK(自分のアプリの中で動く)、OpenAIに預けるならAgents API(hosted)という分け方が、公式のページに出ています。
  • APIキーは、公式が「秘密」と書くものです。ブラウザやアプリ(クライアント側のコード)に入れず、サーバー側の環境変数か鍵管理の仕組みに置きます。作った直後の1回しか全文は見えません。チームで使うなら、個人のキーの共有ではなく、プロジェクト単位のキーを使うよう、公式ヘルプが書いています。
  • 料金は100万トークン単位で、ツールの利用は別に課金されます。上限は3種類(利用の段階ごとのレート上限、あなたが設定する支出の警告、あなたが設定する支出の上限)が別々に効きます。支出の上限は、超えるとその通信が止まる、と公式は警告しています。
  • ChatGPTの中に自分のサービスを入れる道(Apps SDKの流れ)は、公式の資料の呼び名が揺れています。開発者向けドキュメントは「plugin」と書き、ヘルプは「Apps SDK(preview)」と書いています。どちらも土台はMCPです。

この記事は、実際に使って確かめた記録ではありません。運営者はChatGPTを入れていますが、使い心地はこの記事には書いていません。この記事は、2026年10月24日に公式ドキュメントを読んでまとめたものです。コードは、公式のページの記述を要約として取得し、それに合わせて写したり短縮したりしたもので、公式の原文そのままではなく、実行もしていません。モデル名、価格、上限の数字は変わることがあります。取得は要約の形で行ったため、読めていない部分は本文で「読めていない」と書きました。契約や費用の判断は、公式の規約と料金ページで確かめてください。この記事は、購入や契約の助言ではありません。

先に結論

前提:用語をそろえる

全体像:ChatGPTとAPIは何が別なのか

公式の資料から、別物だと確かめられる点を並べます。

見る点 ChatGPT OpenAI API 公式のどこに書かれているか
請求 個人はSettings > Billing、Businessは Workspace settings > Billing、Enterprise・EduはGlobal Admin Console APIの請求の概要ページ。支払い方法を足して使い始める ヘルプ「Managing billing for ChatGPT and the API platform」
契約の関係 Plusなどの月額 Plusには含まれない。別に、独立して請求される ヘルプ「What is ChatGPT Plus?」
管理画面 chatgpt.com platform.openai.com 上のヘルプの記載
学習への利用 個人向けのプランは既定でオン(前のガイド02) 2023年3月1日以降、明示的に同意しない限り、APIのデータは学習に使われない 開発者向けドキュメント「Your data」
使い方 画面で会話する 自分のコードから呼ぶ 開発者向けドキュメントの概要

読んだ範囲では、ChatGPTのログインとAPIのログインが同じかどうかは、請求のヘルプに書かれていませんでした。同じ名前のアカウントでも、請求と画面は別、と考えておくのが安全です(これは僕らの注意です)。

提供地域については、公式に「Supported countries and territories」のページがあり、日本はその一覧に載っていました。ただし、ページに日付は表示されておらず、いつの一覧かは確かめられません。ページには、対象外の地域からの利用でアカウントが停止されうる、という趣旨の警告があります。

公式の開発者ドキュメントの概要ページには、「OpenAI Developers」というプラグインが載っています。ChatGPTとCodexをPlatformにつなぎ、プロジェクトのAPIキーを作れる、という説明です。この記事では扱いません。

入口を選ぶ:6つの道

公式のページから読み取れる分け方を、表にします。

入口 何をするものか 実行の場所 公式の記載の要点
Responses API モデルを直接呼ぶ。文章、構造化された出力、ツール、画像などを扱う 自分のコードがリクエストを送る 新規向けに勧められている。組み込みツール(web search、file search、code interpreter、remote MCPなど)がある
Chat Completions 以前からのAPI。messages を送り、choices が返る 自分のコード 引き続き対応。GPT-5.4以降では、ツール呼び出しで reasoning_effort が none 以外のとき使えない、と移行ガイドにある
Agents SDK エージェントの繰り返し、引き継ぎ(handoff)、ガードレール、サンドボックスを持つライブラリ 自分のアプリの中 連携の手間の目安は「中」、Responses APIは「高」と、Agentsのガイドのページ(api/docs/guides/agents)が比べている
Agents API(hosted) セッション、サンドボックス、ツールをOpenAIが管理する OpenAI(または自社の環境を指定) 連携の手間の目安は「低」。公式ページには OpenAI-Beta: agents=v1 のヘッダーがある
plugin/Apps SDK ChatGPT(とCodex)の中で動くサービス 自分のMCPサーバー 次の節で詳しく
MCP(API側) Responses APIのリクエストにMCPのサーバーを足す リモートのMCPサーバー type: "mcp" のツール。承認は既定で求められる

Assistants API、Agent Builder、Evals、Fine-tuningは、公式の目次では「Legacy APIs」の中にあります。このうちAssistants APIは、上の用語の項のとおり、終了済みです。fine-tuningについては、価格ページに、整理(wind down)の方向だという注記がありました。新しく始めるなら、まず表の上の4つを見る、というのが公式の目次の並びから読めることです。

Responses APIとChat Completionsの違いのうち、移行ガイドが挙げている、実際の書き方に響くものを写します。

移行ガイドは、公式の社内テストでの改善(SWE-benchで3%、キャッシュの利用率が40%〜80%)にも触れていますが、これは提供元の主張です。

手順1:APIキーを作り、置く

作る

公式のクイックスタートは、OpenAIのダッシュボードのAPI keysのページ(platform.openai.com/api-keys)でキーを作る、と案内しています。ヘルプの「Where do I find my API key?」も、同じページを挙げています。読んだ範囲では、ボタンの名前や、キーの権限(読み取りだけにする、など)の設定項目は、これらのページに書かれていませんでした。

キーについて、ヘルプにある注意は次のとおりです。

置く

公式の認証のページは、こう書いています(短い引用です)。キーは「a secret」であり、他人と共有せず、ブラウザやアプリのような「client-side code」に露出させない。置く場所は、サーバー側の環境変数か、鍵管理サービスです。

クイックスタートが示している、環境変数の書き方は次のとおりです。

# macOS / Linux
export OPENAI_API_KEY="your_api_key_here"
# Windows(PowerShell)
setx OPENAI_API_KEY "your_api_key_here"

クイックスタートは、シェルの設定ファイル(.zshrc など)に書いて保存する方法も触れ、各SDKは、環境変数から自動でキーを読む、と書いています。

鍵の管理:公式のproduction best practicesが書いていること

チームで使うとき

ヘルプ「Can I share my API key with my teammate/coworker?」は、個人のキーを、信頼できる同僚とであっても共有することを勧めない、と書いています。理由は、アカウントの安全、利用の追跡、鍵管理の作法の3つです。代わりに、プロジェクト単位のキーを使い、同僚は組織に招いて、読み取り(reader)か所有者(owner)の役割を付けます。プロジェクトごとに、レート上限と支出の管理が分かれる、とも書かれています。

認証のページが挙げる、キーの種類は3つです。アプリのリクエスト用の通常のAPIキー、管理用のAPIを呼ぶAdminキー、短命のアクセストークンを得るためのワークロードIDの連携(workload identity federation)です。複数の組織に所属しているときや、古い形の個人キーを使うときは、OpenAI-Organization と OpenAI-Project のヘッダーで、利用の計上先を選べます。

キーを守る小さな具体策(僕らの整理です)

公式が書いているのは、環境変数や鍵管理の仕組みから読むこと、クライアント側のコードに置かないこと、までです。次の2点は、その方針を手元で実行に移すための、僕らの一般的な整理で、公式のページに書かれているものではありません。

  1. 手元の設定ファイルに書く場合は、リポジトリに入らないようにします。たとえば、.env というファイルにキーを書く運用なら、先に .gitignore へ入れます。
# 僕らの整理(公式の記載ではありません)
echo ".env" >> .gitignore
git status   # .env が「追跡されていない」一覧に出ないことを確かめる
  1. ブラウザやスマホのアプリから使いたいときは、自分のサーバーを間に置きます。形は次のとおりで、キーはサーバー側の環境変数にだけ置きます。
ブラウザ / スマホのアプリ  --(あなたのサービスの認証)-->  あなたのサーバー  --(OPENAI_API_KEY)-->  OpenAI API

キーを誤ってチャットや公開の場所に貼ってしまったときは、production best practicesの順番(新しいキーを作る、アプリを更新する、動くのを確かめる、古いキーを失効させる)で、早めに取り替えるのが筋です。

なお、公式ヘルプの「Best practices for API key safety」という記事は、2回取得を試みましたが、読めませんでした。上の内容は、認証のページ、production best practices、共有のヘルプから集めたもので、その記事の内容と一致しているかは確かめていません。

手順2:最小の呼び出し

公式のクイックスタートは、全部の例でResponses APIとモデルID gpt-6-astra(取得時点)を使い、プロンプトには「ユニコーンの就寝前の短い話」を入れています。まず、SDKを入れます。

# JavaScript(Node.js、Deno、Bun)
npm install openai

# Python
pip install openai

このほか、クイックスタートは、.NET(dotnet add package OpenAI)、Java(beta)、Go(beta)、Rubyも挙げています。

呼び出しの形は、公式のページの記述にそろえて、僕らが短く書いたものです(公式の原文のコードではなく、実行もしていません)。

from openai import OpenAI

client = OpenAI()  # OPENAI_API_KEY を環境変数から読む

response = client.responses.create(
    model="gpt-6-astra",
    input="Write a one-sentence bedtime story about a unicorn.",
)
print(response.output_text)
curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{"model": "gpt-6-astra", "input": "Write a one-sentence bedtime story about a unicorn."}'

公式のページが示す要点は、次のとおりです。

「モデルIDは、取得時点の公式の例のものです。モデルは入れ替わるので、価格ページとモデル一覧で、今のIDを見てから書いてください。」これは、前のガイド(03)が、ChatGPT側でモデルが次々に退役していくと書いたのと同じ理由です。

応答の長さの上限、保存、会話の続け方は、リクエストの欄で決まります。リファレンスのページ「Create a model response」で確かめられた欄は、input、include(追加の出力)、background(バックグラウンドで実行)、conversation、context_management(圧縮)などです。ただし、そのページは途中までしか読めておらず、tools、model、instructions、store、previous_response_id、stream、max_output_tokens、usage の説明は読めていません。

手順3:道具をつける(API側のMCPとツール)

Responses APIにリモートのMCPサーバーを足す形は、公式のガイド「Remote MCP」に載っています。公式の例を、主要なキーに絞って写します(実行はしていません)。

{
  "model": "gpt-6-astra",
  "tools": [{
    "type": "mcp",
    "server_label": "openai_docs",
    "server_description": "Search and read the public OpenAI documentation.",
    "server_url": "https://developers.openai.com/mcp",
    "require_approval": "never"
  }],
  "input": "Search the OpenAI docs for Responses API streaming and return the relevant links."
}

流れは、次のとおりです。

  1. APIがサーバーのツール一覧を取り、mcp_list_tools の項目を返します。この項目が会話の文脈に残っている間は、毎回は取り直しません。
  2. モデルがツールを選ぶと、APIがサーバーを呼び、mcp_call の項目(引数、出力、エラー)を返します。
  3. 承認は、既定で求められます。APIは mcp_approval_request を返し、あなたは mcp_approval_response を、多くは previous_response_id とつないで送ります。1回の承認は1回の呼び出しに効きます。

設定欄は、server_label、server_description、server_url(Streamable HTTPまたはHTTP/SSE)、require_approval("always"、"never"、またはツール名ごとの指定)、allowed_tools(取り込むツールを絞る。費用と遅れを減らす)、authorization(OAuthのトークン)です。authorization の値はAPIが保存しないので、毎回送ります。非公開のサーバーには、server_url の代わりに tunnel_id(Secure MCP Tunnel)を使います。

公式の警告は、はっきりしています。信頼できるサーバーだけを使うこと。悪意のあるサーバーは、モデルの文脈にあるどんなデータでも外に出しうること。承認を切るときは、MCPサーバーに送られるデータを確認し、できれば記録すること。

ここは僕らの注意です。上の例の "never" は、その例のサーバーが公式の資料サーバー(読み取りだけの案内)だから成り立つ設定です。他人のサーバーや、書き込みのあるサーバーに写すものではありません。

古い書き方の connector_id は、2026年9月1日より後に出たモデルでは非推奨で、server_url か tunnel_id を使うよう、公式は書いています。料金はトークンだけで、ツールの定義と呼び出しの分が課金され、MCPの呼び出し自体の別料金はありません、とも書かれています。

手順4:エージェントを組む(Agents SDK)

公式のクイックスタートは、インストールを次のように示しています。

# JavaScript
npm install @openai/agents zod

# Python
pip install openai-agents

最小のエージェントは、公式の例に近い形で、こうです。instructions の文字列は公式の例と違い、Pythonは型の注記と if __name__ == "__main__": を省いてあります(実行はしていません)。

import asyncio
from agents import Agent, Runner

agent = Agent(
    name="History tutor",
    instructions="Answer history questions briefly.",
    model="gpt-6-astra",
)

async def main():
    result = await Runner.run(agent, "When did the Roman Empire fall?")
    print(result.final_output)

asyncio.run(main())
import { Agent, run } from "@openai/agents";

const agent = new Agent({
  name: "History tutor",
  instructions: "Answer history questions briefly.",
  model: "gpt-6-astra",
});

const result = await run(agent, "When did the Roman Empire fall?");
console.log(result.finalOutput);

Agents SDKのクイックスタートのページには、実行コマンドの記載は見つかりませんでした。次は、一般的なPythonとNodeの決まりによる、僕らの補足です。Pythonなら python agent.py、JavaScriptなら node agent.mjs で動かせます。拡張子 .mjs か、package.json の "type": "module" で、トップレベルの await が使えます。APIキーは、同じ OPENAI_API_KEY です(Agents SDKのクイックスタートが OPENAI_API_KEY を使う例を示しています)。

公式の次の一歩の案内は、エージェントの定義、道具の使い方(hosted tools、function tools、agents-as-tools)、実行(ループ、ストリーミング、続き方)、オーケストレーションと引き継ぎです。クイックスタートは、能力を1つずつ足すことを勧め、最初から大きなマルチエージェントの設計にしないよう書いています。

OpenAIに預ける道:Agents API

Agents APIのページが示す例は、tools、multi_agent、capability_directories などを含む長い形です。次は、それを僕らが大きく削った形で、instructions と入力文も書き換えています。ページはこれを「最小」とは呼んでおらず、削った形がそのまま通るかは確かめていません。

curl -sS -X POST "https://api.openai.com/v1/agents/sessions" \
  -H "OpenAI-Beta: agents=v1" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent": {"model": "gpt-6-astra", "instructions": "Answer technical questions accurately."},
    "environment": {"type": "self_hosted", "workspace_directory": "/workspace"},
    "input": [{"role": "user", "content": [{"type": "input_text", "text": "Summarize the recommended setup."}]}]
  }'

読んだ範囲での要点は、こうです。

Agents SDKとの比較は、ページの中にはなく、別ページに案内があるだけで、そのページは読んでいません。

ChatGPTの中に自分のサービスを入れる:plugin、Apps SDK、MCP

ここは、公式の資料の中で、呼び名が揺れている場所です。読んだ内容を、そのまま並べます。

この食い違いは、僕らには解消できませんでした。見立てとしては、ヘルプの記事が古い呼び名のまま残っている可能性があります。ただし、それを示す記載は読んだ範囲に見つかっていません(僕らの見立てです)。作る前に、自分の画面と、最新のドキュメントの目次で、どの呼び名になっているかを見てください。

作りかた:公式のクイックスタートの流れ

公式の「MCP server and UI quickstart」の流れは、次のとおりです。

  1. UIの部品(public/todo-widget.html)を、1つのHTMLファイルとして作る。ホスト(ChatGPT)とのやりとりは、postMessage 経由のJSON-RPCです。
  2. 依存を入れ、package.json に "type": "module" を付ける。
  3. server.js で、UIのリソースと、add_todo、complete_todo のツールを登録する。
  4. サーバーを動かし、手元で試す。
  5. 公開のHTTPSで届くようにして、ChatGPTにつなぐ。

主なコマンドは、次のとおりです(ページに載っているとおりです)。

npm install @modelcontextprotocol/sdk @modelcontextprotocol/ext-apps zod
node server.js
npx @modelcontextprotocol/inspector@latest
ngrok http <port>

サーバーのMCPの入口は /mcp で、ステートレス(状態を持たない)モードです。ツールは registerAppTool で登録し、_meta.ui.resourceUri で画面の部品と結びつけます。UIは registerAppResource で、ui:// で始まるアドレスに登録します。

ChatGPTでの試験は、「chatgpt.com/plugins」で「+」を押し、「Add custom MCP server」を選び、/mcp で終わる公開のHTTPSのURLを入れ、名前と認証を決めて、リスクの警告を受け入れ、「Create as a plugin」を押します。その後、pluginをインストールし、新しい会話で @ から選び、ツール(add_todo など)が呼ばれる頼み方をします。ツールやメタデータを変えたら、プラグインの接続を更新します(画面の場所は読めていません)。

公式の、もっと小さい最初の例は「plugins quickstart」で、公開のサンプルのMCPサーバーを、認証なしでつなぎ、ホームの表示を「Chat」から「Work」に切り替えて、@ でpluginを選び、20面のさいころを1回振る roll_dice が、sides に20を渡して呼ばれ、1〜20の値が返ることを確かめます。自分のサーバーを書く前に、つなぎ方だけを試すのに向いています。

画面の部品(MCP Apps):公式が書いている決まり

公式の「MCP Apps in ChatGPT」によると、MCPサーバーが返す対話的な画面は、ChatGPTの会話の横のiframeに描かれます。ChatGPTは、公開された規格「MCP Apps」を実装していて、同じ画面を、ほかの対応するホストでも動かせます。画面は任意で、ツールは、画面なしでも役に立つようにしておく、と書かれています。

目的 MCP Appsの標準 ChatGPT向けの別名
ツールと画面を結ぶ _meta.ui.resourceUri _meta["openai/outputTemplate"]
ツールの入力 ui/notifications/tool-input window.openai.toolInput
ツールの結果 ui/notifications/tool-result window.openai.toolOutput
画面からツールを呼ぶ tools/call window.openai.callTool
追いかけのメッセージ ui/message window.openai.sendFollowUpMessage

公式は、window.openai を、標準の流れが動いてから、機能の有無を確かめたうえで使うよう書いています(チェックアウト、ファイル、モーダルなど、標準にないChatGPT固有の機能のため)。リソースのMIMEタイプは text/html;profile=mcp-app、画面の外への通信の許可(csp の connectDomains、resourceDomains、frameDomains)は狭く保つこと、リソースのアドレスはキャッシュの鍵として働くので、互換のない変更では新しいアドレスにすることが挙がっています。データを返すツールと、画面を出すツールを分けると、画面が最終のデータで1回だけ描かれる、という勧めもあります。

読めていないのは、公開の審査の要件(Submit and publish)と、画面の部品の細かい作法です。ヘルプには、公開の流れは別の窓口で、開発者ガイドラインは草案で変わりうる、とだけありました。

料金と上限の見方

トークンの値段(Standard、2026年10月24日に取得)

公式の価格ページは、トークンの値段を100万トークンあたりで示します。主力の3つのStandardの値段は次のとおりです。

モデルID 入力 キャッシュされた入力 出力
gpt-6-astra $10.00 $1.00 $50.00
gpt-6.1-sol $2.00 $0.10 $10.00
gpt-6-luna $0.10 $0.01 $0.50

ページには、ほかに、Flex/Batch、Fast、Ultrafastの表があります。ただし、取得した要約では各表の見出しが読めず、僕らは、どの表がどの処理に当たるかを、確認できていません。そのため、ここには数字を載せません。名前の変更としては、「Priority processing」が2026年7月30日に「Fast mode」になった、と書かれています。データの所在地の指定(地域処理)は、2026年3月5日以降のモデルで10%の上乗せです。FedRAMPの窓口にも10%の上乗せがあります。

キャッシュの書き込みの値段(30分、12時間)の列も、Standardの表にありました。たとえば、gpt-6-astraは、30分の書き込みが$12.50、12時間が$25.00です。使い方(どう指定するか)は、この記事では読んでいません。

ツールの値段(同じページ)

音声、画像生成、文字起こし、Codex向けのモデルなどにも、別の価格の欄があります。この記事では扱いません。ページには、GPT-5.6 Solの販促の価格が、少なくとも2026年11月21日まで続く、といった期限つきの記載もあるので、予算を組む前に、実際のページで日付を見てください。

見積もりの足し算(僕らの整理です)

価格ページの数字を使って、手で見積もる例です。前提は、僕らが決めたものです。1回の呼び出しで、入力が1万トークン、出力が2千トークン。それを1,000回呼ぶ。Standardの値段で、キャッシュと税は考えません。

モデルID 入力(1,000万トークン分) 出力(200万トークン分) 合計
gpt-6-astra 10 × $10.00 = $100 2 × $50.00 = $100 $200
gpt-6.1-sol 10 × $2.00 = $20 2 × $10.00 = $20 $40
gpt-6-luna 10 × $0.10 = $1 2 × $0.50 = $1 $2

入力は1,000回 × 1万 = 1,000万トークン、出力は1,000回 × 2千 = 200万トークンなので、100万トークンあたりの値段に、10と2を掛けています。ここに、ツールの分が別に足されます。たとえば、同じ1,000回のすべてでWeb searchを1回ずつ使えば、呼び出しの分だけで$10.00が加わります(検索で得た内容のトークンは、さらにモデルの値段でかかります)。つまり、同じ呼び出しでも、モデルの選び方で金額が桁違いに変わり、ツールは別の請求の行になる、というのが、手で確かめられる「二本立て」です。実際の請求は、キャッシュの有無、期限つきの販促価格、データの所在地の上乗せなどで変わるので、これは目安にとどめてください。

支払いの始めかた(プリペイド)

ヘルプ「Setting up and managing prepaid API billing」の手順は、次のとおりです(取得した要約による)。

  1. APIの組織の課金を管理する権限を確かめる。
  2. 組織のAPI請求の概要ページを開く。
  3. 「Add payment details」で支払い情報を入れる。
  4. 最初の購入額を選ぶ。最小は$5、既定は$10。
  5. 「Use auto-reload」の設定を見る。設定のときは、既定でオンです。自動の購入を望まなければ、オフにします。
  6. オンのままなら、残高のしきい値、目標の残高、任意の月間の再購入の上限を決める。
  7. 購入を確定する。残高の反映には数分かかることがあります。

そのほかの決まりは、次のとおりです。

読んだ範囲では、プリペイドが唯一の払い方なのか(後払いの方式があるのか)は、書かれていませんでした。請求のヘルプは、「後払い(pay-as-you-go)の方式は説明していない」ものでした。

3種類の上限は別のもの

上限 誰が決めるか 当たるとどうなるか 公式のどこに書かれているか
利用の段階(tier)ごとのレート上限 OpenAI(クレジットの購入額で上がる) 429のエラー 開発者向けドキュメント「Rate limits」
支出のアラート あなた 通知が届く。通信は続く 同上
支出のハード上限 あなた(組織またはプロジェクト) 対象の通信が429で止まる 同上、production best practices

支出のアラートとハード上限を設定する場所は、production best practicesが、アカウント設定の中の「limits page」(platform.openai.com/settings/organization/limits)と書いています。メニューの名前までは書かれていません。使った量を見る画面は、別に、同じ形のアドレスの .../settings/organization/usage です。ただし、どちらもログインが要る画面なので、この記事では中を見ていません。

利用の段階は、「Rate limits」のページにある表のとおり、次のようになっています(取得時点)。

段階 条件 月間の利用上限
Free 利用できる地域の利用者 $100
Build クレジットの購入の合計が$5 $500
Launch 同じく$100 $5,000
Grow 同じく$500 $200,000

購入の合計がしきい値に届くと、自動で上がります。ページには、しきい値の日付は書かれていません。1分あたりの上限は、モデルと段階で違い、たとえばBuildでは、Astra、Sol、Terraが5,000リクエスト/分と100万トークン/分、Lunaが5,000リクエスト/分と200万トークン/分でした。確認の場所は、「Settings > Organization > Limits」の「Rate limits」の欄です。

エラーの扱いも、公式に書かれています。

エラーが出たときに、まず何をするか、の早見表です。公式のRate limits、プリペイドのヘルプ、認証のページに書かれている範囲だけで作っています(まず何をするかの列は、僕らの整理です)。

起きたこと 公式に書かれている内容 まずやること
429、slow_down 上限の内でも、増やし方が急すぎたとき 量を減らし、Retry-After があれば従い、徐々に戻す
503、server_is_overloaded モデルの一時的な過負荷 待ち、間隔を延ばして再試行する
credit_balance_exhausted(請求のエラー) 残高がなくなった。止まるまでに遅れがあり、残高がマイナスになることがある 再試行せず、請求の概要ページで購入するか、自動の再購入の設定を見る
429(ハード上限) 支出のハード上限に達すると、対象の通信が止まる 再試行せず、limits pageで上限と、止めていいプロジェクトかを見る
キーの失効後の失敗 失効したキーは数秒以内に使えなくなる 新しいキーに差し替えたか、環境変数が古いままでないかを見る(状態コードは、読んだページに書かれていませんでした)

production best practicesは、さらに、ステージング用と本番用のプロジェクトを分けること、本番へのアクセスを絞ること、プロジェクトごとにレートと支出の上限を決めること、しきい値の通知メールを設定すること、を挙げています。ハード上限については、「影響を受けるAPIの通信が止まる」ので、本番で有効にする前に、支出上限のガイドを読むよう警告しています。そのガイド自体は、読んでいません。

データの行き先

公式の「Your data」のページから、読めた範囲を整理します(取得は要約で、末尾の約1万字は読めていません)。

ここに、公式の資料同士の食い違いが1つあります。移行ガイドは、Chat Completionsは新しいアカウントで既定で保存される、と書き、「Your data」のページは、Chat Completionsのアプリの状態はない、と書いています。どちらが現状かは確認できていません。保存したくないなら、リクエストに store: false を明示するのが、書かれた範囲では確実です(これは僕らの読みです)。

ChatGPTのデータの扱い(前のガイド02)は別の話です。APIの規則は、API経由の利用にだけ当てはまります。

最初の10分でやること

公式に書かれている範囲の、最短の流れ(僕らの整理です)。

  1. 請求の画面が別であることを、ChatGPTのBillingとAPIの請求の概要の両方を開いて確かめます。
  2. APIのダッシュボードで、プロジェクトを1つ用意します(テスト用)。キーは、そのプロジェクトのものにします。
  3. キーを作り、表示された1回のうちに、環境変数 OPENAI_API_KEY に入れます。チャットやドキュメントには貼りません。
  4. 先に、支出のアラートを入れます(通知が届くだけで、通信は止まりません)。ハード上限は、超えると対象の通信が止まります。テスト用のプロジェクトには低めに入れてもよいのですが、本番で有効にする前には、公式の支出上限のガイドを読みます(そのガイドは僕らは読めていません)。設定の場所は、アカウント設定のlimits page(公式は、メニューの名前までは書いていません)です。プリペイドの最初の購入は、最小の$5からでも始められます(ヘルプ上の最小額)。自動の再購入は、使わないなら、オフにします。
  5. pip install openai か npm install openai を入れ、上のResponses APIの最小の呼び出しを動かします。応答が output_text に出たら、最初の一歩は済みです。
  6. 次に、モデルIDを、価格ページとモデル一覧で、今のものに合わせます。
  7. キーをコードに直接書いていないこと、リポジトリに入れていないことを、最後に確かめます。

エージェントを動かしたいなら(Responsesの最小の呼び出しが動いてから)。 1. pip install openai-agents(JavaScriptは npm install @openai/agents zod)を入れます。 2. APIキーは、同じ環境変数 OPENAI_API_KEY です。 3. 上の最小のエージェントを動かし、Runner.run の結果の final_output(JavaScriptは finalOutput)に答えが出るのを確かめます。 4. 道具や引き継ぎは、1つずつ足します。公式のクイックスタートも、最初から大きなマルチエージェントにしないよう書いています。

ChatGPTの中に出したいなら。 1. 先に、plugins quickstartの、公開サンプルのサーバーで、ChatGPTへのつなぎ方(Plugins、Add custom MCP server、Create as a plugin)を体験します。 2. 自分のサーバーは、MCP Inspectorで試してから、公開のHTTPSでつなぎます(前のガイド05の手順)。 3. 自分のプランで、作ってつなげるか(開発者モードやApps SDKの対象か)を、画面で確かめます。

僕らの見立て:どの入口から始めるか

ここから先は、僕らの見立てです。公式の推奨ではありません。

気をつけること

出典