Documentación

API de Baremo

Lleva las subvenciones que encajan con tu empresa a tu CRM, tu ERP o tu hoja de cálculo. Una API REST sobre HTTPS, respuestas en JSON y webhooks firmados para enterarte en el momento en que aparece una ayuda relevante.

Autenticación

Crea una clave desde Integraciones → API dentro de tu cuenta. Cada clave pertenece a una empresa y solo devuelve datos de esa empresa. Se muestra una única vez: guárdala en tu gestor de secretos, nunca en el navegador ni en el repositorio.

Cabecera obligatoria

x-baremo-api-key: bar_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Base

https://subvencionesbaremo.com/api/public/v1

Errores: 401 clave no válida o revocada · 500 error del servidor
Respuestas: application/json, sin caché (cache-control: no-store)

GET/v1/oportunidades

Subvenciones detectadas para tu empresa, ordenadas por encaje.

ParámetroValoresDescripción
encaje_min0-100Filtra por encaje mínimo. Por defecto 0.
limite1-200Número máximo de resultados. Por defecto 50.

Petición

curl "https://subvencionesbaremo.com/api/public/v1/oportunidades?limite=50" \
  -H "x-baremo-api-key: TU_CLAVE"

Respuesta

{
  "ok": true,
  "total": 2,
  "oportunidades": [
    {
      "id": "8f0c…",
      "encaje": 87,
      "probabilidad": 0.62,
      "importe_estimado": 45000,
      "estado": "nueva",
      "detectada_en": "2026-08-19T06:12:04.000Z",
      "convocatoria": {
        "titulo": "Ayudas a la digitalización industrial",
        "organo": "Ministerio de Industria y Turismo",
        "comunidad": "Estatal",
        "fecha_fin": "2026-10-15",
        "dotacion": 12000000,
        "url_oficial": "https://…",
        "url_baremo": "https://subvencionesbaremo.com/ayudas/…"
      }
    }
  ]
}

GET/v1/expedientes

Expedientes de tu empresa con su estado y resolución.

ParámetroValoresDescripción
estadoborrador · lista · presentada · justificando · cerradaFiltra por estado del expediente.
limite1-200Número máximo de resultados. Por defecto 50.

Petición

curl "https://subvencionesbaremo.com/api/public/v1/expedientes?limite=50" \
  -H "x-baremo-api-key: TU_CLAVE"

Respuesta

{
  "ok": true,
  "total": 1,
  "expedientes": [
    {
      "id": "1a2b…",
      "titulo": "Kit digitalización 2026",
      "estado": "presentada",
      "importe_solicitado": 30000,
      "fecha_presentacion": "2026-07-02",
      "actualizado_en": "2026-07-02T10:04:00.000Z",
      "convocatoria": { "titulo": "…", "organo": "…", "fecha_fin": "2026-10-15" },
      "resultado": { "resolucion": "pendiente", "importe_concedido": 0, "fecha_resolucion": null }
    }
  ]
}

Webhooks salientes

Registra una URL https y un encaje mínimo desde Integraciones. Cuando detectamos ayudas que superan ese umbral, enviamos un POST con el listado. Verifica siempre la firma antes de procesar el cuerpo.

Cabeceras del envío

content-type: application/json
x-baremo-evento: oportunidad.detectada
x-baremo-firma: <HMAC-SHA256 del cuerpo, en hexadecimal, con tu secreto>

Cuerpo

{
  "evento": "oportunidad.detectada",
  "enviado_en": "2026-08-21T09:00:00.000Z",
  "oportunidades": [
    {
      "titulo": "Ayudas a la digitalización industrial",
      "encaje": 87,
      "organo": "Ministerio de Industria y Turismo",
      "fecha_fin": "2026-10-15",
      "url_baremo": "https://subvencionesbaremo.com/ayudas/…"
    }
  ]
}

Verificar la firma (Node.js)

import { createHmac, timingSafeEqual } from "node:crypto";

const cuerpo = await request.text();
const esperada = createHmac("sha256", process.env.BAREMO_WEBHOOK_SECRET)
  .update(cuerpo)
  .digest("hex");
const recibida = request.headers.get("x-baremo-firma") ?? "";

const a = Buffer.from(recibida);
const b = Buffer.from(esperada);
if (a.length !== b.length || !timingSafeEqual(a, b)) {
  return new Response("Firma no válida", { status: 401 });
}

const aviso = JSON.parse(cuerpo);

Responde con un 2xx en menos de 10 segundos. Guardamos el código de la última respuesta para que puedas revisarlo desde el panel; si tu servicio falla de forma continuada, pausa el webhook y vuelve a activarlo cuando esté listo.

Buenas prácticas

  • Una clave por integración: así puedes revocar solo la que falle.
  • Consulta como máximo una vez por hora; el catálogo se actualiza a diario.
  • Trata los webhooks como idempotentes: puede repetirse una entrega tras un reintento.
  • No expongas la clave en aplicaciones de navegador o móviles; úsala solo desde tu servidor.
Ver planes con acceso a la API