Grok APIの使い方|xAIのAPIキー取得から料金・実装例まで解説

/ noro_hacks

※本記事には広告リンクが含まれます。

Grok APIの使い方|xAIのAPIキー取得から料金・実装例まで解説

「Grok APIとは何ができるのか」「どうやってAPIキーを取得するのか」「料金はいくらかかるのか」。この記事では、xAIが提供するGrok APIの概要から、登録・キー発行の手順、curlとPythonのコード例、料金の考え方、つまずいた時の確認ポイントまでを順に解説します。最新のモデル名や価格は変わりやすいため、確認先の公式ページも合わせて示します。

Grok APIとは|xAIが提供するGrokをプログラムから使う仕組み

Grok APIは、xAI社の大規模言語モデル「Grok」を、自分のアプリやスクリプトから呼び出すためのインターフェースです。ブラウザやXアプリでGrokと対話する代わりに、プログラムからリクエストを送り、回答をテキストやJSONで受け取れます。

※APIとは: Application Programming Interface の略。ソフトウェア同士が決まった形式でやり取りするための窓口のことです。

開発元と基本情報

Grokの開発元は、イーロン・マスク氏が設立したxAIです。API利用者向けの情報は、次の公式サイトにまとまっています。

APIの基本のエンドポイント(接続先URL)は https://api.x.ai/v1 です。チャット形式のリクエストは /v1/chat/completions に送るのが基本形です。

※エンドポイントとは: APIにアクセスするための接続先URLのことです。

通常のGrok(チャットアプリ)との違い

「Grokを使えること」と「Grok APIを使えること」は別のものです。契約や課金の仕組みも別なので、最初に違いを押さえておくと混乱しません。

項目 Grokアプリ・Web Grok API
使い方 画面で対話する コードやツールから呼び出す
主な用途 調べもの・文章作成・画像生成など 自社アプリへの組み込み・自動化
課金の考え方 無料枠や月額サブスクリプション 利用量に応じた従量課金が基本
認証 アカウントでログイン APIキー
管理画面 アプリ内の設定 xAI Console

たとえばGrokアプリの有料プランに入っていても、それだけでAPIが使えるようになるわけではありません。API側はConsoleで別途チームやクレジットを設定します。最新の契約条件は公式サイトで確認してください。

OpenAI互換の形式で使える

Grok APIはOpenAIのAPIと近い形式で呼び出せるように設計されています。そのため、OpenAI向けに書かれたコードでも、base_url(接続先)とAPIキー、モデル名を差し替えるだけで動かせる場合があります。既存の資産を流用しやすい点は、導入の大きなメリットです。ただし、すべてのパラメータが同じ挙動とは限りません。細かな差異は公式ドキュメントで確認してください。

Grok APIの主な機能

ここでは、開発でよく使う機能を5つに分けて紹介します。提供状況やモデルごとの対応は更新されるため、実装前に公式ドキュメントのモデル一覧と機能ページを確認してください。

1. テキスト生成(チャット)

最も基本的な機能です。messages という配列に、役割(system、user、assistant)と本文を入れて送ると、モデルが続きの回答を返します。

  • 要約: 長い議事録を3行にまとめる
  • 文章生成: 商品説明文のたたき台を作る
  • 分類: 問い合わせメールを「請求」「不具合」「その他」に仕分ける
  • 翻訳・リライト: 日本語の文章を丁寧語に整える

プロンプトの例(分類タスク)は次のとおりです。

次の問い合わせを「請求」「不具合」「その他」のいずれか1語で分類してください。

問い合わせ: ログイン後に画面が真っ白になります。

system メッセージに「あなたは丁寧なカスタマーサポート担当です」のような役割を書くと、出力のトーンを揃えやすくなります。

2. ストリーミング出力

ストリーミングは、回答が完成するのを待たず、生成された部分から順番に受け取る方式です。チャットUIで文字が少しずつ表示されるのと同じ仕組みで、体感の待ち時間を減らせます。リクエストに stream パラメータを指定して有効にします。

※ストリーミングとは: データを一括ではなく、細切れに連続して受信する通信方式です。

長文生成を行う画面や、応答待ちでユーザーが離脱しやすいサービスで有効です。一方で、受信側のコードは逐次処理が必要になるため、バッチ処理のように結果だけ欲しい用途では通常の方式で十分です。

3. 関数呼び出し(Function Calling)

