{"openapi":"3.0.3","info":{"title":"API de iaSubvenciones","version":"1.3.0","description":"Convocatorias de subvenciones en plazo de toda España y Europa. Autenticación con `Authorization: Bearer isk_...`."},"servers":[{"url":"https://yinlklwaztnredfkpdga.supabase.co/functions/v1/api-v1"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}},"schemas":{"Grant":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"titulo":{"type":"string"},"organo":{"type":"string"},"region":{"type":"string"},"provincia":{"type":"string","nullable":true},"sector":{"type":"string"},"perfiles":{"type":"array","items":{"type":"string"}},"finalidad":{"type":"string","nullable":true},"fecha_apertura":{"type":"string","format":"date","nullable":true},"fecha_cierre":{"type":"string","format":"date"},"importe_total":{"type":"number","nullable":true},"url_original":{"type":"string","nullable":true},"url_bases":{"type":"string","nullable":true},"url_ficha":{"type":"string"}}}}},"security":[{"bearer":[]}],"paths":{"/v1/filters":{"get":{"summary":"Catálogos para filtrar","responses":{"200":{"description":"Regiones, sectores, provincias y perfiles"}}}},"/v1/grants":{"get":{"summary":"Buscar convocatorias en plazo","parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"Texto en título, órgano o finalidad."},{"name":"region","in":"query","schema":{"type":"string"},"description":"Región normalizada (Andalucía, Estatal, Europa…). Varios valores separados por coma."},{"name":"sector","in":"query","schema":{"type":"string"},"description":"Sector normalizado. Varios valores separados por coma."},{"name":"provincia","in":"query","schema":{"type":"string"},"description":"Provincia. Varios valores separados por coma."},{"name":"perfil","in":"query","schema":{"type":"string"},"description":"particular, autonomo, pyme, gran_empresa, entidad. Varios valores separados por coma."},{"name":"cnae","in":"query","schema":{"type":"string"},"description":"Códigos CNAE (2 a 4 dígitos o sección). Varios valores separados por coma."},{"name":"importe_min","in":"query","schema":{"type":"number"}},{"name":"importe_max","in":"query","schema":{"type":"number"}},{"name":"cierre_hasta","in":"query","schema":{"type":"string","format":"date"}},{"name":"orden","in":"query","schema":{"type":"string","enum":["cierre_asc","reciente","importe_desc"]}},{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","default":20,"maximum":100}}],"responses":{"200":{"description":"Listado paginado","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/components/schemas/Grant"}}}}}}}}}},"/v1/grants/{id}":{"get":{"summary":"Ficha completa","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Convocatoria con descripción, beneficiarios, objetivos y documentos"},"404":{"description":"No encontrada"}}}},"/v1/grants/{id}/documents":{"get":{"summary":"Documentos oficiales","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Documentos publicados por el organismo"}}}},"/v1/companies":{"get":{"summary":"Empresas accesibles con la clave (Enterprise: Mis empresas)","responses":{"200":{"description":"Empresas"}}}},"/v1/radar":{"get":{"summary":"Radar: subvenciones recomendadas para el perfil de una empresa","parameters":[{"name":"company_id","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"cnae","in":"query","schema":{"type":"string"},"description":"CNAE Varios valores separados por coma."},{"name":"region","in":"query","schema":{"type":"string"},"description":"Región Varios valores separados por coma."},{"name":"sector","in":"query","schema":{"type":"string"},"description":"Sector Varios valores separados por coma."},{"name":"perfil","in":"query","schema":{"type":"string"},"description":"Perfil Varios valores separados por coma."}],"responses":{"200":{"description":"Recomendaciones"}}},"post":{"summary":"Radar con un perfil enviado en el cuerpo","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"cnae":{"type":"array","items":{"type":"string"}},"region":{"type":"array","items":{"type":"string"}},"sector":{"type":"array","items":{"type":"string"}},"perfil":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Recomendaciones"}}}},"/v1/applications":{"get":{"summary":"Listar expedientes (subvenciones en seguimiento)","parameters":[{"name":"company_id","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"estado","in":"query","schema":{"type":"string","enum":["interesado","en_preparacion","presentada","concedida","denegada"]}}],"responses":{"200":{"description":"Expedientes"}}},"post":{"summary":"Crear expediente","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["subvencion_id"],"properties":{"subvencion_id":{"type":"string","format":"uuid"},"company_id":{"type":"string","format":"uuid"},"estado":{"type":"string","enum":["interesado","en_preparacion","presentada","concedida","denegada"]},"notas":{"type":"string"},"fecha_limite":{"type":"string","format":"date"},"assigned_to":{"type":"string","format":"uuid"}}}}}},"responses":{"201":{"description":"Creado"}}}},"/v1/applications/{id}":{"get":{"summary":"Ver expediente","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Expediente"}}},"patch":{"summary":"Cambiar estado, notas, fecha límite o responsable","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Actualizado"}}},"delete":{"summary":"Eliminar expediente","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Eliminado"}}}},"/v1/webhooks":{"get":{"summary":"Listar webhooks","responses":{"200":{"description":"Webhooks"}}},"post":{"summary":"Registrar webhook (evento alerta.nuevas_subvenciones). Devuelve el secreto una sola vez; firma HMAC-SHA256 en X-IaSubvenciones-Signature","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"}}}}}},"responses":{"201":{"description":"Creado"}}}},"/v1/webhooks/{id}":{"delete":{"summary":"Eliminar webhook","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Eliminado"}}}},"/v1/webhooks/{id}/test":{"post":{"summary":"Enviar evento de prueba","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Resultado"}}}},"/v1/search":{"post":{"summary":"Búsqueda inteligente: describe lo que buscas en lenguaje natural y la IA lo convierte en filtros","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","example":"ayudas para digitalizar una pyme de hostelería en Valencia"},"per_page":{"type":"integer"}}}}}},"responses":{"200":{"description":"Resultados y filtros interpretados"}}}},"/v1/grants/{id}/ai/summary":{"post":{"summary":"Resumen con IA (Markdown)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Resumen"}}}},"/v1/grants/{id}/ai/requirements":{"post":{"summary":"Requisitos, documentación y anexos extraídos con IA","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Requisitos"}}}},"/v1/grants/{id}/ai/compatibility":{"post":{"summary":"Compatibilidad con IA para una empresa (company_id) o un perfil enviado en 'perfil'","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Puntuación, veredicto y motivos"}}}},"/v1/minimis/{nif}":{"get":{"summary":"Mínimis por CIF/NIF: ayudas recibidas en 3 años, acumulado por reglamento y margen disponible (fuente BDNS)","parameters":[{"name":"nif","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Resumen y concesiones"},"400":{"description":"NIF no válido"}}}},"/mcp":{"post":{"summary":"Servidor MCP (JSON-RPC 2.0) para agentes de IA: initialize, tools/list, tools/call","responses":{"200":{"description":"Respuesta JSON-RPC"}}}}}}