{"status":"success","data":{"name":"Chakudya Nutrition Registry (CNR)","tagline":"Malawi's first open Food & Nutrition Database","version":"1.7.0","maintainer":"Edison Taimu","auth":"Write operations (POST/PUT/PATCH/DELETE) require 'Authorization: Bearer <admin key>', except POST /packaged/submit, POST /packaged/scan, POST /rag/retrieve, POST /rag/ask, POST /memory/write, and GET /memory/recall, which are public but rate-limited.","kv_bound":true,"endpoints":{"foods":["GET  /foods","GET  /foods/:id","POST /foods            (admin)","PUT  /foods/:id        (admin)","PATCH /foods/:id       (admin)","DELETE /foods/:id      (admin)"],"exchange_lists":["GET  /exchange","POST /exchange         (admin)","PUT  /exchange/:id     (admin)","PATCH /exchange/:id    (admin)","DELETE /exchange/:id   (admin)"],"renal":["GET  /renal","POST /renal            (admin)","PUT  /renal/:id        (admin)","PATCH /renal/:id       (admin)","DELETE /renal/:id      (admin)"],"enteral_formulas":["GET  /formulas","POST /formulas         (admin)","PUT  /formulas/:id     (admin)","PATCH /formulas/:id    (admin)","DELETE /formulas/:id   (admin)"],"packaged_foods":["GET  /packaged","POST /packaged/submit  (public, rate-limited — community contribution, status=pending)","POST /packaged/scan    (public, rate-limited — photo of nutrition label -> OCR/AI -> status=pending)","PUT  /packaged/:id     (admin)","PATCH /packaged/:id    (admin)","DELETE /packaged/:id   (admin)"],"rag":["POST /rag/retrieve     (public, rate-limited) → semantic search (query, context, top_k)","POST /rag/ingest       (admin) → add document chunk (content, source, context)","POST /rag/ask          (public, rate-limited) → RAG Search Orchestrator: intent detection -> fan-out search (semantic + Malawi FCT + packaged/OCR foods + exchange/renal/formula DBs + barcode + USDA/OFF/FatSecret fallback) -> rerank -> grounded LLM answer with citations (query, context, top_k, session_id)"],"memory":["POST /memory/write        (public, rate-limited) → capture a session fact (session_id, content)","POST /memory/recall       (public, rate-limited) → top-K relevant memory for a session (session_id, query, top_k) — preferred; GET with the same params still works but is deprecated since it puts clinical text in the URL/logs","POST /memory/consolidate  (admin) → summarize a session's facts (session_id) — also run hourly by cron"],"manufacturers":["GET  /manufacturers","POST /manufacturers        (admin)","PATCH /manufacturers/:id   (admin)","DELETE /manufacturers/:id  (admin)"],"products":["GET  /products             — filters: category, route, manufacturer_id, search, include_inactive","GET  /products/:id","POST /products             (admin)","PUT  /products/:id         (admin)","PATCH /products/:id        (admin)","DELETE /products/:id       (admin — soft delete, sets is_active=false)"],"nutrition":["GET /nutrition?product_id=123"]}}}