POST https://51kik.com/anthropic/v1/messages

Create a Messages API response. Shape follows Anthropic Messages.

Authentication

x-api-key: YOUR_API_KEY
anthropic-version: 2023-06-01
Content-Type: application/json

Or Authorization: Bearer YOUR_API_KEY.

Recommended headers

Optional, same as OpenAI surface: x-trace-id, x-user-id, x-agent-name.

Request body

FieldRequiredDescription
modelyesCatalog id
messagesyesuser / assistant, min 1
max_tokensyesMax output tokens
systemnoString or [{ type: "text", text }]
streamnotrue → Anthropic SSE
temperature, top_p, top_knoSampling
stop_sequencesnoString array
toolsno{ name, description?, input_schema }[]
tool_choicenoauto / any / named tool
metadatanoe.g. { user_id }
pdf_preprocessnoSame PDF extension as OpenAI chat
extra_bodynoJSON merged upstream

Limit: JSON up to 32 MB.

messages[].content

String or block array: text, image, tool_use, tool_result, thinking, etc. Invalid blocks return 400.

Non-streaming example

curl -sS "https://51kik.com/anthropic/v1/messages" \
  -H "x-api-key: $API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "max_tokens": 1024,
    "messages": [{ "role": "user", "content": "One sentence about gateways." }]
  }'

Streaming

"stream": true and Accept: text/event-stream. Events: message_start, content_block_delta, message_stop, … See Streaming.

Tools

  1. Send tools + tool_choice.
  2. Assistant content may include tool_use blocks.
  3. Next turn: user message with tool_result blocks matching tool_use_id.

Response (non-streaming)

Anthropic-shaped: id, type: "message", role, content[], model, stop_reason, usage, …

Errors

{
  "type": "error",
  "error": { "type": "invalid_request_error", "message": "..." },
  "request_id": "req_..."
}

See Errors · Anthropic differences.