Grok API:プログラムからGrokを呼び出す
Grokモデルは、xAI公式APIやOpenRouterなどのルーター経由で開発者に提供されています。いずれもOpenAI互換フォーマットに対応しており、数分で導入できます。

コードからGrokを利用する2つの方法
開発者がGrokモデルを呼び出す方法は主に2つあります。1つ目は公式のxAI APIです(現在SpaceXSIブランドで展開中)。キーはconsole.x.aiから取得できます。2つ目はOpenRouterなどのモデルルーターを利用する方法で、1つのキーと請求管理だけで複数のプロバイダーのモデルを利用できます。どちらもOpenAIのChat Completions形式のリクエストに対応しているため、ベースURLとモデル名を変更するだけで公式のOpenAI SDKをそのまま使用可能です。
どちらのルートを選ぶべきか
- xAI API: Grokのすべての最新機能を最速で使いたい場合におすすめです。全モデルへのアクセス、Responses API、サーバーサイドのWeb検索やX検索ツール、Grok Imagineによる画像・動画生成、音声、バッチ処理、プロンプトキャッシュ割引などが揃っています。ベースURL:
https://api.x.ai/v1 - OpenRouter: 個別の契約を結ぶことなくGrokと他社のモデルを切り替えて使いたい場合や、すでにOpenRouterアカウントをお持ちの場合におすすめです。ベースURL:
https://openrouter.ai/api/v1、モデルIDにはx-ai/というプレフィックスが付きます。セットアップ手順はOpenRouterクイックスタートをご覧ください。
どちらの方法でも、APIキーは必ずサーバー上や環境変数で管理してください。誰でも見られるWebページのフロントエンドやモバイルアプリ内に直接埋め込むことは避けてください。
xAI APIへの最初のリクエスト
コンソールでキーを作成し、XAI_API_KEYとして保存した上で、Grok 4.7にメッセージを送信します:
curl
curl https://api.x.ai/v1/chat/completions \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-4.7",
"reasoning_effort": "low",
"messages": [
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "初マラソンに向けたアドバイスを3つ教えてください。"}
]
}'
Python(OpenAIライブラリを使用)
import os
from openai import OpenAI
grok = OpenAI(
api_key=os.environ["XAI_API_KEY"],
base_url="https://api.x.ai/v1",
)
answer = grok.chat.completions.create(
model="grok-4.3",
reasoning_effort="medium",
messages=[{"role": "user", "content": "391は素数ですか?確認プロセスも示してください。"}],
)
print(answer.choices[0].message.content)
reasoning_effortは、モデルが回答する前に思考する深さを制御します。Grok 4.3はnone、low、medium、high、xhighを受け付け、デフォルトはlowです。Grok 4.7はlow、medium、high、xhighを受け付け、デフォルトはhighです。Grok 4.20について、xAIはgrok-4.20-0309-reasoningとgrok-4.20-0309-non-reasoningという個別のIDを提供しています。
OpenRouterを経由する場合
OpenRouterでは、キーをOPENROUTER_API_KEYに設定し、x-ai/で始まるIDを使用します。OpenRouterでは思考の制御にreasoningオブジェクトを使用します。以下のJavaScriptはNode.js 18以降で動作します:
const endpoint = "https://openrouter.ai/api/v1/chat/completions";
const reply = await fetch(endpoint, {
headers: {
Authorization: `Bearer ${process.env.OPENROUTER_API_KEY}`,
"Content-Type": "application/json",
},
method: "POST",
body: JSON.stringify({
model: "x-ai/grok-4.20",
reasoning: { enabled: false },
stream: false,
messages: [{ role: "user", content: "次の見出しをもっと落ち着いたトーンに書き換えてください: PRICES EXPLODE AGAIN" }],
}),
});
const json = await reply.json();
console.log(json.choices[0].message.content);
モデルに思考させたい場合は、代わりにreasoning: { effort: "low" }(またはmedium、high)を送信します。思考プロセス自体は使用するが出力には含めたくない場合は、exclude: trueを追加してください。stream: trueを設定すると生成されたテキストから順次受信できるため、チャットUIの体感速度が大幅に向上します。
画像の送信
Grok 4.20、4.3、4.7はいずれも画像の読み取りに対応しています。OpenAI形式と同様にパーツのリストでメッセージを構成します。xAIの公式仕様では最大20MiBのJPEGおよびPNG画像を受け付けており、公開URLとbase64データURLのどちらも利用可能です。
{
"model": "grok-4.20-0309-non-reasoning",
"messages": [{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "https://example.com/receipt.png"}},
{"type": "text", "text": "このレシートに記載されている品目と合計金額をリストアップしてください。"}
]
}]
}
GrokのモデルIDと料金
以下はOpenRouterが現在SpaceXAI向けに掲載しているテキストモデル、コンテキストサイズ、および100万トークンあたりの料金です(OpenRouterの定価、2026年10月時点)。xAI APIでも、20万トークン未満のプロンプトでは同等の基本料金が適用されます。
| モデル | OpenRouter ID | xAI ID | コンテキスト(トークン) | 入力 / 出力(100万トークンあたり) |
|---|---|---|---|---|
| Grok 4.7 | x-ai/grok-4.7 | grok-4.7 | 500,000 | $2 / $6 |
| Grok 4.6 | x-ai/grok-4.6 | grok-4.6 | 500,000 | $2 / $6 |
| Grok 4.5 | x-ai/grok-4.5 | grok-4.5 | 500,000 | $2 / $6 |
| Grok 4.3 | x-ai/grok-4.3 | grok-4.3 | 1,000,000 | $1.25 / $2.50 |
| Grok 4.20 | x-ai/grok-4.20 | grok-4.20-0309-reasoning または -non-reasoning | 2,000,000 | $1.25 / $2.50 |
| Grok 4.20 Multi-Agent | x-ai/grok-4.20-multi-agent | grok-4.20-multi-agent-0309 | 2,000,000 | $1.25 / $2.50 |
| Grok Build 0.1 | x-ai/grok-build-0.1 | grok-build-0.1 | 256,000 | $1 / $2 |
xAIのモデルと価格設定ページからの詳細情報(xAI定価、2026年10月時点):
- 長文プロンプトの料金: プロンプトが20万トークンに達すると、リクエスト全体に高価格帯が適用されます(Grok 4.7は$4 / $12、Grok 4.3と4.20は$2.50 / $5)。
- キャッシュされた入力の割引: 繰り返されるプロンプトプレフィックスに対して割引が適用され、100万トークンあたりGrok 4.7は$0.50、Grok 4.3と4.20は$0.20となります。
- バッチ処理: 即時応答が不要なジョブには割引が適用され、OpenRouterでも
x-ai/grok-4.3:batchが$1 / $2で提供されています。 - ソースによるコンテキスト表記の違い: OpenRouterではGrok 4.20のコンテキストが2,000,000トークンと記載されていますが、xAI公式のモデルページでは1,000,000トークンとなっています。
思考トークンも出力としてカウントされるため、推論モデルではトークン単価の印象よりも回答あたりのコストが高くなる場合があります。
活用のヒント
- 日常的な用途にはGrok 4.20 non-reasoningから始める: チャット、テキストのリライト、情報抽出などに最適で、高速かつ安価です。速度よりも難度の高いタスクの品質を重視する場合は、Grok 4.3や4.7への切り替えを検討してください。
- 知識のカットオフに注意: xAIによると、Grok 4.7の知識は2026年5月までの出来事となっています。それ以降の最新情報については、プロンプトにコンテキストとして含めるか、xAIのサーバーサイドWeb・X検索ツール(呼び出しごとに課金)をご活用ください。
- システムメッセージを活用する: 求める役割、トーン、出力形式を明確に指定してください。プログラムで回答をパースする場合は、スキーマ付きのJSON出力を指定するのが確実です。
- レート制限への対処: 429レスポンスを受け取った場合は、短い待機時間を挟んでリトライするように実装してください。
- 規約の遵守: API利用にはxAIの利用規約(AUP)が適用されます。
safety_identifierフィールドを使用することで、エンドユーザーごとのリクエスト識別が可能です。
トラブルシューティング
- 401または403エラー: キーが未設定、失効している、または異なる環境に読み込まれています。キーが正しく存在しているか、サーバー上で先頭数文字を出力して確認してください。
- Model not found(モデルが見つからない): プレフィックスを確認してください。OpenRouterでは
x-ai/grok-4.7、xAIではプレフィックスなしのgrok-4.7を指定します。 - 推論モデルからの応答が空、または極端に遅い: 思考プロセスで出力トークン枠(budget)を使い果たしている可能性があります。思考レベルを下げるか、
max_tokensを増やしてください。 - 画像が拒否される: JPEGまたはPNG形式に変換し、ファイルサイズが制限内に収まっていることを確認してください。
よくある質問
Grok APIはOpenAI SDKと互換性がありますか?
はい。SDKの接続先をxAIキーでhttps://api.x.ai/v1に設定するか、OpenRouterキーでOpenRouterに設定し、各GrokモデルIDを指定するだけで使用できます。
無料のGrok APIはありますか?
恒久的な無料プランは提供されていません。xAIとOpenRouterのどちらもトークンごとの従量課金制ですが、少量のテスト程度であれば非常に安価に試すことができます。
Grok APIで画像を生成できますか?
はい。xAIの画像生成専用エンドポイント経由でGrok Imagineモデルを利用できます。詳細はGrok Imagineのページをご覧ください。当サイトのチャットでは画像生成は行えません。
Grok.OnlineではどのGrokモデルが使われていますか?
当サイトのチャットでは、OpenRouter経由で思考無効のGrok 4.20、低推論設定のGrok 4.3、および1日10件まで利用可能なGrok 4.7を提供しています。