関数呼び出しは、モデルに「使えるツール(関数)」の名前と引数の定義を渡しておき、必要に応じてモデルがその呼び出しを指示してくる仕組みです。実際の関数の実行は、自分のプログラム側で行います。

例として、天気を取得する関数を定義するイメージです。

{
  "type": "function",
  "function": {
    "name": "get_weather",
    "description": "指定した都市の天気を返す",
    "parameters": {
      "type": "object",
      "properties": {
        "city": {"type": "string"}
      },
      "required": ["city"]
    }
  }
}

ユーザーが「大阪は傘が必要?」と聞くと、モデルは get_weather を city: 大阪 で呼ぶよう返します。プログラムが天気APIを叩いた結果をモデルに返すと、最終的な自然文の回答が作られます。社内データベース検索や予約システムとの連携に使われる典型パターンです。

4. 構造化出力(JSONで返してもらう)

回答を決まったJSONの形で受け取りたい場合に使います。たとえば請求書のテキストから、次のようなデータを抜き出せます。

{"company": "株式会社サンプル", "amount": 120000, "due_date": "2025-08-31"}

後続のプログラムでそのまま処理できるため、データ抽出や自動入力の用途に向いています。対応するパラメータの書き方やサポート対象モデルは、公式ドキュメントの構造化出力のページで確認してください。

5. 画像の入力・生成

モデルによっては、画像を入力して内容を説明させる、あるいはプロンプトから画像を生成するといった使い方ができます。

  • 画像入力の例: レシートの写真から品目と金額を読み取る
  • 画像生成の例: ブログ用のアイキャッチ案をテキストから作る

対応モデルや画像サイズ、料金の計算方法は更新されます。なお、画像生成がうまくいかない時の切り分けは、Grokで画像生成できない原因と対処法|制限・規約・障害を順に確認の記事で解説しています。API経由の失敗にも共通する確認項目があります。

その他の機能について

Web検索やX上の情報の参照といった、リアルタイム情報を扱う機能が提供されることもあります。ただし、名称・仕様・課金方法は変更されやすい領域です。使いたい場合は、必ず公式ドキュメントの最新ページで提供状況を確認してください。

Grok APIの料金プラン

Grok APIの料金は、利用したトークン量に応じた従量課金(使った分だけ支払う方式)が基本です。月額固定のチャットアプリのプランとは考え方が異なります。

※トークンとは: モデルが文章を処理する単位です。日本語では、おおむね1文字から数文字が1トークンに相当しますが、正確な数は文章により変わります。

料金を決める主な要素

要素 内容
モデルの種類 高性能なモデルほど単価が高い傾向がある
入力トークン 送信したプロンプトの量
出力トークン モデルが生成した回答の量
キャッシュ 同じ入力の再利用で単価が下がる仕組みが用意される場合がある
追加機能 画像生成や検索ツールなどは別料金になる場合がある

具体的な単価、無料クレジットの有無、利用上限(レート制限)は、モデルや時期によって変わります。ここでは金額を記載しません。必ずxAI Docsのモデルと料金のページやxAI Consoleで最新情報を確認してください。

※レート制限とは: 一定時間内に送れるリクエスト数やトークン数の上限です。超えるとエラーが返ります。

アプリ側の有料プランとの関係

GrokアプリやXのサブスクリプション(例: SuperGrokやX Premium系のプラン)は、チャットUIでの利用枠を広げるためのものです。APIの従量課金とは別の契約になります。プランの名称や内容は変わることがあるため、最新の内容は公式サイトで確認してください。

コストを抑える基本の考え方

  • まず小さいモデルで試し、品質が足りない部分だけ上位モデルにする
  • system メッセージや前置きを短くし、無駄な入力トークンを減らす
  • 出力の長さの上限(最大トークン数)を設定する
  • 同じ処理を繰り返す場合は、結果を保存して再利用する
  • Consoleの利用状況画面を定期的に確認する

コスト管理は、従量課金のAPIでは最初に決めておきたいポイントです。開発中はクレジットの上限を小さく設定するなど、想定外の請求を避ける運用を検討してください。

Grok APIの始め方(登録からリクエストまで)

画面の名称や手順は更新されることがあります。以下は基本的な流れです。実際の画面表示は公式の案内に従ってください。

手順1〜5: アカウント作成からAPIキー発行まで

  1. xAI Consoleにアクセスし、アカウントを作成またはログインする
  2. 必要に応じてチーム(組織)の設定を行う
  3. 課金設定(クレジットの購入や支払い方法の登録)を行う。無料枠の有無は公式の案内を確認する
  4. ConsoleのAPIキー管理画面で、新しいAPIキーを作成する
  5. 表示されたAPIキーを安全な場所に保存する

