Skip to content

Prediction-market data API

One API for every prediction market.

Kalshi, Polymarket, Hyperliquid and seven more venues behind one API key. Search every market, read live prices and fees, and match the same game across venues, all in one format.

Free plan: every endpoint, 1,000 requests a month, no card.

Find any market

GET /v1/markets

10 venues

732,293marketsOct 30, 2026

  • Presidential Election Winner 2028

    AlphaArcade · Politics

  • Will US unemployment reach at least 5.0% in 2026?

    Polymarket · Economics

  • 2026/2027 English Premier League winner — Arsenal

    Hyperliquid · Sports

  • Will QFEX launch a token by December 31, 2026?

    Predict · Crypto

  • Where will the next Beyonce album chart?

    Kalshi · Entertainment

Every venue's markets in one list and one format, filtered by venue and category.

Read live prices

GET /v1/markets/kalshi:CHINAUSGDP-30

live

Will China overtake US GDP by 2030?

Kalshi · read Oct 30, 2026

14.5%chance of Yes
SideBidAskPrice
Yes13¢16¢14.5¢
No84¢87¢85.5¢

Fee to buy 100 Yes at 16¢≈ 94¢

Any market, read from its venue when you ask: the price as a simple probability, plus the bid, the ask and the fee to trade.

Match the same game

GET /v1/matching-markets/sports

8 venues

Seahawks at BroncosNFL · Oct 15, 8:15 PM ET

  • KalshiKXNFLGAME-26OCT15SEADEN
  • Polymarketnfl-sea-den-2026-10-16
  • Predict1966227
  • SX.BetL19431555
  • ProphetX1700008795
  • Limitlessseahawks-vs-broncos-…
  • Hyperliquid11446
  • Pred0x9cad…

one idnfl-sea-den-2026-10-15

Every venue files the game under its own id. You get one id for all of them, and each venue's market under it.

  • Kalshi

    170,733

    markets

  • Polymarket

    423,368

    markets

  • Predict

    16,190

    markets

  • SX.Bet

    14,925

    markets

  • Hyperliquid

    306

    markets

  • AlphaArcade

    1,288

    markets

  • ProphetX

    10,136

    markets

  • Limitless

    549

    markets

  • Pred

    4,246

    markets

  • Polymarket US

    90,552

    markets

Ten venues, one API

732,293 markets in GET /v1/markets on Oct 30, 2026

01/use cases

What you can build with it.

One integration instead of ten. If your product needs to know what prediction markets are saying, this is the data layer under it.

02/catalog

Not just sports.

Politics, economics, crypto, finance, technology, weather and culture: every venue's markets in one list, in one row format, filterable by venue and category. Paging walks one fixed snapshot, so results never shift between pages.

GET /v1/markets?category=politicspagination.total 66,348
  • Will the Democratic party win the House in 2028?

    kalshi:CONTROLH-2028-D

  • Will Trump recognize Somaliland before 2027?

    polymarket:1029715

  • Will the Democratic Party control the Senate after the 2026 Midterm elections?

    predict:12140

  • Presidential Election Winner 2028

    alpha-arcade:01K0HQDM64MEEWPTRWQ60HMTH8

Rows are examples from several venues. One request walks the venues in a fixed order, so add &provider= to start on one. Counts as of Oct 30, 2026.

03/live prices

Live prices, plainly labeled.

Ask for any market and we read it from its venue right then. Every price comes back as a probability from 0 to 1, with the bid, the ask and what it costs to trade, and an empty field, never a guess, where a venue doesn't say.

A 67% chance, as each venue sends it10 formats

  • Kalshi

    "0.6700"

    dollars, as text

  • Polymarket

    "[\"0.67\", \"0.33\"]"

    a list inside text

  • Predict

    0.67

    a plain decimal

  • SX.Bet

    "67000000000000000000"

    times 10²⁰, as text

  • Hyperliquid

    "0.67"

    book price, as text

  • AlphaArcade

    670000

    millionths of a dollar

  • ProphetX

    -203

    American odds

  • Limitless

    [67, 33]

    percent, both sides

  • Pred

    "67"

    cents, as text

  • Polymarket US

    {"value":"0.6700","currency":"USD"}

    an amount in dollars, with its currency

