Referencia técnica
API REST
Alimenta el dashboard con datos desde cualquier sistema externo
Autenticación
Envía el header X-API-Key en cada petición.
X-API-Key: sk-survey-demo-key-2024-abc123xyz
URL Base
http://localhost/survey-dashboard/api/index.php
GET
/stats
Métricas del dashboard
Retorna todas las métricas: enviadas, respondidas, tasa de respuesta, promedio y distribución.
EJEMPLO DE RESPUESTA
{
"success": true,
"data": {
"total_sent": 10,
"total_responded": 7,
"response_rate": 70.0,
"average_rating": 4.14,
"most_frequent_rating": 5,
"rating_distribution": { "1": 0, "2": 1, "3": 1, "4": 2, "5": 3 },
"monthly_stats": [...]
}
}
POST
/surveys
Registrar encuesta enviada
Crea un nuevo registro de encuesta enviada. El status queda como sent.
REQUEST BODY
{
"title": "Encuesta de satisfacción",
"recipient_name": "Ana García", // required
"recipient_email": "ana@demo.com", // required
"description": "Opcional..."
}
RESPUESTA (201)
{
"success": true,
"message": "Survey created",
"id": 11
}
CURL EJEMPLO
curl -X POST http://localhost/survey-dashboard/api/index.php?endpoint=/surveys \
-H "Content-Type: application/json" \
-H "X-API-Key: sk-survey-demo-key-2024-abc123xyz" \
-d '{"title":"Encuesta Q2","recipient_name":"Juan","recipient_email":"juan@test.com"}'
POST
/responses
Registrar respuesta
Registra la calificación de una encuesta. Actualiza automáticamente el status a responded.
REQUEST BODY
{
"survey_id": 11, // required
"rating": 5, // required, 1-5
"comment": "Excelente" // opcional
}
RESPUESTA (200)
{
"success": true,
"message": "Response recorded"
}
GET
/surveys
Listar encuestas
Retorna el listado completo de encuestas con sus respuestas.
QUERY PARAMS
limit=50
offset=0
Códigos de Error
401
Unauthorized
API key inválida o ausente
404
Not Found
Endpoint o recurso no encontrado
422
Unprocessable
Campos requeridos faltantes o inválidos
500
Server Error
Error interno del servidor