BuscaExtraescolares

Datos abiertos del observatorio

Documentación de los ficheros JSON y CSV del Observatorio de la oferta de extraescolares. Endpoint abierto: sin clave de acceso, CORS habilitado (Access-Control-Allow-Origin: *), y licencia CC BY 4.0.

Qué hay disponible

Dos tipos de ficheros, con la misma estructura de columnas:

  • Datos vivos (prefijo actual): se recalculan a diario a partir del catálogo actual de BuscaExtraescolares. Cambian de un día para otro.
  • Ediciones congeladas (prefijo AAAA-MM, p. ej. 2026-09): fotos inmutables publicadas el día 1 de cada mes. Nunca cambian: son la referencia estable para citar.

Todas las descargas comparten el mismo calc_version: si cambia la definición de una métrica, sube de versión, así que puedes detectar automáticamente si tus datos históricos siguen siendo comparables.

Datos vivos

Ficheros de los datos vivos
FicheroContenidoDescarga
actual.jsonDataset completo (todas las tablas)Descargar
actual-provincias.csvProvinciasDescargar
actual-categorias.csvCategoríasDescargar
actual-categoria-provincia.csvCategoría × provinciaDescargar
actual-municipios.csvMunicipiosDescargar

Formato JSON

Cada fichero JSON es un objeto con metadatos de cabecera y el dataset completo bajo metricas:

  • schema_version — versión del formato del sobre JSON (hoy "1"); cambios incompatibles suben este número, nunca lo cambian en silencio.
  • periodonull en datos vivos, o "AAAA-MM" en una edición congelada.
  • fecha_corte — fecha (ISO) de los datos que alimentan el cálculo.
  • calc_version — versión de la definición de las métricas (semver).
  • licencia{ nombre, url } de la licencia de reutilización.
  • como_citar — cita lista para copiar y pegar.
  • metricas — el dataset completo: totales nacionales, provincias[] (con sus municipios[] anidados), categorias[] y ccaas[].

Ejemplo recortado (arrays truncados a un elemento) de /observatorio-extraescolares/datos/actual.json:

{
  "schema_version": "1",
  "periodo": null,
  "fecha_corte": "2026-08-23T21:58:05.589981+00:00",
  "calc_version": "1.0.0",
  "licencia": {
    "nombre": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/deed.es"
  },
  "como_citar": "BuscaExtraescolares (2026). Observatorio de la oferta de extraescolares en España. Datos a 23 de agosto de 2026. CC BY 4.0. https://www.buscaextraescolares.com/observatorio-extraescolares/",
  "metricas": {
    "calc_version": "1.0.0",
    "fecha_corte": "2026-08-23T21:58:05.589981+00:00",
    "ine_fecha_ref": "2025-01-01",
    "total_academias": 4725,
    "total_provincias_con_fichas": 34,
    "total_provincias_con_cobertura": 20,
    "total_municipios_con_oferta": 465,
    "pct_academias_en_municipios_mapeados": 99.97883597883597,
    "provincias": [
      {
        "codigo": "01",
        "nombre": "Álava",
        "slug": "alava",
        "ccaa_codigo": "16",
        "ccaa_nombre": "País Vasco",
        "academias": 0,
        "cobertura": false,
        "pob_3_16": 45864,
        "densidad_por_1000": null,
        "ranking_densidad": null,
        "municipios_total": 51,
        "municipios_con_oferta": 0,
        "cobertura_municipal_pct": null,
        "diversidad": null,
        "por_categoria": {
          "arte": 0,
          "artes-escenicas": 0,
          "campamentos": 0,
          "ciencia": 0,
          "deportes": 0,
          "eventos": 0,
          "idiomas": 0,
          "musica": 0,
          "otras": 0,
          "refuerzo-y-estudios": 0,
          "tecnologia": 0
        },
        "desiertos": [],
        "infrarrepresentadas": [],
        "densidad_urbana": null,
        "densidad_rural": null,
        "municipios": []
      }
    ],
    "ccaa": [
      {
        "codigo": "01",
        "nombre": "Andalucía",
        "academias": 795,
        "cobertura": true,
        "pob_3_16": 1207093,
        "densidad_por_1000": 0.65860708329847,
        "ranking_densidad": 9,
        "provincias": [
          "04"
        ]
      }
    ],
    "categorias": [
      {
        "slug": "deportes",
        "name": "Deportes",
        "academias": 1886,
        "pct_nacional": 39.91534391534392,
        "provincias_presentes": 20
      }
    ],
    "concentracion": [
      {
        "top": 5,
        "pct": 42.01058201058201
      }
    ],
    "brecha_urbano_rural": {
      "densidad_urbana": 0.9595916251274201,
      "densidad_rural": 0.18261054899906928,
      "ratio": 5.254853185575335
    },
    "desiertos_total": 19
  }
}

