# Claude 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**: Claude - **Base URL**: `https://gptproto.com/v1` - **Provider page**: https://gptproto.com/model/claude ## 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 | | --- | --- | --- | --- | --- | --- | | `claude-opus-5` | Claude Opus 5 | 1M | $4 | $20 | [llms.txt](https://gptproto.com/model/claude/claude-opus-5/llms.txt) | | `claude-sonnet-5` | Claude Sonnet 5 | 1M | $1.6 | $8 | [llms.txt](https://gptproto.com/model/claude/claude-sonnet-5/llms.txt) | | `claude-fable-5` | Claude Fable 5 | 1M | $8 | $40 | [llms.txt](https://gptproto.com/model/claude/claude-fable-5/llms.txt) | | `claude-opus-4-8-thinking` | Claude Opus 4.8 Thinking | 1M | $4 | $20 | [llms.txt](https://gptproto.com/model/claude/claude-opus-4-8-thinking/llms.txt) | | `claude-opus-4-8` | Claude Opus 4.8 | 1M | $4 | $20 | [llms.txt](https://gptproto.com/model/claude/claude-opus-4-8/llms.txt) | | `claude-opus-4-7-thinking` | Claude Opus 4.7 Thinking | 1M | $4 | $20 | [llms.txt](https://gptproto.com/model/claude/claude-opus-4-7-thinking/llms.txt) | | `claude-opus-4-7` | Claude Opus 4.7 | 1M | $4 | $20 | [llms.txt](https://gptproto.com/model/claude/claude-opus-4-7/llms.txt) | | `claude-opus-4-6-thinking` | Claude Opus 4.6 Thinking | 1M | $4 | $20 | [llms.txt](https://gptproto.com/model/claude/claude-opus-4-6-thinking/llms.txt) | | `claude-sonnet-4-6` | Claude Sonnet 4.6 | 1M | $2.4 | $12 | [llms.txt](https://gptproto.com/model/claude/claude-sonnet-4-6/llms.txt) | | `claude-sonnet-4-6-thinking` | Claude Sonnet 4.6 Thinking | 1M | $2.4 | $12 | [llms.txt](https://gptproto.com/model/claude/claude-sonnet-4-6-thinking/llms.txt) | | `claude-opus-4-6` | Claude Opus 4.6 | 1M | $4 | $20 | [llms.txt](https://gptproto.com/model/claude/claude-opus-4-6/llms.txt) | | `claude-opus-4-5-20251101` | Claude Opus 4.5 20251101 | 200K | $4 | $20 | [llms.txt](https://gptproto.com/model/claude/claude-opus-4-5-20251101/llms.txt) | | `claude-haiku-4-5-20251001` | Claude Haiku 4.5 20251001 | 200K | $0.8 | $4 | [llms.txt](https://gptproto.com/model/claude/claude-haiku-4-5-20251001/llms.txt) | | `claude-sonnet-4-5-20250929-thinking` | Claude Sonnet 4.5 20250929 Thinking | 1M | $2.4 | $12.8 | [llms.txt](https://gptproto.com/model/claude/claude-sonnet-4-5-20250929-thinking/llms.txt) | | `claude-sonnet-4-5-20250929` | Claude Sonnet 4.5 20250929 | 1M | $2.4 | $12 | [llms.txt](https://gptproto.com/model/claude/claude-sonnet-4-5-20250929/llms.txt) | | `claude-opus-4-1-20250805-thinking` | Claude Opus 4.1 20250805 Thinking | 200K | $12 | $60 | [llms.txt](https://gptproto.com/model/claude/claude-opus-4-1-20250805-thinking/llms.txt) | | `claude-opus-4-1-20250805` | Claude Opus 4.1 20250805 | 200K | $12 | $60 | [llms.txt](https://gptproto.com/model/claude/claude-opus-4-1-20250805/llms.txt) | | `claude-sonnet-4-20250514-thinking` | Claude Sonnet 4 20250514 Thinking | 1M | $2.4 | $12 | [llms.txt](https://gptproto.com/model/claude/claude-sonnet-4-20250514-thinking/llms.txt) | | `claude-sonnet-4-20250514` | Claude Sonnet 4 20250514 | 1M | $2.4 | $12 | [llms.txt](https://gptproto.com/model/claude/claude-sonnet-4-20250514/llms.txt) | ## Usage example The snippets below call `claude-opus-5`. 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": "claude-opus-5", "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": "claude-opus-5", "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: "claude-opus-5", messages: [ { role: "user", content: "Hello", }, ], }), }); const data = await response.json(); console.log(data); ``` ## Additional resources - [Provider page](https://gptproto.com/model/claude) - [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`