Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.raptordata.dev/llms.txt

Use this file to discover all available pages before exploring further.

Anthropic Integration

Works with both Python and TypeScript. Your existing Claude code stays the same—just change the base URL.

Setup

from anthropic import Anthropic

client = Anthropic(
    api_key="sk-ant-your-key",
    base_url="https://proxy.raptordata.dev",
    default_headers={
        "X-Raptor-Api-Key": "rpt_your-key",
        "X-Raptor-Workspace-Id": "your-workspace-id"
    }
)
Anthropic uses https://proxy.raptordata.dev (no /v1). OpenAI uses https://proxy.raptordata.dev/v1.

Messages

message = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}]
)
print(message.content[0].text)

With System Prompt

message = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    system="You are a helpful assistant.",
    messages=[{"role": "user", "content": "Hello!"}]
)

Streaming

with client.messages.stream(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Tell me a story"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="")

Tools

tools = [{
    "name": "get_weather",
    "description": "Get weather for a location",
    "input_schema": {
        "type": "object",
        "properties": {"location": {"type": "string"}},
        "required": ["location"]
    }
}]

message = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    tools=tools,
    messages=[{"role": "user", "content": "Weather in Paris?"}]
)

Vision

message = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {"type": "image", "source": {"type": "url", "url": "https://..."}},
            {"type": "text", "text": "What's in this image?"}
        ]
    }]
)

Response Headers

HeaderDescription
X-Raptor-Cachehit or miss
X-Raptor-Latency-MsTotal Raptor overhead
X-Raptor-Upstream-Latency-MsTime waiting for Anthropic
X-Raptor-Request-IdUnique ID for debugging

Error Handling

from anthropic import APIError

try:
    message = client.messages.create(...)
except APIError as e:
    if e.status_code == 403:
        print("Blocked by Raptor firewall")
    else:
        raise
All Claude features work: Claude 3.5 Sonnet, Claude 3 Opus, vision, tools, and more.