Saltar a contenido

Business Events (aperturas, cierres, traslados, cambio de titular)

Estas rutas exponen eventos de negocio derivados del delta contra el estado anterior.

Listado

GET /v1/farmacias/business-events

Query params:

  • from (optional): datetime ISO UTC
  • days (optional): ventana en días si no envías from
  • to (optional): datetime ISO UTC
  • territories (optional): CSV ES-XX,ES-YY
  • event_types (optional): CSV de tipos
  • province (optional)
  • city (optional)
  • limit (default 500, max 5000)
  • cursor (optional)

Tipos soportados:

  • opened: alta (external_id nueva)
  • closed_hard: baja por desaparicion del dataset oficial (delete)
  • closed_soft: la fuente mantiene el registro pero marca is_active=false
  • reopened: is_active pasa de false a true
  • relocated: cambia address_line/postal_code/city/province
  • ownership_change: cambia owner_name (titular)
curl -sS "$FARMAAPI_BASE_URL/v1/farmacias/business-events?from=2026-01-01T00:00:00Z&event_types=relocated,ownership_change" \
  -H "X-API-Key: $FARMAAPI_API_KEY"
curl -sS "$FARMAAPI_BASE_URL/v1/farmacias/business-events?days=30&event_types=opened,relocated" \
  -H "X-API-Key: $FARMAAPI_API_KEY"

Summary (agregados)

GET /v1/farmacias/business-events/summary

Agrupa por:

  • group_by=event_type (default)
  • group_by=territory
  • from o days funcionan igual que en el listado
curl -sS "$FARMAAPI_BASE_URL/v1/farmacias/business-events/summary?from=2026-01-01T00:00:00Z&group_by=territory" \
  -H "X-API-Key: $FARMAAPI_API_KEY"
curl -sS "$FARMAAPI_BASE_URL/v1/farmacias/business-events/summary?days=30&group_by=territory" \
  -H "X-API-Key: $FARMAAPI_API_KEY"

Payload

Cada item incluye:

  • event_type
  • occurred_at
  • territory_code, external_id
  • old y new con los campos relevantes

Traslados: local anterior y nueva ubicacion

GET /v1/farmacias/relocations

Endpoint especifico para informes de traslados. Devuelve solo eventos relocated y separa claramente:

  • old: direccion y coordenadas del local anterior.
  • new: direccion y coordenadas de la nueva ubicacion.

Esto permite responder casos como: "farmacias trasladadas desde Sevilla en los ultimos 6 meses" o "locales anteriores cerca de una coordenada".

Query params:

  • from (optional): datetime ISO UTC.
  • days (default 30): ventana si no envias from.
  • to (optional): datetime ISO UTC.
  • territories (optional): CSV ES-XX,ES-YY.
  • old_province, old_city: filtran por local anterior.
  • new_province, new_city: filtran por nueva ubicacion.
  • near_old_latitude, near_old_longitude, radius_meters: busca locales anteriores cerca de un punto.
  • near_new_latitude, near_new_longitude, radius_meters: busca nuevas ubicaciones cerca de un punto.
  • limit (default 500, max 5000).
  • cursor (optional).
curl -sS "$FARMAAPI_BASE_URL/v1/farmacias/relocations?days=180&territories=ES-AN&old_city=Sevilla" \
  -H "X-API-Key: $FARMAAPI_API_KEY"
curl -sS "$FARMAAPI_BASE_URL/v1/farmacias/relocations?days=365&near_old_latitude=37.3891&near_old_longitude=-5.9845&radius_meters=3000" \
  -H "X-API-Key: $FARMAAPI_API_KEY"

Respuesta:

{
  "from": "2026-02-01T00:00:00Z",
  "to": "2026-08-01T00:00:00Z",
  "items": [
    {
      "territory_code": "ES-AN",
      "external_id": "12345",
      "name": "Farmacia Ejemplo",
      "old": {
        "address_line": "CALLE ANTIGUA, 1",
        "city": "Sevilla",
        "province": "Sevilla",
        "latitude": 37.3891,
        "longitude": -5.9845
      },
      "new": {
        "address_line": "AVENIDA NUEVA, 25",
        "city": "Sevilla",
        "province": "Sevilla",
        "latitude": 37.3950,
        "longitude": -5.9700
      }
    }
  ],
  "next_cursor": null
}