3行でいうと

  • 入口は、console.x.ai でのアカウント作成とクレジットの追加、APIキーの作成、環境変数 XAI_API_KEY、そして https://api.x.ai/v1 への呼び出しです。公式の最初の例は、新しい Responses API(/v1/responses)で書かれています。
  • OpenAIのSDKは、base_url を https://api.x.ai/v1 に向けるだけで使えます。ただし、古い Chat Completions は公式が「Legacy」「Deprecated」と書き、新機能は Responses API に先に入ります。両者は、会話の保存、推論の扱い、ツールの範囲が違います。
  • 既定では、Responses API の入力と出力はサーバーに30日間保存されます(store の既定が true)。APIの入力と出力は、明示の許可なしには学習に使わない、と公式は書いています。保存を止める手段は、リクエストごとの store: false と、チーム全体のゼロデータ保持(ZDR)です。ZDRを入れると使えなくなる機能が多くあります。
  • 上限は、チームごと・モデルごとの「1秒あたりの要求数」と「1分あたりのトークン数」で、累計の支払額で段階が上がります。超えると429です。公式は、費用を見る道具として、応答の usage.cost_in_usd_ticks を用意しています。

この記事は、実際に使って確かめた記録ではありません。運営者はGrokを入れていますが、使い心地はこの記事には書いていません。この記事は、2026年10月24日に公式ドキュメントを読んでまとめたものです。コードは、公式ページの例を読んで写したものか、公式の説明から抜き出した短い断片で、実行していません。公式の文章は要約として取得したため、読み切れていない箇所は「確認できていない」と書いています。価格、上限、モデル名は変わることがあります。法律や契約の助言ではありません。

先に結論

前提:用語をそろえる

1. コンソールとAPIキー

公式に書かれている流れ

Quickstart(docs.x.ai/developers/quickstart)の手順は、次のとおりです。

  1. console.x.ai でアカウントを作り、APIを使う前にクレジットを追加する。
  2. xAIコンソールの「API Keys」のページでキーを作る。
  3. キーを環境変数に入れる(シェルなら下の1行目、プロジェクトの .env なら2行目)。
export XAI_API_KEY="your_api_key"
XAI_API_KEY=your_api_key

この記事では、console.x.ai を開いて画面を確かめることができませんでした(取得に失敗しました)。クレジットの追加額、最低額、自動チャージがAPIにあるか、といった画面の細部は、読んだ範囲では見つかっていません。公式の記述から読み取れたコンソールの場所は、次の表のとおりです。

項目 公式の書き方 書かれている場所
APIキーの作成と管理 「API Keys」のページ。漏れた疑いのあるキーは、ここで無効にするか削除して、作り直す Quickstart、データとプライバシーのFAQ
チームのモデルと上限 「Models」のページ。自分のティアとモデルごとの上限が出る Rate Limits
課金の詳細 「Manage Billing」(/console/billing) Pricing
ZDRの切り替え 「Team Settings」のZDRの行(チーム管理者のみ) データとプライバシーのFAQ
管理用のキー 「Settings」の「Management Keys」 Management APIのガイド
試す場所 チームのプレイグラウンド、音声と画像のプレイグラウンド Overview

キーの扱い:公式が書いていること

データとプライバシーのFAQは、APIキーについて次のように書いています。

Quickstartの例のうち、OpenAIのPython SDKの例は、キーの置き場所に <YOUR_XAI_API_KEY_HERE> と書かれています。他の例は環境変数を読む形です。コードに直接書く形は、写さないほうが安全です(僕らの見立てです)。

キーの権限と上限:Management API

公式には、キーを人の手ではなくプログラムで管理する「Management API」があります。概要によると、企業向けで、コンソールの代わりにチームの情報を扱う入口です。ベースURLは https://management-api.x.ai(推論のAPIとは別)で、認証には、推論用のAPIキーとは別の「管理キー」を使います。

公式の例(キーの作成)は次のとおりです。

curl https://management-api.x.ai/auth/teams/{teamId}/api-keys \
    -X POST \
    -H "Authorization: Bearer <Your Management API Key>" \
    -d '{"name": "My API key", "acls": ["api-key:model:*", "api-key:endpoint:*"], "qps": 5, "qpm": 100, "tpm": null}'

読んだ範囲で分かる決まりです。

管理キーの作り方の細かい画面や、コンソール側でキー単位の上限を付けられるかは、読んだ範囲では見つかりませんでした。