You get

0.67

"price": 0.67

One number from 0 to 1 on every venue, with the bid, ask and last trade beside it where the venue has them.

GET /v1/markets/kalshi:CHINAUSGDP-30200 · trimmed
{
"id": "kalshi:CHINAUSGDP-30",
"provider": "kalshi",
"title": "Will China overtake US GDP by 2030?",
"status": "open",
"outcomes": [
{ "name": "Yes", "price": 0.145, "bid": 0.13, "ask": 0.16 },
{ "name": "No", "price": 0.855, "bid": 0.84, "ask": 0.87 }
],
"pricing": {
1"availability": "live",
"source": "market_record",
"as_of": "2026-04-09T09:18:12.024186Z",
2"as_of_kind": "record_static",
"observed_at": "2026-10-12T17:42:57.523Z"
},
3"volume_24h_usd": null,
"volume_24h_contracts": 5.39,
"trading_fees": {
"availability": "published",
"taker": {
4"model": "quadratic",
"rate": 0.07,
"exponent": 1
},
"maker": {
"model": "none",
"rate": 0
}
}
}
  1. 1

    Can you trade at this price?

    live means the venue has a real bid and ask on its book right now. A lone side, an old mark with no book behind it, or a book wider than the venue's own spread rule reads indicative instead.

  2. 2

    How old is the quote?

    Kalshi's as_of is a record write that hasn't moved in six months, though this market is open and quoted. We label it record_static and add observed_at, the moment we read it, so you know which time to trust.

  3. 3

    Empty beats invented

    Kalshi counts volume in contracts, not dollars. The dollar field stays null and the contract count sits beside it, rather than a number converted at a price we would have to make up.

  4. 4

    What a trade costs

    Kalshi's fee is 7% × price × (1 − price) per contract, so it peaks at 50¢. At this market's 16¢ ask, 100 contracts cost about 94¢ in fees. The chart below draws the whole curve.

Taker fee per contract, by pricemodel: quadratic

Kalshi charges the most at 50¢ and almost nothing near 0¢ or $1. The API returns the formula and the rate, so you can price an order before you place it.

04/sports matching

One game. Eight venues. One id.

The same game is listed under a different name, id and sometimes date on every venue. Matching joins the listings into one event, so you can compare prices side by side, and checks the fine print, like what each venue does if the game ends in a tie.

9 listings → 1 eventmoneyline · Oct 14, 2026
  • kalshiKXNFLGAME-26OCT15SEADEN-DEN
  • kalshiKXNFLGAME-26OCT15SEADEN-SEA
  • polymarket4212356
  • predict1966227
  • sxbet0x9228…b384
  • prophetx1700008795:219
  • pred0x9cad…:0x…
  • limitlessseahawks-vs-broncos-…
  • hyperliquid11446

nfl-sea-den-2026-10-15

moneyline|full|winner
winner:sea · winner:den

8 venues · 171 matched markets on this game: winner, spreads, totals and more · each venue keeps its own ids

If the game ends in a tie…rule_comparisons · include_rules=true
venueif tiedovertime
Kalshipays half"$0.50 for each team"counts
Polymarketpays half"resolve 50-50"counts
Predictpays half"resolve 50-50"counts
Limitlesspays half"resolve 50-50"counts
Hyperliquidpays half"resolves to 0.5"counts
Predpays half"resolve 50-50"counts
ProphetXvoids the bet"shall be void"counts
SX.Betvoids the bet"outcome": 0counts
Across venuesdifferssame

Six venues pay half on a tied NFL game; two void the bet. So the API marks this game's moneyline settlement_equivalence: "different", with each venue's evidence behind every value.

One id per game

nfl-sea-den-2026-10-15

League, away team, home team and the date in Eastern time, so a game keeps one id whatever date each venue files it under.

Find it from any venue's id

source_id=sxbet:L19431555

Already hold a Kalshi ticker or a Polymarket slug? Send it to the lookup and get the whole matched game back, up to 100 ids at a time.

Not just who wins

