---
title: "Subvenciones BDNS abiertas por código CNAE"
method: GET
path: "/subvenciones"
tags: ["Fiscal"]
---

# Subvenciones BDNS abiertas por código CNAE

`GET /subvenciones`

Devuelve convocatorias de subvenciones (BDNS) aplicables a un código CNAE 2025. El parámetro `cnae` es obligatorio. Con clave gratuita solo se honra `cnae`: la respuesta se limita a 5 resultados con campos de descubrimiento (`codigo_bdns`, `titulo`, `organo`, `nivel1`, `cnae_seccion`, `url_oficial`, `importe`, `estado`). Con plan Profesional o superior se honran además `region`, `estado`, `solo_actividad`, `importe_min`, `limit` (máx. 100) y `offset`, y la respuesta incluye todos los campos (`finalidad`, `tipos_beneficiarios`, `regiones`, `instrumentos`, `sectores`, `fecha_apertura`, `fecha_recepcion`, `url_bases`, `abierto`). `importe` es la dotación total de la convocatoria (no por beneficiario). El campo `fecha_cierre` nunca se expone — el dato de BDNS es poco fiable como plazo y no debe usarse para tomar decisiones de fecha límite. Nota sobre filtros y paginación: `region`, `estado` e `importe_min` se aplican sobre la ventana de filas ya obtenida (hasta `offset + limit`, con techo de 200), no sobre el conjunto completo de convocatorias del CNAE — una respuesta filtrada puede devolver menos filas que `limit`, y paginar más allá de esa ventana no garantiza cobertura exhaustiva.

## Query parameters

- `cnae` string, required
- `region` string
- `estado` string
- `solo_actividad` boolean
- `importe_min` number
- `limit` integer
- `offset` integer

## Response `200`

Subvenciones BDNS aplicables al código CNAE

- SubvencionesResponse — Convocatorias de subvenciones BDNS aplicables a un código CNAE. La forma de cada elemento de `subvenciones` depende del plan — ver SubvencionDiscoveryItem (Free) y SubvencionFullItem (Profesional+).
  - `cnae` string — Código CNAE consultado, tal y como se envió.
  - `subvenciones` union[]
    - union
      - SubvencionDiscoveryItem — Proyección de campos de descubrimiento (plan Free) — máx. 5 filas por respuesta.
        - `codigo_bdns` string
        - `titulo` string
        - `organo` string, nullable
        - `nivel1` string, nullable
        - `cnae_seccion` string, nullable — Primera sección CNAE asociada a la convocatoria.
        - `url_oficial` string, uri, nullable
        - `importe` number, nullable — Dotación total de la convocatoria (no por beneficiario).
        - `estado` string, nullable
      - SubvencionFullItem — Proyección completa (plan Profesional o superior). NUNCA incluye `fecha_cierre` — el dato de BDNS es poco fiable como plazo.
        - `codigo_bdns` string
        - `titulo` string
        - `finalidad` string, nullable
        - `organo` string, nullable
        - `nivel1` string, nullable
        - `importe` number, nullable — Dotación total de la convocatoria (no por beneficiario).
        - `fecha_apertura` string, nullable
        - `fecha_recepcion` string, nullable
        - `abierto` boolean
        - `estado` string, nullable
        - `tipo_convocatoria` string, nullable
        - `sectores` unknown
        - `cnae_secciones` string[]
        - `tipos_beneficiarios` string[] — Señal de autónomo/pyme — úsala en vez de es_para_empresas.
        - `instrumentos` string[]
        - `regiones` string[] — Valores libres de BDNS; normalízalos con normalizeRegionToCCAA si necesitas el nombre canónico de la CCAA.
        - `url_bases` string, uri, nullable
        - `url_oficial` string, uri, nullable
  - `total` integer — Número de filas devueltas en esta página.
  - `_meta` SubvencionesMeta — Metadatos del envelope para endpoints con clave: plan actual, cuota restante y nudge de upgrade (solo plan Free al ≥80% de cuota).
    - `plan` string, required — Plan de la clave (free, profesional, empresa, enterprise).
    - `remaining` integer, required — Peticiones restantes de la cuota diaria.
    - `upgrade_hint` string — Mensaje legible de upgrade. Presente solo en plan Free al consumir ≥80% de la cuota.
    - `upgrade` UpgradeMeta — Forma estructurada del nudge de upgrade para renderizar UI nativa. Presente solo en plan Free al ≥80% de cuota.
      - `hint` string
      - `url` string, uri
      - `current_plan` string
      - `recommended_plan` object
        - `id` string
        - `label` string
        - `daily_limit` integer
        - `monthly_price_eur` integer
      - `daily_limit_after` integer
      - `price_eur_monthly` integer
    - `count` integer
    - `note` string, nullable — Presente solo en plan Free — explica el tope de 5 filas y que los filtros requieren plan Profesional o superior.
    - `offset` integer, nullable — Presente solo en plan Profesional o superior — el offset efectivamente aplicado.

## Other responses

- `400` — Petición inválida (parámetro o cuerpo mal formado).
- `401` — Falta la cabecera `X-API-Key` o la clave es inválida/desactivada.
- `429` — Límite de cuota diaria o de ráfaga superado. La cabecera `Retry-After` indica los segundos hasta poder reintentar.
- `500` — Error interno del servidor.

---

[API](https://skmtc.dev/conversoriaecnae/apis/conversor-iae-cnae-api.md) · [All operations](https://skmtc.dev/conversoriaecnae/apis/conversor-iae-cnae-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/conversoriaecnae/conversor-iae-cnae-api/revisions/2f9842f5e11b/schema)