キーの上にもう一段の確認を足す、企業向けの「mTLS認証」もあります。support@x.ai に頼んで有効にし、呼び先を mtls.api.x.ai に替え、クライアント証明書を付けます。公式は、APIキーは引き続き必要で(置き換えではない)、証明書の失敗は403、キーの不備は401だと書いています。設定はチーム全体にかかり、mTLSは今のところグローバルのエンドポイントだけで動きます。地域別のエンドポイントと使いたいときは、サポートに連絡するよう公式は書いています。

2. 最初の1回:公式の最小の例

Quickstartは、最初のテキストの例として、モデル grok-4.7 に「次の関数を直して、バグを説明して」と頼む形を載せています。以下は公式の例です(実行はしていません)。

curl https://api.x.ai/v1/responses \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-4.7",
    "input": "Fix this function and explain the bug: function median(a){a.sort();return a[a.length/2]}"
  }'

Python(OpenAIのSDK)の公式の例です。

from openai import OpenAI

client = OpenAI(
    api_key="<YOUR_XAI_API_KEY_HERE>",
    base_url="https://api.x.ai/v1",
)

response = client.responses.create(
    model="grok-4.7",
    input="Fix this function and explain the bug: function median(a){a.sort();return a[a.length/2]}",
)

print(response.output_text)

JavaScript(OpenAIのSDK)の公式の例です。こちらは環境変数を読みます。

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env.XAI_API_KEY,
  baseURL: 'https://api.x.ai/v1',
});

const response = await client.responses.create({
  model: 'grok-4.7',
  input: 'Fix this function and explain the bug: function median(a){a.sort();return a[a.length/2]}',
});

console.log(response.output_text);

xAI専用のPython SDKの公式の例です。

import os
from xai_sdk import Client
from xai_sdk.chat import user

client = Client(api_key=os.getenv("XAI_API_KEY"))

chat = client.chat.create(model="grok-4.7")
chat.append(user("Fix this function and explain the bug: function median(a){a.sort();return a[a.length/2]}"))

print(chat.sample().content)

Vercel AI SDKの公式の例です。

import { xai } from '@ai-sdk/xai';
import { generateText } from 'ai';

const { text } = await generateText({
  model: xai.responses('grok-4.7'),
  prompt: 'Fix this function and explain the bug: function median(a){a.sort();return a[a.length/2]}',
});

console.log(text);

インストールのコマンドも、公式のQuickstartに4通り並んでいます:pip install openai、npm install openai、pip install xai-sdk、npm install ai @ai-sdk/xai zod。

画像の生成も、Quickstartの次の手順にあります。公式のcurlの例は次のとおりです。

curl -X POST https://api.x.ai/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -d '{
    "model": "grok-imagine-image-2.0",
    "prompt": "A futuristic city skyline at sunset"
  }'

画像、動画、音声は、費用と提供地域の条件がテキストと違います(後の「料金」と「データの扱い」を参照)。

3. OpenAI互換の呼び方:何が同じで、何が違うか

向け先を変えるだけで使える、が公式の書き方

OpenAIのSDKは、base_url(JavaScriptは baseURL)を https://api.x.ai/v1 にして、api_key にxAIのキーを渡します。呼び先は、/v1/responses(推奨)と /v1/chat/completions(Legacy)です。モデルの一覧は GET /v1/models などで取れ、応答にモデルの別名(aliases)と価格が含まれます。

一方、公式は「OpenAIと完全に同じ」とは書いていません。読んだ範囲では、OpenAIとの互換の範囲を一覧にしたページは見つかりませんでした。次のような違いが、各ページに散らばって書かれています。

Responses API と Chat Completions の違い

公式の移行ページ(Migrating to Responses API)の比較を、表にまとめます。

項目 Responses API Chat Completions(Legacy)
公式の位置づけ 推奨。新機能が先に入る 「Deprecated」「Legacy endpoint, limited updates」(移行ページ)。別のページでは「legacy endpoint」。終了日は読んだ範囲では見つからなかった
会話の続き previous_response_id で、新しい入力だけ送る 毎回、履歴を全部送る
サーバーでの保存 30日間(store の既定が true) 保存しない
推論モデルの扱い 暗号化された推論内容に対応 推論内容は返らない
ツール 検索、コード実行、MCPなどの組み込みツール 関数呼び出しのみ
履歴の課金 会話の履歴は自動でキャッシュされる 毎回、全履歴が課金される

