Skip to main content
Generate messages with automatic PII and secrets protection using the Anthropic Messages API.
POST /anthropic/v1/messages
This endpoint supports both mask mode and route mode. Route mode requires a local LLM with Anthropic API support (e.g., Ollama). The request format follows the Anthropic Messages API.

Request

curl http://localhost:3000/anthropic/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hello"}
    ]
  }'

Parameters

ParameterTypeRequiredDescription
modelstringYesModel ID (e.g., claude-sonnet-4-20250514)
messagesarrayYesConversation messages
max_tokensnumberYesMaximum tokens to generate
streambooleanNoEnable streaming
systemstring/arrayNoSystem prompt
temperaturenumberNoSampling temperature (0-1)
All Anthropic Messages API parameters are supported.

Response

{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-20250514",
  "content": [
    {
      "type": "text",
      "text": "Hello! How can I help you today?"
    }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 10,
    "output_tokens": 15
  }
}

Streaming

Set stream: true for Server-Sent Events:
from anthropic import Anthropic

client = Anthropic(base_url="http://localhost:3000/anthropic")

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

Response Headers

PasteGuard adds headers to indicate PII and secrets handling:
HeaderDescription
X-PasteGuard-ModeCurrent mode (mask or route)
X-PasteGuard-ProviderProvider used (anthropic or local)
X-PasteGuard-PII-Detectedtrue if PII was found
X-PasteGuard-PII-Maskedtrue if PII was masked (mask mode only)
X-PasteGuard-LanguageDetected language code
X-PasteGuard-Language-Fallbacktrue if configured language was not available
X-PasteGuard-Secrets-Detectedtrue if secrets were found
X-PasteGuard-Secrets-TypesComma-separated list of detected secret types
X-PasteGuard-Secrets-Maskedtrue if secrets were masked

Content Types

PasteGuard scans all text content in Anthropic requests:
  • User messages — String content or text blocks
  • Assistant messages — Including thinking blocks
  • System prompts — String or content block array
  • Tool results — Text content in tool responses