Analytics API
The Analytics API provides comprehensive performance monitoring, usage tracking, and insights for your AI agents. Monitor agent interactions, track performance metrics, and get AI-generated insights to optimize your deployments.
Info: All analytics endpoints require authentication using the
x-api-tokenheader.
Overview
- Interaction Tracking: Record and retrieve agent interactions
- Performance Metrics: Monitor agent performance over time
- Company Analytics: Get company-wide insights and trends
- Usage Monitoring: Track token consumption and costs
Authentication
curl -H "x-api-token: YOUR_API_TOKEN" \
https://api.aloochat.ai/api/v1/analytics/...Interaction Tracking
Record Agent Interaction
cURL:
curl -X POST https://api.aloochat.ai/api/v1/analytics/interactions \
-H "x-api-token: YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "123e4567-e89b-12d3-a456-426614174000",
"query_text": "What are your business hours?",
"response_text": "Our business hours are Monday-Friday, 9 AM to 6 PM EST.",
"response_time_ms": 1250,
"was_resolved": true
}'JavaScript:
const response = await fetch('https://api.aloochat.ai/api/v1/analytics/interactions', {
method: 'POST',
headers: {
'x-api-token': 'YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
agent_id: '123e4567-e89b-12d3-a456-426614174000',
query_text: 'What are your business hours?',
response_text: 'Our business hours are Monday-Friday, 9 AM to 6 PM EST.',
response_time_ms: 1250,
was_resolved: true
})
});Get Agent Interactions
Retrieve agent interactions with filtering and pagination.
cURL:
curl "https://api.aloochat.ai/api/v1/analytics/interactions?agent_id=123e4567-e89b-12d3-a456-426614174000&limit=50" \
-H "x-api-token: YOUR_API_TOKEN"JavaScript:
const params = new URLSearchParams({
agent_id: '123e4567-e89b-12d3-a456-426614174000',
limit: '50',
start_date: '2024-01-01T00:00:00Z',
end_date: '2024-01-31T23:59:59Z'
});
const response = await fetch(`https://api.aloochat.ai/api/v1/analytics/interactions?${params}`, {
headers: {
'x-api-token': 'YOUR_API_TOKEN'
}
});
const interactions = await response.json();
console.log('Interactions:', interactions);Python:
import requests
params = {
'agent_id': '123e4567-e89b-12d3-a456-426614174000',
'limit': 50,
'start_date': '2024-01-01T00:00:00Z',
'end_date': '2024-01-31T23:59:59Z'
}
response = requests.get(
'https://api.aloochat.ai/api/v1/analytics/interactions',
headers={'x-api-token': 'YOUR_API_TOKEN'},
params=params
)
interactions = response.json()
print('Interactions:', interactions)Performance Metrics
Get Agent Performance
Get detailed performance metrics for a specific agent over time.
cURL:
curl "https://api.aloochat.ai/api/v1/analytics/agents/123e4567-e89b-12d3-a456-426614174000/performance?start_date=2024-01-01&end_date=2024-01-31" \
-H "x-api-token: YOUR_API_TOKEN"JavaScript:
const agentId = '123e4567-e89b-12d3-a456-426614174000';
const response = await fetch(`https://api.aloochat.ai/api/v1/analytics/agents/${agentId}/performance?start_date=2024-01-01&end_date=2024-01-31`, {
headers: { 'x-api-token': 'YOUR_API_TOKEN' }
});Python:
import requests
agent_id = '123e4567-e89b-12d3-a456-426614174000'
params = {
'start_date': '2024-01-01',
'end_date': '2024-01-31'
}
response = requests.get(
f'https://api.aloochat.ai/api/v1/analytics/agents/{agent_id}/performance',
headers={'x-api-token': 'YOUR_API_TOKEN'},
params=params
)
performance = response.json()
print('Agent performance:', performance)Get Daily Metrics
Get daily aggregated metrics for an agent.
cURL:
curl "https://api.aloochat.ai/api/v1/analytics/agents/123e4567-e89b-12d3-a456-426614174000/daily-metrics?start_date=2024-01-01&end_date=2024-01-31" \
-H "x-api-token: YOUR_API_TOKEN"JavaScript:
const agentId = '123e4567-e89b-12d3-a456-426614174000';
const params = new URLSearchParams({
start_date: '2024-01-01',
end_date: '2024-01-31',
limit: '30'
});
const response = await fetch(`https://api.aloochat.ai/api/v1/analytics/agents/${agentId}/daily-metrics?${params}`, {
headers: {
'x-api-token': 'YOUR_API_TOKEN'
}
});
const dailyMetrics = await response.json();
console.log('Daily metrics:', dailyMetrics);Python:
import requests
agent_id = '123e4567-e89b-12d3-a456-426614174000'
params = {
'start_date': '2024-01-01',
'end_date': '2024-01-31',
'limit': 30
}
response = requests.get(
f'https://api.aloochat.ai/api/v1/analytics/agents/{agent_id}/daily-metrics',
headers={'x-api-token': 'YOUR_API_TOKEN'},
params=params
)
daily_metrics = response.json()
print('Daily metrics:', daily_metrics)Company Analytics
cURL:
curl "https://api.aloochat.ai/api/v1/analytics/company/usage?granularity=daily&start_date=2024-01-01T00:00:00Z&end_date=2024-01-31T23:59:59Z" \
-H "x-api-token: YOUR_API_TOKEN"JavaScript:
const params = new URLSearchParams({
granularity: 'daily',
start_date: '2024-01-01T00:00:00Z',
end_date: '2024-01-31T23:59:59Z'
});
const response = await fetch(`https://api.aloochat.ai/api/v1/analytics/company/usage?${params}`, {
headers: {
'x-api-token': 'YOUR_API_TOKEN'
}
});
const usageMetrics = await response.json();
console.log('Usage metrics:', usageMetrics);
console.log('Estimated cost:', usageMetrics.cost_estimate);Python:
import requests
params = {
'granularity': 'daily',
'start_date': '2024-01-01T00:00:00Z',
'end_date': '2024-01-31T23:59:59Z'
}
response = requests.get(
'https://api.aloochat.ai/api/v1/analytics/company/usage',
headers={'x-api-token': 'YOUR_API_TOKEN'},
params=params
)
usage_metrics = response.json()
print('Usage metrics:', usage_metrics)
print('Estimated cost:', usage_metrics['cost_estimate'])Get Company Insights
Get AI-generated insights and recommendations based on your company’s performance data.
cURL:
curl "https://api.aloochat.ai/api/v1/analytics/company/insights?days=30" \
-H "x-api-token: YOUR_API_TOKEN"JavaScript:
const params = new URLSearchParams({
days: '30',
insight_types: 'performance,usage,recommendation'
});
const response = await fetch(`https://api.aloochat.ai/api/v1/analytics/company/insights?${params}`, {
headers: {
'x-api-token': 'YOUR_API_TOKEN'
}
});
const insights = await response.json();
console.log('Company insights:', insights);
// Process insights by severity
insights.insights.forEach(insight => {
console.log(`${insight.severity.toUpperCase()}: ${insight.title}`);
console.log(insight.description);
});Python:
import requests
params = {
'days': 30,
'insight_types': ['performance', 'usage', 'recommendation']
}
response = requests.get(
'https://api.aloochat.ai/api/v1/analytics/company/insights',
headers={'x-api-token': 'YOUR_API_TOKEN'},
params=params
)
insights = response.json()
print('Company insights:', insights)
# Process insights by severity
for insight in insights['insights']:
print(f"{insight['severity'].upper()}: {insight['title']}")
print(insight['description'])Query Analysis
Get Query Distribution
Analyze query patterns and distributions across agents and time periods.
cURL:
curl "https://api.aloochat.ai/api/v1/analytics/query-distribution?agent_id=123e4567-e89b-12d3-a456-426614174000&top_n=20" \
-H "x-api-token: YOUR_API_TOKEN"JavaScript:
const params = new URLSearchParams({
agent_id: '123e4567-e89b-12d3-a456-426614174000',
start_date: '2024-01-01T00:00:00Z',
end_date: '2024-01-31T23:59:59Z',
top_n: '20'
});
const response = await fetch(`https://api.aloochat.ai/api/v1/analytics/query-distribution?${params}`, {
headers: {
'x-api-token': 'YOUR_API_TOKEN'
}
});
const queryDistribution = await response.json();
console.log('Query distribution:', queryDistribution);
// Show top query types
Object.entries(queryDistribution.distribution).forEach(([queryType, stats]) => {
console.log(`${queryType}: ${stats.count} queries (${stats.percentage}%)`);
console.log(` Avg response time: ${stats.avg_response_time}ms`);
console.log(` Resolution rate: ${stats.resolution_rate}%`);
});Python:
import requests
params = {
'agent_id': '123e4567-e89b-12d3-a456-426614174000',
'start_date': '2024-01-01T00:00:00Z',
'end_date': '2024-01-31T23:59:59Z',
'top_n': 20
}
response = requests.get(
'https://api.aloochat.ai/api/v1/analytics/query-distribution',
headers={'x-api-token': 'YOUR_API_TOKEN'},
params=params
)
query_distribution = response.json()
print('Query distribution:', query_distribution)
# Show top query types
for query_type, stats in query_distribution['distribution'].items():
print(f"{query_type}: {stats['count']} queries ({stats['percentage']}%)")
print(f" Avg response time: {stats['avg_response_time']}ms")
print(f" Resolution rate: {stats['resolution_rate']}%")Response Schemas
Agent Interaction
{
"id": "789e0123-e89b-12d3-a456-426614174002",
"agent_id": "123e4567-e89b-12d3-a456-426614174000",
"deployment_id": "456e7890-e89b-12d3-a456-426614174001",
"conversation_id": "789e0123-e89b-12d3-a456-426614174002",
"user_id": "012e3456-e89b-12d3-a456-426614174003",
"company_id": "345e6789-e89b-12d3-a456-426614174004",
"query_text": "What are your business hours?",
"response_time_ms": 1250,
"token_count_input": 45,
"token_count_output": 78,
"was_resolved": true,
"created_at": "2024-01-15T10:30:00Z"
}Performance Metrics
{
"agent_id": "123e4567-e89b-12d3-a456-426614174000",
"deployment_id": "456e7890-e89b-12d3-a456-426614174001",
"period_start": "2024-01-01T00:00:00Z",
"period_end": "2024-01-31T23:59:59Z",
"total_interactions": 1250,
"total_tokens_input": 45000,
"total_tokens_output": 78000,
"avg_response_time_ms": 1150.5,
"resolution_rate": 0.87,
"daily_metrics": [
{
"date": "2024-01-01",
"total_interactions": 45,
"avg_response_time_ms": 1200.0,
"resolution_rate": 0.89
}
]
}Company Analytics
{
"company_id": "345e6789-e89b-12d3-a456-426614174004",
"period_start": "2024-01-01T00:00:00Z",
"period_end": "2024-01-31T23:59:59Z",
"total_interactions": 15750,
"total_agents": 12,
"total_deployments": 18,
"avg_response_time_ms": 1087.3,
"overall_resolution_rate": 0.84,
"top_agents": [
{
"agent_id": "123e4567-e89b-12d3-a456-426614174000",
"interactions": 1250,
"resolution_rate": 0.87
}
],
"query_distribution": {
"support": 4500,
"billing": 3200,
"technical": 2800
}
}Error Handling
The Analytics API uses standard HTTP status codes and returns detailed error messages:
{
"error": "ValidationError",
"message": "Invalid agent_id format",
"statusCode": 400,
"timestamp": "2024-01-15T10:30:00Z",
"path": "/api/v1/analytics/interactions"
}Common error codes:
400- Bad Request (invalid parameters)401- Unauthorized (invalid API token)404- Not Found (agent/resource not found)429- Too Many Requests (rate limit exceeded)500- Internal Server Error
Rate Limits
Analytics API endpoints are subject to rate limiting:
- Standard endpoints: 100 requests per minute
- Heavy analytics endpoints: 20 requests per minute
- Insights generation: 5 requests per minute
Rate limit headers are included in all responses:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1642248600Warning: Rate limits are per API token. If you need higher limits, contact support.