POST /api/v1/news-to-markets

Ask a headline_

A news headline in → the top tradeable Polymarket prediction markets out, in one call. Live price, liquidity, drift and a direct bet link — for trading agents reacting to news.

→ NEWS
MARKETS →
INPUTheadline

"Trump pushes Russia and Ukraine toward a ceasefire"

RESULTbest fit

Russia x Ukraine ceasefire agreement by...?

MARKET DATAlive

8.5¢  ·  vol $63.9k
spread 1¢  ·  +2% 24h
4 outcomes · resolves 206d

Static JSON responseexample
{
  "headline": "Trump pushes Russia and Ukraine toward a ceasefire",
  "request_ms": 2334,
  "cost_paid": "$0.01 USDC",
  "fetched_at": "2026-06-07T13:43:22.000Z",
  "top_markets": [
    {
      "rank": 1,
      "event_title": "Russia x Ukraine ceasefire agreement by...?",
      "outcome_type": "date",
      "primary_label": "June 30",
      "market_question": "Russia x Ukraine ceasefire agreement by June 30, 2026?",
      "current_price": 0.085,
      "spread_cents": 1,
      "max_safe_trade_3pct_usd": 1505,
      "drift_24h_pct": 2,
      "volume_24h": 69246,
      "outcomes_in_event": 4,
      "ladder": [
        { "label": "October 31", "price": 0.265 },
        { "label": "December 31", "price": 0.465 }
      ],
      "days_to_resolution": 206,
      "bet_link": "https://polymarket.com/event/russia-x-ukraine-ceasefire-agreement-by/...-june-30-2026"
    },
    {
      "rank": 2,
      "event_title": "Russia x Ukraine Ceasefire by...?",
      "outcome_type": "date",
      "primary_label": "June 30",
      "current_price": 0.0255,
      "max_safe_trade_3pct_usd": 81,
      "volume_24h": 1449,
      "days_to_resolution": 206,
      "bet_link": "https://polymarket.com/event/russia-x-ukraine-ceasefire-by/..."
    },
    {
      "rank": 3,
      "event_title": "Ukraine agrees to a US-backed ceasefire framework by...?",
      "outcome_type": "date",
      "primary_label": "June 30",
      "current_price": 0.075,
      "max_safe_trade_3pct_usd": 9,
      "volume_24h": 148,
      "days_to_resolution": 22,
      "bet_link": "https://polymarket.com/event/ukraine-us-backed-ceasefire-framework/..."
    }
  ]
}
Integrate402 → pay → retry
# unpaid POST → 402 with payment requirements
curl -i -X POST https://outcomescout.vercel.app/api/v1/news-to-markets \
  -d '{"headline":"Trump pushes Russia and Ukraine toward a ceasefire"}'

// JS: sign the x402 payment + retry (real @x402 client)
import { x402Client, x402HTTPClient } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const x402 = new x402HTTPClient(client);
const url = "https://outcomescout.vercel.app/api/v1/news-to-markets";
const init = { method: "POST", headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ headline: "Trump pushes Russia and Ukraine toward a ceasefire" }) };

let res = await fetch(url, init);                        // 402
const { paymentRequired } = await x402.processResponse(res);
const payload = await x402.createPaymentPayload(paymentRequired);
res = await fetch(url, { ...init, headers: { ...init.headers, ...x402.encodePaymentSignatureHeader(payload) } });
const data = await res.json();                           // 200 + top_markets