Skip to main content
Docs
Chat Completions

Chat Completions

Use the chat completions endpoint to create conversational AI responses.

The chat completions endpoint creates AI responses for conversational messages. This is the primary endpoint for most applications.

Endpoint

POST https://api.elyxir.ai/v1/chat/completions

Request

Headers

HeaderRequiredDescription
AuthorizationYesBearer token: Bearer elyxir_xxx
Content-TypeYesMust be application/json

Body Parameters

ParameterTypeRequiredDescription
modelstringYesModel ID (e.g., gpt-4o-mini)
messagesarrayYesArray of message objects
temperaturenumberNoRandomness (0-2, default: 1)
max_tokensintegerNoMaximum response tokens
streambooleanNoEnable streaming (default: false)
top_pnumberNoNucleus sampling (0-1)
stopstring/arrayNoStop sequences
presence_penaltynumberNoPenalize new topics (-2 to 2)
frequency_penaltynumberNoPenalize repetition (-2 to 2)

Message Object

FieldTypeRequiredDescription
rolestringYessystem, user, or assistant
contentstringYesMessage content

Example Request

curl -X POST https://api.elyxir.ai/v1/chat/completions \
  -H "Authorization: Bearer elyxir_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "What is the capital of France?"}
    ],
    "temperature": 0.7,
    "max_tokens": 150
  }'

Response

Success (200 OK)

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1234567890,
  "model": "gpt-4o-mini",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "The capital of France is Paris."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 10,
    "total_tokens": 35
  }
}

Response Fields

FieldDescription
idUnique completion ID
objectObject type (chat.completion)
createdUnix timestamp
modelModel used for completion
choicesArray of completion choices
usageToken usage statistics

Finish Reasons

ReasonDescription
stopNatural completion or stop sequence
lengthHit max_tokens limit
content_filterFiltered by content moderation

Multi-turn Conversations

Include previous messages for context:

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "What is Python?"},
    {"role": "assistant", "content": "Python is a programming language..."},
    {"role": "user", "content": "How do I install it?"}
]
 
response = requests.post(
    "https://api.elyxir.ai/v1/chat/completions",
    headers=headers,
    json={"model": "gpt-4o-mini", "messages": messages}
)

Streaming

Enable streaming for real-time responses:

curl -X POST https://api.elyxir.ai/v1/chat/completions \
  -H "Authorization: Bearer elyxir_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role": "user", "content": "Tell me a story"}],
    "stream": true
  }'

Streaming returns Server-Sent Events (SSE):

data: {"id":"chatcmpl-abc","choices":[{"delta":{"content":"The"}}]}
data: {"id":"chatcmpl-abc","choices":[{"delta":{"content":" capital"}}]}
data: [DONE]

Available Models

ModelProviderBest For
gpt-4oOpenAIGeneral purpose
gpt-4o-miniOpenAICost-effective
claude-3-5-sonnet-20241022AnthropicCoding, analysis
claude-3-haiku-20240307AnthropicFast, affordable
gemini-1.5-proGoogleLong context
llama-3.2-90bMetaOpen source

Error Responses

StatusMeaning
400Bad request (invalid parameters)
401Authentication failed
402Insufficient credits
429Rate limit exceeded
500Server error

See Error Handling for details.

Chat Completions | elyxir