API Reference
MonoRouter is a drop-in proxy for the Anthropic Messages API. Use your existing Claude Pro or Max subscription to make API calls with any Anthropic-compatible client.
Authentication
Every request requires your MonoRouter API key and the Anthropic version header. You can authenticate using either the x-api-key header or the Authorization: Bearer header.
x-api-keystringrequiredYour MonoRouter API key (mrk_...)
anthropic-versionstringrequiredAlways 2023-06-01
Content-Type: application/json x-api-key: mrk_... anthropic-version: 2023-06-01
Create a message
/v1/messagesSend a message to a Claude model and receive a response. This is the primary endpoint for interacting with Claude through MonoRouter. Supports streaming, tool use, vision, system prompts, and extended thinking.
Required parameters
modelstringrequiredThe model to use for the response. See supported models below.
max_tokensintegerrequiredThe maximum number of tokens to generate before stopping.
messagesarrayrequiredThe conversation messages. Each message has a role ("user" or "assistant") and content.
Response
idstringUnique message identifier (msg_...)
typestringAlways "message"
rolestringAlways "assistant"
contentarrayArray of content blocks (text, tool_use, thinking)
modelstringThe model that generated the response
stop_reasonstring"end_turn", "max_tokens", "stop_sequence", or "tool_use"
usageobjectToken counts: input_tokens, output_tokens
Errors
curl -X POST https://api.monorouter.dev/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: mrk_..." \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 256,
"stream": false,
"messages": [
{
"role": "user",
"content": "Hello! What is MonoRouter?"
}
]
}'{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "MonoRouter is an API proxy that lets you use Claude models through your existing Pro or Max subscription."
}
],
"model": "claude-sonnet-4-6",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 12,
"output_tokens": 28
}
}Count tokens
/v1/messages/count_tokensCount the number of tokens in a message before sending it. Use this to estimate costs and manage context window usage without consuming any model capacity.
Required parameters
modelstringrequiredThe model to use for tokenization. Different models may tokenize differently.
messagesarrayrequiredThe messages to count tokens for.
Response
input_tokensintegerTotal number of input tokens
Errors
curl -X POST https://api.monorouter.dev/v1/messages/count_tokens \
-H "Content-Type: application/json" \
-H "x-api-key: mrk_..." \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [
{
"role": "user",
"content": "Hello! How are you doing today?"
}
]
}'{
"input_tokens": 14
}List models
/v1/modelsRetrieve all models currently available through MonoRouter. Returns model IDs, display names, and context window sizes. Use the model ID in the model parameter of other endpoints.
No request body. Authenticate with the x-api-key header.
Response
dataarrayArray of model objects
data[].idstringModel identifier to use in API calls
data[].display_namestringHuman-readable model name
data[].typestringAlways "model"
Errors
curl https://api.monorouter.dev/v1/models \ -H "x-api-key: mrk_..." \ -H "anthropic-version: 2023-06-01"
{
"data": [
{
"id": "claude-opus-4-8",
"display_name": "Claude Opus 4.8",
"type": "model"
},
{
"id": "claude-sonnet-4-6",
"display_name": "Claude Sonnet 4.6",
"type": "model"
}
]
}Supported models
All current Claude models are available through MonoRouter. Pass the model ID in the model parameter.
| Model ID | Name | Tier | Context |
|---|---|---|---|
claude-fable-5 | Claude Fable 5 | Flagship | 1M |
claude-opus-4-8 | Claude Opus 4.8 | Flagship | 1M |
claude-opus-4-7 | Claude Opus 4.7 | Flagship | 1M |
claude-opus-4-6 | Claude Opus 4.6 | Flagship | 1M |
claude-sonnet-5 | Claude Sonnet 5 | Mid-tier | 1M |
claude-sonnet-4-6 | Claude Sonnet 4.6 | Mid-tier | 1M |
claude-haiku-4-5-20251001 | Claude Haiku 4.5 | Fast | 1M |
Full Anthropic API compatibility
MonoRouter proxies requests directly to Anthropic. Any parameter supported by the Anthropic Messages API — including streaming, tool use, system prompts, and vision — works identically through MonoRouter. See the Anthropic API docs for full parameter details.