{"slug":"horizon-pulse-84b3d7ca","name":"Horizon Pulse","summary":"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): not charged.","status":"live","indexable":true,"listed_since":"2026-10-25T17:51:15.933356Z","sources":[{"source":"x402_bazaar","external_id":"https://horizonpulse.dev/api/grocery/normalize","owner_address":"0x5b32c973596078a967562ca652761404f19be0e9","seen_at":"2026-10-26T05:59:44.589998Z","removed_at":null}],"endpoints":[{"url":"https://horizonpulse.dev/api/grocery/normalize","host":"horizonpulse.dev","protocol":"x402","state":"live","last_probe_at":"2026-10-25T20:10:06.940125Z","last_ok_at":"2026-10-25T20:10:06.940125Z","tools_count":null,"tools_changed_at":null,"uptime_24h":1.0,"uptime_30d":1.0}],"also_listed_as":[{"slug":"horizonpulse-dev-b8bce72b","name":"horizonpulse.dev"}],"payment_options":[],"usage":{"source":"x402_bazaar","unique_payers_30d":4,"paid_calls_30d":5,"last_paid_at":"2026-10-25T20:42:37.526Z","reported_at":"2026-10-26T05:59:44.589998Z"},"notice":"Not affiliated with addrbook — claim or request removal."}