OpenAIのAPIを使ってみたいけれど、「APIキーってどこで取得するの?」「コードに直接書いて大丈夫?」「急に課金されたらどうしよう」といった不安を持つ人は多いはずです。実際、APIキーをGitHubにそのまま公開してしまい、第三者に不正利用されて高額請求が来たという事例は珍しくありません。この記事では、APIキーの取得手順から漏洩を防ぐ設定方法、よくあるエラーの原因まで、具体的な手順とコードを交えて解説します。
OpenAI APIキーの取得手順
まずはAPIキーを発行するところから始めます。手順は次の通りです。
- OpenAIの公式サイト(platform.openai.com)にアクセスし、アカウントを作成またはログインする
- 右上のアカウントメニューから「API keys」(もしくは「Dashboard」内の「API keys」)を選択する
- 「Create new secret key」をクリックし、任意の名前(例:my-test-app)を付けて作成する
- 表示された「sk-」から始まる文字列を必ずその場でコピーする
注意点として、このキーは発行時に一度しか表示されません。閉じてしまうと再確認はできず、再発行が必要になります。またAPIを利用するには、事前に支払い情報の登録と、無料枠を超えた分の従量課金設定が必要な点も押さえておきましょう(2024年以降、新規アカウントの無料クレジット付与が縮小・廃止されているケースもあるため、事前にBilling画面で残高と上限設定を確認してください)。
APIキーを安全に設定する3つの方法
APIキーはパスワードと同じ扱いをすべき情報です。コードに直接書き込む方法は絶対に避け、以下のいずれかで管理します。
1. 環境変数に設定する(最も基本的な方法)
ターミナルで以下のように設定します。
Mac/Linuxの場合:
export OPENAI_API_KEY=”sk-xxxxxxxxxxxxxxxx”
Windows(PowerShell)の場合:
$env:OPENAI_API_KEY=”sk-xxxxxxxxxxxxxxxx”
Pythonコードでは次のように呼び出せます。
from openai import OpenAI
client = OpenAI() # 環境変数から自動で読み込まれる
2. .envファイルとpython-dotenvを使う
チーム開発や複数プロジェクトを扱う場合は、プロジェクト直下に「.env」ファイルを作り、以下のように記述します。
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
そのうえでpip install python-dotenvを実行し、コード冒頭で次のように読み込みます。
from dotenv import load_dotenv
load_dotenv()
この方法の最大のメリットは、.gitignoreに「.env」を追加しておくだけでGit管理から除外でき、誤ってGitHubに公開するリスクを大幅に減らせる点です。
3. クラウド環境ではシークレットマネージャーを使う
AWSやVercel、Renderなどにデプロイする場合は、各サービスが提供する「環境変数」または「Secrets」機能を使いましょう。コードに一切キーを書かずに済むため、ソースコードが漏れてもAPIキーは守られます。
よくあるエラーと対処法
- 「Incorrect API key provided」:キーのコピーミス、余分な空白や改行が混入している場合に多発します。環境変数を再設定し直しましょう
- 「You exceeded your current quota」:無料枠や設定した利用上限を超えた状態です。Billing画面で残高と上限額(Usage limits)を確認してください
- 「Rate limit reached」:短時間に大量のリクエストを送った場合に発生します。無料または低ティアのアカウントでは1分あたりのリクエスト数(RPM)に制限があるため、リトライ処理(time.sleepなど)を入れるのが実用的です
料金・課金面の注意点
APIキーの設定と同じくらい重要なのが、使いすぎ防止の設定です。OpenAIのダッシュボードには「Usage limits」という項目があり、月間の上限金額(例:$10、$20など)を数値で設定できます。これを設定しておかないと、テスト中に大量のリクエストを送ってしまい、想定外の請求が発生することがあります。個人利用であれば、まず低めの上限($5〜$10程度)から始め、実際の利用量を見ながら調整するのが安全です。
💡 この記事のポイントまとめ
- APIキーはOpenAIのダッシュボードから発行し、表示は一度きりなので必ずその場でコピーする
- コードへの直書きは厳禁。環境変数または.env+python-dotenvで管理し、.gitignoreに.envを追加する
- 本番環境ではクラウドサービスのSecrets機能を使い、ソースコードから完全に分離する
- 「Incorrect API key」「quota超過」「Rate limit」などのエラーは原因別に対処できる
- Usage limitsで月間上限額を事前設定し、想定外の課金を防ぐ
まずは無料枠や低い上限額でテストしながら、自分の利用パターンに合った設定を見つけていきましょう。


コメント