Read API

Optional auth: if READ_API_TOKEN is set, pass Authorization: Bearer <token>.

GET /api/products?q=<name>

Fuzzy brand/product search.

GET /api/products?upc=<upc>

Fetch by UPC.

GET /api/products/ok?include=low

All YES_OK products, optionally include LOW_RISK.

[
  {
    "brand": "Beyond Meat",
    "name": "Beyond Meatballs",
    "upc": "123456789012",
    "verdict": "YES_OK",
    "reason": "No gluten-containing grains or derivatives detected in listed ingredients.",
    "triggers": [],
    "checked_at": "2026-11-01T00:00:00.000Z"
  }
]