spread|half:1|spread:jax|2.5

Spreads, totals, team totals, halves and quarters, and verified player props, each with its own stable key.

venueNBAWNBANHLMLBNFL
Kalshi
Polymarket
Predict·
SX.Bet
Hyperliquid····
AlphaArcade
ProphetX
Limitless····
Pred···
Polymarket US

A filled square means the venue is mapped for that league; a game carries the venues that list it. Every venue market, matched or not, stays available in /v1/markets.

05/endpoints

Ten endpoints. That's the whole API.

Read-only, one API key, one error format. Every endpoint is on the free plan.

06/sdks

Typed clients, generated from the spec.

TypeScript, Python and Go clients come from the same OpenAPI spec as the API, so every field is typed the day it ships. Or call it from anything that speaks HTTP.

$ npm install @predictorsdk/client
1import { PredictorSDKClient } from "@predictorsdk/client";
2 
3const client = new PredictorSDKClient({ token: "YOUR_API_KEY" });
4 
5// Every venue's economics markets, in one row shape.
6const page = await client.getMarkets({ category: "economics", limit: 5 });
7 
8// A row id is "{provider}:{native_id}", so it pipes straight into detail.
9const market = await client.getMarket({ marketId: page.data[0].id });
10 
11console.log(market.title, market.outcomes[0].price, market.pricing.availability);
12// Will China overtake US GDP by 2030? 0.145 live
  • Cursors, walked for you

    for await (const m of page)

    Every paginated call returns a pager; iterate it and the client follows the cursor and keeps your filters.

  • One error shape

    { "code": "ambiguous_identifier", … }

    Stable machine-readable codes on every error. An id two venues share answers 409 with both candidates, never a guess.

  • Retries and request ids

    X-Request-Id: req_…

    Clients retry 408, 429, 5xx and dropped connections. Every response carries an X-Request-Id, and rate-limit headers say when to back off.

  • Built for agents too

    llms.txt · openapi.yaml

    The docs ship as llms.txt and the full OpenAPI spec, the same one the SDKs are generated from.

07/pricing

Free to start. Simple to grow.

Every plan includes every endpoint. Paid plans add requests and speed, not features, and nothing changes in your code when you upgrade.

PlanPriceRequestsPer min
Free$0/mo1K10
Starter$29/mo100K60
ProPopular$79/mo500K300
Business$199/mo2M1,000
EnterpriseCustomcustomcustom

Requests are per month. Paid plans continue past their allowance at a small per-request rate.

08/faq

Questions people ask.

What is a prediction market?
A market where people trade on the outcome of a future event: an election, a Fed decision, a football game. A contract usually pays $1 if the outcome happens, so its price reads like a probability. A contract at 67¢ means the market puts the odds near 67%.
Which venues do you cover?
Kalshi, Polymarket, Predict, SX.Bet, Hyperliquid, AlphaArcade, ProphetX, Limitless, Pred and Polymarket US: every market each one lists, in every category. Sports matching covers the NFL, NBA, NHL, MLB and WNBA.
Can I place trades through PredictorSDK?
No. It is a read-only data API: markets, prices, fees, events, matching and wallet positions. Orders go to the venue itself.
How fresh is the data?
A market's price is read from its venue the moment you ask. The full catalog refreshes about every 30 minutes per venue, and sports matching every minute or two. Every response says when its data was read.
What does it cost?
The free plan covers every endpoint at 1,000 requests a month, with no card. Paid plans start at $29 a month for 100,000 requests, and add throughput, not features.
Do I need your SDKs?
No. It is plain REST with one API key in a header, so any language works. The TypeScript, Python and Go clients add types, automatic paging and retries.
Does it work with AI agents?
Yes. The docs are published as llms.txt and the full OpenAPI spec is public, so an agent or coding assistant can see exactly what every endpoint takes and returns.
Are you affiliated with any venue?
No. PredictorSDK is independent and not affiliated with any venue it covers.

09/get started

Ship against every venue this afternoon.

The free plan covers every endpoint at 1,000 requests a month, with no card. Paid plans add throughput, not features.

Building something bigger, or want to talk it through? nick@predictorsdk.com