MADES Logo

Documentación de la API de Calidad del Aire — MADES

Esta documentación está dirigida a desarrolladores que desean integrar datos de calidad del aire en sus aplicaciones.

Autenticación

Todas las solicitudes a los endpoints de datos requieren una clave API. Si aún no tiene una, puede registrarse aquí.

Incluya su clave API en las solicitudes HTTP usando uno de estos métodos:

Método Header
Header personalizado X-Api-Key: su_clave_api
Authorization Bearer Authorization: Bearer su_clave_api

URL Base

https://calidadaire.mades.gov.py/api/v1

Endpoints

GET /api/v1/stations

Listar todas las estaciones de monitoreo activas.

Ejemplo:

curl -H "X-Api-Key: su_clave_api" \
  https://calidadaire.mades.gov.py/api/v1/stations

Respuesta:

{
  "data": [
    {
      "id": 1,
      "name": "Estación Central",
      "type": "thermofisher",
      "station_code": "ASUN01",
      "city": "Asunción",
      "department": "Central",
      "latitude": -25.2637,
      "longitude": -57.5759,
      "is_active": true,
      "is_collecting_data": true,
      "is_under_maintenance": false
    }
  ]
}

GET /api/v1/stations/{'{id}'}

Obtener detalle de una estación específica.

Ejemplo:

curl -H "X-Api-Key: su_clave_api" \
  https://calidadaire.mades.gov.py/api/v1/stations/1

GET /api/v1/stations/{'{id}'}/data

Obtener datos de calidad del aire de una estación, con paginación por cursor.

Parámetro Tipo Descripción
parameter_name string (opcional) Filtrar por nombre de parámetro (ej: pm25, co, no2)
date_from date (obligatorio) Fecha de inicio (formato: YYYY-MM-DD). No puede ser posterior a hoy.
date_to date (obligatorio) Fecha de fin (formato: YYYY-MM-DD). No puede ser posterior a hoy. Rango máximo: 1 año.
per_page integer (opcional) Resultados por página (1-100, default: 100)

Ejemplo:

curl -H "X-Api-Key: su_clave_api" \
  "https://calidadaire.mades.gov.py/api/v1/stations/1/data?parameter_name=pm25&date_from=2025-09-01&date_to=2025-09-30&per_page=50"

Respuesta:

{
  "data": [
    {
      "date_time": "2025-09-30T23:00:00+00:00",
      "parameter_name": "pm25",
      "parameter_value": 12.5
    }
  ],
  "next_cursor": "eyJpZCI6MTAwfQ",
  "next_page_url": "https://calidadaire.mades.gov.py/api/v1/stations/1/data?cursor=eyJpZCI6MTAwfQ",
  "prev_cursor": null,
  "prev_page_url": null
}

GET /api/v1/parameters

Listar todos los parámetros medidos con las estaciones que los reportan y el rango de fechas disponible.

Ejemplo:

curl -H "X-Api-Key: su_clave_api" \
  https://calidadaire.mades.gov.py/api/v1/parameters

Respuesta:

{
  "data": [
    {
      "parameter_name": "pm25",
      "stations": [
        {
          "id": 1,
          "name": "Estación Central",
          "data_from": "2025-01-01 00:00:00",
          "data_to": "2025-09-30 23:00:00"
        }
      ]
    }
  ]
}

Paginación

El endpoint de datos usa paginación por cursor, que es más eficiente para conjuntos de datos grandes. La respuesta incluye next_page_url y prev_page_url para navegar entre páginas.

Para obtener la siguiente página, use la URL proporcionada en next_page_url:

curl -H "X-Api-Key: su_clave_api" \
  "https://calidadaire.mades.gov.py/api/v1/stations/1/data?cursor=eyJpZCI6MTAwfQ"

Cuando next_page_url es null, no hay más páginas disponibles.

Códigos de Respuesta

Código Descripción
200 Solicitud exitosa
401 Clave API no proporcionada o inválida
403 Correo no verificado o acceso revocado
404 Recurso no encontrado
422 Error de validación en los parámetros de consulta
429 Límite de solicitudes excedido

Límites de Uso

  • 60 solicitudes por minuto por clave API
  • 3 registros por minuto por dirección IP

Si excede el límite, recibirá una respuesta 429 Too Many Requests. Espere un momento antes de reintentar.