Skip to content

Read a market page

A market page is four reads. Two are CORS-open and cacheable (/api/network/market/:id, /api/polymarket/market-history); streams, related and live are same-origin — fetch them server-side.

Terminal window
curl https://denpa.ai/api/network/market/559652

Returns { market: { id, provider, title, yesPrice, noPrice, volume, status, outcome, endDate, url, updatedAt, resolution } }resolution is the outcome claim once resolved. This route answers for closed and resolved markets too; the Gamma listing does not. (The same-origin GET /api/m/:id returns the raw page shape: question, description, endDate, resolved, resolutionValue, clobTokenId, volume, liquidity.)

Terminal window
curl "https://denpa.ai/api/polymarket/market-history?marketId=559652&interval=24H"
# → { history: [{ t, p }] } unix seconds, YES probability 0–1

CLOB-backed. Intervals: 1H | 24H | 7D | ALL. For long-running questions use ALL and fit the chart to the real trading range.

Terminal window
curl https://denpa.ai/api/m/559652/streams # { streams: [{ handle, url, label, updatedAt }] }
curl https://denpa.ai/api/streamers/live # { live, recent } — fallback when nothing is bound
Terminal window
curl https://denpa.ai/api/m/559652/related # { active, related[] } volume-ranked
Terminal window
curl https://denpa.ai/api/polymarket/featured # heatmap tiles
curl "https://denpa.ai/api/polymarket/featured?mode=resolving24h" # next-24h board
curl "https://denpa.ai/api/polymarket/markets?q=coachella" # universe search (batch + filter; 100/page)
  • Show a price only when one exists; unknown is -- and the signal blocks are inert.
  • Every state has a face: loading, empty and error all render NO SIGNAL.
  • Key rotating panels by marketId.
  • YES is #3DF23D, NO is #15D6C0 on charts.