ナビゲーションにスキップ

Grok Responses

1 つの BeatAPI キーで、OpenAI Responses API から Grok 4.7を呼び出せます。

  • 1 つのエンドポイント POST /v1/responses で、現行の Grok モデル grok-4.7 を呼び出せます。
  • ストリーミングと関数呼び出しに対応。Grok は推論してから回答します。
  • OpenAI SDK で使えます。base URL を変え、BeatAPI のキーを使うだけです。既存の Chat Completions 連携については Chat Completions を参照してください。
  • サーバー側では会話の状態を保存しません。毎ターン、履歴全体を input に入れて送ってください。

テキストリクエストの base URL には https://direct.beatapi.io を推奨します。Cloudflare の 100 秒制限を受けないため、長時間のノンストリーミングリクエストが途中で切れません。https://api.beatapi.io も使え、ネットワークから direct.beatapi.io に届かない場合の代替になります。キー、モデル、価格はどちらも同じです。画像・動画 API は https://api.beatapi.io のみを使います。

POST/v1/responses試してみる

このエンドポイントをテスト画面で開きます。BeatAPI の API キーを入力して送信してください。実際に呼び出され、ご自身の残高から課金されます。

モデル

次の ID のいずれかを model として送ります。それぞれ別のモデルで、互いのエイリアスではありません。

モデル IDコンテキスト(トークン)最大出力(トークン)位置づけ入力、USD / 100 万トークン出力、USD / 100 万トークン備考
grok-4.7500,000—xAI で最も高性能な Grok。コーディング、エージェント、知識業務向け。難しいタスクに長く取り組み、結果を自己確認$0.70$2.10現行のフラッグシップ。コーディング、エージェント、ナレッジワーク向け。難しいタスクでは長く作業し、自分の結果を確認します。
  • 価格は基本ティアで、割引適用後です。長文コンテキストのティア、キャッシュ入力価格、キャッシュ書き込み価格はこの表に含まれません。価格表を参照してください。
  • — はカタログが数値を公開していないことを示します。

このファミリーの旧 ID は引き続き使え、旧モデルにまとめています。

クイックスタート

サーバーに openai パッケージをインストールし、キーは BEATAPI_API_KEY に置いてください。ブラウザのコードには書かないでください。output_text は、SDK が回答テキストを取り出すためのショートカットです。以下はリクエスト例であり、実際のモデル出力の記録ではありません。

回答は output_text(または output 内の output_text パート)から読み取り、続けて status と usage を確認します。HTTP 200 だけでは回答がタスクを満たす証拠になりません。内容はアプリケーション側で検証してください。テキストのリクエストは直接結果を返すので、/v1/tasks をポーリングする必要はありません。

curl --request POST \
--url https://direct.beatapi.io/v1/responses \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "grok-4.7",
"max_output_tokens": 2000,
"input": "Design a resilient webhook retry strategy for a payments API."
}'

エンドポイントと認証

POST https://direct.beatapi.io/v1/responses

Authorization string 必須

Bearer <BEATAPI_API_KEY>。キーは sk- プレフィックスの有無どちらでも使えます。

リクエストパラメーター

OpenAI Responses の標準フィールドを受け付けます。リクエスト形式が互換でも、すべてのモデルがあらゆるオプションやホスト型ツールに対応するわけではありません。依存するオプションは自分で試してください。

model string 必須

正確なモデル ID。

指定できる値:grok-4.7

  • 各 ID は独立したモデルで、他のモデルの別名ではありません。
  • キーで GET /v1/models を呼ぶと、そのキーで有効なモデルを確認できます。
  • 引き続き使える旧 ID grok-4.5 と grok-4.6 は旧モデルに載っています。

input string | object[] 必須

プロンプト。文字列、またはメッセージ、関数呼び出し、その出力などの入力項目の配列。

サーバー側では会話の状態を保存しません。previous_response_id、conversation、prompt、context_management には対応していません。毎ターン、履歴全体を input に入れて送ってください。

instructions string 任意

input の前に置かれるシステムレベルの指示。

max_output_tokens integer 任意

生成するトークン数の上限。推論の分も含みます。

  • ゲートウェイは、指定値を上の表の最大出力と照合しません。その数値以下に収めてください。
  • この値は、リクエストに必要な残高の見積もりにも使われます。極端に大きい値だと、実際の出力が短くても 402 insufficient_credits で拒否されることがあります。必要な分だけ指定してください。

