ProductPricingAPILearn
Log inGet the app
ProductPricingAPILearnLog in

Stay in the loop

Join our newsletter for the latest tools, new guides, and product updates.

By providing your email, you are consenting to receive communications from SmartStake. Visit our Privacy Policy for more info

Product

  • Tools
  • Pricing
  • Mobile app
  • Docs
  • Support

Guides

  • Positive EV
  • Arbitrage
  • Fantasy
  • Lineup Dropper

Socials

  • Discord
  • YouTube
  • Instagram
  • Twitter

SmartStake is an independent informational and analytical platform, not affiliated with any sportsbook. We do not accept, facilitate, or process any wagers. We are not a sportsbook, casino, or gambling operator. Our tools and articles provide data analysis, odds comparison, and mathematical calculations for informational and educational purposes only, and are not financial, investment, or betting advice. All sports betting involves risk of loss. Past performance does not guarantee future results. Individual results will vary. Only stake what you can afford to lose. Users are solely responsible for their own betting decisions.

If you or someone you know has a gambling problem, call 1-800-MY-RESET (US), 1-877-8-HOPENY or text HOPENY (NY), 1-800-522-4700 (NCPG), 1-866-531-2600 (ON), or 1-888-795-6111 (BC). Visit www.ncpgambling.org for more resources. Adults only (19+ in Canada, 21+ in the US).

© 2026 SmartStake. All Rights Reserved.

Privacy PolicyTerms of UseResponsible Gambling
  1. Learn
  2. Analysis

Prediction Market Odds API: Kalshi and Polymarket Odds

Kalshi and Polymarket APIs return contract prices, not odds. The SmartStake Odds API returns both as fee-adjusted odds in the same schema as 85+ books.

SmartStake Team·October 20, 2026·9 min read
A reclining figure stretches along a soaring probability-ribbon that arcs upward as the central mass, one hand merging contract-price slices into it; a second person sits inside an open browser window threading a looping wire toward a floating node-diagram, while a third drifts weightless balancing a bar-chart fragment, basketballs and coins scattering through the gaps over soft negative-space blobs.

The SmartStake Odds API is a prediction market API that returns Kalshi, Polymarket and every other exchange it covers, from Polymarket US to Novig, ProphetX, STX and Betfair, as sportsbook odds: American or decimal, after the taker fee, on the same event and market keys as 85+ sportsbooks. Kalshi and Polymarket each publish a free API, but neither returns odds. They return a contract price before fees, keyed to the venue's own market ids, and the rest is your job.

That gap matters more than it looks. Set the price below to 55¢ and compare it with DraftKings at −125.

One price, two APIs

55¢
Kalshi's own API
{
  "ticker": "KXNFLGAME-…-DET",
  "yes_bid": 54,
  "yes_ask": 55
}

A price per contract, before fees, keyed to the venue's own market id.

The SmartStake quote
{
  "event_id": "evt_01KZCTK5WDFG6R6TWYDZV61GV2",
  "book": "kalshi",
  "market_key": "football_moneyline",
  "label": "Detroit Lions",
  "side": "hometeam",
  "odds": -131
}

American odds after the taker fee, on the same event_id and market_key as every sportsbook.

Taker fee per contract1.73¢
Kalshi after the fee-131 (1.763)
Better price on the LionsDraftKings

Illustrative, not a live quote. The venue responses are abridged examples of each API's shape, and the SmartStake quote is abridged from the documented quote object. Fees use Kalshi's published 0.07 taker rate and Polymarket's 0.05 sports taker rate, each charged as rate x price x (1 minus price). Fee schedules change, so confirm them before you trade.

A 55¢ contract converts to −122, which beats −125. After Kalshi's taker fee it is −131, and DraftKings is the better price. Skip the fee and your comparison picks the wrong book.

Do Kalshi and Polymarket Have APIs?

Yes. Both venues publish APIs, and reading market data from them is free at the time of writing.

  • Kalshi returns each market's bid and ask in cents, keyed to a market ticker. Placing orders needs a Kalshi account and an API key you create in it.
  • Polymarket returns prices between 0 and 1 and full order books, keyed to its own market and token ids. Polymarket US, the CFTC-regulated venue for US users, runs separately with its own prices.

What neither returns is the thing a sportsbook comparison needs: an odds price you can line up against DraftKings or FanDuel. For that, three jobs sit between the venue's response and your table.

Three Jobs Between a Venue API and an Odds Comparison

1. Price to odds

A contract that pays $1 and costs $0.55 is decimal odds of 1 / 0.55 = 1.818, or −122 in American odds. That part is one line of code. The Kalshi odds converter guide and the Polymarket odds converter guide walk through it by hand.

2. Fees

Both venues charge takers the same fee shape: rate x price x (1 minus price), per contract. The rate is what differs.

VenueTaker rateFee at 55¢All-in costOdds after fee
Kalshi0.071.73¢56.73¢−131
Polymarket (sports)0.051.24¢56.24¢−129

