Anthropic Messages API
POST https://api.bve.me/v1/messagesGET https://api.bve.me/v1/messages/:message_idRequires Authorization: Bearer sk-bve-YOUR_KEY.
BVE Gateway natively passes through the Anthropic Messages API. The response is in Anthropic format (not OpenAI format). This is useful when you want to use Anthropic-specific features like extended thinking or when targeting Claude models directly.
Request body
Section titled “Request body”{ "model": "claude-sonnet-4-6", "max_tokens": 1024, "messages": [ { "role": "user", "content": "Hello, Claude!" } ]}| Field | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Claude model ID (e.g. claude-sonnet-4-6) |
messages | array | Yes | Array of {role, content} objects |
max_tokens | integer | Yes | Maximum tokens to generate |
system | string | No | System prompt |
temperature | number | No | Sampling temperature 0–1 |
top_p | number | No | Nucleus sampling |
top_k | integer | No | Top-k sampling |
stream | boolean | No | Enable SSE streaming |
stop_sequences | array | No | Stop sequences |
tools | array | No | Tool definitions |
tool_choice | object | No | Tool selection strategy |
thinking | object | No | Extended thinking configuration |
metadata | object | No | Request metadata |
Response (Anthropic format)
Section titled “Response (Anthropic format)”{ "id": "msg_01XFDUDYJgAACzvnptvVoYEL", "type": "message", "role": "assistant", "content": [ { "type": "text", "text": "Hello! How can I help you today?" } ], "model": "claude-sonnet-4-6-20250929", "stop_reason": "end_turn", "stop_sequence": null, "usage": { "input_tokens": 10, "output_tokens": 12 }}cURL example
Section titled “cURL example”curl https://api.bve.me/v1/messages \ -H "Authorization: Bearer sk-bve-YOUR_KEY" \ -H "Content-Type: application/json" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "claude-sonnet-4-6", "max_tokens": 1024, "messages": [ { "role": "user", "content": "Hello, Claude!" } ] }'Streaming
Section titled “Streaming”curl https://api.bve.me/v1/messages \ -H "Authorization: Bearer sk-bve-YOUR_KEY" \ -H "Content-Type: application/json" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "claude-sonnet-4-6", "max_tokens": 1024, "messages": [{ "role": "user", "content": "Count to 5." }], "stream": true }'Streaming returns Anthropic SSE events: message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop.
Anthropic SDK
Section titled “Anthropic SDK”import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({ apiKey: 'sk-bve-YOUR_KEY', baseURL: 'https://api.bve.me/v1',});
const message = await client.messages.create({ model: 'claude-sonnet-4-6', max_tokens: 1024, messages: [{ role: 'user', content: 'Hello, Claude!' }],});
console.log(message.content[0].text);Available Claude models
Section titled “Available Claude models”| Model | ID |
|---|---|
| Claude Sonnet 4.6 | claude-sonnet-4-6 |
| Claude Sonnet 4.5 | claude-sonnet-4-5 |
| Claude Sonnet 4 | claude-sonnet-4 |
| Claude Haiku 4.5 | claude-haiku-4-5 |
| Claude Haiku 4 | claude-haiku-4 |
| Claude 3.7 Sonnet | claude-3-7-sonnet |
| Claude 3.5 Sonnet | claude-3-5-sonnet |
| Claude 3.5 Haiku | claude-3-5-haiku |
See the Models page for the full list.
- The
anthropic-versionheader is optional but recommended. - The
x-api-keyheader is NOT required — authentication uses the BVE GatewayAuthorization: Bearer sk-bve-YOUR_KEYheader only. - The
request-idresponse header is passed through from the Anthropic upstream. - Extended thinking (
"thinking": {"type": "enabled", "budget_tokens": N}) is forwarded if the model supports it.