推論型モデルは先に推論を出力します。max_output_tokens が小さすぎると推論で使い切られ、回答テキストが空になるか途中で切れます。推論と本文の両方に余裕を持たせ、そうなったら値を増やしてください。

stream boolean 任意デフォルト: false

回答をサーバー送信イベント(SSE)として返します。下の「ストリーミング」を参照してください。

デフォルト:false

temperature number 任意

サンプリング温度。top_p とはどちらか一方だけ調整してください。

top_p number 任意

nucleus sampling のしきい値。

tools object[] 任意

モデルが呼び出せる関数ツール。モデルは function_call の出力項目で応答します。結果は、同じ call_id を付けた function_call_output の入力項目として返してください。ホスト型ツール(Web 検索、ファイル検索など)はここに含まれません。

tool_choice string | object 任意

モデルがツールを呼び出してよいか、必ず呼ぶか、呼ばないかを指定します。依存する値は使うモデルで試してください。

20 万トークンを超えるプロンプト

プロンプトが 200,000 トークンに達すると、そのリクエストのすべてのトークンに高い料金が適用されます。入力、キャッシュ入力、出力のどれも 2 倍です。しきい値未満なら、リクエスト全体が標準料金です。長いプロンプトの費用は、コンテキストウィンドウではなく 200,000 トークンを基準に見積もってください。

レスポンス

非ストリーミングの呼び出しは JSON オブジェクトを 1 つ返します。以下は省略した例です。

{
"id": "resp_example",
"object": "response",
"model": "grok-4.7",
"status": "completed",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Retry with exponential backoff and jitter, and make every handler idempotent."
}
]
}
],
"usage": {
"input_tokens": 19,
"output_tokens": 16,
"total_tokens": 35
}
}

レスポンスのフィールド

フィールド型説明
idstringレスポンス ID。サポート対応や請求の照合のため、リクエスト ID と合わせて記録してください。
modelstring実際に回答したモデル。
statusstringcompleted は回答が完了したことを示します。
output[]object[]出力項目:message、reasoning、function_call。SDK の output_text がテキストパートをまとめて返します。
output[].content[].textstringmessage 項目の回答テキスト。種類が output_text のパートに入ります。
usageobjectトークン数。呼び出しは実際のトークン使用量で計量されます。

ストリーミング

"stream": true を指定します。ストリームは response.created で始まり、回答は response.output_text.delta イベントで順に届き、response.completed で終わります。

  • レスポンスは text/event-stream です。ストリーミングしない場合は application/json です。
  • 関数呼び出しは独立した出力項目として届き、その引数は response.function_call_arguments.delta イベントで順に届きます。
  • モデルを呼び出す前に失敗した場合は、ストリームイベントではなく、HTTP ステータス付きの通常の JSON エラーが返ります。
  • 明示的なタイムアウトを設定し、ストリーミングの再接続は安全に行ってください。
event: response.created
data: {"type":"response.created","response":{"id":"resp_example","status":"in_progress"}}
event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"Retry"}
event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":" with backoff"}
event: response.completed
data: {"type":"response.completed","response":{"id":"resp_example","status":"completed"}}

エラー

エラーまたは症状原因対処
回答テキストが空、または途中で切れる推論型モデルが max_output_tokens の枠をすべて推論に使いました。モデルの最大出力の範囲内で max_output_tokens を増やします。
エラーで previous_response_id、conversation、prompt、context_management が挙げられるこれらの状態を持つフィールドには対応していません。これらを削除し、履歴全体を input に入れて送ります。
402 insufficient_credits残高がリクエストの料金に足りません。max_output_tokens が非常に大きいことが多い原因です。チャージするか、max_output_tokens を小さくします。
403 forbiddenアカウントが無料クレジットのみでそのモデルが無料リストにない、またはモデルがキーのグループの範囲外です。チャージする、無料モデルを使う、またはそのモデルに届くグループのキーを使います。
404 not_foundモデル ID が存在しない、またはこのキーで有効になっていません。GET /v1/models で有効なモデルを一覧します。
429 rate_limit_exceededアカウントまたは無料モデルの上限に達しました。Retry-After の時間だけ待ってから再試行します。

HTTP エラー早見表

