OA
OneAI API
Docs
Anthropic-stylestreamingx-api-key authmodel routing

Reference: Messages

POST /v1/messages — Anthropic-style Messages API through OneAI model routing, usage tracking, and cost controls.

Request

Use provider:model ids from /v1/models. This endpoint accepts a top-level system prompt plus user/assistant messages.

curl -s https://oneai-saas-api-production.up.railway.app/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_KEY" \
  -d '{
    "model": "openai:gpt-5.2",
    "system": "You are OneAI, a concise commercial AI infrastructure assistant.",
    "messages": [
      { "role": "user", "content": "Explain OneAI SaaS in one sentence." }
    ],
    "max_tokens": 300
  }'

Streaming

Set stream: true to receive Anthropic-style server-sent events: message_start, content_block_delta, message_delta, and message_stop.

curl -N https://oneai-saas-api-production.up.railway.app/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_KEY" \
  -d '{
    "model": "openai:gpt-5.2",
    "system": "You write short launch copy.",
    "messages": [
      { "role": "user", "content": "Write a short OneAI launch line." }
    ],
    "stream": true,
    "max_tokens": 300
  }'

Response

OneAI returns a Messages-style response plus provider, estimated cost, and oneai.trace metadata.

{
  "id": "msg_...",
  "type": "message",
  "role": "assistant",
  "model": "gpt-5.2-...",
  "provider": "openai",
  "content": [
    { "type": "text", "text": "..." }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 15,
    "output_tokens": 57,
    "estimated_cost_usd": 0.00012
  },
  "oneai": {
    "requestId": "msg_...",
    "trace": { "selectedProvider": "openai", "fallbackUsed": false }
  }
}
When to use this endpoint

Use /v1/messages when customers already have Anthropic-style clients or prefer a system-plus-messages request shape. Use /v1/chat/completions for OpenAI-compatible clients, and /v1/generate for OneAI Task Intelligence.