baldar-api — token-auth read-only access to BaldarSQL GET /health — liveness (no auth) GET /db-health — DB reachability (auth) POST /api/v1/query — { db?, query, limit? } SELECT-only, row-capped GET /api/v1/databases — DBs + tables + row counts GET /api/v1/schema/:db/:table — column list GET /api/v1/sample/:db/:table — TOP 5 rows BI (fixed, verified queries — no SQL from the caller): GET /api/v1/bi/meta/endpoints — every BI endpoint + description GET /api/v1/bi/meta/data-quality— measured traps, fill rates, dead domains GET /api/v1/bi/alerts/:name — summary | overscan | underscan | upgraded-untouched | stuck-in-warehouse | picked-up-not-delivered GET /api/v1/bi/unknown-scans/:n — summary | list | daily | by-scanner | repeated | breakdown (סריקות שלא זוהו) GET /api/v1/bi/sender-attribution/:n — summary | by-parent | by-sender | list | ws-log (מי שלח את החבילות) GET /api/v1/bi/kpi/:name — 16 KPIs; see meta/endpoints GET /api/v1/bi/delivery/:num — one package: card + unified timeline GET /api/v1/bi/barcode/:code — find a delivery by barcode GET /api/v1/bi/customer-ref/:r — find by the parent company's own ref GET /api/v1/bi/ydm/lookup?q= — YDM only (cust 238): deliveries + status timeline POST /api/v1/bi/ydm/lookup-batch — YDM only: {refs:[...]} ≤20,000 → last status per ref params: ?days=30 &minHours=24 &limit=500 Screens: GET /unknown-scans.html — מסך סריקות שלא זוהו במחסן