認証、ルーティング、レート制限、存在しないモデルの失敗はモデルを呼ぶ前に起き、BeatAPI のエンベロープ(error.code、error.message、retryable、request_id)で返ります。それ以外の失敗は OpenAI SDK の形式 {"error": {"message", "type", "code"}} のままで、コードは error.code、request id は message の末尾にあります。詳しくはエラーを参照してください。

HTTP ステータスエラーコード対応
400bad_request、content_policy_violationリクエストか入力を直してください。そのまま再送しないでください。
401missing_api_key、invalid_api_keyキーを確認してください。再試行しないでください。
402insufficient_creditsチャージするか、キーの上限を上げてください。max_tokens が非常に大きい場合も発生します。
403forbiddenモデルがキーのグループまたは IP 許可リストの範囲外、または無料クレジットでは呼べないモデルです。
404not_foundモデルが存在しません。GET /v1/models で有効なモデルを確認してください。
429rate_limit_exceededRetry-After または retry_after_seconds だけ待ち、バックオフして再試行してください。
500internal_error、temporary_errorバックオフして 1~2 回再試行してください。
503model_unavailable、upstream_timeout、temporary_errorバックオフして再試行するか、別のモデルを使ってください。

全エラーコード表と再試行ポリシーはエラーを参照してください。

注意事項

  • Grok モデルは Chat Completions と Anthropic Messages でも呼び出せます。
  • Grok は既定で推論してから回答します。推論トークンは出力トークンに数えられ、出力として課金されます。そのため max_output_tokens は推論と回答の両方を見込んで設定してください。
  • API キーは信頼できるサーバーにだけ置き、レスポンスのリクエスト ID を記録し、再試行は 429、500、503 に限ってください。

認証

AuthorizationBearer

Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.

リクエスト

This endpoint expects an object.
modelenum必須

正確なモデル ID。

各 ID は独立したモデルで、他のモデルの別名ではありません。

キーで GET /v1/models を呼ぶと、そのキーで有効なモデルを確認できます。

引き続き使える旧 ID grok-4.5 と grok-4.6 は旧モデルに載っています。

grok-4.7

許可された値:
inputstring or list of objects必須

プロンプト。文字列、またはメッセージ、関数呼び出し、その出力などの入力項目の配列。

サーバー側では会話の状態を保存しません。previous_response_id、conversation、prompt、context_management には対応していません。毎ターン、履歴全体を input に入れて送ってください。

instructionsstringオプション

input の前に置かれるシステムレベルの指示。

max_output_tokensintegerオプション

生成するトークン数の上限。推論の分も含みます。

ゲートウェイは、指定値を上の表の最大出力と照合しません。その数値以下に収めてください。

この値は、リクエストに必要な残高の見積もりにも使われます。極端に大きい値だと、実際の出力が短くても 402 insufficient_credits で拒否されることがあります。必要な分だけ指定してください。

推論型モデルは先に推論を出力します。max_output_tokens が小さすぎると推論で使い切られ、回答テキストが空になるか途中で切れます。推論と本文の両方に余裕を持たせ、そうなったら値を増やしてください。

streambooleanオプションデフォルト値 false

回答をサーバー送信イベント(SSE)として返します。下の「ストリーミング」を参照してください。

temperaturedoubleオプション

サンプリング温度。top_p とはどちらか一方だけ調整してください。

top_pdoubleオプション

nucleus sampling のしきい値。

toolslist of objectsオプション

モデルが呼び出せる関数ツール。モデルは function_call の出力項目で応答します。結果は、同じ call_id を付けた function_call_output の入力項目として返してください。ホスト型ツール(Web 検索、ファイル検索など)はここに含まれません。

tool_choicestring or map from strings to anyオプション

モデルがツールを呼び出してよいか、必ず呼ぶか、呼ばないかを指定します。依存する値は使うモデルで試してください。

レスポンス

非ストリーミングの呼び出しは JSON オブジェクトを 1 つ返します。以下は省略した例です。

idstringオプション

レスポンス ID。サポート対応や請求の照合のため、リクエスト ID と合わせて記録してください。

modelstringオプション

実際に回答したモデル。

statusstringオプション

completed は回答が完了したことを示します。

outputlist of objectsオプション

出力項目:message、reasoning、function_call。SDK の output_text がテキストパートをまとめて返します。

usageobjectオプション

トークン数。呼び出しは実際のトークン使用量で計量されます。

エラー

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error