# Grok models on GPTProto > One GPTProto API key covers every model listed below. Text models share an OpenAI-compatible API — swap the `model` id. Image / video / audio models use a submit-and-poll API; follow each model's own llms.txt. ## Overview - **Models**: 19 - **Vendor**: Grok - **Base URL**: `https://gptproto.com/v1` - **Provider page**: https://gptproto.com/model/grok ## Authentication Every request needs a GPTProto API key in the `Authorization` header. Create one at https://gptproto.com/dashboard/api-key, then export it: ```bash export GPTPROTO_API_KEY="your-api-key" ``` Header: `Authorization: Bearer $GPTPROTO_API_KEY`. Use `base_url` `https://gptproto.com/v1` with any OpenAI-compatible SDK. ## Text models Call these with the OpenAI-compatible Chat Completions (or Responses / Messages / Gemini) endpoints. Change only the `model` field. | Model ID | Name | Context | Input / 1M | Output / 1M | Guide | | --- | --- | --- | --- | --- | --- | | `grok-4.6` | Grok 4.6 | 500K | $1.2 | $3.6 | [llms.txt](https://gptproto.com/model/grok/grok-4.6/llms.txt) | | `grok-4.5` | Grok 4.5 | 500K | $1.2 | $3.6 | [llms.txt](https://gptproto.com/model/grok/grok-4.5/llms.txt) | | `grok-4.3` | Grok 4.3 | 1M | $0.75 | $1.5 | [llms.txt](https://gptproto.com/model/grok/grok-4.3/llms.txt) | | `grok-4.20-beta-0309-reasoning` | Grok 4.20 Beta 0309 Reasoning | 2M | $0.75 | $1.5 | [llms.txt](https://gptproto.com/model/grok/grok-4.20-beta-0309-reasoning/llms.txt) | | `grok-4.20-beta-0309-non-reasoning` | Grok 4.20 Beta 0309 Non Reasoning | 2M | $0.75 | $1.5 | [llms.txt](https://gptproto.com/model/grok/grok-4.20-beta-0309-non-reasoning/llms.txt) | | `grok-4.20-multi-agent-beta-0309` | Grok 4.20 Multi Agent Beta 0309 | 2M | $0.75 | $1.5 | [llms.txt](https://gptproto.com/model/grok/grok-4.20-multi-agent-beta-0309/llms.txt) | | `grok-code-fast-1` | Grok Code Fast 1 | — | $0.12 | $0.9 | [llms.txt](https://gptproto.com/model/grok/grok-code-fast-1/llms.txt) | | `grok-4-0709` | Grok 4 0709 | — | $1.8 | $9 | [llms.txt](https://gptproto.com/model/grok/grok-4-0709/llms.txt) | | `grok-4-1-fast-non-reasoning` | Grok 4.1 Fast Non Reasoning | — | $0.12 | $0.3 | [llms.txt](https://gptproto.com/model/grok/grok-4-1-fast-non-reasoning/llms.txt) | | `grok-4-1-fast-reasoning` | Grok 4.1 Fast Reasoning | — | $0.12 | $0.3 | [llms.txt](https://gptproto.com/model/grok/grok-4-1-fast-reasoning/llms.txt) | | `grok-4` | Grok 4 | — | $1.8 | $9 | [llms.txt](https://gptproto.com/model/grok/grok-4/llms.txt) | | `grok-3-mini` | Grok 3 Mini | — | $0.18 | $0.3 | [llms.txt](https://gptproto.com/model/grok/grok-3-mini/llms.txt) | | `grok-3-reasoner-r` | Grok 3 Reasoner R | — | $1.8 | $9 | [llms.txt](https://gptproto.com/model/grok/grok-3-reasoner-r/llms.txt) | | `grok-3-reasoner` | Grok 3 Reasoner | — | — | — | [llms.txt](https://gptproto.com/model/grok/grok-3-reasoner/llms.txt) | | `grok-3` | Grok 3 | — | $1.8 | $9 | [llms.txt](https://gptproto.com/model/grok/grok-3/llms.txt) | ## Usage example The snippets below call `grok-4.6`. For any other text model in the table, keep the same request and change `"model"`. ```bash curl --request POST "https://gptproto.com/v1/chat/completions" \ --header "Authorization: Bearer $GPTPROTO_API_KEY" \ --header "Content-Type: application/json" \ --data '{ "model": "grok-4.6", "messages": [ { "role": "user", "content": "Hello" } ] }' ``` ```python import os import requests url = "https://gptproto.com/v1/chat/completions" headers = { "Authorization": f"Bearer {os.environ['GPTPROTO_API_KEY']}", "Content-Type": "application/json" } payload = { "model": "grok-4.6", "messages": [ { "role": "user", "content": "Hello" } ] } response = requests.request("POST", url, headers=headers, json=payload) print(response.json()) ``` ```typescript const response = await fetch("https://gptproto.com/v1/chat/completions", { method: "POST", headers: { "Authorization": `Bearer ${process.env.GPTPROTO_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ model: "grok-4.6", messages: [ { role: "user", content: "Hello", }, ], }), }); const data = await response.json(); console.log(data); ``` ## Image, video, and audio models These models use a submit-and-poll API (not OpenAI Chat Completions). Read the per-model guide for the exact endpoint, parameters, and example request. | Model ID | Name | Type | Price | Guide | | --- | --- | --- | --- | --- | | `grok-imagine-image` | Grok Imagine Image | image | $0.012 / run | [llms.txt](https://gptproto.com/model/grok/grok-imagine-image/llms.txt) | | `grok-imagine-0.9` | Grok Imagine 0.9 | image | $0.135 / run | [llms.txt](https://gptproto.com/model/grok/grok-imagine-0.9/llms.txt) | | `grok-4-image` | Grok 4 Image | image | $0.042 / run | [llms.txt](https://gptproto.com/model/grok/grok-4-image/llms.txt) | | `grok-2-image` | Grok 2 Image | image | $0.042 / run | [llms.txt](https://gptproto.com/model/grok/grok-2-image/llms.txt) | ## Additional resources - [Provider page](https://gptproto.com/model/grok) - [All models](https://gptproto.com/model) - [API keys](https://gptproto.com/dashboard/api-key) - [Platform overview for LLMs](https://gptproto.com/llm-full.txt) - Per-model guide: `https://gptproto.com/model/{vendor}/{model}/llms.txt`