🔌 API Pública
API REST para que SENEPA, municipios, ONGs y medios de comunicación accedan a los datos abiertos de Dengue.com.py.
¿Cómo obtener un token?
Escribinos a admin@dengue.com.py indicando tu organización, propósito y los scopes que necesitás. Te asignaremos un token con rate limit acorde a tu uso esperado.
Escribinos a admin@dengue.com.py indicando tu organización, propósito y los scopes que necesitás. Te asignaremos un token con rate limit acorde a tu uso esperado.
Autenticación
Todas las requests deben incluir el header de autorización:
Authorization: Bearer dgnp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
El prefijo dgnp_ identifica al token como propio de Dengue.com.py.
Scopes disponibles
| Scope | Permite |
|---|---|
read:reports | Listar y ver reportes aprobados/resueltos |
read:stats | Acceder a estadísticas agregadas |
Endpoints
GET /api/v1/reportes.php
Lista paginada de reportes públicos. Scope: read:reports
Query params
| Param | Tipo | Descripción |
|---|---|---|
page | int | Página (default 1) |
per_page | int | Resultados por página (default 50, max 500) |
tipo | string | Slug del tipo (ej. foco_potencial) |
severidad | string | baja, media o alta |
departamento | string | Nombre del departamento |
ciudad | string | Match parcial |
status | string | approved o resolved |
desde | date | Formato YYYY-MM-DD |
hasta | date | Formato YYYY-MM-DD |
Ejemplo
curl -H "Authorization: Bearer dgnp_xxx" \
"https://dengue.com.py/api/v1/reportes.php?departamento=Central&per_page=20"
Respuesta
{
"data": [
{
"id": 123,
"tipo": "foco_potencial",
"tipo_nombre": "Foco potencial",
"severidad": "alta",
"status": "approved",
"descripcion": "Macetas con agua estancada...",
"address_public": "Barrio Centro, Asunción, Central",
"departamento": "Central",
"ciudad": "Asunción",
"barrio": "Centro",
"lat": -25.2847,
"lng": -57.6435,
"created_at": "2026-04-15 14:32:18",
"resolved_at": null,
"photos_count": 2
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 156,
"total_pages": 8,
"has_more": true
}
}
GET /api/v1/reporte.php?id=X
Detalle de un reporte. Scope: read:reports
Query params
id— ID del reporte (obligatorio)include_photos— Si está presente, incluye URLs de fotos
GET /api/v1/estadisticas.php
Estadísticas agregadas. Scope: read:stats
Query params
days— Rango en días para evolución temporal (7-365, default 30)
Política de datos
- Sin datos personales: nunca se expone nombre, email, IP ni dirección exacta del reportante.
- Coordenadas con jitter: las posiciones tienen un radio de difuminado de ~50m.
- Política de retención: reportes resueltos se anonimizan después de 5 años; rechazados, después de 1 año.
- Cumplimiento: Ley 6534/20 de Protección de Datos Personales de Paraguay.
Rate limit
Default: 1000 requests/hora por token. Configurable por organización. Si excedés el límite, recibís HTTP 429 con header Retry-After.
Códigos de respuesta
| Código | Significado |
|---|---|
| 200 | OK |
| 400 | Parámetros inválidos |
| 401 | Token faltante o inválido |
| 403 | Token sin scope necesario |
| 404 | Recurso no encontrado |
| 429 | Rate limit excedido |
| 503 | API deshabilitada temporalmente |