{
  "openapi": "3.0.1",
  "info": {
    "title": "Subvenciones España (BDNS) · Ayudas públicas en JSON",
    "description": "Busca convocatorias de subvenciones y ayudas públicas de España (estatales, autonómicas y locales) en la Base de Datos Nacional de Subvenciones vía API oficial. Devuelve JSON limpio: plazos, presupuesto, beneficiarios, regiones y enlaces. Usable como herramienta MCP por agentes de IA.",
    "version": "0.1",
    "x-build-id": "xeFrIoZbXTld07gSq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/albydev~bdns-subvenciones-espana/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-albydev-bdns-subvenciones-espana",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/albydev~bdns-subvenciones-espana/runs": {
      "post": {
        "operationId": "runs-sync-albydev-bdns-subvenciones-espana",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/albydev~bdns-subvenciones-espana/run-sync": {
      "post": {
        "operationId": "run-sync-albydev-bdns-subvenciones-espana",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "operacion": {
            "title": "Operación",
            "enum": [
              "buscar",
              "detalle"
            ],
            "type": "string",
            "description": "'buscar' localiza convocatorias por texto/fechas/ámbito. 'detalle' devuelve la ficha completa de una convocatoria a partir de su código BDNS (requiere 'numeroConvocatoria').",
            "default": "buscar"
          },
          "consulta": {
            "title": "Texto a buscar",
            "type": "string",
            "description": "Palabras que deben aparecer en el título de la convocatoria. La API busca de forma literal, sin sinónimos: separa varios términos por comas para cubrir un mismo concepto (ej. 'digitalizacion, transformacion digital'). Los acentos se normalizan solos. Déjalo vacío para listar las más recientes."
          },
          "fechaDesde": {
            "title": "Registradas desde",
            "type": "string",
            "description": "Fecha mínima de registro de la convocatoria, formato dd/MM/yyyy (ej. '01/01/2026')."
          },
          "fechaHasta": {
            "title": "Registradas hasta",
            "type": "string",
            "description": "Fecha máxima de registro de la convocatoria, formato dd/MM/yyyy (ej. '31/12/2026')."
          },
          "ambito": {
            "title": "Ámbito de la administración",
            "enum": [
              "todos",
              "estatal",
              "autonomica",
              "local",
              "otros"
            ],
            "type": "string",
            "description": "Filtra por el tipo de administración que convoca la ayuda: estatal (Gobierno de España), autonómica (comunidades autónomas), local (ayuntamientos y diputaciones) u otros organismos (universidades, etc.).",
            "default": "todos"
          },
          "region": {
            "title": "Comunidad autónoma",
            "enum": [
              "todas",
              "andalucia",
              "aragon",
              "asturias",
              "baleares",
              "canarias",
              "cantabria",
              "castilla-la-mancha",
              "castilla-y-leon",
              "cataluna",
              "ceuta",
              "comunidad-valenciana",
              "extremadura",
              "galicia",
              "la-rioja",
              "madrid",
              "melilla",
              "murcia",
              "navarra",
              "pais-vasco"
            ],
            "type": "string",
            "description": "Filtra por el territorio al que se dirige la ayuda. Es un filtro nativo de la API, así que acota la búsqueda sin coste extra. Vía API puedes pasar varias separadas por comas (ej. 'asturias,galicia').",
            "default": "todas"
          },
          "soloAbiertas": {
            "title": "Solo con plazo de solicitud abierto",
            "type": "boolean",
            "description": "Si está activo, devuelve únicamente convocatorias cuyo plazo de solicitud sigue abierto. Implica consultar el detalle de cada candidata, por lo que la ejecución es más lenta y consume más peticiones.",
            "default": false
          },
          "soloConcurrencia": {
            "title": "Solo convocatorias a las que se puede concurrir",
            "type": "boolean",
            "description": "Descarta las de concesión directa (convenios, subvenciones nominativas, líneas de presupuesto), que ya tienen beneficiario asignado y nadie puede solicitar. Son la mayoría de lo publicado, así que este filtro reduce mucho el ruido. Implica consultar el detalle de cada candidata.",
            "default": false
          },
          "incluirDetalle": {
            "title": "Incluir ficha completa",
            "type": "boolean",
            "description": "Enriquece cada resultado con la ficha completa: presupuesto, plazos de solicitud, tipos de beneficiario, sectores, regiones y enlaces a bases reguladoras.",
            "default": false
          },
          "maxResultados": {
            "title": "Máximo de resultados",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Número máximo de convocatorias a devolver (1-200).",
            "default": 20
          },
          "numeroConvocatoria": {
            "title": "Código BDNS (solo operación 'detalle')",
            "type": "string",
            "description": "Código numérico BDNS de la convocatoria, ej. '915898'. Se obtiene del campo 'codigoBDNS' de una búsqueda previa."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}