Pythonで始めるOpenAI API入門
〜APIキーの取得・料金・モデル選択・Responses APIによるテキスト生成まで〜
はじめに
本記事は、これまでのシリーズとは独立した、単体で読める入門記事です。前提となる知識やMCP・Difyなどの構成は不要で、「OpenAI APIとは何か」から「PythonからAPIを1回呼び出して文章を生成する」までを、初心者向けに一通り学びます。
この記事でできるようになること
- OpenAI APIとは何かを説明できる
- ChatGPTとOpenAI APIの違いを理解できる
- モデルを「暗記」ではなく「選択基準」で選べる
- APIの料金体系(トークン・従量課金)を理解できる
- APIキーを取得し、安全に管理できる
- PythonからResponses APIを呼び出してテキストを生成できる
- エラー処理・コスト・セキュリティまで意識して設計できる
想定読者
- Pythonの基本的な文法(変数・関数・import)が分かる方
- 生成AIを自分のプログラムから使ってみたい方
- ChatGPTは使ったことがあるが、APIは初めてという方
実行環境
本記事では、次の環境を前提に進めます。
- Windows 11
- Python
- VS Code
重要(料金・モデルについて): 本記事に登場する料金・モデル名は、2026年9月17日時点のOpenAI公式ドキュメントを参照しています。モデル名・料金・提供状況は頻繁に変わるため、実際に利用するときは必ずOpenAI公式ドキュメントで最新情報を確認してください。
1. OpenAI APIとは
1-1. OpenAI APIの概要
OpenAI APIは、OpenAIが提供するAPIです。生成AIの機能を、自分のアプリケーションから利用できます。HTTP経由、または公式SDK(Python・Node.jsなど)から呼び出せます。
自分のアプリケーション
↓
OpenAI API
↓
生成AIの機能
1-2. ChatGPTとOpenAI APIの違い
初心者が最も混同しやすいのが、ChatGPTとOpenAI APIの違いです。
ChatGPT
↓
人間がブラウザやアプリから利用
OpenAI API
↓
Python・Webアプリ・業務システムなどから利用
- ChatGPT は、人間が画面から使うユーザー向けサービスです。
- OpenAI API は、開発者が自分のアプリケーションへAI機能を組み込むためのAPIです。
ここで特に注意したいのが料金です。「ChatGPT Plusを契約しているから、APIも無料で使える?」と考えてしまいがちですが、ChatGPTのサブスクリプション料金とAPI利用料金は、まったく別物です。
ChatGPT Plusの契約
≠
OpenAI APIの利用料金
ChatGPTの契約とAPI利用料金は、分けて考える必要があります。
1-3. OpenAI APIでできること
OpenAI APIは、単に文章を生成するだけのAPIではありません。主な用途には次のようなものがあります。
- テキスト生成
- 要約
- 翻訳
- コード生成
- 画像の理解(画像入力)
- 画像生成
- 音声認識
- 音声生成
- Structured Outputs(構造化された出力)
- Function Calling(関数呼び出し)
- Tool利用
本記事では、この中でも基本となるテキスト生成を中心に扱います。Structured Outputs・Function Calling・Tool利用については、第6章で「文章を生成するだけではない」という点を軽く紹介します。
2. OpenAI APIのモデルを理解する
2-1. モデルとは
APIとモデルは別の概念です。**APIは「入口」**であり、**モデルは「実際に生成を行う頭脳」**です。APIを呼び出すとき、どのモデルを使うかをリクエストで指定します。
Pythonアプリ
↓
OpenAI API
↓
指定したモデル
↓
生成結果
2-2. モデルの選び方
モデルは更新が速いため、固定的な一覧を暗記するのはおすすめしません。次の観点から選択するのが実用的です。
- 高性能モデル(複雑な処理向け)
- 性能とコストのバランス型
- 大量処理向けの低コストモデル
2-3. 用途によるモデル選択
用途に応じて、重視するポイントは変わります。
| 用途 | 重視するポイント |
|---|---|
| 複雑な分析 | 精度・推論能力 |
| 一般的な文章生成 | 性能とコスト |
| 大量の分類・要約 | コスト・速度 |
| コード生成 | コーディング能力 |
| 画像を含む処理 | 画像入力への対応 |
2-4. モデルは変更される
モデル名・料金・提供状況は変更される可能性があります。そのため本記事では、個々のモデルを暗記するのではなく、「高性能」「バランス」「低コスト・大量処理」という選択基準を理解することを目的とします。
そのうえで、あくまで2026年9月17日時点の例として、現在提供されているモデルを挙げると次のようになります。
| 区分 | モデルの例(2026年9月17日時点) |
|---|---|
| 最上位・高性能 | GPT-6 Astra |
| 高性能 | GPT-5.6 Sol |
| バランス型 | GPT-5.6 Terra |
| 低コスト・大量処理 | GPT-5.6 Luna |
注意: 上記はあくまで執筆時点の一例です。現在のOpenAI公式モデルページでは、最上位モデルとしてGPT-6 Astraが掲載され、GPT-5.6 Sol / Terra / Luna も引き続き提供されています。実際に利用するときは公式のモデル一覧で最新の状況を確認してください。GPT-5.6シリーズのモデルは、Responses APIやFunction Calling、Structured Outputsなどにも対応しています。
3. OpenAI APIの料金体系
3-1. 基本は従量課金
OpenAI APIは、利用量に応じて料金が発生する従量課金です。ただし「利用量」とは何に対する量なのかが、初心者には分かりにくいところです。そのカギがトークンです。
3-2. トークンとは
トークンは、テキストを処理するときの単位です。おおまかに言えば、文章を細かく区切った「かたまり」です。APIでは、入力と出力のそれぞれでトークンが消費されます。
入力
「この文章を要約してください」
↓
OpenAI API
↓
モデル
↓
出力
「この文章では……」
送った文章(入力)と、返ってきた文章(出力)の両方でトークンが消費される、という点を押さえておきましょう。
3-3. 入力・出力・Cached Input
料金は、主に次の3種類のトークンで考えます。
| 種類 | 内容 |
|---|---|
| Input(入力) | モデルへ送るトークン |
| Cached Input(キャッシュ入力) | 繰り返し送る内容がキャッシュされたときの、割安な入力 |
| Output(出力) | モデルが生成して返すトークン |
一般に、Outputの単価はInputより高く設定されていることが多く、Cached Inputは通常のInputより割安になります。
3-4. 簡単な料金計算例
料金は、次の考え方で計算します。
入力トークン数 × 入力単価
+
出力トークン数 × 出力単価
料金は「100万トークンあたりの単価」で示されるのが一般的です。2026年9月17日時点の標準API価格の例は次のとおりです(100万トークンあたり、入力 / 出力)。
| モデル(2026年9月17日時点の例) | 入力(100万トークン) | 出力(100万トークン) |
|---|---|---|
| GPT-5.6 Sol | $4 | $20 |
| GPT-5.6 Terra | $2 | $12 |
| GPT-5.6 Luna | $0.20 | $1.20 |
注意: 上記は2026年9月17日時点の標準的な利用時の料金例です。料金は変更される可能性があり、長いコンテキストを使用する場合など、利用条件によって料金体系が変わることもあります。実際に利用するときは、OpenAI公式の料金ページと各モデルのページで最新の料金条件を確認してください。
3-5. 「実際いくらかかる?」を計算してみる
「100万トークンあたり$○○」と言われても、自分のアプリを動かすといくらになるのか、まだイメージしにくいはずです。そこで、具体的な例で計算してみます。
次の条件を仮定します。
1回のAPI実行
入力:1,000トークン
出力:500トークン
これを1日100回
↓
1か月(30日)では?
1か月あたりの合計トークン数は次のようになります。
入力:1,000 × 100回 × 30日 = 3,000,000トークン(=3百万)
出力: 500 × 100回 × 30日 = 1,500,000トークン(=1.5百万)
これを、先ほどの単価(100万トークンあたり)でモデル別に計算すると、次のようになります。
| モデル | 入力コスト | 出力コスト | 1か月の合計(目安) |
|---|---|---|---|
| GPT-5.6 Sol | 3 × $4 = $12 | 1.5 × $20 = $30 | 約 $42 |
| GPT-5.6 Terra | 3 × $2 = $6 | 1.5 × $12 = $18 | 約 $24 |
| GPT-5.6 Luna | 3 × $0.20 = $0.6 | 1.5 × $1.20 = $1.8 | 約 $2.4 |
同じ処理でも、モデルの選び方だけで1か月のコストが大きく変わることが分かります。「抽象的な単価」が「自分のアプリを1か月動かすといくらか」という具体的な金額に変わるのがポイントです。
なお、モデルの料金そのものも変化するため、本記事では料金計算の「方法」を理解することを目的とします。
注意: 上記は、単価に変更がないと仮定した概算です。実際の料金は、トークン数の数え方・キャッシュの有無・料金改定などによって変わります。
3-6. API利用料金とChatGPTの料金は別
繰り返しになりますが、ChatGPTのサブスクリプションを契約していても、API利用料金はそれとは別に発生します。ChatGPT Plusの料金にAPI利用分が含まれているわけではありません。
4. OpenAI APIを利用する準備
ここからは、実際にOpenAI APIを利用するための準備を進めます。大きな流れは次のとおりです。
OpenAI Platformへログイン
↓
APIの支払い設定
↓
APIキーを作成
↓
APIキーを安全に保存
↓
Pythonから利用
4-1. OpenAI Platformへログイン
まず、OpenAI Platform へログインします。ChatGPTをすでに利用している場合でも、OpenAI APIを利用するにはAPI Platform側の設定が必要です。また、ChatGPTのサブスクリプション料金とOpenAI APIの利用料金は別です。
4-2. APIの支払い設定
OpenAI APIは、利用量に応じて料金が発生する従量課金のサービスです。APIを利用する前に、OpenAI Platformで支払い設定を確認します。主に確認するのは次の項目です。
- 支払い方法
- APIの利用可能残高・請求設定
- 利用状況
- 予算・支出管理
特に初めてAPIを利用する場合は、想定以上の料金が発生しないよう、利用状況を確認できる状態にしておきます。
4-3. APIキーを作成する
続いて、PythonからOpenAI APIへアクセスするためのAPIキーを作成します。APIキーは、アプリケーションがOpenAI APIへアクセスするときに使用する認証情報です。
Python
│
│ API Key
▼
OpenAI API
OpenAI PlatformのAPIキー管理画面を開き、新しいSecret Keyを作成します。操作の流れは次のとおりです。
OpenAI Platform
↓
API keys
↓
Create new secret key
↓
APIキー作成
↓
表示されたキーをコピー
OpenAI PlatformのAPIキー管理画面(API keys)を開きます。
【API keys画面の画像】
「Create new secret key」を選択し、キーの名前などを入力して作成します。
【Create new secret key画面の画像】
APIキーを作成すると、Secret Keyが表示されます。表示されたキーをコピーし、安全な場所へ保存します。
【作成後のSecret Key表示画面の画像】
重要: Secret Key全体を確認できるのは作成時のみです。表示されたキーは、その場で安全な場所へ保存してください。あとから全体を再表示できない場合は、新しいキーを作り直します。画面を掲載する際は、APIキーそのものが画像に写らないように注意してください。
APIキーはパスワードと同じように扱い、他人へ共有しないようにします。また、APIキーをPythonコードへ直接記述してはいけません。
# 悪い例
api_key = "sk-..."
本記事では、.env ファイルを利用してAPIキーを管理します。
5. Pythonの開発環境を準備する
続いて、Windows 11とVS Codeを使ってPythonの実行環境を準備します。
5-1. プロジェクトを作成
今回は、次のプロジェクトを作成します。
openai-api-sample/
│
├─ .venv/
├─ .env
├─ .gitignore
├─ check_env.py
└─ main.py
それぞれの役割は次のとおりです。
| ファイル | 役割 |
|---|---|
.venv/ |
Python仮想環境 |
.env |
APIキーを保存 |
.gitignore |
Gitへ登録しないファイルを指定 |
check_env.py |
.env の読み込み確認 |
main.py |
OpenAI APIを呼び出すプログラム |
5-2. 仮想環境を作成する
VS Codeでターミナルを開き、PowerShellから次のコマンドを実行します。
python -m venv .venv
続いて、仮想環境を有効化します。
.\.venv\Scripts\Activate.ps1
有効になると、PowerShellの先頭に次のように表示されます。
(.venv) PS C:\work\openai-api-sample>
5-3. 必要なライブラリをインストール
OpenAI公式Python SDKと、.env を読み込むための python-dotenv をインストールします。
pip install openai python-dotenv
インストール後、確認します。
pip show openai
pip show python-dotenv
それぞれのパッケージ情報が表示されれば準備完了です。
5-4. .env へAPIキーを設定
プロジェクト直下へ .env ファイルを作成し、第4章で取得したAPIキーを記述します。
OPENAI_API_KEY=ここに取得したAPIキー
5-5. .gitignore を作成
APIキーがGitHubへ公開されないように、.gitignore を作成します。
.venv/
.env
これにより、.env をGitの管理対象から除外できます。
5-6. python-dotenv で .env を読み込む
ここで、いきなりOpenAI APIを呼び出すのではなく、まず .env を正常に読み込めているか確認します。check_env.py を作成します。
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
if api_key:
print("OPENAI_API_KEYを読み込めました。")
else:
print("OPENAI_API_KEYを読み込めませんでした。")
実行します。
python check_env.py
正常に設定できていれば、次のように表示されます。
OPENAI_API_KEYを読み込めました。
ここで重要なのは、APIキーそのものを print() しないことです。例えば、
print(api_key)
のようにすると、ターミナルやログへAPIキーが表示されてしまいます。APIキーの値ではなく、読み込めたかどうかだけを確認するようにします。
補足:
.envファイルへ書いただけでは、OSの環境変数にはなりません。load_dotenv()を呼び出すことで、.envの内容が環境変数として読み込まれます。
補足: ここで確認しているのは、
.envからOPENAI_API_KEYを読み込めたかどうかです。APIキーそのものが有効かどうかは、次の第6章で実際にOpenAI APIを呼び出して確認します。
6. Responses APIでテキストを生成する
.env からAPIキーを読み込めることを確認できたので、実際にOpenAI APIを呼び出します。今回の処理は次の流れです。
main.py
↓
.env
↓
OPENAI_API_KEY
↓
OpenAI Python SDK
↓
Responses API
↓
OpenAIモデル
↓
生成結果
6-1. main.py を作成
main.py へ次のコードを記述します。
from dotenv import load_dotenv
from openai import OpenAI
# .envを読み込む
load_dotenv()
# OpenAI APIクライアントを作成
client = OpenAI()
# Responses APIを呼び出す
response = client.responses.create(
model="gpt-5.6-terra",
input="Pythonとは何か初心者向けに説明してください。"
)
# 生成された文章を表示
print(response.output_text)
model には、実際に利用可能なモデル名を指定します。本記事では、性能とコストのバランスを重視したモデルとして gpt-5.6-terra を使用します。
注意: モデルの提供状況は変更される可能性があります。本記事では2026年9月17日時点で提供されているモデルを使用しています。実行時点のモデル名はOpenAI公式ドキュメントで確認してください。
6-2. プログラムを実行する
PowerShellから実行します。
python main.py
正常にAPIへ接続できると、入力した質問に対する文章が表示されます。例えば、次のような内容です。
Pythonは、読みやすくシンプルな文法を特徴とする
プログラミング言語です。
Web開発、データ分析、AI、機械学習など、
さまざまな分野で利用されています。
注意: 生成AIの出力は毎回完全に同じになるとは限りません。上記は出力例です。
正常に生成結果が表示されれば、PythonからOpenAI APIを呼び出し、モデルからテキストを取得できています。これで、
Python
↓
OpenAI API
↓
モデル
↓
テキスト生成
という基本的なAPI呼び出しの流れを確認できます。
6-3. コードの処理を確認する
コードの流れを整理すると、次のようになります。
load_dotenv()
↓
.envを読み込む
↓
OPENAI_API_KEY
↓
OpenAI()
↓
APIクライアント作成
↓
client.responses.create()
↓
OpenAI API
↓
モデル
↓
response.output_text
それぞれの役割は次のとおりです。
-
load_dotenv()….envファイルを読み込みます。 -
OpenAI()… OpenAI APIクライアントを作成します。OPENAI_API_KEYを認証に利用します。 -
client.responses.create()… 使用するモデルと入力を指定してResponses APIへリクエストします。 -
response.output_text… モデルが生成したテキストを取得します。
6-4. プロンプトを変更してみる
API接続が成功したら、input を変更して試してみます。
- 要約:「次の文章を3行で要約してください。」
- 翻訳:「次の文章を英語へ翻訳してください。」
- コード生成:「Pythonで階乗を計算する関数を書いてください。」
- 分類:「次の問い合わせを『質問』『要望』『不具合』のいずれかに分類してください。」
input を変更するだけでも、同じResponses APIをさまざまな用途に利用できます。
6-5. ここまでの確認
ここまでの手順が正常に完了すると、次の項目を確認できます。
- OpenAI Platformへログイン
- API利用の準備
- APIキーを作成
-
.envへAPIキーを保存 -
python-dotenvで.envを読み込み - OpenAI Python SDKを利用
- Responses APIを呼び出し
- Pythonから生成結果を取得
ここまで成功すれば、OpenAI APIをPythonから利用するための基本的な流れは完成です。
6-6. 文章を生成するだけではない(発展)
Responses APIは文章生成だけでなく、さまざまな機能と組み合わせられます。例えば、
- Structured Outputs
- Function Calling
- Tool利用
などです。本記事では「PythonからOpenAI APIを呼び出してテキストを生成する」という基本部分に絞るため、これらの詳細は扱いません。まずは、
Python
↓
OpenAI API
↓
モデル
↓
生成結果
という基本的な流れを理解しておくことが重要です。GPT-5.6シリーズのモデルは、これらの機能にも対応しています。
7. 実践:OpenAI APIを使ってみる
第6章でOpenAI APIを呼び出せることを確認できたので、ここからは input の内容を変更して、いくつかの処理を試してみます。以下のサンプルは、そのままコピーして実行できるよう、.env の読み込みからクライアント作成までを含めた完全な形で掲載しています。
7-1. 文章を要約する
長い文章を入力し、要点だけを生成させます。
from dotenv import load_dotenv
from openai import OpenAI
load_dotenv()
client = OpenAI()
text = "(ここに長い文章)"
response = client.responses.create(
model="gpt-5.6-terra",
input=f"次の文章を3つの箇条書きで要約してください。\n\n{text}"
)
print(response.output_text)
7-2. テストケースを生成する
仕様を入力し、テストケース案を生成させます。
from dotenv import load_dotenv
from openai import OpenAI
load_dotenv()
client = OpenAI()
spec = "ログイン機能:メールアドレスとパスワードで認証する"
response = client.responses.create(
model="gpt-5.6-terra",
input=f"次の仕様に対して、正常系・異常系・境界値のテストケース案を挙げてください。\n\n{spec}"
)
print(response.output_text)
- 正常系
- 異常系
- 境界値
といった観点でテストケース案を出させることができます。
7-3. 構造化された出力について
APIの結果を後続のPythonプログラムで処理する場合、単なる文章ではなく、JSONのように決まった構造で受け取りたい場合があります。このような用途ではStructured Outputs を利用できます。本記事ではテキスト生成を中心に扱うため、詳細は省略します。
8. エラー処理を追加する
8-1. API呼び出しは失敗する可能性がある
OpenAI APIは外部サービスです。次のような理由で失敗することがあります。
- 認証エラー(APIキーが無効など)
- Rate Limit(リクエスト過多)
- ネットワークエラー
- タイムアウト
8-2. try / except によるエラー処理
失敗を前提に、try / except でエラーを捕捉します。
from dotenv import load_dotenv
from openai import OpenAI, OpenAIError
load_dotenv()
client = OpenAI()
try:
response = client.responses.create(
model="gpt-5.6-terra",
input="Pythonとは何か初心者向けに説明してください。"
)
print(response.output_text)
except OpenAIError as e:
print(f"APIの呼び出しに失敗しました: {e}")
8-3. Retryを考える
一時的な失敗(Rate Limitやネットワークの一時的な不調)に対しては、少し待ってから再試行(Retry)する設計が有効です。APIを利用したアプリケーションは、失敗する可能性を前提に設計することが重要です。
9. コストを抑える方法
9-1. 用途に合ったモデルを選ぶ
すべての処理で最高性能モデルを使う必要はありません。第3章の計算例で見たとおり、モデルの選択だけでコストは大きく変わります。用途に合ったモデルを選びましょう。
9-2. 不要な入力を減らす
必要以上に長い文章を毎回送らないようにします。入力トークンもコストに直結します。
9-3. Prompt Cachingを理解する
同じ内容(システム指示など)を繰り返し送る場合、キャッシュされた入力(Cached Input)は割安になることがあります。同じ前置きを何度も送る設計では、キャッシュの活用を検討します。
9-4. API利用量を確認する
本番運用では、利用量と料金を継続的に確認します。ダッシュボードで使用量を確認し、必要に応じて利用上限を設定します。
10. セキュリティとデータの取り扱い
10-1. APIキーを公開しない
APIキーは秘密情報です。コードに直書きせず、環境変数で管理します。
10-2. GitHubへAPIキーをコミットしない
.gitignore を利用して、.env などをリポジトリから除外します。
# .gitignore
.venv/
.env
10-3. 個人情報・機密情報をそのまま送信しない
APIへ送るデータには注意が必要です。必要に応じて、次の対応を行います。
- マスキング
- 匿名化
- 不要情報の削除
10-4. OpenAIのデータ取り扱いを確認する
APIへ送信したデータの保存・保持・学習利用の扱いは、利用するAPIや設定によって異なります。実際に利用するときは、OpenAIの公式ポリシーを確認してください。
11. OpenAI APIをアプリケーションへ組み込むとどうなるか
ここまでは単体のPythonプログラムでしたが、実際のアプリケーションへ組み込むと、次のような流れになります。
ユーザー
↓
Webアプリ
↓
Python
↓
OpenAI API
↓
AIモデル
↓
生成結果
↓
Webアプリ
↓
ユーザー
例えば、次のようなものへ発展させられます。
- チャットアプリ
- FAQシステム
- テストケース生成ツール
- 文書要約システム
- 商品説明生成
- 社内文書検索
12. まとめ
本記事では、OpenAI APIの基本的な仕組みから、Pythonを使って実際にテキストを生成するところまで確認しました。
| 項目 | ポイント |
|---|---|
| OpenAI APIとは | 生成AIの機能を自分のアプリケーションから利用するためのAPI |
| ChatGPTとの違い | ChatGPTは人間が利用するサービス、APIはアプリケーションから利用する仕組み。料金も別 |
| モデル | 固定的に暗記せず、性能・コスト・用途から選択する |
| 料金 | トークンを基準とした従量課金。入力・出力などで単価が異なる |
| APIキー | ソースコードへ直接記述せず、環境変数などで安全に管理する |
| Pythonからの利用 | OpenAI Python SDKとResponses APIを利用する |
| 発展的な機能 | Structured Outputs・Function Calling・Tool利用などがある |
| 運用 | エラー処理・Retry・コスト・セキュリティ・データ管理も考慮する |
OpenAI APIを利用すると、生成AIの機能をPythonアプリケーションやWebシステムへ組み込めるようになります。
今回作成したプログラムは非常にシンプルですが、基本的な流れは、
Python
↓
OpenAI API
↓
モデル
↓
生成結果
↓
Python
です。
まずはこの流れを理解することが、OpenAI APIを使ったアプリケーション開発の第一歩です。本記事では「PythonからOpenAI APIを直接呼び出す」ところまでを扱いました。ここを理解できれば、Webアプリ、チャットアプリ、文書要約、テストケース生成など、さまざまな生成AIアプリケーションへ発展させられます。
参考
※ モデル名・料金・提供状況・データ取り扱いポリシーは更新されることがあります。本記事の料金・モデルは2026年9月17日時点の公式ドキュメントを参照した例です。実際に利用するときは、必ず公式の最新情報を確認してください。