APIキーは、作成時にしか全文を確認できない設計のことが一般的です。紛失した場合は、新しいキーを作り直す対応になります。また、キーは第三者に知られると不正利用され、自分の課金として請求されるおそれがあります。ソースコードに直書きしたり、GitHubなどの公開リポジトリにアップロードしたりしないでください。

手順6: 環境変数にAPIキーを設定する

  1. 取得したキーを環境変数に設定する

環境変数は、プログラムの外にキーを置くための仕組みです。名前は自由ですが、ここでは XAI_API_KEY を例にします。macOSやLinuxのターミナルでは次のように設定します。

export XAI_API_KEY="ここに取得したキーを入れる"

WindowsのPowerShellでは次のとおりです。

$env:XAI_API_KEY="ここに取得したキーを入れる"

この設定は、そのターミナルを閉じると消える一時的なものです。恒久的に設定する方法は、OSやシェルによって異なります。

手順7: curlで最初のリクエストを送る

  1. curlでチャットのリクエストを送り、接続を確認する

モデル名の grok-4 はあくまで例です。利用可能なモデル名は公式のモデル一覧で確認し、差し替えてください。

curl https://api.x.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -d '{
    "model": "grok-4",
    "messages": [
      {"role": "system", "content": "あなたは簡潔に答えるアシスタントです。"},
      {"role": "user", "content": "APIとは何かを一文で説明してください。"}
    ]
  }'

正常に動けば、choices 配列の中に、モデルの回答を含むJSONが返ります。

手順8: PythonのOpenAI SDKで呼び出す

  1. Pythonから呼び出す

Grok APIはOpenAI互換の形式に対応しているため、OpenAI公式のPython SDK(openai-python)を使えます。まずライブラリをインストールします。

pip install openai

次のコードは、接続先をxAIに向けた最小の例です。

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",
    messages=[
        {"role": "system", "content": "あなたは簡潔に答えるアシスタントです。"},
        {"role": "user", "content": "APIとは何かを一文で説明してください。"},
    ],
)

print(response.choices[0].message.content)

ストリーミングで受け取りたい場合は、stream=True を指定し、返ってきたデータをループで処理します。

stream = client.chat.completions.create(
    model="grok-4",
    messages=[{"role": "user", "content": "短い自己紹介文を書いてください。"}],
    stream=True,
)

for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

xAI公式のSDKなど、他の呼び出し方法が案内されている場合もあります。最新の推奨方法はxAI Docsを参照してください。

本番運用の前に決めておくこと

  • APIキーの保管方法(環境変数やシークレット管理サービス)
  • エラー時の再試行ルール(待ち時間を徐々に伸ばして再送する方法が一般的)
  • 利用量の上限と通知の設定
  • 入力に個人情報や機密情報を含める場合の社内ルール
  • データの取り扱いに関する公式ポリシーの確認

機密情報を扱う場合は、xAIの利用規約やデータの取り扱いに関する案内を事前に確認してください。

Grok APIでつまずいた時の確認ポイント

APIで返ってくるエラーは、おおむねHTTPステータスコード(応答の種類を示す数字)で原因を絞り込めます。以下は一般的なWeb APIで共通する目安です。実際のエラーメッセージや仕様は公式ドキュメントで確認してください。

ステータス 主な原因の例 確認すること
400 リクエストの形式の誤り JSONの構文、必須項目、パラメータ名
401 認証の失敗 APIキーの誤り、環境変数の未設定、失効
403 権限不足や利用制限 チームの権限、モデルへのアクセス権、地域や規約
404 URLまたはモデル名の誤り エンドポイントのパス、モデル名の綴り
429 レート制限またはクレジット不足 リクエスト頻度、残高、上限設定
5xx サーバー側の問題 公式のステータス情報、時間をおいて再試行

よくある原因と切り分けの順番

  1. 環境変数にキーが入っているか(echo などで空でないことを確認する。キー全文を画面共有やログに残さない)
  2. base_url が https://api.x.ai/v1 になっているか
  3. モデル名が現在利用可能なものか(古い名前や非公開のモデルを指定していないか)
  4. Consoleでクレジット残高や利用上限に問題がないか
  5. 短時間に大量のリクエストを送っていないか
  6. 障害が起きていないか

