https://markets-staging.capacitr.xyz/api/x402/signalsSubmit a signal
Turn a URL, a social post, an article, or a free-text market question into the Feed Card the Capacitr app renders for it: the markets it moves and the ranked trades across Polymarket, Hyperliquid and Robinhood Chain, each with a live quote and, for a dated source, its price at signal. Ranks and confidences are model-derived and follow the markets, so the same input can rank differently over time.
- input
- string, REQUIRED. A URL, a post, or a question. `url` and `query` are accepted aliases for the same field; if more than one is sent, `input` wins, then `url`, then `query`. Sent as JSON in the request body.
- mode
- string, optional, one of "discover" | "hedge". Default "discover", which ranks trade ideas; "hedge" looks for offsetting positions. Any other value is read as "discover".
Response fields
- recommendedTrades
- The ranked trades as one list, best first (bestTrade is the first entry; otherTrades are the rest). Each carries marketType (bet | trade), marketSource, marketId, marketTitle, suggestedDirection, confidence, recommendationRank, recommendationReason, quoteSnapshot (a live quote for the market at response time), and matchedAt. signalPrice — the recommended side's price at the source's publication time — is present only when the source has a publication time (a post, an article) and the lookup succeeded; a free-text question has no publication time, so its trades carry no signalPrice. Empty, with bestTrade null, when nothing tradeable was found.
- title / subtitle / narratives
- What the source said and why each trade follows from it. narratives are the theses, each linked to the trades it supports.
- categories / tags / publishedAt / url / sourceLabel
- The story's own metadata, as the app shows it.
- payment
- What this call was charged: protocol (x402 | mpp), method (base | tempo), chain_id, currency, currency_address, amount, payer.