DEV Community

Cover image for Grok 4.3 API の使い方
Akira
Akira

Posted on • Originally published at apidog.com

Grok 4.3 API の使い方

xAIはGrok 4.3を段階的に展開しました。2026年4月17日にベータ版、4月30日にAPIアクセス、5月6日に一般提供が開始されています。主な変更点は、1,000,000トークンのコンテキストウィンドウ、Grokシリーズ初のネイティブビデオ入力、常時稼働の推論機能、Grok 4.20比で約40%の価格引き下げです。8つのレガシーGrokモデルは5月15日に廃止されるため、grok-3またはgrok-4系を使っている場合は、早めにgrok-4.3へ移行してください。

今すぐApidogを試す

この記事では、コードからGrok 4.3を呼び出す実装手順をまとめます。エンドポイント、認証、OpenAI互換のbase_urlreasoning_effort、ビデオ入力、関数呼び出し、そしてApidogでのテスト方法を扱います。

同じリリースの音声側については、Grok Voiceを無料で使う方法をご覧ください。OpenAIの主力音声モデルとの比較については、Grok Voice vs GPT-Realtimeをご覧ください。

要点

  • Grok 4.3は2026年5月6日にGAとなりました。
  • 8つのレガシーモデルは2026年5月15日に廃止されます。
  • 価格は入力100万トークンあたり1.25ドル出力100万トークンあたり2.50ドル、キャッシュ入力は100万トークンあたり0.20ドルです。
  • Grok 4.20と比較して約40%の値下げです。
  • コンテキストウィンドウは100万トークンです。
  • Grokシリーズ初のネイティブビデオ入力をサポートします。
  • 推論エフォートはlow / medium / highです。デフォルトはmediumです。
  • エンドポイントはhttps://api.x.ai/v1/chat/completionsです。
  • OpenAI互換のChat Completions形式で呼び出せます。
  • 標準ティアのスループットは約159トークン/秒です。
  • Artificial Analysisのインテリジェンス指数は53で、146モデル中10位です。
  • Apidogを使うと、推論設定を変数化し、GrokとOpenAI互換モードの両方で同じリクエストを再生できます。

Grok 4.3で何が変わったか

Grok 4.3で実装時に影響が大きい変更は次の5つです。

1. 価格が下がった

Grok 4.20と比較して、入力は37.5%減、出力は58.3%減です。キャッシュされた入力は100万トークンあたり0.20ドルなので、長いシステムプロンプトや固定コンテキストを繰り返し使う構成ではコストを抑えやすくなります。

2. コンテキストが100万トークンになった

Grok 4.20の256kから、Grok 4.3では100万トークンに拡張されています。中規模のコードベース、長い契約書、決算説明会の全文などを1回のプロンプトに含めやすくなります。

3. ビデオURLを直接渡せる

Grokシリーズでは初めて、ネイティブビデオ入力に対応しました。アプリ側でキーフレームを手動抽出しなくても、ビデオURLをコンテンツブロックに含めて推論できます。

4. 推論が常時有効になった

Grok 4.3はすべてのリクエストでベースラインの推論ステップを実行します。reasoning_effortで深さを調整できますが、推論なしのモードにはなりません。

5. エージェント用途が改善された

Grok 4.20と比較してGDPval-AAで300 Eloポイント向上しています。ツール選択、多段階ワークフロー、ツールエラーからの回復など、エージェント実装で重要な挙動が改善されています。

前提条件

最初のリクエストを送る前に、次を用意します。

  • console.x.aiのxAIコンソールアカウント
  • APIキーを発行できる有料ティア
  • OpenAI SDKまたはxAI SDK
  • リクエストを保存・再実行できるAPIクライアント

image

APIキーは環境変数に入れておきます。

export XAI_API_KEY="xai-..."
Enter fullscreen mode Exit fullscreen mode

Pythonサンプルを動かす場合は、必要に応じてSDKをインストールします。

pip install openai
Enter fullscreen mode Exit fullscreen mode

エンドポイントと認証

Grok 4.3はOpenAI互換のChat Completionsインターフェースで呼び出します。

POST https://api.x.ai/v1/chat/completions
Enter fullscreen mode Exit fullscreen mode

認証はBearerトークンです。

Authorization: Bearer $XAI_API_KEY
Content-Type: application/json
Enter fullscreen mode Exit fullscreen mode

OpenAI SDKを使う場合は、base_urlをxAIのURLに変更します。

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["XAI_API_KEY"],
    base_url="https://api.x.ai/v1",
)

