grok-4.5Flagship modelxAI's flagship with a 500K context window. Strong on agentic work and token efficiency, and materially cheaper than its peers. Returns a reasoning trace by default, and that trace counts toward output tokens
Know what you are pointing at before you configure it. This page explains what the common model names actually mean, and which tools each protocol endpoint can drive.
grok-4.5Flagship modelxAI's flagship with a 500K context window. Strong on agentic work and token efficiency, and materially cheaper than its peers. Returns a reasoning trace by default, and that trace counts toward output tokens
grok-4.5-buildNot a real modelxAI never shipped a model under this name. Grok Build is the CLI; the model behind it is grok-4.5. A gateway returning this name is usually fronting the Grok Build path rather than the plain API
grok-composer-2.5-fastCoding agent modelxAI's Composer 2.5, built for long-running coding work — strong at extended instruction following and tool use. Fast, and it emits no reasoning tokens, which makes bulk runs noticeably cheaper
Relay gateways often implement several protocols at once. Knowing which ones yours speaks tells you what else the same key can drive. A single curl will tell you.
| Endpoint | Protocol | Tools it can drive |
|---|---|---|
/v1/chat/completions | OpenAI Chat Completions | Grok Build, Chatbox, Cline — most clients |
/v1/messages | Anthropic Messages | Claude Code (just set ANTHROPIC_BASE_URL) |
/v1/responses | OpenAI Responses | Codex (wire_api = "responses" in config.toml) |
This is normal on relay gateways and worth calling out. We have seen it first-hand: request grok-4.5 and the response's model field comes back as grok-4.5-build; request a Composer model and it identifies itself as an entirely different build number.
It means the gateway is remapping models internally. The practical implication is blunt — do not trust the mapping between a model name and the real backend. If your code validates the model field on responses, it will likely mismatch, so loosen it. And before anything important, spot-check what you are actually talking to.
Backends can change without notice
We watched one gateway swap the contents of /v1/models from a set of Claude models to Grok models inside fifteen minutes, with every inference request returning 503 in between. You do not control these relays. Do not build anything critical on top of one.
grok-4.5 returns reasoning content by default, and it counts toward completion_tokens. Asked what 1+1 is, the visible answer ran a handful of characters — and burned 131 output tokens, 125 of them reasoning.
Across a batch job that gap compounds. If you do not need deep reasoning, turn default_reasoning_effort down, or pick a model that emits no reasoning trace at all.