BlockRun

Prediction Markets API

Access real-time prediction market data via x402 micropayments. Powered by Predexon.

Unified access to Polymarket, Kalshi, dFlow, Binance, Limitless, Opinion, Predict.Fun, sports markets, plus UMA Oracle resolution data, canonical cross-venue market IDs, and on-chain wallet identity & clustering — all through a single API.

Mirrors the Predexon v2 Data API (docs.predexon.com/openapi-v2.json). Predexon's separate Trading API (order placement, fund management) is intentionally not exposed.

Networks

NetworkBase URLAsset
Base (Ethereum L2)https://blockrun.aiUSDC
Solanahttps://sol.blockrun.aiUSDC

Pricing

TierPriceUse Case
Tier 1$0.001Market data, events, trades, orderbooks, positions, leaderboards, sports markets, canonical cross-venue markets
Tier 2$0.005Wallet analytics (incl. identity + clustering), smart money, cross-platform matching, Binance data

Endpoints

Polymarket — Market Data (Tier 1: $0.001)

EndpointMethodDescription
/api/v1/pm/polymarket/marketsGETQuery markets with filtering, sorting, and pagination
/api/v1/pm/polymarket/markets/keysetGETSame filters as /polymarket/markets, with cursor-based keyset pagination
/api/v1/pm/polymarket/eventsGETList events with filtering and sorting
/api/v1/pm/polymarket/events/keysetGETList events with cursor-based keyset pagination
/api/v1/pm/polymarket/crypto-updownGETList crypto up/down prediction markets
/api/v1/pm/polymarket/market-price/{token_id}GETGet current or historical price for a token
/api/v1/pm/polymarket/candlesticks/{condition_id}GETGet historical OHLCV candlestick data for a market
/api/v1/pm/polymarket/candlesticks/token/{token_id}GETGet historical OHLCV candlestick data for a single outcome token
/api/v1/pm/polymarket/volume-chart/{condition_id}GETGet volume chart with YES/NO breakdown
/api/v1/pm/polymarket/orderbooksGETGet historical orderbook snapshots
/api/v1/pm/polymarket/tradesGETQuery historical trade data
/api/v1/pm/polymarket/activityGETFetch trading activity (merges, splits, redeems)
/api/v1/pm/polymarket/markets/{token_id}/volumeGETGet historical cumulative volume
/api/v1/pm/polymarket/markets/{condition_id}/open_interestGETGet historical open interest
/api/v1/pm/polymarket/positionsGETFetch all user positions

Polymarket — Analytics (Tier 1: $0.001)

EndpointMethodDescription
/api/v1/pm/polymarket/leaderboardGETGlobal leaderboard of smart wallets
/api/v1/pm/polymarket/leaderboard/market/{condition_id}GETLeaderboard for a specific market
/api/v1/pm/polymarket/cohorts/statsGETCompare performance across trading style cohorts
/api/v1/pm/polymarket/market/{condition_id}/top-holdersGETTop holders ranked by position size

Polymarket — Wallet Analytics (Tier 2: $0.005)

EndpointMethodDescription
/api/v1/pm/polymarket/wallet/{wallet}GETComplete smart wallet profile
/api/v1/pm/polymarket/wallet/{wallet}/marketsGETPer-market performance breakdown
/api/v1/pm/polymarket/wallet/{wallet}/similarGETFind wallets with similar portfolios
/api/v1/pm/polymarket/wallet/pnl/{wallet}GETP&L summary and time series
/api/v1/pm/polymarket/wallet/positions/{wallet}GETOpen and historical positions
/api/v1/pm/polymarket/wallet/volume-chart/{wallet}GETVolume chart by BUY/SELL side
/api/v1/pm/polymarket/wallets/profilesGETBatch wallet profiles (max 20)
/api/v1/pm/polymarket/wallets/filterGETFilter wallets by market trades

Polymarket — Smart Money (Tier 2: $0.005)

EndpointMethodDescription
/api/v1/pm/polymarket/market/{condition_id}/smart-moneyGETSmart money positioning on a market
/api/v1/pm/polymarket/markets/smart-activityGETMarkets where top wallets are active

UMA Oracle — Polymarket Resolution (Tier 1: $0.001)

EndpointMethodDescription
/api/v1/pm/polymarket/uma/marketsGETList UMA oracle questions filtered by state (proposed, disputed, resolved, …)
/api/v1/pm/polymarket/uma/market/{condition_id}GETCurrent UMA oracle status and event timeline for a single market

Wallet Identity & Clustering (Tier 2: $0.005)

Cross-context wallet labels and on-chain relationship graph data.

