Skip to main content

Grok 4.7 is xAI's chat model behind an OpenAI-compatible call with SSE streaming. It takes a 500,000-token context and replies up to 450,000 tokens, with reasoning effort from low to xhigh; no filter is added on this platform.

Input $2Output $6per 1 million tokensCached input $0.50Prompts of 200K tokens or moreInput $4Output $12

Workbench

Send a request

Quickstart

Examples use the selected endpoint’s public parameter definitions. Replace the API key and example media, then send the request from your server.

SDKs & integrations
POSThttps://api.spicyapi.ai/v1/chat/completions

API authentication

Keep the API key in the server environment variable SPICY_API_KEY. Use Bearer authentication and Content-Type: application/json for JSON requests.

Authorization: Bearer $SPICY_API_KEY
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
  -H "Authorization: Bearer $SPICY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "model": "xai/grok-4.7/chat",
  "messages": [
    {
      "role": "user",
      "content": "Summarise the following release notes into three bullet points."
    }
  ],
  "stream": true
}' \
  | jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'

Generated from this model’s input schema — the same one the API validates every request against.

Keep one Idempotency-Key for each logical request. After a network interruption, do not automatically resend with a new key; retain request_id to investigate the accepted request. Idempotency does not replay an earlier chat stream.

Input parameters

Place the model parameters directly in the JSON request body alongside model. This endpoint does not use an input wrapper.

messagesarray<object>Required

At most 256 turns. Content can mix text and image_url parts inside a single user message. The system role is honoured on this endpoint — verified deliberately — so a frame set once at the top of a thread carries through it.

Default
Not specified
Constraints
minItems:1
maxItems:256
response_formatobjectOptional

Request a JSON object when the answer is read by code rather than a person.

Default
Not specified
tool_choicestring | objectOptional

auto, none, required, or an object naming the function to call.

Default
Not specified
parallel_tool_callsbooleanOptional

true or false, default true: the model may request several tool calls in one turn. Set false to get at most one call per turn, for loops where each call depends on the previous result. No effect on price.

Default
true
toolsarray<object>Optional

Up to 128 function definitions per request. This generation is comparatively weak at long agentic loops.

Default
Not specified
Constraints
maxItems:128
top_pnumberOptional

0.01 to 1. Move this or temperature, not both together.

Default
1
Constraints
minimum:0.01
maximum:1
temperaturenumberOptional

0 to 2, default 0.7. Toward 0.9 for range in prose; 0 only when two runs must differ for a single reason.

Default
0.7
Constraints
minimum:0
maximum:2
max_tokensintegerOptional

Caps the visible reply at 450,000; the default of 4,096 truncates a long answer silently. Reasoning tokens are billed as output but are NOT bound by this cap. Lower reasoning_effort when you need a predictable ceiling.

Default
4096
Constraints
minimum:1
maximum:450000
reasoning_effortstringOptional

low, medium, high or xhigh; the default is high. For dialogue and roleplay use low or medium: high spends output tokens deliberating and reads as hesitation. Effort is billed as output, so the careful setting is also the expensive one.

Default
"high"
Allowed values
"low""medium""high""xhigh"

Read the result

With stream set to false, the request returns the completed chat response directly. Read choices[].message; no task polling is needed. Set stream to true when your client supports Server-Sent Events.

Completed response example
{
  "id": "chatcmpl_example",
  "object": "chat.completion",
  "created": 1788652800,
  "model": "xai/grok-4.7/chat",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Here is a concise summary of the release notes."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 32,
    "completion_tokens": 14,
    "total_tokens": 46
  }
}

The response example is illustrative. usage reports token counts; token counts and charges depend on your actual request.

SDKs & integrations

Use SpicyAPI in your app, terminal, AI assistant or visual workflow. Choose a setup guide below.

Use it in SillyTavern and roleplay apps

In SillyTavern, RisuAI, Agnai or any app with an OpenAI-compatible setting, paste the base URL below and your API key, then pick xai/grok-4.7/chat as the model. Browser calls are allowed, and sliders this model does not take are ignored instead of rejected.

Base URL: https://api.spicyapi.ai/v1
Model: xai/grok-4.7/chat

Use it in ComfyUI

Install the SpicyAPI nodes from ComfyUI Manager or with the command below, then pick xai/grok-4.7/chat in the SpicyAPI Chat node to use this model inside a ComfyUI graph.

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi