Chat Completions API
POST /v1/chat/completions — the OpenAI-format endpoint, for Cursor, LangChain, LiteLLM and the OpenAI SDKs.
The OpenAI-compatible surface. Same models, same prices, different envelope.
Endpoint
POST https://aiprimetech.io/v1/chat/completionsBase URL for SDKs
https://aiprimetech.io/v1 — note the /v1Auth
Authorization: Bearer sk-...Request body
| Field | Type | Required | Description |
|---|---|---|---|
model | string | yes | Any id from /v1/models, including Claude ids |
messages | array | yes | Supports system, user and assistant roles |
max_tokens | integer | no | Optional here, unlike the Messages API |
temperature | number | no | 0–2 in the OpenAI convention |
stream | boolean | no | true for SSE chunks |
tools | array | no | OpenAI function-calling shape |
Unlike Messages,
system is a role here — put it as the first entry of messages. Do not send a top-level system field to this endpoint.Example
curl https://aiprimetech.io/v1/chat/completions \
-H "Authorization: Bearer $CLAUDEAPIKEY" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role": "user", "content": "Hello"}]
}'
Response
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "claude-sonnet-4-6",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "..."},
"finish_reason": "stop"
}],
"usage": {"prompt_tokens": 9, "completion_tokens": 12, "total_tokens": 21}
}
Using the OpenAI SDK
from openai import OpenAI
client = OpenAI(
api_key=class="s">"sk-your-key",
base_url=class="s">"https://aiprimetech.io/v1", class=class="s">"c"># the /v1 matters
)
resp = client.chat.completions.create(
model=class="s">"claude-sonnet-4-6",
messages=[{class="s">"role": class="s">"user", class="s">"content": class="s">"Hello"}],
)
print(resp.choices[0].message.content)
Field mapping between the two formats
| Concept | Messages | Chat Completions |
|---|---|---|
| System prompt | top-level system | messages[0] with role system |
| Reply text | content[0].text | choices[0].message.content |
| Why it stopped | stop_reason | finish_reason |
| Input tokens | usage.input_tokens | usage.prompt_tokens |
| Output tokens | usage.output_tokens | usage.completion_tokens |
| Stream delta | content_block_delta | choices[0].delta.content |