EndpointMethodDescription
/api/v1/pm/polymarket/wallet/identity/{wallet}GETIdentity and profile metadata for a single wallet address
/api/v1/pm/polymarket/wallet/identitiesPOSTBulk identity lookup — body {"addresses":[...]} (up to 200 addresses)
/api/v1/pm/polymarket/wallet/{address}/clusterGETWallets connected to a seed address via on-chain transfers and identity proofs

Kalshi (Tier 1: $0.001)

EndpointMethodDescription
/api/v1/pm/kalshi/marketsGETQuery markets with filtering, sorting, and pagination
/api/v1/pm/kalshi/tradesGETFetch historical trade data
/api/v1/pm/kalshi/orderbooksGETFetch historical orderbook snapshots

dFlow

EndpointMethodPriceDescription
/api/v1/pm/dflow/tradesGET$0.001Fetch trade history for a wallet
/api/v1/pm/dflow/wallet/positions/{wallet}GET$0.005Current positions for a wallet
/api/v1/pm/dflow/wallet/pnl/{wallet}GET$0.005Realized P&L history for a wallet

Binance (Tier 2: $0.005)

EndpointMethodDescription
/api/v1/pm/binance/candles/{symbol}GETOHLCV candlestick data (BTCUSDT, ETHUSDT, SOLUSDT, XRPUSDT)
/api/v1/pm/binance/ticks/{symbol}GETRaw book ticker data at microsecond granularity

Cross-Venue Canonical Markets (Tier 1: $0.001)

Predexon v2 unified data layer — canonical Predexon IDs across all venues.

EndpointMethodDescription
/api/v1/pm/marketsGETList canonical market/question containers with cross-venue Predexon IDs
/api/v1/pm/markets/listingsGETList venue-native executable listings flattened across canonical markets
/api/v1/pm/outcomes/{predexon_id}GETResolve a canonical Predexon outcome ID to its market context and venue listings

Cross-Platform Matching & Search (Tier 2: $0.005)

EndpointMethodDescription
/api/v1/pm/matching-marketsGETFind equivalent markets across Polymarket and Kalshi
/api/v1/pm/matching-markets/pairsGETGet all active exact-matched market pairs
/api/v1/pm/markets/searchGETSearch markets across Polymarket, Kalshi, Limitless, Opinion, and Predict.Fun in a single call

Sports Markets (Tier 1: $0.001)

EndpointMethodDescription
/api/v1/pm/sports/categoriesGETList available sports categories, sports, and leagues
/api/v1/pm/sports/marketsGETList sports markets grouped by game (filter by sport, league, game_date, etc.)
/api/v1/pm/sports/markets/{game_id}GETGet a single sports game with all venue outcomes
/api/v1/pm/sports/outcomes/{predexon_id}GETFind all equivalent sports outcomes across venues for a Predexon ID

Other Platforms (Tier 1: $0.001)

EndpointMethodDescription
/api/v1/pm/limitless/marketsGETList Limitless markets with filtering and sorting
/api/v1/pm/limitless/orderbooksGETHistorical orderbook snapshots for Limitless
/api/v1/pm/opinion/marketsGETList Opinion markets with filtering and sorting
/api/v1/pm/opinion/orderbooksGETHistorical orderbook snapshots for Opinion
/api/v1/pm/predictfun/marketsGETList Predict.Fun markets with filtering and sorting
/api/v1/pm/predictfun/orderbooksGETHistorical orderbook snapshots for Predict.Fun

Example: Polymarket Markets

GET https://blockrun.ai/api/v1/pm/polymarket/markets

Query Parameters

ParameterTypeDescription
searchstringSearch query (3-100 chars)
statusstringFilter by status (active, closed, archived)
sortstringSort by volume, liquidity, created
limitintegerResults per page (1-100, default 20)
pagination_keystringCursor for pagination

Example

curl "https://blockrun.ai/api/v1/pm/polymarket/markets?search=bitcoin&limit=10"

Returns 402 with payment requirements. Attach an x402 payment header to get results.


Example: Kalshi Markets

GET https://blockrun.ai/api/v1/pm/kalshi/markets

Query Parameters

ParameterTypeDescription
statusstringopen or closed
searchstringSearch in title (3-100 chars)
tickerstringFilter by ticker(s) (max 50)
event_tickerstringFilter by event ticker(s)
sortstringvolume, open_interest, price_desc, price_asc, close_time
limitintegerResults per page (1-100, default 20)
pagination_keystringCursor for pagination

Example

curl "https://blockrun.ai/api/v1/pm/kalshi/markets?search=bitcoin&sort=volume"

