API pública · v1

Para desarrolladores

Pulso Venezuela expone una API REST pública y abierta con datos agregados y anonimizados sobre los reportes humanitarios recibidos. Úsala para visualizaciones, dashboards, periodismo de datos o para integrar la información en tu propio sistema.

Sin autenticación

Sin claves, sin login.

Sin datos personales

Sin nombres, WhatsApp ni coordenadas.

K-anonymity ≥ 5

Zonas y categorías solo con ≥5 casos.

Reglas de uso

  • Uso responsable: estos datos provienen de personas en situación de vulnerabilidad.
  • No intentes reidentificar individuos ni cruzar los datos con otras fuentes para hacerlo.
  • Cita la fuente como Pulso Venezuela con enlace a https://pulsovenezuela.lovable.app.
  • Los datos son aproximados, parciales y pueden cambiar al ser verificados o cerrados.
  • Esta API no reemplaza a los servicios de emergencia. Para emergencias: 171.
  • Las respuestas se cachean por 60 segundos.

Base URL

https://pulsovenezuela.lovable.app/api/public/v1

Endpoints

GET/health

Estado del sistema

Devuelve si el bot está operativo, su username y la cantidad de updates pendientes.

cURL

curl -sS "https://pulsovenezuela.lovable.app/api/public/health"

Respuesta de ejemplo

{
  "status": "operational",
  "botUsername": "pulsovenezuela_bot",
  "pendingUpdates": 0,
  "checkedAt": "2026-06-28T01:00:00.000Z"
}
GET/v1/stats/summary

Resumen general

Totales de casos por estado, prioridad, ventanas de tiempo (24h, 7d) e incidentes activos.

cURL

curl -sS "https://pulsovenezuela.lovable.app/api/public/v1/stats/summary"

Respuesta de ejemplo

{
  "generated_at": "2026-06-28T01:00:00Z",
  "totals": { "cases": 1240, "open": 312, "resolved": 820, "closed": 108, "last_24h": 47, "last_7d": 263 },
  "by_status": { "new": 88, "in_review": 142, "verified": 82, "resolved": 820 },
  "by_priority": { "critical": 12, "high": 95, "medium": 410, "low": 723 },
  "incidents_active": 1
}
GET/v1/stats/by-municipality

Casos por municipio

Conteo de casos por estado/municipio. Aplica k-anonymity: solo se devuelven zonas con al menos 5 casos.

Parámetros

  • min_kintegerUmbral mínimo de casos por zona. Mínimo y default: 5.

cURL

curl -sS "https://pulsovenezuela.lovable.app/api/public/v1/stats/by-municipality"

Respuesta de ejemplo

{
  "min_k": 5,
  "results": [
    { "state_region": "Distrito Capital", "municipality": "Libertador", "case_count": 142, "critical_count": 18 }
  ]
}
GET/v1/stats/by-category

Casos por categoría de necesidad

Top de categorías humanitarias reportadas (agua, medicamentos, rescate, etc.). Solo categorías con ≥5 casos.

cURL

curl -sS "https://pulsovenezuela.lovable.app/api/public/v1/stats/by-category"

Respuesta de ejemplo

{
  "results": [
    { "category_id": "medical_emergency", "label_es": "Emergencia médica", "label_en": "Medical emergency", "case_count": 87 }
  ]
}
GET/v1/incidents

Incidentes activos

Lista de incidentes/eventos abiertos que agrupan reportes (sismos, emergencias masivas).

cURL

curl -sS "https://pulsovenezuela.lovable.app/api/public/v1/incidents"

Respuesta de ejemplo

{
  "results": [
    { "id": "...", "name": "Sismo 6.2 - Caracas", "status": "active", "started_at": "2026-06-27T22:14:00Z", "case_count": 312 }
  ]
}
GET/v1/cases

Casos recientes (anonimizados)

Lista sanitizada de casos: sin nombre, sin WhatsApp, sin coordenadas, sin texto del reporte. Ubicación solo a nivel municipal cuando ≥5 casos.

Parámetros

  • limitintegerCantidad máxima (1–200). Default 50.

cURL

curl -sS "https://pulsovenezuela.lovable.app/api/public/v1/cases"

Respuesta de ejemplo

{
  "limit": 50,
  "results": [
    {
      "id": "...",
      "status": "verified",
      "priority": "high",
      "people_affected": 3,
      "state_region": "Miranda",
      "municipality": "Sucre",
      "created_at": "2026-06-28T00:55:12Z",
      "updated_at": "2026-06-28T00:58:01Z"
    }
  ]
}

Códigos de respuesta

  • 200 — OK
  • 4xx — Solicitud inválida (parámetros mal formados)
  • 5xx — Error temporal del servidor; reintenta con backoff exponencial.

CORS

Todas las rutas /api/public/v1/* incluyen Access-Control-Allow-Origin: *, así que puedes consumirlas desde cualquier dominio en el navegador.

Contacto

¿Necesitas un endpoint específico o acceso a datos detallados bajo un acuerdo de uso? Escríbenos a través del canal de organizaciones.