パラメータの対応は、messages → input、max_tokens → max_output_tokens、そして Responses にだけある previous_response_id、store、include です。応答の形も違い、Chat Completionsは choices[0].message.content、Responsesは、型つきの項目の並びである output です(SDKなら response.output_text で取れます)。

移行の手順は、公式では次のとおりです。

  1. Vercel AI SDK:xai('...') を xai.responses('...') に替える。
  2. OpenAI SDK(JavaScript、Python):chat.completions.create を responses.create に、messages を input に替える。
  3. curl:呼び先を /v1/chat/completions から /v1/responses に、本文の messages を input に替える。

公式は、この移行は「ほとんどの用途で動く」と書き、特殊な使い方は、Responses APIのドキュメントを見るよう案内しています。

長い応答のタイムアウト

公式の例(Chat Completionsのページ、ストリーミングのページ)は、推論モデルのために、クライアントのタイムアウトを延ばしています。PythonのOpenAI SDKは httpx.Timeout(3600.0)、JavaScriptは timeout: 360000(ミリ秒)、curlは -m 3600、xai-sdkは timeout=3600 です。JavaScriptの 360000 は6分で、他の例(3600秒)より短い点に注意してください。ベストプラクティスのページは、クライアントのタイムアウトを900秒以上(長い評価なら1800秒以上)にし、ストリーミングを使うと長い生成が途中で切れにくい、と書いています。SDKの既定のタイムアウトのままでは、推論の長い応答が切れることがある、と読めます。

4. 会話を続ける、保存する、消す

既定は「保存する」

Responses APIでは、プロンプト、推論内容、応答が、既定でxAIのサーバーに保存されます。公式は、この挙動が「オンが既定」だと書いています。保存は30日間で、その後は削除されます。保存されている間は、応答のIDで取り出す(GET /v1/responses/{response_id})、続きを頼む、削除する(DELETE /v1/responses/{response_id})ことができます。保存を止めるには、リクエストに store: false(xAI SDKでは store_messages=False)を付けます。

公式のページにある断片です(短縮・つなぎ合わせで、完全な例ではありません)。

# 続きを頼む(新しい入力だけを送る)
response = client.responses.create(
    model="grok-4.7",
    previous_response_id=response.id,
    input=[{"role": "user", "content": "How do stars form?"}],
)

# 保存しない
#   OpenAI SDK:  store=False
#   xAI SDK:     client.chat.create(model="grok-4.7", store_messages=False)

履歴を自分で持つ形(store: false)の最小の骨組みです。公式のText Generationのページにある2つの断片(store=False の例と、*response.output を次の入力に足す例)を、僕らがつないだもので、公式の1つの例ではありません。実行していません。

first = client.responses.create(
    model="grok-4.7",
    store=False,                                   # サーバーに保存しない
    include=["reasoning.encrypted_content"],       # 暗号化された推論内容を請求
    input=[{"role": "user", "content": "What is the capital of France?"}],
)

second = client.responses.create(
    model="grok-4.7",
    store=False,
    include=["reasoning.encrypted_content"],
    input=[
        {"role": "user", "content": "What is the capital of France?"},
        *first.output,                             # 前の出力を、そのまま足す
        {"role": "user", "content": "And its population?"},
    ],
)

保存を止めたいときの選択肢

方法 範囲 公式が書く条件・副作用
store: false そのリクエストだけ previous_response_id で続けられなくなる。履歴は自分で持つ
ZDR(ゼロデータ保持) チーム全体 次の節。使えなくなる機能が多い

5. SDKの選び方

SDK 公式が書いていること 注意(読んだ範囲)
OpenAI SDK(Python、JavaScript) base_url をxAIに向けて使う。応答の取得と削除も対応 互換の範囲の一覧は見つからなかった。費用は usage.cost_in_usd_ticks から自分で計算する
xai-sdk(Python) 公式のPython SDK。gRPCベースで、同期の Client と非同期の AsyncClient がある。Python 3.10以上、Apache-2.0(公式GitHub) 状態(ベータか)は、GitHubのページに書かれていなかった。最新版の番号と日付も、読めていない。XAI_API_KEY があれば Client() と書ける
Vercel AI SDK(@ai-sdk/xai) xai.responses('モデル名')(Quickstartの例) 応答の取得と削除は対応外(公式は、取得と削除にはOpenAI SDKを使うよう書いている)。費用の表示と、環境変数の読み込みの既定は、読んだ範囲では確認できなかった
LiteLLM 公式のCommunityのページが挙げている。モデル名とキーを変えるだけでGrokに替えられる、と書かれている コミュニティの連携として載っている

