{
  "openapi": "3.1.0",
  "info": {
    "title": "API Congo Finances Publiques",
    "version": "1.0.0",
    "description": "Corpus budgétaire traçable et validé 2022–2026"
  },
  "paths": {
    "/api/health": {
      "get": {
        "summary": "État du service"
      }
    },
    "/api/llm/status": {
      "get": {
        "summary": "Configuration et compteurs LLM sans secret"
      }
    },
    "/api/documents": {
      "get": {
        "summary": "Catalogue documentaire"
      }
    },
    "/api/overview": {
      "get": {
        "summary": "Vue d’ensemble pilotée par année et type de loi",
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 2022,
              "maximum": 2026
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "enum": [
                "LFI",
                "LFR",
                "LR"
              ]
            }
          }
        ]
      }
    },
    "/api/compare": {
      "get": {
        "summary": "Comparaison sourcée de deux exercices",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "enum": [
                "LFI",
                "LFR",
                "LR"
              ]
            }
          }
        ]
      }
    },
    "/api/facts": {
      "get": {
        "summary": "Faits budgétaires structurés",
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "enum": [
                "revenue",
                "expenditure",
                "allocation"
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/search": {
      "get": {
        "summary": "Recherche hybride dans les passages validés",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/corpus-report": {
      "get": {
        "summary": "Rapport d’indexation par document et année"
      }
    },
    "/api/ask": {
      "post": {
        "summary": "Assistant budgétaire strict ou génératif avec preuves",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "question"
                ],
                "properties": {
                  "question": {
                    "type": "string"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "strict",
                      "generative"
                    ],
                    "default": "strict"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}