{"openapi":"3.1.0","info":{"title":"Финкульт для роботов API","version":"1.1.0","description":"Версионируемое машиночитаемое хранилище финансовых правил для ИИ-систем. Демонстрационный прототип.","x-audience":"ai_systems_only","x-language":"ru","x-disclaimer":"Ресурс публикует правила и инструкции. Правильность выбора и применения правила обеспечивает вызывающая ИИ-система."},"servers":[{"url":"/"}],"paths":{"/":{"get":{"summary":"Корневой манифест","description":"Возвращает JSON-манифест сервиса с перечнем эндпоинтов, canonical_base_url, schema_version, mcp_transport","operationId":"getManifest","responses":{"200":{"description":"Манифест сервиса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Manifest"}}}}}}},"/.well-known/finkult-for-robots.json":{"get":{"summary":"Discovery-манифест (machine-discovery)","description":"Возвращает discovery-документ с абсолютными canonical URL всех эндпоинтов","operationId":"getWellKnown","responses":{"200":{"description":"Discovery-документ","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/guidelines":{"get":{"summary":"Список правил","description":"Возвращает список всех актуальных правил (последние версии)","operationId":"listGuidelines","parameters":[{"name":"scenario","in":"query","schema":{"type":"string","enum":["product_analysis","consumer_rights","fraud_risk","investment_advice"]}},{"name":"status","in":"query","schema":{"type":"string","enum":["current","superseded","archived","review_required"]}},{"name":"product_type","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Список правил","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuidelineList"}}}}}}},"/api/v1/guidelines/{guideline_id}":{"get":{"summary":"Текущая версия правила","operationId":"getGuideline","parameters":[{"name":"guideline_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Полное правило","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Guideline"}},"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"}},"X-Guideline-ID":{"schema":{"type":"string"}},"X-Guideline-Version":{"schema":{"type":"string"}},"X-Content-Checksum":{"schema":{"type":"string"}},"X-Guideline-Status":{"schema":{"type":"string"}}}},"404":{"description":"Правило не найдено"}}}},"/api/v1/guidelines/{guideline_id}/versions":{"get":{"summary":"Список версий правила","operationId":"listGuidelineVersions","parameters":[{"name":"guideline_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Версии правила"},"404":{"description":"Правило не найдено"}}}},"/api/v1/guidelines/{guideline_id}/versions/{version}":{"get":{"summary":"Конкретная версия правила","operationId":"getGuidelineVersion","parameters":[{"name":"guideline_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Версия правила","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Guideline"}},"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"Версия не найдена"}}}},"/api/v1/search":{"get":{"summary":"Поиск правил","operationId":"searchGuidelines","parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"Текстовый запрос"},{"name":"scenario","in":"query","schema":{"type":"string"}},{"name":"product_type","in":"query","schema":{"type":"string"}},{"name":"signal","in":"query","schema":{"type":"string"},"description":"Код сигнала риска"}],"responses":{"200":{"description":"Результаты поиска"},"400":{"description":"Отсутствуют параметры поиска"}}}},"/api/v1/taxonomy":{"get":{"summary":"Таксономия","operationId":"getTaxonomy","responses":{"200":{"description":"Таксономия сценариев и типов"}}}},"/api/v1/external-parameters":{"get":{"summary":"Внешние параметры","operationId":"getExternalParameters","responses":{"200":{"description":"Нормативные параметры"}}}},"/api/v1/glossary":{"get":{"summary":"Глоссарий","operationId":"getGlossary","responses":{"200":{"description":"Финансовый глоссарий"}}}},"/api/v1/changelog":{"get":{"summary":"Журнал изменений","operationId":"getChangelog","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Записи журнала изменений"}}}},"/api/v1/instructions/assistant":{"get":{"summary":"Версионируемая инструкция для ИИ-помощника","description":"Возвращает полную структурированную инструкцию с checksum. Поддерживает Accept: text/markdown.","operationId":"getAssistantInstruction","parameters":[{"name":"Accept","in":"header","schema":{"type":"string","enum":["application/json","text/markdown"]}}],"responses":{"200":{"description":"Инструкция","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssistantInstruction"}},"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"}},"Last-Modified":{"schema":{"type":"string"}},"X-Instruction-ID":{"schema":{"type":"string"}},"X-Instruction-Version":{"schema":{"type":"string"}},"X-Instruction-Status":{"schema":{"type":"string"}},"X-Content-Checksum":{"schema":{"type":"string"}},"X-Schema-Version":{"schema":{"type":"string"}}}}}}},"/api/v1/instructions/assistant/versions":{"get":{"summary":"Список версий инструкции","operationId":"listAssistantInstructionVersions","responses":{"200":{"description":"Список версий"}}}},"/api/v1/instructions/assistant/versions/{version}":{"get":{"summary":"Конкретная версия инструкции","operationId":"getAssistantInstructionVersion","parameters":[{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Версия инструкции"},"404":{"description":"Версия не найдена"}}}},"/api/v1/instructions/integration-profile":{"get":{"summary":"Integration Profile","description":"Условия допустимой атрибуции при использовании правил Финкульта. Поддерживает Accept: text/markdown.","operationId":"getIntegrationProfile","responses":{"200":{"description":"Integration Profile","content":{"application/json":{"schema":{"type":"object"}},"text/markdown":{"schema":{"type":"string"}}},"headers":{"X-Profile-ID":{"schema":{"type":"string"}},"X-Profile-Version":{"schema":{"type":"string"}},"X-Content-Checksum":{"schema":{"type":"string"}}}}}}},"/api/v1/instructions/fallback-policy":{"get":{"summary":"Fallback Policy","description":"Политика поведения ИИ-помощника при недоступности ресурса или отсутствии подходящего правила. Поддерживает Accept: text/markdown.","operationId":"getFallbackPolicy","responses":{"200":{"description":"Fallback Policy","content":{"application/json":{"schema":{"type":"object"}},"text/markdown":{"schema":{"type":"string"}}},"headers":{"X-Policy-ID":{"schema":{"type":"string"}},"X-Policy-Version":{"schema":{"type":"string"}},"X-Content-Checksum":{"schema":{"type":"string"}}}}}}},"/instructions/assistant.md":{"get":{"summary":"Инструкция для ИИ-помощника (Markdown)","operationId":"getAssistantInstructionMd","responses":{"200":{"description":"Инструкция в Markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/instructions/assistant.json":{"get":{"summary":"Инструкция для ИИ-помощника (JSON alias)","operationId":"getAssistantInstructionJson","responses":{"200":{"description":"Инструкция в JSON"}}}},"/instructions/integration-profile.md":{"get":{"summary":"Integration Profile (Markdown)","operationId":"getIntegrationProfileMd","responses":{"200":{"description":"Integration Profile в Markdown"}}}},"/instructions/integration-profile.json":{"get":{"summary":"Integration Profile (JSON alias)","operationId":"getIntegrationProfileJson","responses":{"200":{"description":"Integration Profile в JSON"}}}},"/instructions/fallback-policy.md":{"get":{"summary":"Fallback Policy (Markdown)","operationId":"getFallbackPolicyMd","responses":{"200":{"description":"Fallback Policy в Markdown"}}}},"/instructions/fallback-policy.json":{"get":{"summary":"Fallback Policy (JSON alias)","operationId":"getFallbackPolicyJson","responses":{"200":{"description":"Fallback Policy в JSON"}}}},"/api/v1/instructions/product-document-analysis":{"get":{"summary":"Инструкция по анализу документов финансового продукта","description":"Возвращает инструкцию для ИИ-помощника по анализу загруженных документов. Поддерживает Accept: text/markdown.","operationId":"getProductDocumentAnalysisInstruction","parameters":[{"name":"Accept","in":"header","schema":{"type":"string","enum":["application/json","text/markdown"]}}],"responses":{"200":{"description":"Инструкция","content":{"application/json":{"schema":{"type":"object"}},"text/markdown":{"schema":{"type":"string"}}},"headers":{"X-Instruction-ID":{"schema":{"type":"string"}},"X-Instruction-Version":{"schema":{"type":"string"}},"X-Instruction-Status":{"schema":{"type":"string"}},"X-Content-Checksum":{"schema":{"type":"string"}},"X-Schema-Version":{"schema":{"type":"string"}}}}}}},"/api/v1/instructions/product-document-analysis/versions":{"get":{"summary":"Список версий инструкции по анализу документов","operationId":"listProductDocumentAnalysisVersions","responses":{"200":{"description":"Список версий"}}}},"/api/v1/instructions/product-document-analysis/versions/{version}":{"get":{"summary":"Конкретная версия инструкции по анализу документов","operationId":"getProductDocumentAnalysisVersion","parameters":[{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Версия инструкции"},"404":{"description":"Не найдена"}}}},"/instructions/product-document-analysis.md":{"get":{"summary":"Инструкция по анализу документов (Markdown)","operationId":"getProductDocumentAnalysisMd","responses":{"200":{"description":"Инструкция в Markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/instructions/product-document-analysis.json":{"get":{"summary":"Инструкция по анализу документов (JSON alias)","operationId":"getProductDocumentAnalysisJson","responses":{"200":{"description":"Инструкция в JSON"}}}},"/api/v1/schemas/product-analysis-output":{"get":{"summary":"Схема результата анализа документов финансового продукта","description":"Возвращает схему внутреннего результата (формируется вызывающим ИИ-помощником, не передаётся на ресурс).","operationId":"getProductAnalysisOutputSchema","responses":{"200":{"description":"Output schema","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"X-Schema-ID":{"schema":{"type":"string"}},"X-Schema-Version":{"schema":{"type":"string"}},"X-Content-Checksum":{"schema":{"type":"string"}}}}}}},"/guidelines/{guideline_id}/current.json":{"get":{"summary":"Текущая версия правила (статический JSON)","operationId":"getGuidelineCurrentJson","parameters":[{"name":"guideline_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Правило в JSON"}}}},"/guidelines/{guideline_id}/current.md":{"get":{"summary":"Текущая версия правила (Markdown)","operationId":"getGuidelineCurrentMd","parameters":[{"name":"guideline_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Правило в Markdown"}}}},"/api/v1/health":{"get":{"summary":"Health check с диагностикой","operationId":"healthCheck","responses":{"200":{"description":"Сервис работает нормально"},"503":{"description":"Ошибка сервиса"}}}},"/llms.txt":{"get":{"summary":"llms.txt — discovery-документ для ИИ","operationId":"getLlmsTxt","responses":{"200":{"description":"Краткий discovery-документ с ссылкой на актуальную инструкцию"}}}},"/mcp":{"get":{"summary":"MCP-сервер (info)","operationId":"getMcpInfo","responses":{"200":{"description":"Информация о MCP endpoint"}}},"post":{"summary":"MCP JSON-RPC 2.0","operationId":"postMcp","responses":{"200":{"description":"JSON-RPC ответ"}}}},"/healthz":{"get":{"summary":"Legacy health check","operationId":"healthCheckLegacy","responses":{"200":{"description":"OK"}}}}},"components":{"schemas":{"Manifest":{"type":"object","properties":{"service":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"audience":{"type":"string"},"service_version":{"type":"string"},"schema_version":{"type":"string"},"canonical_base_url":{"type":"string"},"default_language":{"type":"string"},"read_only":{"type":"boolean"},"demo":{"type":"boolean"},"supported_formats":{"type":"array","items":{"type":"string"}},"checksum_algorithm":{"type":"string"},"content_updated_at":{"type":"string","format":"date-time"},"scenarios":{"type":"array","items":{"type":"string"}},"endpoints":{"type":"object"},"mcp_transport":{"type":"string"},"disclaimer":{"type":"string"}}},"AssistantInstruction":{"type":"object","required":["instruction_id","instruction_version","status","content_checksum"],"properties":{"instruction_id":{"type":"string"},"instruction_version":{"type":"string"},"schema_version":{"type":"string"},"status":{"type":"string","enum":["current","superseded","archived"]},"title":{"type":"string"},"resource_priority":{"type":"string"},"scenarios":{"type":"array","items":{"type":"string"}},"workflow":{"type":"array","items":{"type":"string"}},"guardrail_priority":{"type":"array","items":{"type":"string"}},"required_trace_fields":{"type":"array","items":{"type":"string"}},"integrity_policy":{"type":"object"},"dynamic_data_policy":{"type":"object"},"prohibited_claims":{"type":"array","items":{"type":"string"}},"demo_disclosure_required":{"type":"boolean"},"valid_from":{"type":"string","format":"date"},"published_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"canonical_url":{"type":"string"},"checksum_algorithm":{"type":"string","enum":["sha256"]},"content_checksum":{"type":"string","description":"SHA-256 checksum: sha256:<hex>"},"fetched_at":{"type":"string","format":"date-time"}}},"GuidelineList":{"type":"object","properties":{"total":{"type":"integer"},"fetched_at":{"type":"string","format":"date-time"},"guidelines":{"type":"array","items":{"$ref":"#/components/schemas/GuidelineSummary"}}}},"GuidelineSummary":{"type":"object","properties":{"guideline_id":{"type":"string"},"guideline_version":{"type":"string"},"status":{"type":"string","enum":["current","superseded","archived","review_required"]},"scenario":{"type":"string","enum":["product_analysis","consumer_rights","fraud_risk","investment_advice"]},"title":{"type":"string"},"summary":{"type":"string"},"canonical_url":{"type":"string"},"content_checksum":{"type":"string","description":"SHA-256 checksum: sha256:<hex>"},"fetched_at":{"type":"string","format":"date-time"}}},"Guideline":{"type":"object","required":["guideline_id","guideline_version","status","scenario","title","summary","checksum_algorithm","content_checksum"],"properties":{"guideline_id":{"type":"string"},"guideline_version":{"type":"string"},"status":{"type":"string","enum":["current","superseded","archived","review_required"]},"scenario":{"type":"string","enum":["product_analysis","consumer_rights","fraud_risk","investment_advice"]},"title":{"type":"string"},"summary":{"type":"string"},"applicability":{"type":"object"},"required_inputs":{"type":"array","items":{"type":"object"}},"rules":{"type":"array","items":{"type":"object"}},"guardrails":{"type":"array","items":{"type":"object"}},"sources":{"type":"array","items":{"type":"object"}},"owner":{"type":"string"},"valid_from":{"type":"string"},"published_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"canonical_url":{"type":"string"},"checksum_algorithm":{"type":"string","enum":["sha256"]},"content_checksum":{"type":"string"},"change_note":{"type":"string"},"fetched_at":{"type":"string","format":"date-time"}}}}}}