Docs
API Reference

Chat Completions

The OpenAI-style chat completion endpoint, request parameters, and response shape

POST /v1/chat/completions is the OpenAI-style chat endpoint. It accepts the official openai SDK unchanged.

Request

Authenticate with Authorization: Bearer sk-ablatic-....

cURL

curl https://api.ablatic.ai/v1/chat/completions \
  -H "Authorization: Bearer $ABLATIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "talos",
    "messages": [{ "role": "user", "content": "Hello" }]
  }'

Parameters

NameTypeRequiredDescription
modelstringnoModel id. Default talos. See Models
messagesarrayyesConversation messages, 1 to 2000
streambooleannoStream tokens over SSE, ending with data: [DONE]
temperaturenumbernoSampling temperature, 0 to 2
max_tokensintegernoMax output tokens, 1 to 200000
top_pnumbernoNucleus sampling cutoff
toolsarraynoTool definitions. Uses function.parameters
tool_choicestring or objectnoTool selection policy
response_formatobjectnoOne of text, json_object, json_schema
reasoning_effortstringnoReasoning depth. none/minimal to fast, low to brief thinking, medium (default) to thinking, high/xhigh/max to thinking with a larger reasoning-token budget
max_reasoning_tokensintegernoCap on reasoning tokens, 0 to 200000
session_idstringnoGroup requests into a session
glassboxobjectnoOpt in to Glassbox trace and confidence
refusal_modestringnoOne of soft, strict

The mode and depth are set by reasoning_effort. When you omit it, it defaults to medium (thinking). For the lowest latency send reasoning_effort of none; for the shortest reasoning while still thinking, send low. See Reasoning modes. When streaming, the reasoning trace arrives in delta.reasoning_content, separate from delta.content.

Response

The response is a chat.completion object.

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "created": 1744761600,
  "model": "talos-thinking",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello. How can I help?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 7,
    "total_tokens": 16,
    "reasoning_tokens": 0
  }
}

The response model field echoes the resolved mode as talos-<mode>. usage carries prompt_tokens, completion_tokens, total_tokens, and reasoning_tokens when reasoning ran. reasoning_tokens counts tokens that are already part of completion_tokens, so never add the two together.

finish_reason

ValueMeaning
stopThe model completed its answer
lengthOutput hit max_tokens, or the model spent its whole budget reasoning without answering
tool_callsThe model called one or more tools. See Function calling
low_confidenceGlassbox only. Confidence fell below the threshold you set
abstainedGlassbox only. Confidence fell below the hard cutoff

Extension fields

These non-standard fields appear alongside the standard object.

FieldDescription
talos_traceGlassbox trace object. Present only when you opt into Glassbox, omitted otherwise
talos_complexityComplexity signal object. Always present
session_idEchoes the session_id you sent. Present only when you sent one

Glassbox and confidence are opt-in and off by default. When off, talos_trace.confidence is null. Do not rely on live confidence scores.

The response carries an X-Request-Id header. Quote it in support tickets.

Next