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