はじめにガイド
Postman で OpenAI 互換 API への最初のリクエスト
変数に保持した Bearer キーを使って Postman から chat/completions リクエストを送り、回答と usage フィールドを読む。

API キーはあるが、コードを1行も書く前に実際に何が送受信されるのかを確認したい。Postman はまさにその用途に適している。URL、キー、JSON ボディを入力して Send を押せば、すぐ下に応答が表示される。CheapTokens の場合、リクエストは POST https:/ で、Authorization: Bearer キーとモデル名を指定する JSON ボディを使う。
以下の手順は Postman 自身のドキュメント(v12、ドキュメントサイト上の最新バージョン、2026年10月31日確認)に従っている。ターミナルの方がよければ、同じリクエストは Your first API request with CheapTokens にある。

4つの手順でセットアップ#
必要なものはわずかだ。ベース URL、キー、モデル ID、そして1つのメッセージ。Postman は最初の2つを変数に保持するので、キーをリクエスト自体に貼り付けることはない。
順番に並べる
Postman のセットアップを順に進める
項目をドラッグするか矢印を使う
- 変数 base_url と api_key を定義する
- HTTP リクエストを作成する: {{base_url}}/chat/completions に POST
- Authorization タブで Bearer Token を選び、{{api_key}} を入力する
- Body タブで raw > JSON を選び、ボディを貼り付けて Send を押す
各手順の詳細をいくつか。
リクエストを作成する。 左サイドバーの Add アイコンをクリックし、HTTP を選ぶ。メソッドのドロップダウンはデフォルトで GET なので、POST に切り替えて URL を入力する。Postman の変数は {{variable_ と書く。ドキュメントでは {{base_url}} を例として使っている。base_url を https:/ として定義すれば、URL フィールドは {{base_ になる。Postman は変数を文字列として保存するが、ここでは問題ない。
キーを追加する。 Authorization タブを開き、Auth Type のドロップダウンで Bearer Token を選び、Token フィールドに {{api_key}} を入れる。Postman はこれを Bearer 形式で Authorization ヘッダーとして送信する。ドキュメントもまさにこれを推奨している。トークンは変数に保持し、名前で参照する。この習慣がなぜ重要かは Store an API key safely にある。
ボディを書く。 Body タブで raw を選び、ドロップダウンで JSON を選ぶ。raw ボディの場合、Postman が対応する Content-Type を自動で設定するので、そのヘッダーを自分で追加する必要はない。以下を貼り付ける:
{
"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]. も確認する。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-(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 にある。



