Skip to main content
Show live Polymarket odds on a board. Load the first snapshot over the REST API, then stream fills from the trading channel to keep each price fresh.

What you need

1. Load the snapshot

Read the markets you care about, then pull a price per outcome token. Use midpoint for a fair mid, price for the best bid or ask, and spread for the gap.
curl "https://api.radion.app/v1/polymarket/midpoint?token_id=123456789" \
  -H "X-API-Key: YOUR_API_KEY"

curl "https://api.radion.app/v1/polymarket/spread?token_id=123456789" \
  -H "X-API-Key: YOUR_API_KEY"
Render the board from these values. For the best bid or ask on one side, call price with token_id and side.

2. Keep it live

Subscribe to trading filtered by your token ids. Update the matching cell on every fill instead of polling.
import { Radion } from "@radion-app/sdk";

const radion = new Radion({ apiKey: process.env.RADION_API_KEY });
const tokenIds = ["123456789", "987654321"];

radion.realtime.onChannel("trading", (event) => {
  const fill = event.data;
  if (fill.type !== "order_filled_v2") return;
  updateBoard(fill.tokenId, fill); // your render function
});

radion.realtime.subscribe({
  id: "board",
  channel: "trading",
  filters: { token_ids: tokenIds },
});

await radion.realtime.connect();

Tips

  • Refresh the REST snapshot on a slow timer (say every minute) to correct any drift; let the WebSocket handle the fast updates.
  • To list many markets at once, page /v1/polymarket/markets with limit and cursor.
  • Need full depth, not just top of book? Use /v1/polymarket/orderbook.

Next steps

API reference

Endpoints, schemas, and query parameters.

trading channel

Live fill payloads to drive your board.
Last modified on July 5, 2026