Skip to main content
The Messages API (/v1/messages) provides direct compatibility with the Anthropic Messages API format. Use this endpoint when working with Anthropic Claude models and features like interleaved thinking, tool calling, and multi-turn conversations.
The Messages API (/v1/messages) is fully supported on the Enterprise plan using https://enterprise.blackbox.ai. On standard plans (https://api.blackbox.ai), this endpoint may not work as expected. For the best experience, use an Enterprise API key.

Basic Request

import os
import requests

response = requests.post(
    'https://enterprise.blackbox.ai/v1/messages',
    headers={
        'Content-Type': 'application/json',
        'Authorization': f"Bearer {os.environ['BLACKBOX_API_KEY']}",
        'anthropic-version': '2023-06-01',
    },
    json={
        'model': 'blackboxai/anthropic/claude-sonnet-4.5',
        'max_tokens': 1024,
        'messages': [
            {'role': 'user', 'content': 'What is the capital of France?'}
        ],
    },
)

result = response.json()
print(result['content'][0]['text'])

Response Format

{
  "id": "gen_01KJRNETDECKXVWK0YX46WSHDY",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "The capital of France is Paris."
    }
  ],
  "model": "blackboxai/anthropic/claude-sonnet-4.5",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 19,
    "output_tokens": 10,
    "total_tokens": 29,
    "cache_read_input_tokens": 0,
    "cache_creation_input_tokens": 0
  }
}

System Prompt

Use the system parameter to set the model’s behavior for the entire conversation.
import os
import requests

response = requests.post(
    'https://enterprise.blackbox.ai/v1/messages',
    headers={
        'Content-Type': 'application/json',
        'Authorization': f"Bearer {os.environ['BLACKBOX_API_KEY']}",
        'anthropic-version': '2023-06-01',
    },
    json={
        'model': 'blackboxai/anthropic/claude-sonnet-4.5',
        'max_tokens': 256,
        'system': 'You are a helpful pirate. Always respond in pirate speak.',
        'messages': [
            {'role': 'user', 'content': 'What is 2 + 2?'}
        ],
    },
)

result = response.json()
print(result['content'][0]['text'])
Response
{
  "id": "gen_01KJRNEX4M6JD4GDPF4K5MK2J0",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Arrr, that be an easy bit o' mathematics, matey! 2 + 2 equals 4, as sure as the seven seas be salty!"
    }
  ],
  "model": "blackboxai/anthropic/claude-sonnet-4.5",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 30,
    "output_tokens": 60
  }
}

Multi-Turn Conversations

Pass previous messages as an array of alternating user and assistant messages to maintain conversation context.
import os
import requests

response = requests.post(
    'https://enterprise.blackbox.ai/v1/messages',
    headers={
        'Content-Type': 'application/json',
        'Authorization': f"Bearer {os.environ['BLACKBOX_API_KEY']}",
        'anthropic-version': '2023-06-01',
    },
    json={
        'model': 'blackboxai/anthropic/claude-sonnet-4.5',
        'max_tokens': 256,
        'messages': [
            {'role': 'user', 'content': 'My name is Alice.'},
            {'role': 'assistant', 'content': 'Nice to meet you, Alice! How can I help you today?'},
            {'role': 'user', 'content': "What's my name?"},
        ],
    },
)

result = response.json()
print(result['content'][0]['text'])
Response
{
  "id": "gen_01KJRNF1RP8DWKJ3M59JDAQRHX",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Your name is Alice, as you just told me."
    }
  ],
  "model": "blackboxai/anthropic/claude-sonnet-4.5",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 37,
    "output_tokens": 14
  }
}

Request Headers

Authorization
string
required
API Key in the format Bearer <api_key>. Get yours from here.
anthropic-version
string
required
Anthropic API version. Use 2023-06-01.
anthropic-beta
string
Optional beta features. For example, interleaved-thinking-2025-05-14 for legacy interleaved thinking support.

Request Parameters

model
string
required
The model ID. Supported models include:
  • blackboxai/anthropic/claude-opus-4.6
  • blackboxai/anthropic/claude-opus-4.5
  • blackboxai/anthropic/claude-sonnet-4.6
  • blackboxai/anthropic/claude-sonnet-4.5
max_tokens
integer
required
Maximum number of tokens to generate.
messages
array
required
Array of message objects with role (user or assistant) and content fields.
system
string
System prompt for the conversation.
tools
array
Array of tool definitions using the Anthropic input_schema format. See Tool Calling.
thinking
object
Configuration for extended / interleaved thinking. See Interleaved Thinking.

Response Fields

id
string
Unique message identifier.
type
string
Always "message".
role
string
Always "assistant".
content
array
Array of content blocks. Each block has a type field:
  • text — Text response with a text field
  • tool_use — Tool call with id, name, and input fields
  • thinking — Thinking block with a thinking field (when thinking is enabled)
stop_reason
string
Why the model stopped generating:
  • end_turn — Natural completion
  • tool_use — Model wants to call a tool
  • max_tokens — Hit the token limit
usage
object
Token usage with input_tokens and output_tokens.

Supported Models

ModelModel IDTool CallingInterleaved Thinking
Claude Opus 4.6blackboxai/anthropic/claude-opus-4.6
Claude Opus 4.5blackboxai/anthropic/claude-opus-4.5
Claude Sonnet 4.6blackboxai/anthropic/claude-sonnet-4.6
Claude Sonnet 4.5blackboxai/anthropic/claude-sonnet-4.5