Formato CSV

Separador ; (punto y coma), codificación UTF-8 con BOM (para que Excel detecte los acentos correctamente), una fila de cabecera con los nombres de columna. Cuatro tablas, una por fichero:

Provincias (-provincias.csv)

Columnas: codigo, provincia, ccaa, academias, cobertura, pob_3_16, densidad_por_1000, ranking_densidad, municipios_total, municipios_con_oferta, cobertura_municipal_pct, diversidad, densidad_urbana, densidad_rural, desiertos

Categorías (-categorias.csv)

Columnas: categoria, slug, academias, pct_nacional, provincias_presentes

Categoría × provincia (-categoria-provincia.csv)

Columnas: codigo, provincia, categoria, academias, desierto

Municipios (-municipios.csv)

Columnas: ine_code, municipio, codigo_provincia, provincia, academias, pob_3_16, densidad_por_1000, es_urbano, es_grande, diversidad

Descargas por provincia

Subconjunto de datos vivos de una sola provincia: el JSON incluye solo esa provincia (con sus municipios anidados); el CSV lista sus municipios con las mismas columnas que municipios.csv. Para descargar el subconjunto de una edición congelada, sustituye actual por el período (p. ej. /observatorio-extraescolares/datos/2026-09/provincias/madrid.json).

Descargas por provincia (datos vivos)
ProvinciaJSONCSV
ÁlavaJSONCSV
AlbaceteJSONCSV
AlicanteJSONCSV
AlmeríaJSONCSV
ÁvilaJSONCSV
BadajozJSONCSV
Islas BalearesJSONCSV
BarcelonaJSONCSV
BurgosJSONCSV
CáceresJSONCSV
CádizJSONCSV
CastellónJSONCSV
Ciudad RealJSONCSV
CórdobaJSONCSV
A CoruñaJSONCSV
CuencaJSONCSV
GironaJSONCSV
GranadaJSONCSV
GuadalajaraJSONCSV
GuipúzcoaJSONCSV
HuelvaJSONCSV
HuescaJSONCSV
JaénJSONCSV
LeónJSONCSV
LleidaJSONCSV
La RiojaJSONCSV
LugoJSONCSV
MadridJSONCSV
MálagaJSONCSV
MurciaJSONCSV
NavarraJSONCSV
OurenseJSONCSV
AsturiasJSONCSV
PalenciaJSONCSV
Las PalmasJSONCSV
PontevedraJSONCSV
SalamancaJSONCSV
Santa Cruz de TenerifeJSONCSV
CantabriaJSONCSV
SegoviaJSONCSV
SevillaJSONCSV
SoriaJSONCSV
TarragonaJSONCSV
TeruelJSONCSV
ToledoJSONCSV
ValenciaJSONCSV
ValladolidJSONCSV
VizcayaJSONCSV
ZamoraJSONCSV
ZaragozaJSONCSV
CeutaJSONCSV
MelillaJSONCSV

Política de uso

  • Acceso abierto: sin registro ni clave de API.
  • CORS habilitado en todas las respuestas (Access-Control-Allow-Origin: *): puedes consumir el endpoint directamente desde el navegador.
  • Los datos vivos se cachean 24 h en el servidor (revalidación diaria); las ediciones se sirven con caché inmutable de un año, porque nunca cambian.
  • schema_version y calc_version son la garantía de estabilidad: si algo cambia de forma incompatible, suben de número en vez de romper en silencio.
  • Licencia CC BY 4.0: reutilización libre, incluso comercial, citando y enlazando a la fuente.

Datos a 23 de agosto de 2026 · 4.725 academias registradas · calc_version 1.0.0