API y datos abiertos

API y datos abiertos de Zaragoza

Todo lo necesario para consultar, descargar y reutilizar los datos: documentación, ejemplos y enlaces directos.

OpenAPI 3.1.0API v0.5.0Datos cov-20260928-3265632015 endpoints publicados

Primeros pasos

Empieza con un ejemplo

curl

curl -s -H "X-Request-Id: docs-example-status" https://datosbizi.com/api/status

curl -sG https://datosbizi.com/api/rankings?type=turnover&limit=20

curl -L -H "x-api-key: $BIZI_API_KEY" https://datosbizi.com/api/history?format=csv

Python

import requests

base_url = "https://datosbizi.com"
response = requests.get(f"{base_url}/api/status", timeout=15)
response.raise_for_status()
payload = response.json()
print(payload["pipeline"]["healthStatus"])

JavaScript

const response = await fetch("https://datosbizi.com/api/stations");
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const payload = await response.json();
console.log(payload.stations.length);

Versión API

0.5.0

Versión publicada en la especificación OpenAPI.

Versión de datos

cov-20260928-32656320

Calculada a partir de la última muestra útil y del histórico agregado.

Cobertura histórica

167

32656320 muestras y 276 estaciones.

Última generación

28/9/2026, 9:07:44

Último mes publicado septiembre de 2026.

Logística y redistribución

API de reequilibrio

El endpoint /api/rebalancing-report devuelve recomendaciones origen-destino, clasificación A-F y métricas estimadas para priorizar movimientos.

Ejemplo (curl)

curl -sG https://datosbizi.com/api/rebalancing-report?district=Centro&days=15

Ejemplo (Python)

import requests

base_url = "https://datosbizi.com"
params = {"days": 15, "format": "json"}
res = requests.get(f"{base_url}/api/rebalancing-report", params=params, timeout=20)
res.raise_for_status()
print(len(res.json()["transfers"]))

Acceso y seguridad

Reglas de acceso actuales

Correlacion

Todas las respuestas API devuelven `X-Request-Id`

Si el cliente envia su propio identificador se reutiliza en logs, Sentry, auditoria y ejecuciones operativas.

Ops

`GET/POST /api/collect` requieren `X-Ops-Api-Key`

Autenticacion por cabecera, sin excepciones ni alias de compatibilidad.

Elevated public

CSV costosos y ventanas amplias requieren `x-api-key`

Crea tu clave desde esta pagina tras iniciar sesion. Afecta a historico CSV, alertas historicas CSV, movilidad extendida y rebalancing con ventanas o exportaciones amplias.

Mobile

`Authorization` + `X-Installation-Id` en auth movil

Geo search y geo reverse soportan firma HMAC (`timestamp` + `signature`) y el backend puede volverla obligatoria por feature flag.

Clave de API

Consigue tu clave

Inicia sesión y crea una clave personal. La envías en la cabecera x-api-key y tiene su propio límite de peticiones, independiente del resto de usuarios.

Endpoints disponibles

Endpoints publicados

Ver JSON OpenAPI

GET

/api/alerts

List active alerts

Parámetros: limit

GET

/api/alerts/history

List alert history with filters, pagination, and CSV export

Parámetros: state, stationId, alertType, severity, from, to, limit, offset, format

GET

/api/collect

Get collection job state

Sin parámetros obligatorios destacados.

POST

/api/collect

Trigger one data collection run

Sin parámetros obligatorios destacados.

GET

/api/health/live

Liveness probe (no dependencies)

Sin parámetros obligatorios destacados.

GET

/api/health/ready

Readiness probe (checks database connectivity)

Sin parámetros obligatorios destacados.

GET

/api/heatmap

Get occupancy heatmap cells for one station

Parámetros: stationId

GET

/api/history

Get full historical demand data since first record

Sin parámetros obligatorios destacados.

GET

/api/mobility

Get mobility signals, demand curve, and transit impact

Parámetros: mobilityDays, demandDays

GET

/api/openapi.json

Get OpenAPI document

Sin parámetros obligatorios destacados.

GET

/api/patterns

Get weekday/weekend hourly patterns for one station

Parámetros: stationId

GET

/api/rankings

Get station rankings by turnover or availability

Parámetros: type, limit

GET

/api/rebalancing-report

Station rebalancing diagnostic report with classification, predictions, and transfer recommendations

Parámetros: district, days, format

GET

/api/stations

List stations with latest availability snapshot

Sin parámetros obligatorios destacados.

GET

/api/status

Get pipeline observability metrics

Sin parámetros obligatorios destacados.

Límites y políticas

Consumo responsable

Lectura pública

Lecturas ligeras abiertas; usos intensivos con clave

Las consultas sencillas siguen abiertas y se limitan por IP. CSV grandes y ventanas amplias usan `x-api-key`, con un límite propio por clave.

Ingesta protegida

GET y POST /api/collect requieren clave interna y límite de uso

Configuración por defecto: 6 solicitudes por 60 segundos y cabecera `x-ops-api-key`.

Licencia del código

GPL-3.0-only

La app es software libre. Para redistribuir datos derivados, revisa también los términos del proveedor GBFS.

Cambios recientes

Versiones y novedades visibles

v0.5.0: especificacion OpenAPI publicada y accesible para tooling.
Version actual: request tracing con `X-Request-Id`, collect protegido por clave operativa y auditoria persistente para auth, rate limits y ejecuciones.
Dataset cov-20260928-32656320: cobertura compartida con 167 dias y 32656320 muestras agregadas.

Cita y licencia de datos

Cómo citar y reutilizar

Cita sugerida

DatosBizi Zaragoza, datos históricos agregados (versión cov-20260928-32656320), consultado el 28 sept 2026. Fuente primaria: https://zaragoza.publicbikesystem.net/customer/gbfs/v2/gbfs.json

Última actualización compartida

28/9/2026, 9:07:44

Casos de uso

Para qué sirve esta API hoy

Supervision operativa del sistema y cuadros de mando internos.
Periodismo de datos y storytelling sobre movilidad urbana.
Investigacion sobre demanda, equilibrio y comportamiento horario.
Integraciones con apps moviles, paneles de ciudad o herramientas GIS.