xai-sdk には、費用を直接見る cost_usd という項目があります(Cost Trackingのページ)。ストリーミングでも、各チャンクが走っている合計を持ちます。

公式の統合ページ(Platforms)には、Google Cloud Vertex AI と Microsoft Foundry の項目もあります。この記事では中身を読んでいません。

6. 推論、ストリーミング、構造化出力:最初に知っておく点

推論の深さ

grok-4.7 では、推論を切ることはできません。深さは reasoning.effort で指定します。公式の例(reasoning={"effort": "high"}、システムメッセージと数学の証明の質問を渡す形)を、深さを medium に、入力を短く書き換えた断片です。

response = client.responses.create(
    model="grok-4.7",
    reasoning={"effort": "medium"},
    input=[{"role": "user", "content": "Compare two sorting algorithms for nearly sorted data."}],
)
print(response.usage)  # usage metrics include reasoning_tokens

low は速さ重視、medium は複雑な分析や長い文脈、high(既定)は難しい数学や多段の論理、xhigh は最大の深さで遅延が増える、と書かれています。推論のトークンは請求に含まれます。presencePenalty、frequencyPenalty、stop を付けると、推論モデルではエラーになります。ベストプラクティスは、サーバーの既定の変更に結果が左右されないよう、深さを毎回、明示するよう勧めています。

ストリーミング

"stream": true で、サーバー送信イベント(SSE)として届きます。読んだStreamingのページは、主にChat Completionsの形で書かれていて、Responses APIのイベントの種類は、そのページには書かれていませんでした。リファレンスの記述では、Responsesでも stream を付けると、data: [DONE] で終わるSSEです。画像生成のモデルは、ストリーミングに対応しません。

費用をストリーミングでも取りたいときは、リクエストの本文に、次の2つの項目を入れます(Cost Trackingのページの記述から抜き出した断片で、本文の残りは省略しています)。費用の入った usage は、最後のチャンクにだけ出ます。

{
  "stream": true,
  "stream_options": { "include_usage": true }
}

構造化出力(JSONの形を決める)

Responses APIでは、text.format に JSONスキーマを渡します(type: "json_schema"、name、schema、strict: true)。PythonではPydantic、JavaScriptではZodから、スキーマを作る補助が使えます。公式の対応表には、使える型、文字列の形式(日付、メール、UUIDなど)、文字数や項目数の上限(minLength と maxLength は2,048まで、minItems と maxItems は256まで、など)があり、一部の書き方は400エラーになり、一部は「受け付けるが保証しない」とされています。厳密に守らせたいときは、出力を自分でも検証するよう、公式は書いています。additionalProperties の既定は false です。

公式のStructured Outputsのページには、OpenAI SDKの client.responses.parse にPydanticのモデルを渡す例があります(text.format に json_schema を直接書く形のPythonの例は、読んだページにはなく、JavaScriptの例にありました)。骨組みは次のとおりです。公式の例の流れを短く書き直した断片で、実行していません(公式の例は、ProofInfo というモデルと、Web検索ツールを組み合わせています)。

from pydantic import BaseModel

class ProofInfo(BaseModel):
    name: str
    authors: str
    year: str
    summary: str

response = client.responses.parse(
    model="grok-4.7",
    input="...質問...",
    text_format=ProofInfo,
)
proof = response.output_parsed   # ProofInfo のオブジェクトで受け取れる

xai-sdk(Python)では、chat.parse(ProofInfo) が、生の応答と、解釈済みのオブジェクトの2つを返す、と書かれています。

7. レート制限と、エラーの読み方

上限の決まり

公式のRate Limitsのページによると、上限は、チームごと・モデルごとに、1秒あたりの要求数(RPS)と1分あたりのトークン数(TPM)の2つの軸があります。1秒あたりの要求数は、1分あたりの要求の枠を48で割った値(最小2)から作られ、1秒に1分ぶんを使い切るような集中を防ぎます。TPMに数えられるのは、入力(テキスト、画像、音声)、出力、推論、キャッシュされた入力のすべてです。キャッシュされたトークンは、請求は安くなりますが、TPMには数えられます。

