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-keystringrequired

Your MonoRouter API key (mrk_...)

anthropic-versionstringrequired

Always 2023-06-01

Headers
Content-Type: application/json
x-api-key: mrk_...
anthropic-version: 2023-06-01
POST

Create a message

/v1/messages

Send 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

modelstringrequired

The model to use for the response. See supported models below.

max_tokensintegerrequired

The maximum number of tokens to generate before stopping.

messagesarrayrequired

The conversation messages. Each message has a role ("user" or "assistant") and content.

Response

idstring

Unique message identifier (msg_...)

typestring

Always "message"

rolestring

Always "assistant"

contentarray

Array of content blocks (text, tool_use, thinking)

modelstring

The model that generated the response

stop_reasonstring

"end_turn", "max_tokens", "stop_sequence", or "tool_use"

usageobject

Token counts: input_tokens, output_tokens

Errors

400Invalid request body or parameters
401Invalid or missing API key
429Rate limit exceeded
500Internal server error
Request
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?"
    }
  ]
}'
Response200
{
  "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
  }
}
POST

Count tokens

/v1/messages/count_tokens

Count 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

modelstringrequired

The model to use for tokenization. Different models may tokenize differently.

messagesarrayrequired

The messages to count tokens for.

Response

input_tokensinteger

Total number of input tokens

Errors

400Invalid request
401Invalid or missing API key
Request
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?"
    }
  ]
}'
Response200
{
  "input_tokens": 14
}
GET

List models

/v1/models

Retrieve 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

dataarray

Array of model objects

data[].idstring

Model identifier to use in API calls

data[].display_namestring

Human-readable model name

data[].typestring

Always "model"

Errors

401Invalid or missing API key
Request
curl https://api.monorouter.dev/v1/models \
  -H "x-api-key: mrk_..." \
  -H "anthropic-version: 2023-06-01"
Response200
{
  "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 IDNameTierContext
claude-fable-5Claude Fable 5Flagship1M
claude-opus-4-8Claude Opus 4.8Flagship1M
claude-opus-4-7Claude Opus 4.7Flagship1M
claude-opus-4-6Claude Opus 4.6Flagship1M
claude-sonnet-5Claude Sonnet 5Mid-tier1M
claude-sonnet-4-6Claude Sonnet 4.6Mid-tier1M
claude-haiku-4-5-20251001Claude Haiku 4.5Fast1M

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.

API Reference — MonoRouter · monorouter