{"host":"horizonpulse.dev","week":"2026-W44","snapshot_taken_at":"2026-10-26T13:00:11.784122+00:00","summary":{"host":"horizonpulse.dev","listings":31,"score":100,"grade":"A","errors":0,"warnings":0,"calls_30d":155,"payers_30d":108},"confidence":null,"safety":null,"fixes":[{"rule":"price-outside-band","severity":"info","listings":2,"fix":"Check the amount's decimals: x402 amounts are in USDC's smallest unit, six decimals, so 1000000 is $1.","text":"a price far outside what its category asks"},{"rule":"tags-missing","severity":"info","listings":1,"fix":"Add a few plain tags for the category.","text":"no tags"}],"market":{"resource":"https://horizonpulse.dev/api/pulse","category":"market_data","label":"Stocks and market data","price":{"usd":0.002,"compared_with":609,"p10":0.001,"median":0.005,"p90":0.02,"ask_more":482,"ask_less":72},"payers":{"payers_30d":11,"rank":30,"of":2150},"pattern":"traction","search":null,"method":"Compared with the week's Bazaar snapshot: prices from listings in the same category with at least 3 payers in 30 days, other sellers only; payer counts are the Bazaar's own, so catalog sweeps count too. Search ranks come from the week's run of the category's buyer searches, top 20 each."},"who_pays":{"host":"horizonpulse.dev","counted":true,"reason":null,"addresses":1,"window_days":30,"from_block":51895954,"to_block":53191953,"as_of":"2026-10-28T07:40:53+00:00","payments":262,"payers":26,"repeat_payers":12,"sweep_payers":7,"self_payers":0,"sweep_payments":9,"self_payments":0,"sweep_share":0.0344,"real_payments":253,"real_payers":19,"method":"Every USDC transfer on Base into the host's pay-to addresses over 30 days counts. A repeat payer paid in two or more sessions, more than 30 minutes apart. A sweep paid once and, within an hour, paid 5 or more of the other Bazaar sellers we read: a bot paying the catalog, not a buyer. An address that more than one host lists, or that takes more transfers than a seller could, isn't counted."},"registered_agent":null,"standing":{"shown":0,"of":4,"checks":[{"signal":"certified","shown":false,"detail":"No Fair Offer certification on record."},{"signal":"block","shown":false,"detail":"No tool here has read one of its offers yet."},{"signal":"receipts","shown":false,"detail":"No public receipts file reconciled in the evidence commons."},{"signal":"probe","shown":false,"detail":"No paid probe on record."}],"certification":"never_certified","block":null,"deliveries_30d":null,"probe":null,"sources_unavailable":{},"note":"What the host has shown, with no usage behind it: each item is read from the log that holds it (certifications, offers the Lab's tools saw, the evidence commons, paid probes). A missing item means nothing is on record, not that the host lacks it."},"live_check":{"week":"2026-W44","at":"2026-10-27T13:00:14.739083+00:00","reachable":true,"status":402,"latency_ms":342,"price_usd":0.002,"pay_to_addresses":3,"block":{"present":false,"valid":false},"problem":null,"security_txt":false,"recheck":false,"sample":[],"tls":null,"uptime":{"weeks":12,"since":"2026-W33","checks":1,"payable":1},"changes":null,"note":"Unpaid requests to the host's busiest listings and one picked at random, and a read of its TLS certificate, made once a week; anyone could make them."},"recheck":{"url":"https://agoranome.com/sellers/horizonpulse.dev/recheck","method":"POST","note":"Free, once a day per seller: the same listings asked again, unpaid, and the grade made from the answers."},"history":[{"week":"2026-W44","taken_at":"2026-10-26T13:00:11.784122+00:00","listings":31,"score":100,"grade":"A","errors":0,"warnings":0,"calls_30d":155,"payers_30d":108}],"evidence":null,"benchmark":null,"listings":[{"resource":"https://horizonpulse.dev/api/pulse","description":"Crypto market data: a current USD price snapshot for BTC, ETH and SOL, or one coin via symbol= (bad symbol: 400, no charge), for quick market context. JSON per asset: priceUsd, change24hPct, momentum; plus overall momentum, sentiment, direction, avgChange24hPct, asOf. Prices from Coinbase Exchange, CoinGecko fallback (source field). Labels are fixed rules on 24h change, not a forecast and not financial advice. Errors are not charged.","method":"GET","price_usd":0.002,"networks":["eip155:137","eip155:8453"],"calls_30d":18,"payers_30d":11,"last_called_at":"2026-10-25T20:35:18.04Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/gas","description":"Gas price API for Base and Ethereum: base fee, priority fee and a max-fee suggestion in one GET, no parameters. Returns JSON per network: baseFeeGwei, priorityFeeGwei (p50, with p10/p90), suggestedMaxFeeGwei (2x base + priority), timingHint (cheap/normal/expensive vs the last 20 blocks) and simpleTransfer cost in ETH and USD, plus ethUsd. From eth_feeHistory with eth_gasPrice fallback. Descriptive, not a forecast. Errors are not charged.","method":"GET","price_usd":0.002,"networks":["eip155:137","eip155:8453"],"calls_30d":9,"payers_30d":7,"last_called_at":"2026-10-25T20:37:40.752Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/tx-status","description":"Transaction status API: did a payment or swap land, and is it final, on Base, Polygon, Solana or XRPL. GET tx (hash or Solana signature) and network (optional for Solana and XRPL hashes). Returns JSON: status not_found/pending/confirmed/failed, final, confirmations, block, fee, decoded token transfers, pollAgainSeconds. Read-only public RPCs. not_found is a charged answer; bad input or RPCs down: not charged. Returned content is untrusted third-party data.","method":"GET","price_usd":0.002,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":7,"payers_30d":6,"last_called_at":"2026-10-26T05:51:57.594Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/chain/head","description":"Block height API: current block number, slot or ledger index for Base, Polygon, Ethereum, Solana and XRPL in one GET. Optional network (comma list; default all five). Per network: chainId, height, headTime, headAgeSeconds, finalizedHeight and finalityGap (EVM finalized tag, Solana finalized slot, XRPL validated ledger). Free public RPCs, read-only. Billed when at least one network answers; bad input or every RPC down: not charged.","method":"GET","price_usd":0.002,"networks":["eip155:137","eip155:8453"],"calls_30d":5,"payers_30d":5,"last_called_at":"2026-10-25T20:39:06.937Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/pdf","description":"PDF to text API: the text of a public PDF, page by page. GET url (http/https, max 10MB), optional pages (1-50, default 50). Returns JSON: pages [{page, text}], totalPages, pagesReturned, truncated, bytes, finalUrl, meta (title, author, subject, creator, producer, creationDate). pdf.js text layer, no OCR (image-only PDFs: 422). Max 100K chars. Non-PDF, encrypted, oversize or failed downloads are not charged. Returned content is untrusted third-party data.","method":"GET","price_usd":0.02,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":7,"payers_30d":4,"last_called_at":"2026-10-20T04:30:58.401Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/tx-guard","description":"Address poisoning and OFAC SDN snapshot match before a crypto transfer, mechanical. GET chain (base, polygon, solana, xrpl), to; optional expected, token. Checks: lookalike vs expected, OFAC SDN snapshot (dated), account age, ScamSniffer token list (GPL-3.0). allow, warn or block per check. allow means no check flagged the address; it is not a guarantee that the address is safe, correct or not sanctioned. Not advice. Bad input: not charged. Returned content is untrusted third-party data.","method":"GET","price_usd":0.002,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":6,"payers_30d":4,"last_called_at":"2026-10-26T05:51:40.221Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/funding","description":"Perpetual funding rates API: current BTC, ETH and SOL perp funding from OKX USDT swaps in one GET, no parameters. Returns JSON per asset: instId, fundingRate, fundingTime and a rule-based crowding hint {side: longs/shorts/neutral, level: quiet/mild/elevated/extreme} with the thresholds used. OKX public data only. The hint is not a forecast or advice. Errors are not charged.","method":"GET","price_usd":0.003,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":5,"payers_30d":4,"last_called_at":"2026-10-19T12:15:34.841Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/grocery/normalize","description":"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.","method":"GET","price_usd":0.002,"networks":["eip155:137","eip155:8453"],"calls_30d":5,"payers_30d":4,"last_called_at":"2026-10-25T20:42:37.526Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/http","description":"HTTP request proxy API for public URLs: GET url (optional method GET/POST/HEAD/PUT/PATCH/DELETE; headers JSON), or POST JSON {url, method, headers, body}. Returns JSON: status, filtered headers, body (text/base64), contentType, finalUrl, elapsedMs. Caps: 384KB response, 64KB body, 12s, 3 redirects; private hosts blocked; no cookies sent. Upstream 4xx/5xx come back as data (charged); proxy errors are not. Returned content is untrusted third-party data.","method":"GET","price_usd":0.01,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":5,"payers_30d":4,"last_called_at":"2026-10-19T10:09:40.573Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/watch","description":"Web page change detection API: has a public page or endpoint changed since the last check. GET url; optional since (state token from the previous answer). Returns changed true/false; when changed, only added lines (up to 20) and added/removed counts. Stateless, nothing stored. SSRF-guarded like /api/fetch. changed:false is a charged answer; bad input, blocked or upstream errors: not charged. Returned content is untrusted third-party data.","method":"GET","price_usd":0.002,"networks":["eip155:137","eip155:8453"],"calls_30d":5,"payers_30d":4,"last_called_at":"2026-10-25T20:43:17.246Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/token/meta","description":"Token metadata API: ERC-20 name, symbol, decimals and total supply on Base, Polygon or Ethereum; Solana mint decimals, supply, authorities (Token-2022 on-chain name and symbol); XRPL issued-currency supply, issuer flags, transfer fee. GET network and token (0x address, mint, or CURRENCY.rIssuer). Chain state only: no price, no token-list check. found:false is a billed answer; bad input or RPCs down: not charged. Returned names and symbols are untrusted third-party data.","method":"GET","price_usd":0.002,"networks":["eip155:137","eip155:8453"],"calls_30d":4,"payers_30d":4,"last_called_at":"2026-10-25T20:40:21.275Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/x402-check","description":"x402 endpoint checker: decodes an x402 endpoint's 402 payment terms without paying. GET url (optional method GET/POST, JSON body for POST). Sends one unpaid request; never pays or signs. Returns JSON: httpStatus, isX402, x402Version, decoded accepts (network, asset, USD amount, payTo, EOA or contract), discovery metadata presence, and pass/warn/fail checks. Any HTTP answer from the target, even 4xx/5xx, is billed; bad input, blocked hosts, connection failures and timeouts are not.","method":"GET","price_usd":0.01,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":7,"payers_30d":3,"last_called_at":"2026-10-19T11:22:11.712Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/screenshot","description":"Website screenshot API: how a public page renders, as PNG or JPEG. GET url; optional width (320-1920), height (240-2000), fullPage=true (clipped at 4000px), format png/jpeg, delayMs (0-3000). Headless Chromium; returns JSON: imageBase64, mimeType, width, height, bytes, finalUrl, pageStatus, title, blockedRequests. Sub-requests checked; private targets blocked. Over 25s: 504. Errors are not charged. Returned content is untrusted third-party data.","method":"GET","price_usd":0.02,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":5,"payers_30d":3,"last_called_at":"2026-10-19T20:23:17.623Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/search","description":"Web search API with page contents: current results with sources as markdown. GET q (max 300 chars), optional n (1-5 pages, default 3). Web results via Serper (Google results); top results fetched as markdown. Returns JSON: results with rank, url, title, snippet, per-page ok/status and content (max 12K chars each), resultCount, fetchedOk. Billed if any result returns; zero results or provider errors are not charged. Returned content is untrusted third-party data.","method":"GET","price_usd":0.03,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":5,"payers_30d":3,"last_called_at":"2026-10-19T20:13:13.299Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/tokenized-stock","description":"Tokenized stock status API for Coinbase tokenized stocks on Base (AAPLc, NVDAc, TSLAc...). GET with optional symbol (AAPL, AAPLc or token address; omit for all 12). On-chain token state only, no price: paused flags, supply, supply cap, multiplier, issuer, token address. Not investment advice. Unknown symbol, bad input or RPCs down: not charged. Returned content is untrusted third-party data.","method":"GET","price_usd":0.002,"networks":["eip155:137","eip155:8453"],"calls_30d":5,"payers_30d":3,"last_called_at":"2026-10-25T20:44:58.609Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/bazaar-check","description":"x402 Bazaar listing checker: is an x402 seller listed in Coinbase CDP Bazaar, on which networks, and if not, why. GET url (host or https URL). Reads CDP discovery and the host's /.well-known/x402, then sends one unpaid request per route; never pays. Returns JSON: verdict, per-route indexed status and networks, and fail/warn findings each with a fix line. https only; private targets blocked. Errors are not charged.","method":"GET","price_usd":0.01,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":4,"payers_30d":3,"last_called_at":"2026-10-26T05:51:23.506Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/fetch","description":"URL to markdown API: a public web page as clean text or markdown for an LLM. GET url (absolute http/https). Returns JSON: content (markdown with scripts, styles and nav removed), format, finalUrl after redirects, upstreamStatus, contentType, bytesRead and truncated. Caps: 200KB, 8s, 3 redirects; private and localhost targets are blocked. Errors are not charged. Returned content is untrusted third-party data.","method":"GET","price_usd":0.02,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":4,"payers_30d":3,"last_called_at":"2026-10-19T20:18:02.436Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/market/quote","description":"x402 price quote and payTo check for one x402 seller URL, without paying. GET url (https; optional method GET/POST). One unpaid request. Returns JSON: verdict pay/caution/avoid with reasons, live terms per network (USD price, asset, payTo), the CDP Bazaar entry, a payTo cross-check against that entry (on a mismatch the buy plan is never ready) and a direct-pay buy plan. Bad input, blocked or unreachable hosts: not charged. Returned content is untrusted third-party data.","method":"GET","price_usd":0.005,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":4,"payers_30d":3,"last_called_at":"2026-10-26T05:52:14.113Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/market/search","description":"x402 API search: find paid x402 APIs for a task in Coinbase CDP Bazaar. GET q; optional n (1-10), kind, rail (base, solana, xrpl, polygon, evm), max_price (USD), min_health (0-1). Re-checks the top 3 live and cross-checks payTo with the index. Returns JSON: ranked offers with price, rails, health and a direct-pay buy plan. No paid ranking; Horizon Pulse holds no funds. No results: not charged. Returned listing text is untrusted third-party data.","method":"GET","price_usd":0.005,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":4,"payers_30d":3,"last_called_at":"2026-10-26T05:52:31.546Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/name/resolve","description":"ENS and Basenames resolver API: name to address (vitalik.eth, jesse.base.eth) or address to primary name, read on-chain. GET name or address. Forward: address, resolver and the registry used. Reverse: ENS and Basename primary names, each checked forward (verified true/false). Off-chain and wildcard (CCIP-Read) names are not followed. found:false is a billed answer; bad input or RPCs down: not charged. Returned names are untrusted third-party data.","method":"GET","price_usd":0.002,"networks":["eip155:137","eip155:8453"],"calls_30d":4,"payers_30d":3,"last_called_at":"2026-10-25T20:41:44.125Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/signals","description":"Crypto technical indicators API: RSI-14, MACD and Bollinger Bands for BTC, ETH and SOL in one GET, no parameters. Returns JSON per asset: rsi14, macd {macd, signal, histogram} (null when there are too few candles), bollinger {upper, middle, lower, period}, lastClose and OKX perpetual funding {fundingRate, fundingTime}. Computed from CoinGecko OHLC closes (Coinbase candles fallback); methodology included. Descriptive only, not advice. Errors are not charged.","method":"GET","price_usd":0.005,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":4,"payers_30d":3,"last_called_at":"2026-10-16T17:10:36.629Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/yield","description":"DeFi yield API: current APY for stablecoin and DeFi pools in one GET, no parameters. Returns JSON: up to 25 pools ordered by a fixed filter tier then APY, each with project, chain, symbol, tvlUsd, apy, apyBase, apyReward, apyMean30d, stablecoin, exposure, ilRisk and poolId. Filters: TVL >= $10M, non-outlier APY. Figures passed through from DefiLlama at fetch time, not advice. Errors are not charged.","method":"GET","price_usd":0.02,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":4,"payers_30d":3,"last_called_at":"2026-10-20T12:07:32.278Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/batch","description":"Batch chain checks API: up to 10 checks for one payment. POST JSON {items:[{route, params}]} (or GET items=<same JSON>); route one of balance, gas, tx-status, token/meta, chain/head, name/resolve; params are the same query keys the single route takes. Returns JSON: results [{index, route, status, ok, body}] in request order, count, okCount. Each item runs the single route's handler. Bad input or every item failing is not charged; one charge when at least one item succeeds.","method":"GET","price_usd":0.01,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":3,"payers_30d":3,"last_called_at":"2026-10-26T05:50:47.804Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/x402-check/deep","description":"x402 endpoint deep check, never pays or signs: the full /api/x402-check report plus live checks. GET url (optional method, body). Adds TLS, security headers, CORS, payTo vs the payee's own published addresses (/.well-known/x402, openapi.json, llms.txt), lookalike payTo detection, and drift between the live 402 and well-known, openapi and CDP Bazaar listings. Any HTTP answer from the target is billed; bad input, blocked hosts and timeouts are not.","method":"GET","price_usd":0.03,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":3,"payers_30d":3,"last_called_at":"2026-10-26T05:51:04.722Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/extract","description":"Web scraping API: a public page or supplied HTML to JSON fields. GET url, or POST JSON {url or html, fields}. Returns JSON: title, description, canonical, language, links, images, headings, jsonLd, textSample, and with fields (name to CSS selector, max 20) the matched values with fieldErrors. Caps: 200KB HTML, 8s; private targets blocked. No match (422) and errors are not charged. Returned content is untrusted third-party data.","method":"GET","price_usd":0.015,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":5,"payers_30d":2,"last_called_at":"2026-10-20T12:07:33.323Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/balance","description":"Wallet balance API for x402 payers: USDC on Base, Polygon and Solana, RLUSD on XRPL, and whether the wallet can pay now. GET at least one of evm (Base+Polygon), solana, xrpl. Per rail: balance, gas/fees (XRPL reserve, fee, RLUSD trust line), canPay yes/no, calls left at Horizon Pulse's live prices (XRPL network fee not reserved). No risk score, no USD valuation. Public RPCs, read-only, nothing stored. Bad input or RPCs down: not charged. Returned content is untrusted third-party data.","method":"GET","price_usd":0.002,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":3,"payers_30d":2,"last_called_at":"2026-10-16T17:10:29.737Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/discourse/split","description":"Hacker News and Bluesky opinion split, NOT a poll: how public posts divide on a question. GET q; optional sides (2-4, default yes,no), window (1-30d). Returns JSON: per-side share with 95% interval and n, counts per source, links only (no text or usernames; Bluesky links include the account's public ID, DID), caveats. Refuses elections, health and a named person's conduct. Under 30 decided posts, refusals and errors: not charged.","method":"GET","price_usd":0.03,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":3,"payers_30d":2,"last_called_at":"2026-10-20T12:07:30.4Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/grocery/ingredient","description":"Ingredient nutrition facts API: GET q (ingredient name or normalize canonicalId) and/or barcode (GTIN), optional n 1-5; POST JSON {items:[{q|barcode}]} max 10. Per 100 g: kcal, protein, fat, sat fat, carbs, sugars, fiber, sodium; USDA FoodData Central (CC0) snapshot and Open Food Facts by barcode (ODbL), attribution per match. Allergens may be incomplete. No prices. Bad input, no match or source down: not charged. Returned content is untrusted third-party data.","method":"GET","price_usd":0.005,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":3,"payers_30d":2,"last_called_at":"2026-10-16T22:45:56.75Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/portfolio","description":"Wallet balance and portfolio API for one EVM address on Base and Ethereum: ETH, USDC, WETH, WBTC/cbBTC and DAI holdings with USD value. GET address=0x... (40 hex). Returns JSON: holdings (balance, priceUsd, valueUsd, weight), totals (valueUsd, stablecoinShare, max asset/chain weight), concentration score {0-100, band} and rule findings (asset, stablecoin and chain weights vs fixed thresholds). Read-only; not advice. Invalid addresses return 400, not charged.","method":"GET","price_usd":0.04,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","xrpl:0"],"calls_30d":3,"payers_30d":2,"last_called_at":"2026-10-19T19:58:03.285Z","score":100,"grade":"A","findings":[]},{"resource":"https://horizonpulse.dev/api/research/report/brief","description":"Verified brief (schema brief-verified/1), on-chain live values and x402 spec facts only: answer plus 2-8 claims, each with an evidence array (verbatim quote, URL, retrieval time, body hash, offset; or chain, block and block time for on-chain reads). Charged only if >=2 claims are confirmed (2 publishers, 2 nodes, or 2 x402 spec documents) and every quote verifies; otherwise unpaid. Contract: horizonpulse.dev/contracts/brief-verified. Not advice. No personal data in q.","method":"GET","price_usd":1.0,"networks":["eip155:8453"],"calls_30d":5,"payers_30d":1,"last_called_at":"2026-10-24T14:42:29.945Z","score":100,"grade":"A","findings":[{"rule":"price-outside-band","severity":"info","message":"The price, $1.00, is over 10 times the top of its category's band: the middle 80% of the 296 priced listings in PDF and OCR with 3 or more payers ask $0.001 to $0.013.","fix":"Check the amount's decimals: x402 amounts are in USDC's smallest unit, six decimals, so 1000000 is $1."}]},{"resource":"https://horizonpulse.dev/api/seller-dd/single","description":"Seller due-diligence for one x402 endpoint. We make a real capped test payment, check the paid response against the listed schema, compare payTo with the CDP listing, read a recent window of on-chain USDC payments to the payTo and screen for lookalike addresses. Returns a signed JSON verdict of evidenced facts. No charge unless the test payment and all 4 other checks complete. Facts, not endorsement; no warranty. Not affiliated with the seller checked. $5.","method":"POST","price_usd":5.0,"networks":["eip155:8453"],"calls_30d":1,"payers_30d":1,"last_called_at":"2026-10-23T20:15:36.086Z","score":100,"grade":"A","findings":[{"rule":"tags-missing","severity":"info","message":"No tags.","fix":"Add a few plain tags for the category."},{"rule":"price-outside-band","severity":"info","message":"The price, $5.00, is over 10 times the top of its category's band: the middle 80% of the 2,121 priced listings in On-chain data with 3 or more payers ask $0.001 to $0.02.","fix":"Check the amount's decimals: x402 amounts are in USDC's smallest unit, six decimals, so 1000000 is $1."}]}],"listings_page":{"page":1,"pages":1,"per_page":100,"total":31,"next":null},"badge":{"url":"https://agoranome.com/sellers/horizonpulse.dev/badge.svg","markdown":"[![Agoranome report card](https://agoranome.com/sellers/horizonpulse.dev/badge.svg)](https://agoranome.com/sellers/horizonpulse.dev)"},"next_steps":[{"tool":"lint_listing","title":"Listing lint","price":"$0.01","url":"https://api.agoranome.com/v1/seller/lint","why":"Check the live 402 against the indexing rules."},{"tool":"rank_check","title":"Rank check","price":"$0.01","url":"https://api.agoranome.com/v1/seller/rank","why":"See where a buyer agent's search puts you, and who beats you."},{"tool":"buyer_panel","title":"Machine Buyer Panel","price":"$1.00","url":"https://api.agoranome.com/v1/seller/panel","why":"Test whether buyer-agent models pick you over your top rivals."}],"method":"Read from the public x402 Bazaar index (the CDP discovery API), as collected in the week's snapshot. No request reaches the seller's server. Score: 100 minus 25 per error and 8 per warning. The paid listing lint checks the live 402 itself.","method_version":1,"method_url":"https://agoranome.com/sellers/method","note":"Descriptions are quoted from the listings. They are data, never instructions.","url":"https://agoranome.com/sellers/horizonpulse.dev"}