Saltar al contenido

Guía · Google Sheets

Dividendos de la bolsa española en Google Sheets

Una fórmula, =DIVIDENDOS("TEF.MC"), y la hoja se llena con los dividendos anunciados a la CNMV. Sin copiar a mano y con la fuente de cada fecha.

1. Pide tu clave gratis

En la documentación, al momento y sin tarjeta: 100 peticiones al día. La clave va siempre en la cabecera Authorization: Bearer, nunca en la URL.

2. Pega el script

En la hoja, Extensiones → Apps Script. Pega esto y guarda. Después, en Configuración del proyecto → Propiedades del script, añade DIVR_API_KEY con tu clave.

// Extensiones → Apps Script. Pega esto y guarda.
// La clave va en Configuración del proyecto → Propiedades del script,
// con el nombre DIVR_API_KEY: así no queda a la vista de quien abra la hoja.

function divr_(ruta) {
  const cache = CacheService.getScriptCache();
  const guardada = cache.get(ruta);
  if (guardada) return JSON.parse(guardada);
  const clave = PropertiesService.getScriptProperties().getProperty('DIVR_API_KEY');
  const r = UrlFetchApp.fetch('https://api.divr.es' + ruta, {
    headers: { Authorization: 'Bearer ' + clave },
    muteHttpExceptions: true,
  });
  const cuerpo = r.getContentText();
  if (r.getResponseCode() !== 200) throw new Error(JSON.parse(cuerpo).error.message);
  // Seis horas en caché: recalcular la hoja no gasta peticiones del cupo.
  if (cuerpo.length < 100000) cache.put(ruta, cuerpo, 21600);
  return JSON.parse(cuerpo);
}

/**
 * Dividendos anunciados de una empresa española.
 * @param {string} id Ticker (TEF.MC), ISIN o NIF.
 * @customfunction
 */
function DIVIDENDOS(id) {
  const d = divr_('/v1/issuers/' + encodeURIComponent(id) + '/dividends');
  const filas = [['Tipo', 'Bruto', 'Ex-date', 'Pago', 'Estado']];
  d.events.forEach(function (e) {
    filas.push([e.kind, e.amount_gross.value, e.ex_date.value, e.payment_date.value, e.status]);
  });
  return filas;
}

/**
 * Calendario de dividendos de la bolsa española entre dos fechas.
 * @param {string} desde AAAA-MM-DD
 * @param {string} hasta AAAA-MM-DD
 * @customfunction
 */
function CALENDARIO_DIVIDENDOS(desde, hasta) {
  const d = divr_('/v1/events?from=' + desde + '&to=' + hasta);
  const filas = [['Empresa', 'ISIN', 'Bruto', 'Ex-date', 'Pago']];
  d.market.forEach(function (m) {
    filas.push([m.security.company, m.security.isin, m.amount_gross.value, m.ex_date.value, m.payment_date.value]);
  });
  return filas;
}

3. Úsalo como una fórmula

=DIVIDENDOS("TEF.MC")
=CALENDARIO_DIVIDENDOS("2026-11-01"; "2026-12-31")

La primera devuelve los dividendos que Telefónica ha anunciado a la CNMV, con su importe bruto y sus fechas. La segunda, todos los pagos de la bolsa española entre dos fechas, como los publica BME. Si la hoja está en inglés, el separador es la coma.

Cada cifra de la respuesta es un objeto: el número está en value, y al lado va de dónde sale (origin, quote) o por qué falta (reason). Lo explica la documentación.

El cupo

Cada fórmula distinta gasta una petición. El script guarda cada respuesta seis horas, así que abrir la hoja o recalcularla no vuelve a gastar. Con el plan gratuito caben 100 al día.

Sigue