原因がAPI側ではなく、ネットワークやアカウント、サービス障害にある場合もあります。「そもそもGrokにつながらない」「応答が止まる」といった症状の切り分けは、Grokが使えない原因と対処法|つながらない・応答しない時の確認手順で整理しています。API利用時の確認にも役立ちます。

回答の品質が安定しない時

  • 指示を具体的にする(出力形式、文字数、禁止事項を明記する)
  • 例(入力と望ましい出力のペア)をプロンプトに1〜3個入れる
  • temperature を下げると、出力のばらつきが小さくなる傾向がある
  • 事実関係が重要な内容は、出典の確認や人によるチェックを前提にする

※temperatureとは: 出力のランダムさを調整するパラメータです。値が低いほど毎回似た回答になりやすく、高いほど多様な回答になりやすくなります。

生成AIは、もっともらしい誤りを出力することがあります。医療・法律・金融など、誤りが大きな影響を及ぼす分野では、AIの出力をそのまま使わない運用が必要です。

Grok APIはどんな人に向いているか

向いているケース

ユースケース Grok APIで実現しやすいこと
個人開発者 チャットボットや要約ツールを試作する
Webサービス運営者 問い合わせの分類、FAQ回答案の下書き生成
業務自動化を進めたい人 メールや議事録の整理、スプレッドシートとの連携
既存のOpenAI互換コードを持つ人 接続先とモデル名を変えて比較検証する
データ抽出を行いたい人 文書から項目をJSONで取り出す

特に、OpenAI互換の形式で既に開発している場合は、移行や併用の検証がしやすいのが利点です。複数のモデルを同じコードで切り替えて、品質とコストを比べる使い方もできます。

別の選択肢を検討した方がよいケース

  • コードを書かず、対話で調べものをしたいだけの場合は、Grokアプリ(Web・モバイル)で十分なことがあります
  • 厳格なデータ管理要件があり、外部サービスへのデータ送信が難しい場合は、社内ルールとの整合性を先に確認する必要があります
  • 特定の機能(画像生成や検索など)が必須の場合は、対応モデルと料金を公式ドキュメントで確認してから決めてください

モデルの優劣は、タスクや言語、時期によって変わります。導入前に自分のデータで小規模な比較テストを行うと、判断を誤りにくくなります。

まとめ

  • Grok APIは、xAIのGrokをプログラムから使うための仕組みで、エンドポイントは https://api.x.ai/v1。OpenAI互換の形式で呼び出せる
  • APIキーはxAI Consoleで発行する。キーは環境変数で管理し、公開リポジトリに載せない
  • 料金はトークン量に応じた従量課金が基本で、Grokアプリのサブスクリプションとは別管理。最新の単価と無料枠は公式サイトで確認する
  • 主な機能は、テキスト生成、ストリーミング、関数呼び出し、構造化出力、画像の入力や生成。対応モデルはxAI Docsで確認する
  • エラー時は、ステータスコード、キー、base_url、モデル名、残高、レート制限、障害の順に切り分ける

よくある質問

Grok APIは無料で使えますか?

APIは利用量に応じた従量課金が基本です。無料クレジットなどの提供有無や条件は時期により変わるため、xAI ConsoleまたはxAI Docsで最新情報を確認してください。アプリの無料枠とは別の扱いです。

Grok APIのAPIキーはどこで取得できますか?

xAI Console(console.x.ai)にログインし、APIキー管理画面で新しいキーを作成します。キーは作成時にしか全文を確認できない場合があるため、安全な場所に保存し、公開リポジトリには載せないでください。

OpenAIのSDKでGrok APIを使えますか?

GrokのAPIはOpenAI互換の形式に対応しており、OpenAIのPython SDKなどで base_url を https://api.x.ai/v1 に変更して呼び出せます。ただし、全パラメータが同じ挙動とは限らないため、公式ドキュメントで確認してください。

Grokのサブスクリプションに入るとAPIも使えますか?

いいえ、別の契約です。SuperGrokなどのアプリ向けプランはチャット利用枠を広げるもので、APIはxAI Consoleでクレジットや支払いを設定する従量課金が基本です。最新の契約条件は公式サイトで確認してください。

Grok APIで401や429エラーが出た時はどうすればいいですか?

401はAPIキーの誤りや未設定が主な原因なので、環境変数とキーの有効性を確認します。429はリクエスト過多やクレジット不足が考えられるため、送信頻度を下げ、Consoleで残高や上限を確認してください。

関連記事