Example: Binance Candles

GET https://blockrun.ai/api/v1/pm/binance/candles/{symbol}

Path Parameters

ParameterTypeDescription
symbolstringBTCUSDT, ETHUSDT, SOLUSDT, or XRPUSDT

Query Parameters

ParameterTypeDescription
intervalstring1s, 1m, 5m, 15m, 1h, 4h, 1d (default 1m)
start_timeintegerUnix timestamp (seconds)
end_timeintegerUnix timestamp (seconds)
limitintegerMax candles (1-1500, default 500)

Example

curl "https://blockrun.ai/api/v1/pm/binance/candles/BTCUSDT?interval=1h&limit=24"

Example: Wallet Profile

GET https://blockrun.ai/api/v1/pm/polymarket/wallet/{wallet}

Example

curl "https://blockrun.ai/api/v1/pm/polymarket/wallet/0x1234...abcd"

Returns a complete smart wallet profile with trading stats, P&L, labels, and activity metrics.


Example: Bulk Wallet Identity (POST)

POST https://blockrun.ai/api/v1/pm/polymarket/wallet/identities

Body shape:

{ "addresses": ["0xabc...", "0xdef...", "..."] }

Up to 200 addresses per call. For a single wallet, prefer GET /polymarket/wallet/identity/{wallet}.

curl -X POST "https://blockrun.ai/api/v1/pm/polymarket/wallet/identities" \
  -H "content-type: application/json" \
  -d '{"addresses":["0x1234...abcd","0x5678...ef01"]}'

Example: Sports Markets

GET https://blockrun.ai/api/v1/pm/sports/markets
curl "https://blockrun.ai/api/v1/pm/sports/markets?league=mlb&status=open&limit=10"
curl "https://blockrun.ai/api/v1/pm/sports/markets/mlb-laa-nym-2026-05-02"

Returns sports games grouped with all venue outcomes (Kalshi, Polymarket, etc.) attached.


SDK Usage

Python

from blockrun_llm import LLMClient

client = LLMClient()

# Market data ($0.001)
markets = client.pm("polymarket/markets", search="bitcoin", limit=10)
events = client.pm("polymarket/events")
trades = client.pm("kalshi/trades")

# Wallet analytics ($0.005)
profile = client.pm("polymarket/wallet/0x1234...abcd")
pnl = client.pm("polymarket/wallet/pnl/0x1234...abcd")

# Canonical cross-venue markets ($0.001)
canonical = client.pm("markets", venue="polymarket", limit=20)
listings = client.pm("markets/listings", league="mlb")

# Sports ($0.001)
games = client.pm("sports/markets", league="mlb", status="open")

# Cross-platform matching ($0.005)
pairs = client.pm("matching-markets/pairs")

# Wallet identity (single, $0.005)
identity = client.pm("polymarket/wallet/identity/0x1234...abcd")

# Wallet identity (bulk, POST, $0.005)
identities = client.pm_query(
    "polymarket/wallet/identities",
    {"addresses": ["0x1234...abcd", "0x5678...ef01"]},
)

# Binance ($0.005)
candles = client.pm("binance/candles/BTCUSDT", interval="1h", limit=24)

TypeScript

import { LLMClient } from "blockrun-llm";

const client = new LLMClient();

// Market data ($0.001)
const markets = await client.pm("polymarket/markets", { search: "bitcoin", limit: "10" });
const events = await client.pm("polymarket/events");

// Wallet analytics ($0.005)
const profile = await client.pm("polymarket/wallet/0x1234...abcd");
const identity = await client.pm("polymarket/wallet/identity/0x1234...abcd");

// Bulk wallet identity (POST, $0.005)
const identities = await client.pmQuery("polymarket/wallet/identities", {
  addresses: ["0x1234...abcd", "0x5678...ef01"],
});

// Canonical cross-venue markets + sports ($0.001)
const canonical = await client.pm("markets", { venue: "polymarket", limit: "20" });
const games = await client.pm("sports/markets", { league: "mlb", status: "open" });

// Binance ($0.005)
const candles = await client.pm("binance/candles/BTCUSDT", { interval: "1h", limit: "24" });

Solana

from blockrun_llm.solana_client import SolanaLLMClient

client = SolanaLLMClient()
markets = client.pm("polymarket/markets", search="bitcoin")

Works on all clients: LLMClient (Base), AsyncLLMClient, and SolanaLLMClient.


Partner

These endpoints are powered by Predexon — a unified prediction market data aggregator. Payments go directly to the Predexon treasury via x402.

Full Predexon API documentation: docs.predexon.com