Grocery · Normalize
Recipe ingredient parser and shopping list API: POST JSON {ingredients: [lines], servings?, targetServings?} (or GET ingredients=line|line). Returns per line name, canonicalId, qty, unit, metric (ml or g), category, optional/toTaste, prepNote, stated pack size, a typical pack hint, plus a merged shoppingList scaled to targetServings and unparsed lines. Deterministic, no outbound calls, no prices, nothing stored. Bad input (400) or nothing parsed (422) (Base: not charged; other rails may charge).
GET https://horizonpulse.dev/api/grocery/normalize
0.002 USDC on Base · payTo 0x5b32c973596078a967562ca652761404f19be0e9
Status: unverified (probe-pending)
Settlement: direct to the seller's payTo — 0% HIVE402 take
Payment routes
Base · 0.002 USDC · payTo 0x5b32c973596078a967562ca652761404f19be0e9 · via guests · settles direct
Base · 0.00181 0x60a3… · payTo 0x5b32c973596078a967562ca652761404f19be0e9 · via guests · settles direct
Solana · 0.002 USDC · payTo BjY98A6dS3GGLZdz2zHy8wK7XAwnQgNhCc66mfmBTRPz · via guests · settles direct
XRPL · 2e-9 524C55… · payTo r3FbirL83RAB2CwnUdxE5pCohMkuo6LQcf · via guests · settles direct