Skip to main content
POST
/
v1
/
chat
/
completions
Chat Completions API
curl --request POST \
  --url https://api.unifically.com/v1/chat/completions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "<string>",
  "messages": [
    {}
  ],
  "stream": true,
  "temperature": 123,
  "max_tokens": 123,
  "top_p": 123,
  "stop": {},
  "tools": [
    {}
  ],
  "tool_choice": {},
  "response_format": {}
}
'
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1710000000,
  "model": "openai/gpt-5.4",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Quantum computing uses quantum bits..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 28,
    "completion_tokens": 64,
    "total_tokens": 92
  }
}
The /v1/chat/completions endpoint provides an OpenAI-compatible interface for text generation. Use the same request format as the OpenAI Chat Completions API — swap the base URL to https://api.unifically.com and pass any supported model ID in the model field.
All LLM models support this endpoint, including Cursor, OpenAI, and Anthropic models.

Create Chat Completion

POST /v1/chat/completions

Request

curl -X POST https://api.unifically.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "openai/gpt-5.4",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Explain quantum computing in one paragraph."}
    ]
  }'

Request Parameters

model
string
required
Model identifier in provider/model-name format. See Available LLM Models.
messages
array
required
Array of message objects with role (system, user, or assistant) and content (string or content parts array).
stream
boolean
If true, the response is streamed using server-sent events. Default: false.
temperature
number
Sampling temperature between 0 and 2. Higher values produce more random output.
max_tokens
integer
Maximum number of tokens to generate in the completion.
top_p
number
Nucleus sampling parameter. Alternative to temperature.
stop
string | array
Up to four sequences where the model stops generating further tokens.
tools
array
List of tools the model may call. Each tool requires a type and function definition.
tool_choice
string | object
Controls which (if any) tool is called. Options: none, auto, required, or a specific tool.
response_format
object
Set { "type": "json_object" } to enable JSON mode when supported by the model.

Response

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1710000000,
  "model": "openai/gpt-5.4",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Quantum computing uses quantum bits..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 28,
    "completion_tokens": 64,
    "total_tokens": 92
  }
}

Streaming Response

When stream: true, the API returns text/event-stream chunks in OpenAI format:
curl -X POST https://api.unifically.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "anthropic/claude-sonnet-4-6",
    "messages": [{"role": "user", "content": "Hello!"}],
    "stream": true
  }'
Each chunk is a data: line containing a partial completion object, ending with data: [DONE].

Supported Models

ModelProvider
cursor/composer-2.5Cursor
cursor/composer-2.5-fastCursor
openai/gpt-5.4-miniOpenAI
openai/gpt-5.4-nanoOpenAI
openai/gpt-5.4OpenAI
openai/gpt-5.5OpenAI
anthropic/claude-sonnet-4-6Anthropic
anthropic/claude-opus-4-6Anthropic
anthropic/claude-opus-4-7Anthropic
anthropic/claude-opus-4-8Anthropic
See individual model pages under LLM Models for details.

SDK Compatibility

Point any OpenAI SDK at Unifically by changing the base URL:
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.unifically.com/v1"
)

response = client.chat.completions.create(
    model="openai/gpt-5.4",
    messages=[{"role": "user", "content": "Hello!"}]
)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.UNIFICALLY_API_KEY,
  baseURL: "https://api.unifically.com/v1",
});

const response = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-4-6",
  messages: [{ role: "user", content: "Hello!" }],
});