Skip to main content

Endpoint

POST /api/openapi/v1/chat/completions

Request

Headers

HeaderRequiredDescription
AuthorizationYesBearer {API_KEY}
Content-TypeYesapplication/json

Body

{
  "model": "shopping-assistant",
  "messages": [
    {"role": "user", "content": "Recommend a dinner menu for tonight"}
  ],
  "stream": true,
  "metadata": {
    "customer_id": "cust_123",
    "location": {"x": 12.5, "y": 8.3}
  }
}
FieldTypeRequiredDescription
modelstringNoModel name (defaults to tenant’s default Open API model)
messagesarrayYesConversation messages
streambooleanNoEnable SSE streaming (default: false)
temperaturenumberNoGeneration temperature (0-2)
max_tokensintegerNoMaximum tokens to generate
metadataobjectNoApp context (location, cart, etc.)

Response

Non-streaming (stream: false)

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Here's a dinner menu suggestion..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 150,
    "total_tokens": 175
  }
}

Streaming (stream: true)

data: {"id":"chatcmpl-abc123","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}

data: {"id":"chatcmpl-abc123","choices":[{"index":0,"delta":{"content":"Here's"},"finish_reason":null}]}

data: [DONE]

Code Examples

curl

curl -X POST https://api.aika.life/api/openapi/v1/chat/completions \
  -H "Authorization: Bearer $ONESIGHT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shopping-assistant",
    "messages": [{"role": "user", "content": "Recommend dinner"}],
    "stream": false
  }'

Python

import requests

response = requests.post(
    "https://api.aika.life/api/openapi/v1/chat/completions",
    headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
    json={
        "model": "shopping-assistant",
        "messages": [{"role": "user", "content": "Recommend dinner"}],
    },
)
print(response.json()["choices"][0]["message"]["content"])

Swift (iOS)

let url = URL(string: "https://api.aika.life/api/openapi/v1/chat/completions")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

let body: [String: Any] = [
    "model": "shopping-assistant",
    "messages": [["role": "user", "content": "Recommend dinner"]],
    "stream": false
]
request.httpBody = try JSONSerialization.data(withJSONObject: body)

let (data, _) = try await URLSession.shared.data(for: request)

Language

Response language is determined by the tenant’s default language setting (default_language).