Welcome to the API documentation for Autonomo AI's Digital Partner services. This API allows you to interact with volunteer sign-ups, system health checks, chart data, and receive messages via WhatsApp.
GET /api/health
Checks the operational status of the Autonomo AI API.
Response (200 OK):
{
"status": "healthy",
"service": "Digital Partner Backup",
"timestamp": "2023-10-27T12:00:00+00:00"
}
POST /ai-companion/signup
Submits a new application for the Autonomo AI volunteer tester program.
Request Body (JSON):
{
"fullName": "Jane Doe",
"email": "jane.doe@example.com",
"country": "Canada",
"aiPlatforms": "Character.AI, Replika, Poe",
"experience": "over-year",
"motivation": "I believe in the importance of digital relationships and want to help ensure they are portable and respected.",
"technicalSkills": "Frontend development, QA testing",
"consent": true,
"newsletter": true,
"timestamp": "2023-10-27T10:00:00.000Z"
}
Parameters:
true to agree to terms. Requiredtrue to opt-in for updates. OptionalResponses:
200 OK: Successful submission.
{
"success": true,
"message": "Thank you for volunteering! We'll contact you soon.",
"registrationId": "20231027120000_abcdef12"
}
400 Bad Request: Invalid input, missing required fields, or consent is false.
{
"success": false,
"errors": {
"email": "Please provide a valid email address",
"consent": "You must agree to the terms to participate"
},
"message": "Please correct the errors and try again."
}
500 Internal Server Error: Server error during processing.
{
"success": false,
"message": "An error occurred during registration. Please try again later."
}
GET /volunteer-stats
Retrieves aggregated statistics about registered volunteers. Intended for internal use.
Response (200 OK):
{
"totalVolunteers": 150,
"countries": {
"Canada": 25,
"USA": 70,
"United Kingdom": 30,
"Germany": 25
},
"platforms": {
"Character.AI": 120,
"Replika": 100,
"Poe": 80,
"ChatGPT": 50
},
"experienceLevels": {
"over-year": 80,
"6-12-months": 40,
"1-6-months": 25,
"less-than-month": 5,
"not-specified": 10
},
"lastRegistration": "2023-10-27T11:55:00+00:00",
"registrationsByMonth": {
"2023-10": 150
}
}
These endpoints provide data formatted for visualization. They use a generic route that accepts a chart ID, and a specific route for a common pie chart.
GET /charts/{id}
Retrieves chart data for a specific chart identified by its ID.
Parameters:
Example Usage:
GET /charts/slm-proficiency-v0-v13
Response (200 OK - example for slm-proficiency-v0-v13):
{
"success": true,
"chartId": "slm-proficiency-v0-v13",
"title": "SLM Proficiency Evolution (v0 → v13)",
"description": "Performance comparison across different language models",
"data": [
{
"id": "1",
"label": "qwen3_coder_30b",
"value": 20.5,
"color": "#4A90E2",
"metadata": {
"modelSize": "30b",
"version": "v13",
"category": "coder"
}
},
{
"id": "2",
"label": "openai_gpt_oss_20b",
"value": 15.2,
"color": "#4A90E2",
"metadata": {
"modelSize": "20b",
"version": "v13",
"category": "general"
}
},
{
"id": "3",
"label": "microsoft_phi4_reasoning_14b",
"value": 12.8,
"color": "#4A90E2",
"metadata": {
"modelSize": "14b",
"version": "v13",
"category": "reasoning"
}
}
],
"xAxis": {
"label": "Score Change",
"unit": "points",
"min": -15,
"max": 25
},
"yAxis": {
"label": "Model",
"type": "category"
},
"timestamp": "2025-10-16T12:00:00+00:00"
}
500 Internal Server Error: Server error during processing.
{
"success": false,
"message": "Could not retrieve chart data for ID 'slm-proficiency-v0-v13' at this time."
}
GET /charts/pie
Retrieves data specifically for the Market Share Distribution 2025 chart (uses a predefined internal ID).
Response (200 OK):
{
"success": true,
"chartId": "market-share-2025",
"title": "Market Share Distribution 2025",
"description": "Product market share breakdown by category",
"totalValue": 1000000,
"currency": "USD",
"data": [
{
"id": "1",
"label": "Product A",
"value": 350000,
"percentage": 35,
"color": "#2563EB",
"details": {
"revenue": 350000,
"growth": 12.5,
"customers": 1500,
"region": "North America",
"trend": "increasing"
}
}
],
"metadata": {
"totalCustomers": 4200,
"averageGrowth": 7.64,
"lastUpdated": "2025-10-16T12:00:00+00:00"
},
"timestamp": "2025-10-16T12:00:00+00:00"
}
500 Internal Server Error: Server error during processing.
{
"success": false,
"message": "Could not retrieve market share chart data at this time."
}
POST /webhook/whatsapp
Receives incoming messages from WhatsApp via webhook. It forwards the message content to an LLM service for processing and sends the generated reply back to the user via WhatsApp.
Security: This endpoint requires an X-API-Key header with a valid API key for authentication.
Request Body (JSON):
The webhook expects a JSON payload containing message details. The critical fields are message.from (sender's ID) and message.text (message content).
{
"message": {
"from": "whatsapp:+1234567890",
"text": "Hello, can you help me with something?"
},
"//": "Other fields like 'type', 'timestamp', etc., might be present but are not processed by this webhook."
}
Request Headers:
Parameters (in JSON body):
Responses:
200 OK: The webhook successfully received and authenticated the message. The reply will be sent asynchronously.
{
"status": "ok"
}
400 Bad Request: The payload was invalid or missing required fields.
{
"error": "Invalid payload"
}
401 Unauthorized: The X-API-Key header was missing or invalid.
{
"success": false,
"message": "Unauthorized: Invalid or missing API Key."
}