The fee peaks at 50¢ and shrinks toward either end, so a flat haircut is wrong at every price but one. The Polymarket vs Kalshi comparison covers why maker orders avoid most of it.

3. Matching events and markets

This is the hard part. A Kalshi ticker, a Polymarket token id and a DraftKings selection for the same Lions moneyline share no id. You map team names, start times and market types across every venue, then keep the mapping current as markets list and close. Sportsbooks are no easier: each names teams, players and markets its own way.

Pulling Prediction Market Odds with SmartStake

The SmartStake Odds API does all three jobs before the price reaches you. Every quote carries an event_id and market_key shared across books, and exchange and prediction market prices are what it costs to take the price, net of the venue's fee. The full reference is in the API docs.

Every exchange and prediction market, one schema

Kalshi and Polymarket are two of the venues on the board. Each one below is a book value, priced and keyed like any sportsbook:

VenuebookPrice you get
KalshikalshiNet of the taker fee
PolymarketpolymarketNet of the taker fee
Polymarket USpolymarket_usNet of the taker fee
ProphetXprophetxNet of its commission on winnings
NovignovigPregame prices carry no fee
STXstxWhat it costs to take the price
BetfairbetfairWhat it costs to take the price

The full list of sportsbooks, exchanges and prediction markets is on the coverage page.

First, confirm which books your key includes:

curl --compressed -H "Authorization: Bearer $SMARTSTAKE_API_KEY" \
  "https://api.server.smartstake.ca/v1/books"

Then pull one game's moneyline from two prediction markets and two sportsbooks in one request (up to 5 events and 5 books per call):

curl --compressed -H "Authorization: Bearer $SMARTSTAKE_API_KEY" \
  "https://api.server.smartstake.ca/v1/odds?event_id=evt_01KZCTK5WDFG6R6TWYDZV61GV2&book=kalshi&book=polymarket_us&book=draftkings&book=fanduel&market=football_moneyline"

Finding the best price across venues in Python

Removing the last two segments of a quote_id (side and book) gives an id every book shares for the same line. Group by it and the side, and the best price on each side falls out:

import gzip, json, os, urllib.parse, urllib.request

API = "https://api.server.smartstake.ca"
HEADERS = {
    "Authorization": f"Bearer {os.environ['SMARTSTAKE_API_KEY']}",
    "Accept-Encoding": "gzip",
}
BOOKS = ["kalshi", "polymarket_us", "draftkings", "fanduel"]

def get(path, params):
    url = f"{API}{path}?{urllib.parse.urlencode(params)}"
    with urllib.request.urlopen(urllib.request.Request(url, headers=HEADERS), timeout=30) as response:
        body = response.read()
        if response.headers.get("Content-Encoding") == "gzip":
            body = gzip.decompress(body)
    return json.loads(body)["data"]

event = get("/v1/events", {"league": "nfl"})[0]
quotes = get("/v1/odds", [("event_id", event["id"]), ("market", "football_moneyline"), ("format", "decimal")] + [("book", book) for book in BOOKS])

best = {}
for quote in quotes:
    line_id = quote["quote_id"].rsplit("~", 2)[0]
    key = (line_id, quote["side"])
    if key not in best or float(quote["odds"]) > float(best[key]["odds"]):
        best[key] = quote

for quote in best.values():
    print(f'{quote["label"]:<28} {quote["book"]:<14} {float(quote["odds"]):.3f}')

Swap football_moneyline for any key from /v1/markets, or drop the market filter to compare every line the venues share.

Keeping it live

A REST call is a snapshot. To keep the comparison current, open the stream and apply each change by quote_id:

curl -N --compressed -H "Authorization: Bearer $SMARTSTAKE_API_KEY" \
  "https://api.server.smartstake.ca/v1/stream/football?league=nfl&book=kalshi&book=polymarket_us&book=draftkings&book=fanduel"

Changes arrive over Server-Sent Events in 250 ms batches. Open the stream before you pull the snapshot so nothing is missed between the two; the API docs cover reconnects and board resets.

When to Use Kalshi or Polymarket Directly

The venue APIs win wherever the job is the venue itself:

  • Placing orders. Trading needs the venue's own API and an account there. SmartStake reads prices; it does not place bets or trades.
  • Order book depth. The venues return every resting order. A SmartStake quote is the price to take, not the full book.
  • Non-sports markets. Elections, economics and weather markets live only on the venues' APIs.
  • History. The SmartStake API serves the current board and its changes, not historical prices. Record the stream if you need your own history from today forward.

If you compare prices across prediction markets and sportsbooks, one feed beats five integrations. If you trade on one venue, use its API. Many builds use both. For the trading side of that comparison, Kalshi vs sportsbooks covers where each tends to post the better number, and the free prediction market converter checks a single price by hand.

FAQ

Is there a Kalshi odds API?

The SmartStake Odds API is a Kalshi odds API: it returns Kalshi prices as American or decimal odds after the taker fee, next to 85+ sportsbooks in one schema. Kalshi's own API returns contract prices in cents before fees, so you convert and fee-adjust them yourself.