response = client.chat.completions.create(
    model="grok-4.3",
    messages=[
        {
            "role": "user",
            "content": "Summarize the trade-offs of GraphQL vs REST in three bullets."
        }
    ],
    reasoning_effort="medium",
)

print(response.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

既存のOpenAI SDKベースの実装では、主な変更点は次の2つです。

base_url = "https://api.x.ai/v1"
model = "grok-4.3"
Enter fullscreen mode Exit fullscreen mode

リクエストパラメータ

Grok 4.3でよく使うパラメータは次の通りです。

パラメータ タイプ 備考
model string grok-4.3 必須。
messages array OpenAIメッセージ形式 必須。role: system / user / assistantをサポートします。
reasoning_effort string low, medium, high オプション。デフォルトはmediumです。
max_tokens int 1–32768 出力トークン数を制限します。
temperature float 0.0–2.0 デフォルトは1.0です。
top_p float 0.0–1.0 核サンプリング。
stream bool true / false trueの場合、サーバー送信イベントでストリーミングします。
tools array OpenAIツール形式 関数呼び出しに使います。
tool_choice string / object auto, none, または特定のツール OpenAI互換の指定方式です。
response_format object { type: "json_object" } 構造化出力に使います。
seed int 任意 temperature: 0と組み合わせて再現性を高めます。

最小のcurlリクエストは次の通りです。

curl https://api.x.ai/v1/chat/completions \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-4.3",
    "messages": [
      {
        "role": "system",
        "content": "You are a senior backend engineer."
      },
      {
        "role": "user",
        "content": "Review this query plan and flag the bottleneck."
      }
    ],
    "reasoning_effort": "high"
  }'
Enter fullscreen mode Exit fullscreen mode

応答はOpenAI互換形式です。本文はchoices[].message.contentから取得します。

content = response.choices[0].message.content
Enter fullscreen mode Exit fullscreen mode

利用量はusageで確認します。

usage = response.usage

print(usage.prompt_tokens)
print(usage.completion_tokens)
print(usage.total_tokens)
Enter fullscreen mode Exit fullscreen mode

応答には、prompt_tokenscompletion_tokensreasoning_tokenstotal_tokensの内訳が含まれます。

推論エフォートの選び方

reasoning_effortは、レイテンシ、出力トークン数、推論の深さに影響します。

low

分類、要約、ルール抽出、単純なQ&Aに使います。

{
  "reasoning_effort": "low"
}
Enter fullscreen mode Exit fullscreen mode

レスポンスを速く返したいが、最低限の推論は維持したい場合に向いています。

medium

デフォルトです。カスタマーサポート、関数呼び出し、データ分析、単一ステップのツール利用など、一般的な本番トラフィックに使います。

{
  "reasoning_effort": "medium"
}
Enter fullscreen mode Exit fullscreen mode

迷った場合はmediumから始めます。

high

多段階エージェント、長いコードレビュー、複雑な数学、計画が必要なタスクに使います。

{
  "reasoning_effort": "high"
}
Enter fullscreen mode Exit fullscreen mode

精度を優先する代わりに、レイテンシとトークン消費が増えます。

Grok 4.3では推論が常時有効です。lowを指定しても推論は完全には無効になりません。低コスト・低レイテンシに寄せたい場合はlowを使い、推論そのものをゼロにする前提の設計は避けてください。

関数呼び出し

Grok 4.3ではOpenAI互換の関数呼び出し形式をそのまま使えます。

次の例では、ユーザーIDからユーザー情報を取得するlookup_userツールを定義します。

tools = [
    {
        "type": "function",
        "function": {
            "name": "lookup_user",
            "description": "Look up a user by ID.",
            "parameters": {
                "type": "object",
                "properties": {
                    "user_id": {
                        "type": "string"
                    }
                },
                "required": ["user_id"],
            },
        },
    }
]

response = client.chat.completions.create(
    model="grok-4.3",
    messages=[
        {
            "role": "user",
            "content": "Find user u_42 and tell me their last login."
        }
    ],
    tools=tools,
    reasoning_effort="medium",
)

tool_calls = response.choices[0].message.tool_calls
print(tool_calls)
Enter fullscreen mode Exit fullscreen mode

実装フローは次の通りです。

  1. toolsで呼び出し可能な関数を宣言する
  2. モデルがtool_callsを返す
  3. アプリ側で実際の関数を実行する
  4. 結果をtoolロールのメッセージとしてモデルに返す
  5. 最終回答を生成する

ツール実行後のメッセージ例です。

