Chat completion
Proxy a chat completion request through the Mythic Analytics AI gateway. Supports streaming responses and context-aware conversations about analytics data.
curl -X POST "https://api.mythic-analytics.com/api/v1/ai/chat" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"messages": [
{
"role": "user",
"content": "Summarize the traffic trends for acme-retail over the last 30 days."
}
],
"client_id": "acme-retail",
"stream": true,
"model": "gpt-4o"
}'
import requests
import json
url = "https://api.mythic-analytics.com/api/v1/ai/chat"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"messages": [
{
"role": "user",
"content": "Summarize the traffic trends for acme-retail over the last 30 days."
}
],
"client_id": "acme-retail",
"stream": true,
"model": "gpt-4o"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.mythic-analytics.com/api/v1/ai/chat", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"messages": [
{
"role": "user",
"content": "Summarize the traffic trends for acme-retail over the last 30 days."
}
],
"client_id": "acme-retail",
"stream": true,
"model": "gpt-4o"
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"messages": [
{
"role": "user",
"content": "Summarize the traffic trends for acme-retail over the last 30 days."
}
],
"client_id": "acme-retail",
"stream": true,
"model": "gpt-4o"
}`)
req, err := http.NewRequest("POST", "https://api.mythic-analytics.com/api/v1/ai/chat", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.mythic-analytics.com/api/v1/ai/chat')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"messages": [
{
"role": "user",
"content": "Summarize the traffic trends for acme-retail over the last 30 days."
}
],
"client_id": "acme-retail",
"stream": true,
"model": "gpt-4o"
}'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"message": {
"role": "assistant",
"content": "Over the last 30 days, acme-retail saw 42,600 page views with a 12% increase compared to the previous period..."
},
"usage": {
"prompt_tokens": 150,
"completion_tokens": 280,
"total_tokens": 430
}
}
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Please try again later",
"code": 429,
"retryAfter": 3600
}
{
"error": "Error",
"message": "Upstream AI provider error",
"code": 502
}
/ai/chat
Admin API key as bearer token. Format: Bearer YOUR_ADMIN_KEY
Bearer YOUR_ADMIN_KEYThe media type of the request body
Conversation message history.
Optional client ID to scope the conversation context.
Whether to stream the response via server-sent events.
AI model to use. Defaults to platform default.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Admin API key as bearer token. Format: Bearer YOUR_ADMIN_KEY
Body
Conversation message history.
Optional client ID to scope the conversation context.
Whether to stream the response via server-sent events.
AI model to use. Defaults to platform default.
Responses
Last updated today