ティアは、2026年1月1日以降の累計のAPI支払額で、自動で上がり、下がりません。公式は、前払いクレジットの購入と、支払いが済んだ請求書を通じて受け取った額で決まる、と書いています。一度上がったティアは、下がりません。

ティア 累計の支払額
Tier 0 $0(既定)
Tier 1 $50
Tier 2 $250
Tier 3 $1,000
Tier 4 $5,000
Enterprise 要相談

主なモデルの上限(Tier 0からTier 4の順)は、2026年10月24日に読んだ内容で、次のとおりです。

モデル RPS TPM
grok-4.7、grok-4.6、grok-4.5 150、172、208、312、500 50M、53M、60M、74M、100M
grok-4.3、grok-4.20-0309-reasoning、grok-4.20-0309-non-reasoning、grok-build-0.1 37、50、75、125、208 10M、15M、25M、45M、85M
grok-4.20-multi-agent-0309 9、12、18、31、56 2.5M、3.7M、6.2M、11M、21M
grok-imagine-image-2.0 6、12、25、50、100 表示なし
grok-imagine-video-1.5 10、20、39、79、158 表示なし

音声は、grok-voice-3.0の同時セッション数が、Tier 0〜4で10、20、50、100、200です。Text to SpeechとSpeech to Textにも別の表があります。Speech to Speechは同時セッション数だけで制限されますが、その値の表は、読んだページにはありませんでした。

import time
from openai import RateLimitError

def create_with_backoff(client, max_retries=5, **kwargs):
    for attempt in range(max_retries):
        try:
            return client.responses.create(**kwargs)
        except RateLimitError:
            if attempt == max_retries - 1:
                raise                      # 最後の試行は、そのまま投げる
            time.sleep(2 ** attempt)       # 1, 2, 4, 8 秒と伸ばす

この断片は429(RateLimitError)だけを扱います。5xxも再試行する場合は、その分の例外を足す必要があります(公式のベストプラクティスの勧めを、僕らが読み替えた点です)。 - Batch APIのリクエストは、レート制限に数えられない、とPricingのページにあります。

HTTPのエラー

公式のDebugging Errorsのページの表です。

コード 意味 公式が示す対処
400 リクエストの形が悪い 本文やURLを確かめる
401 認証の失敗(ヘッダーがない、キーが無効) Authorization: Bearer <キー> を付ける。必要ならコンソールで新しいキーを作る
403 アクセス拒否 チームの管理者に権限を頼む
404 見つからない 本文とURLをリファレンスと照らす
405 HTTPのメソッドが違う リファレンスで確かめる
415 対応しない内容の種類 対処は書かれていない
422 本文の項目の形式が不正 本文をリファレンスと照らす
429 上限に達した 送る頻度を下げる。コンソールで上限を上げる
202(成功の一種) 遅延リクエストが受け付けられたが、結果はまだ 待ってから、もう一度取りに行く

このページには、402(支払い関連)の記述、エラー本文の形、リクエストID、5xxの扱い、再試行の方針は書かれていませんでした。障害が疑われるときは status.x.ai(RSSは status.x.ai/feed.xml)を見る、バグの報告は support@x.ai か、Discordの #help へ、とあります。

8. 料金の見方

モデルごとの単価表(grok-4.7 の入力$2.00、キャッシュ入力$0.50、出力$6.00、プロンプトが200k以上だと$4.00、$1.00、$12.00、など)は、前のガイド(03)に載せました。2026年10月24日にPricingのページを読み直した範囲では、03の表と同じでした。ここでは、請求の「仕組み」を、公式の記述から並べます。

# Chat Completions
extra_headers={"x-grok-conv-id": "conv_abc123"}
# Responses API
extra_body={"prompt_cache_key": "b79ad29b-b3f9-463c-bca6-041d5058d366"}

キャッシュに当たった量は、Responsesなら usage.input_tokens_details.cached_tokens で見ます。ゼロのままなら、キーが一定か、前の項目が変わっていないかを確かめる、とベストプラクティスにあります。会話には後ろへ足すだけにして、静的な指示や資料を先頭に置くのが公式の勧めです。公式は、キャッシュが効く最小のトークン数は書いていません。

自分の使った分を、リクエストごとに見る

応答の usage の中に cost_in_usd_ticks があります。公式は次のように書いています。