Is the Kalshi API free?

Reading Kalshi market data is free. Placing orders needs a Kalshi account and an API key you create in it. The SmartStake Odds API is free while it is in early access, within its published limits.

Is the Polymarket API free?

Reading Polymarket prices and order books is free. Trading needs a funded account. Polymarket US, the CFTC-regulated venue for US users, is a separate market with its own prices.

Are the prediction market prices net of fees?

Yes. In the SmartStake Odds API, Kalshi, Polymarket and Polymarket US prices include the taker fee, so they compare directly with sportsbook odds. At a 55 cent Kalshi contract the fee is about 1.73 cents, which moves the price from −122 to −131.

Which exchanges and prediction markets does the API include?

Kalshi, Polymarket, Polymarket US, Novig, ProphetX, STX and Betfair, alongside 85+ sportsbooks in the same schema. Your key lists exactly the books it can see at /v1/books, and the full list is on the SmartStake coverage page.

Can I show these prices to users of my product?

Early access keys are for your own use. Showing prices to the members of your product needs a commercial licence, so write to SmartStake with what you are building.

Does the API include historical prediction market prices?

No. The API serves the current board and every change to it, not history. You can record the stream yourself to build your own history from the day you start.

Apply for Early Access

The SmartStake Odds API is in early access and free during it, with founder pricing when paid plans launch. Apply for early access with a few lines about what you are building.

Get the next guide in your inbox

Practical betting guides, new tools, and product updates from the SmartStake team. Unsubscribe in one click, any time.

By providing your email, you are consenting to receive communications from SmartStake. Visit our Privacy Policy for more info

On this page

Do Kalshi and Polymarket Have APIs?Three Jobs Between a Venue API and an Odds ComparisonPulling Prediction Market Odds with SmartStakeWhen to Use Kalshi or Polymarket DirectlyFAQApply for Early Access

Similar articles

A central line-ribbon arcs steeply upward while one figure reclines along its curve threading a wire, a second sits inside an open browser window unlocking a padlocked panel that swings free, a third leans out of a tilted screen handing a coin across a gap; a burst pie chart, a node cluster, a checkmark-cross toggle, and drifting basketballs orbit over soft blobs.
Analysis

How Prediction Markets Changed the Way I Bet Futures

A contributor on why prediction markets fixed what long made futures a trap: hold hidden behind one-way boards, punishing cashout terms, and capital locked up for months with no fair exit.

Sep 15, 2026 · 7 min read

A tennis ball resting between two facing coins on a small balance scale, the two pans tilting a hair out of level
StrategyInsiders

Bet Tennis at the US Open - Everything You Need to Know

Every tennis match on Kalshi and Polymarket has two markets, one per player, and their prices are often a cent out of line with each other. This guide covers how to work that gap with limit orders, why retirements settle nothing like they do at a sportsbook, and what game spreads really ask for.

Aug 28, 2026 · 9 min read

A balance scale holding one dollar coin on each pan, one pan dipping slightly lower than the other, a small percent-marked coin floating between them
StrategyInsiders

Polymarket vs Kalshi: Cheaper Fees, Sharper Prices

Polymarket and Kalshi charge the same fee formula with one different number, so the cost comparison reduces to a single coefficient. This guide prices both properly, shows why the maker choice is worth more than the platform choice, and maps what each exchange is actually good for.

Jul 31, 2026 · 13 min read

A central line-ribbon arcs steeply upward while one figure reclines along its curve threading a wire, a second sits inside an open browser window unlocking a padlocked panel that swings free, a third leans out of a tilted screen handing a coin across a gap; a burst pie chart, a node cluster, a checkmark-cross toggle, and drifting basketballs orbit over soft blobs.
Analysis

How Prediction Markets Changed the Way I Bet Futures

A contributor on why prediction markets fixed what long made futures a trap: hold hidden behind one-way boards, punishing cashout terms, and capital locked up for months with no fair exit.

Sep 15, 2026 · 7 min read

A tennis ball resting between two facing coins on a small balance scale, the two pans tilting a hair out of level
StrategyInsiders

Bet Tennis at the US Open - Everything You Need to Know

Every tennis match on Kalshi and Polymarket has two markets, one per player, and their prices are often a cent out of line with each other. This guide covers how to work that gap with limit orders, why retirements settle nothing like they do at a sportsbook, and what game spreads really ask for.

Aug 28, 2026 · 9 min read

A balance scale holding one dollar coin on each pan, one pan dipping slightly lower than the other, a small percent-marked coin floating between them
StrategyInsiders

Polymarket vs Kalshi: Cheaper Fees, Sharper Prices

Polymarket and Kalshi charge the same fee formula with one different number, so the cost comparison reduces to a single coefficient. This guide prices both properly, shows why the maker choice is worth more than the platform choice, and maps what each exchange is actually good for.

Jul 31, 2026 · 13 min read