ブログに戻る

はじめにガイド

Postman で OpenAI 互換 API への最初のリクエスト

変数に保持した Bearer キーを使って Postman から chat/completions リクエストを送り、回答と usage フィールドを読む。

投稿者: CheapTokens Team公開日 読了時間 5 分

CheapTokens API 向けにモデル ID と1つのメッセージを入れた Postman のリクエストボディ
このページの内容
  1. 4つの手順でセットアップ
  2. Send を押して応答を読む
  3. 最初のリクエストのコスト
  4. うまくいかない場合

API キーはあるが、コードを1行も書く前に実際に何が送受信されるのかを確認したい。Postman はまさにその用途に適している。URL、キー、JSON ボディを入力して Send を押せば、すぐ下に応答が表示される。CheapTokens の場合、リクエストは POST https://api.cheaptokens.dev/v1/chat/completions で、Authorization: Bearer キーとモデル名を指定する JSON ボディを使う。

以下の手順は Postman 自身のドキュメント(v12、ドキュメントサイト上の最新バージョン、2026年10月31日確認)に従っている。ターミナルの方がよければ、同じリクエストは Your first API request with CheapTokens にある。

The request body in Postman: model id, one user message, max_tokens
The raw JSON body of the first request

4つの手順でセットアップ#

必要なものはわずかだ。ベース URL、キー、モデル ID、そして1つのメッセージ。Postman は最初の2つを変数に保持するので、キーをリクエスト自体に貼り付けることはない。

順番に並べる

Postman のセットアップを順に進める

  1. 変数 base_url と api_key を定義する
  2. HTTP リクエストを作成する: {{base_url}}/chat/completions に POST
  3. Authorization タブで Bearer Token を選び、{{api_key}} を入力する
  4. Body タブで raw > JSON を選び、ボディを貼り付けて Send を押す

各手順の詳細をいくつか。

リクエストを作成する。 左サイドバーの Add アイコンをクリックし、HTTP を選ぶ。メソッドのドロップダウンはデフォルトで GET なので、POST に切り替えて URL を入力する。Postman の変数は {{variable_name}} と書く。ドキュメントでは {{base_url}} を例として使っている。base_url を https://api.cheaptokens.dev/v1 として定義すれば、URL フィールドは {{base_url}}/chat/completions になる。Postman は変数を文字列として保存するが、ここでは問題ない。

キーを追加する。 Authorization タブを開き、Auth Type のドロップダウンで Bearer Token を選び、Token フィールドに {{api_key}} を入れる。Postman はこれを Bearer 形式で Authorization ヘッダーとして送信する。ドキュメントもまさにこれを推奨している。トークンは変数に保持し、名前で参照する。この習慣がなぜ重要かは Store an API key safely にある。

ボディを書く。 Body タブで raw を選び、ドロップダウンで JSON を選ぶ。raw ボディの場合、Postman が対応する Content-Type を自動で設定するので、そのヘッダーを自分で追加する必要はない。以下を貼り付ける:

json
{
  "model": "deepseek-ai/DeepSeek-V4-Flash-0731",
  "messages": [
    { "role": "user", "content": "Explain in one sentence what a token is." }
  ],
  "max_tokens": 200
}

モデル ID は CheapTokens ドキュメントにある完全な gateway_id だ。deepseek-flash のような短い名前は受け付けられない。max_tokens は回答の長さを制限するので、最初のテストが長くなりすぎることはない。もう1つ Postman の詳細として、JSON ボディ内の // と /* */ コメントは送信前に削除されるので、同僚のためにボディに注釈を付けられる。

Send を押して応答を読む#

すべて正しければ、応答ペインに OpenAI Chat Completions 形式の JSON オブジェクトが表示される。重要なのは2箇所だ:

  • choices[0].message.content は回答テキスト。
  • usage には prompt_tokens(送信した内容)と completion_tokens(モデルが書いた内容)が入る。これが課金対象なので、最初のリクエストで必ず確認すること。

choices[0].finish_reason も確認する。stop はモデルが自力で終了したことを意味し、length は回答が max_tokens に達して打ち切られたことを意味する。その場合は制限を上げるか、AI answer cut off? Fix finish_reason "length" を読んでほしい。

回答を開く前に試してみよう:

自分で試す試してみよう: max_tokens を 5 に設定して Send を押す。finish_reason には何が入ると予想するか?答えを表示

length になる。5トークンでは完全な文には足りないので、回答は打ち切られる。200 に戻せば stop になる。

最初のリクエストのコスト#

上のリクエストが約30入力トークンを使い、回答が約100出力トークンだとしよう(例であり実測値ではない。実際の数値は usage フィールドに表示される)。DeepSeek-V4-Flash では現在の価格で $0.00001 となり、価格は何時でも同じだ。100万トークンあたりの価格は the pricing page のライブテーブルにある。

同じ Postman リクエストで別のモデルを試せる。model 行だけを置き換えればよい。たとえば zai-org/GLM-5.3-Flash(390K コンテキスト、最大8,192出力トークン)にして、もう一度 Send を押す。1つの残高がすべてのモデルをカバーするので、他は何も変わらない。同じ URL、同じキーだ。

うまくいかない場合#

Postman は応答の横にステータスコードを表示する。よくある原因は以下だ:

ペアを合わせる

症状と原因を照合する

  • 401 Unauthorizedキーがない、打ち間違えている、または変数が定義されていないため {{api_key}} が空
  • 404 Not FoundURL が間違っている: base_url が /v1 で終わり、パスが /chat/completions であることを確認する
  • モデルに言及するエラーモデル ID が短縮されている。deepseek-ai/DeepSeek-V4-Flash-0731 のような完全な ID を使う

Postman 固有の確認事項が2つある。401 が出る、または URL が間違っているように見える場合は、選択中の環境で base_url と api_key が定義されているか確認する。キーは正しそうなのに 401 が出る場合は、Authorization タブをもう一度開く。Auth Type は No Auth ではなく Bearer Token でなければならない。これらのコードについて詳しくは API 401 or 404 error。どの ID を使うか迷ったら、List models with GET /v1/models がすべて返してくれる。

満足したら Save を押し、リクエストに名前を付けてコレクションを選ぶ。次回は content フィールドだけを編集するか、model 行を変えて回答を比較すればよい。完全な API リファレンスは the CheapTokens docs にある。