messages = [
    {
        "role": "user",
        "content": "Find user u_42 and tell me their last login."
    },
    response.choices[0].message,
    {
        "role": "tool",
        "tool_call_id": tool_calls[0].id,
        "content": '{"user_id":"u_42","last_login":"2026-05-01T10:30:00Z"}'
    }
]

final_response = client.chat.completions.create(
    model="grok-4.3",
    messages=messages,
    tools=tools,
)

print(final_response.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

GDPval-AAにおける300 Eloポイントの向上は、ツール選択や多段階処理で特に効きます。ツールフローを検証する場合は、ApidogでのMCPサーバーテストも参考になります。

ビデオ入力

Grok 4.3はネイティブビデオ入力をサポートします。ビデオURLは、messages[].contentの配列にvideo_urlとして渡します。

response = client.chat.completions.create(
    model="grok-4.3",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Describe what happens in this clip and flag any anomalies."
                },
                {
                    "type": "video_url",
                    "video_url": {
                        "url": "https://example.com/clip.mp4"
                    }
                },
            ],
        }
    ],
)

print(response.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

ビデオ入力で注意する点は次の通りです。

  • ビデオは入力トークンとしてカウントされます。
  • 長いクリップはコンテキストとコストを大きく消費します。
  • コストが重要な場合は、送信前にトリミングまたはダウンサンプリングします。
  • モデルがフレームをネイティブに推論するため、手動のキーフレーム抽出は必須ではありません。

100万トークンコンテキストの使いどころ

100万トークンのコンテキストは、単なるベンチマーク用ではなく、実装上も使いやすい機能です。

代表的なユースケースは次の通りです。

コードベース全体のレビュー

変更差分、関連ファイル、ログ、リント結果をまとめて渡し、レビューさせます。

以下をレビューしてください。

1. Git diff
2. 変更された全ファイル
3. テストログ
4. lint結果

観点:
- バグ
- セキュリティ
- パフォーマンス
- 後方互換性
Enter fullscreen mode Exit fullscreen mode

長文ドキュメントQ&A

契約書、仕様書、議事録などをそのまま渡し、特定の質問に答えさせます。

以下の契約書を読み、解約条項、責任制限、更新条件を要約してください。
不明点がある場合は、該当箇所を引用してください。
Enter fullscreen mode Exit fullscreen mode

長期会話履歴

エージェントの会話履歴を長く保持し、パーソナライズされた応答に使います。

キャッシュ入力は100万トークンあたり0.20ドルです。たとえば、安定した40万トークンのシステムプロンプトを使う場合、新規入力として毎回送るより、キャッシュされた呼び出しのほうが大幅に安くなります。

レガシーGrokモデルからの移行

8つのレガシーGrokモデルは2026年5月15日午後12時(PT)に廃止されます。該当モデルを本番環境で使っている場合は、期限までにmodelgrok-4.3へ切り替えてください。

基本的なリクエスト形式は変わらないため、多くの呼び出しはモデル名の変更だけで動作します。

- model="grok-4.20"
+ model="grok-4.3"
Enter fullscreen mode Exit fullscreen mode

移行時に確認すべき点は2つです。

1. reasoning_effort

一部のレガシーモデルではreasoning_effortを使っていなかった可能性があります。Grok 4.3は常に推論を実行するため、以前の高速な非推論パスと同じレイテンシを期待しないでください。

低レイテンシに寄せる場合は、まずlowで検証します。

response = client.chat.completions.create(
    model="grok-4.3",
    messages=messages,
    reasoning_effort="low",
)
Enter fullscreen mode Exit fullscreen mode

2. 出力形式

Grok 4.3はGrok 4.20よりも構造化された出力を返す傾向があります。正規表現で強く後処理している場合は、切り替え前に実データで再テストしてください。

OpenAIライン全体の価格比較については、GPT-5.5の価格設定を、推論モデルの比較については、GPT-5.5 APIの使用方法をご覧ください。

ApidogでGrok 4.3をテストする

Grok 4.3を自分のユースケースで検証するには、同じプロンプトを複数設定で比較できる形にしておくと便利です。

手順は次の通りです。

  1. Apidogで環境を作成する
  2. XAI_API_KEYを環境変数として保存する
  3. BASE_URLhttps://api.x.ai/v1を設定する
  4. reasoning_effortlowのリクエストを作る
  5. 同じリクエストを複製してmediumhighを作る
  6. 3つを実行する
  7. 応答内容、レイテンシ、usage.reasoning_tokensを比較する
  8. OpenAI互換API向けの別バリアントを作り、同じ入力でモデル比較する

リクエストURLは次のように変数化できます。

{{BASE_URL}}/chat/completions
Enter fullscreen mode Exit fullscreen mode

ヘッダーは次の通りです。

Authorization: Bearer {{XAI_API_KEY}}
Content-Type: application/json
Enter fullscreen mode Exit fullscreen mode

ボディ例です。

{
  "model": "grok-4.3",
  "messages": [
    {
      "role": "system",
      "content": "You are a senior backend engineer."
    },
    {
      "role": "user",
      "content": "Review this API design and identify risks."
    }
  ],
  "reasoning_effort": "{{REASONING_EFFORT}}"
}
Enter fullscreen mode Exit fullscreen mode

REASONING_EFFORTを環境変数またはリクエスト変数にしておくと、lowmediumhighの比較が簡単になります。

比較を実行するには、Apidogをダウンロードしてください。プロバイダーを切り替えても同じコレクションを使い回せるため、Grok 4.3と他のOpenAI互換モデルを同じ条件で比較できます。

より広いAPIテスト戦略については、QAエンジニアのためのAPIテストツールをご覧ください。

image

レート制限

xAIコンソールのティア制限は、ティア1の1分あたり数千リクエストから、エンタープライズティアの数十万リクエストまで変化します。具体的な数値は変動するため、実装前にコンソールダッシュボードを確認してください。

xAIが公開している159トークン/秒のスループットは、集計値ではなくストリームごとの出力速度です。同時リクエスト数は、契約ティアの制限内でスケールします。

レート制限に達した場合、APIは429を返します。retry-afterヘッダーを見て、指数バックオフで再試行します。

import time
from openai import RateLimitError

for attempt in range(5):
    try:
        response = client.chat.completions.create(
            model="grok-4.3",
            messages=messages,
        )
        break
    except RateLimitError as e:
        wait = min(2 ** attempt, 30)
        time.sleep(wait)
Enter fullscreen mode Exit fullscreen mode

本番環境では、次の対策を入れておくと安全です。

  • リクエストキューを使う
  • 同時実行数を制御する
  • 429をメトリクス化する
  • retry-afterを尊重する
  • 長い入力はキャッシュする
  • max_tokensを明示して出力上限を制御する

よくある質問

Grok 4.3はOpenAI SDKで使えますか?

はい。Chat CompletionsについてはOpenAI互換です。OpenAI SDKを使い、base_urlmodelを変更します。

client = OpenAI(
    api_key=os.environ["XAI_API_KEY"],
    base_url="https://api.x.ai/v1",
)
Enter fullscreen mode Exit fullscreen mode

Responses APIをサポートしていますか?

現在、xAIのインターフェースはChat Completionsです。Responses APIはOpenAI専用です。

実際のコンテキスト制限はどのくらいですか?

1,000,000トークンです。ただし、長い入力は費用が増えるため、安定したプロンプトは積極的にキャッシュしてください。

常時稼働の推論機能はレイテンシに影響しますか?

はい。非推論モデルと比較すると、最初のトークンのレイテンシはやや高くなります。一方で、Grok 4.3は約159トークン/秒でストリーミングされるため、エンドツーエンドの応答時間は競争力があります。

精度を重視するワークロードでは、このトレードオフは受け入れやすいはずです。

Grok 4.3をGrok Voiceと組み合わせて使えますか?

はい。音声エージェントであるgrok-voice-think-fast-1.0は、推論時に内部でGrok 4.3を呼び出します。TTSやSTTプリミティブ上に構築した音声ループから、Grok 4.3を直接呼び出すこともできます。

5月15日以降、古いGrok 3 / Grok 4への呼び出しはどうなりますか?

410エラー、つまりモデル廃止エラーで失敗します。期限までにgrok-4.3へ移行してください。

Grok 4.3は画像入力をサポートしていますか?

はい。新しいビデオ入力と並行して画像入力もサポートします。OpenAIと同じ形式で、コンテンツブロックに画像URLを渡します。

まとめ

Grok 4.3は、価格、コンテキスト長、推論機能、ビデオ入力の面で大きく更新されたモデルです。OpenAI互換のChat Completions形式で呼び出せるため、既存のOpenAI SDKベースの実装では、主にbase_urlmodelを変更するだけで移行できます。

最短の検証手順は、Apidoglowmediumhighの3つの推論バリアントを作り、実際のプロンプトでレイテンシ、出力品質、推論トークン数を比較することです。

レガシーGrokモデルを使っている場合は、5月15日までにgrok-4.3へ移行してください。

Top comments (0)