公式のPythonの断片です。

cost_ticks = completion.usage.cost_in_usd_ticks
cost_usd = cost_ticks / 1e10
print(f"Cost: ${response.cost_usd:.6f}")   # xAI SDK

Responses APIのリファレンスには、usage.cost_in_nano_usd という欄もあります。2つの単位の関係は、読んだ範囲では、ティックのほうしか説明がありませんでした。Cost Trackingのページは、コンソールや請求の画面での合計の見方には触れていません。

9. データの扱い(APIの場合)

アプリ(grok.comなど)のデータの設定は、前のガイド(02)です。APIは、別の仕組みと別の文書です。同じアカウントでも、アプリのData Controlsの設定が、APIの扱いを決めるとは、読んだ範囲では書かれていません。

公式のFAQが書いていること

ゼロデータ保持(ZDR)

公式は、ほとんどの顧客にはZDRを勧めず、コンプライアンス上、本当に必要なときだけ有効にするよう書いています。

利用者を区別する「safety identifier」

自分のサービスの利用者が使うAPIなら、利用者ごとの、固定で不透明なID(ハッシュ化したもの。メール、電話番号、表示名は入れない)を、リクエストの safety_identifier に付けるよう、公式は書いています。これにより、規約違反が起きたとき、キー全体ではなく、その利用者に結びつけられます。ゲートウェイや、1つのキーを共有するサービスで特に重要です。古い user の欄も使えます。2026年9月のRelease Notesで、safety_identifier が Chat Completions、Responses API、Batch APIなどで受け付けられるようになりました。

米国のエンドポイント

https://us.api.x.ai/v1 は、全チームが使えて、既存のキーがそのまま通ります。対象は grok-4.7 と grok-4.6 だけで、他のモデル名(grok-latest を含む)は404になります。画像、動画、音声は使えません。保証されるのは、APIサーバーでのリクエストの処理、モデルの推論、安全のための審査、保存されるメタデータ・入力・出力の米国内での保存です。保証されないのは、Files、Collections、サーバー側ツール(Web検索、X検索、コード実行)、利用者側からの通信経路です。公式は「地域別のエンドポイントは、それだけでは、データの所在地の包括的な保証ではない」と書いています。契約上の要件があるときは、sales@x.ai に先に相談するよう案内されています。Python の xai_sdk には、完全なURLではなく us.api.x.ai を渡します。

企業向けの規約:読んだ範囲

FAQは、Enterprise Terms of Service と Data Processing Addendum(DPA)を、x.ai/legal の資料としています。2026年8月14日更新のEnterprise Terms of Serviceを、要約で読んだ範囲では、次のような記述がありました。僕らには、これがセルフサービスでコンソールから登録した人にも同じように適用されるのかは確認できていません。契約の内容は、必ず公式の原文で確かめてください。

データとプライバシーのFAQは、SOC 2 Type 2に準拠していると書いています(詳細はNDAのもと、Trust Centerで)。HIPAAについては、準拠を主張しておらず、BAAの申請の道がある、という書き方です。GDPRについての記述は、読んだページにはありませんでした。

10. 最初の10分でやること(公式に書かれている範囲)

  1. console.x.ai でアカウントを作り、クレジットを追加する(Quickstart)。
  2. 「API Keys」でキーを1つ作り、XAI_API_KEY に入れる。.env を使うなら、リポジトリに入れない(Quickstart、FAQ)。
  3. 上のcurlの例を、1回だけ実行する。応答の本文(curlなら output、SDKなら output_text)が返ってきたことを確かめ、次に usage の中の cost_in_usd_ticks を見て、1回のおおよその費用を知る(Quickstart、Cost Tracking)。ドルにするには1e10で割る。
  4. コンソールのModelsページで、自分のティアとモデルごとの上限を見る(Rate Limits)。
  5. 保存の扱いを決める。残してよいなら既定のまま、残したくないなら store: false。チーム全体で止めたいなら、ZDRの副作用の表を先に読む(FAQ)。
  6. 利用者向けのサービスにするなら、safety_identifier を付ける設計にする(FAQ)。

僕らの見立て:作る前に決めておくこと

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

total_ticks = 0
response = client.responses.create(model="grok-4.7", input="...")
total_ticks += response.usage.cost_in_usd_ticks   # 呼び出しごとに足す
print(f"累計: ${total_ticks / 1e10:.6f}")

気をつけること

出典