Messages API (Anthropic native)
Reference for POST /v1/messages, Anthropic-compatible endpoint supporting streaming, tool use, vision, and extended thinking for Claude models.
Create a message with a Claude model using the Anthropic-native protocol. Compatible with the official Anthropic Python / TypeScript SDK — just point base_url at LEAPERone.
Endpoint
POST https://api.leaper.one/v1/messagesAuthentication
Same LEAPERone API key as the OpenAI-compatible endpoints. Both header styles are accepted:
Authorization: Bearer sk-your-leaperone-keyx-api-key: sk-your-leaperone-key(Anthropic-style)
Also required:
anthropic-version: 2023-06-01
Parameters
Standard Anthropic Messages payload. See the official reference for the full schema.
| Parameter | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | Claude model ID (see below) |
| max_tokens | integer | Yes | Maximum tokens to generate |
| messages | array | Yes | Array of { role, content } |
| system | string | array | No | System prompt or blocks |
| stream | boolean | No | SSE streaming (Anthropic event format) |
| temperature | number | No | 0-1 |
| tools | array | No | Tool definitions |
| tool_choice | object | No | auto / any / tool |
| thinking | object | No | { "type": "enabled", "budget_tokens": N } for extended thinking |
Supported models
| Model ID | Notes |
|---|---|
claude-fable-5 | Flagship |
claude-opus-4-8 | |
claude-opus-4-7 | |
claude-opus-4-6 | |
claude-sonnet-5 | |
claude-sonnet-4-6 | Balanced default |
claude-haiku-4-5 | Fastest / cheapest |
Pricing matches the Chat Completions gateway (USD per 1M tokens). See Models.
Request (curl)
curl -X POST https://api.leaper.one/v1/messages \
-H "Authorization: Bearer sk-your-leaperone-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!" }
]
}'Request (Anthropic Python SDK)
import anthropic
client = anthropic.Anthropic(
api_key="sk-your-leaperone-key",
base_url="https://api.leaper.one",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}],
)
print(message.content[0].text)Response
{
"id": "msg_01Abc...",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-6",
"content": [
{ "type": "text", "text": "Hi there!" }
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 12,
"output_tokens": 8,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0
}
}Streaming
Set "stream": true to receive Anthropic's SSE event stream — message_start, content_block_start, content_block_delta, message_delta, message_stop. Usage tokens accumulate across message_start (input_tokens) and message_delta (output_tokens); LEAPERone bills off the final merged usage.
Notes
- Only Claude models are exposed on this endpoint. Use
/v1/chat/completionsfor GPT / DeepSeek / Auto routing. - Tool use, vision (image blocks), and extended thinking are all passed through unchanged.
- Long-running requests (extended thinking, large contexts) currently share a 120s upstream timeout — split heavy jobs if you approach that limit.