NEW: Live arbitrage across 10+ prediction markets.Arbitrage →
← Index
APIOct 18, 2026

Sports Prediction Market API (2026): Kalshi, Polymarket, Novig and More

Sports Prediction Market API (2026): Kalshi, Polymarket, Novig and More

The Short Answer

Sports are the biggest category on several prediction markets, and each venue serves its sports markets through its own API: Kalshi by series such as KXNFLGAME, Polymarket through Gamma's /sports and series-linked events, and Novig and ProphetX through their own exchange APIs. Kalshi's and Polymarket's sports data are free with no key. Comparing the same game across venues is the hard part, because every venue names teams, bet types and lines differently. The Predictefy API has a sports odds screen that lines up the same game, bet type and exact line across venues, with each price as a probability, American odds and decimal odds.

Key Takeaways

  • Kalshi organizes sports as series, events and markets; NFL games live in the KXNFLGAME series, one market per team.
  • Polymarket's GET /sports maps each league to a series ID, which you pass to /events to list games and their markets.
  • Novig and ProphetX are sports-first exchanges with their own APIs; ProphetX quotes in American odds.
  • The same game is a different object on every venue, so cross-venue comparison needs matching by game, bet type and line.
  • Predictefy's sports screen does that matching and returns gross and net prices per venue, so you see the best price after known fees.

Which prediction markets have sports APIs?

VenueHow sports are organizedKey for market data
KalshiSeries, events, markets; for example KXNFLGAME with one market per teamNo
Polymarket/sports metadata links each league to a series; games are events with many marketsNo
NovigA sports event-contract exchange paying $1 per winning contractSee our Novig API guide
ProphetXTournaments, events, markets; REST prices in American oddsSee our ProphetX API guide

How do you get sports markets from Kalshi and Polymarket?

This Node 18+ script lists upcoming NFL games on Polymarket and NFL game markets with prices on Kalshi, with no keys:

// Polymarket: sports metadata, then upcoming NFL game events
const sports = await (await fetch('https://gamma-api.polymarket.com/sports')).json();
const nfl = sports.find((s) => s.sport === 'nfl');
console.log(sports.length, 'sports on Polymarket; NFL series id', nfl?.series);
const events = await (await fetch(`https://gamma-api.polymarket.com/events?series_id=${nfl.series}&active=true&closed=false&limit=3&order=startDate&ascending=true`)).json();
for (const e of events) console.log('Polymarket |', e.title, '|', e.markets?.length, 'markets');

// Kalshi: open NFL game markets with Yes bid and ask
const K = 'https://external-api.kalshi.com/trade-api/v2';
const { markets } = await (await fetch(`${K}/markets?series_ticker=KXNFLGAME&status=open&limit=4`)).json();
for (const m of markets) console.log('Kalshi |', m.title, '|', m.yes_sub_title, m.yes_bid_dollars, m.yes_ask_dollars);

In our checks on 16 October 2026, Polymarket's /sports returned 484 sports and league entries, and the NFL series held games such as "Seahawks vs. Broncos" with over 300 markets each. Kalshi returned one market per team, such as "Dallas wins" with a Yes bid of $0.53 and an ask of $0.57. The two venues describe the same game in completely different shapes: one event with hundreds of markets on Polymarket, one market per side on Kalshi. For each venue in depth, see the Kalshi sports API and the Polymarket sports API.

Why is comparing sports odds across venues hard?

To compare, you have to be sure you are looking at the same bet. That means matching:

  • The game: team names and start times written differently on each venue.
  • The bet type: moneyline, spread, total, team total, both teams to score or halftime result.
  • The period: full game, first half, regulation only.
  • The exact line: a spread of −3.5 is not −3.
  • The selection: which team or side the price is for.

Get any one wrong and the comparison is meaningless. Prices also need fees added before they are truly comparable, because a cheaper headline price on one venue can cost more after its fee.

How do you compare sports odds across venues in one call?

Predictefy's sports screen lines up each game by bet type, period, line and selection, with one price per venue:

import Predictefy from '@predictefy/sdk';

const client = new Predictefy({ apiKey: process.env.PREDICTEFY_API_KEY });

const games = await client.fetchSportsScreen({ marketType: 'moneyline', limit: 10 });
for (const g of games) {
  console.log(`${g.teams[0].name} vs ${g.teams[1].name}`, g.kickoffAt);
  for (const row of g.market?.selections ?? []) {
    for (const cell of row.cells) {
      console.log('  ', cell.venue, cell.gross?.american, cell.gross?.decimal, cell.gross?.probability);
    }
  }
}

This type-checks against @predictefy/sdk 1.0.0-beta.11. Market types are moneyline, match_result, spread, total, team_total, btts and halftime_result, and you can filter by sport, competition, team, line, venues and date range; fetchSportsFacets() lists the values available. Each cell has a gross price (the ask before fees) and a net price including known fees, with the size available at that price. Each selection row also carries the best cell and an average across venues. A screen read costs 5 credits, and the same data is at GET /v1/sports/screen.

What can you build with a sports prediction market API?

  • An odds comparison screen across prediction markets, with best price after fees highlighted.
  • Line shopping for traders who want the cheapest entry on each game.
  • Prediction market versus sportsbook research, since American odds put both on one scale.
  • Live game widgets that show what the markets think as a game unfolds.

Odds are the market's estimate, not a certainty, and trading on sports involves risk.

Frequently Asked Questions

Does Kalshi have a sports API?

Yes. Kalshi's free market data API serves sports as series, events and markets. NFL games, for example, are in the KXNFLGAME series with one market per team.

How do I get Polymarket sports markets?

Call GET https://gamma-api.polymarket.com/sports to find a league's series ID, then /events?series_id=... to list its games and their markets. No key is needed.

Can I compare sports odds across prediction markets?

Yes. Predictefy's sports screen matches each game by bet type, period and line across venues and returns every venue's price as a probability, American odds and decimal odds.

Do prediction market sports prices include fees?

The listed price usually does not. Predictefy's screen shows both a gross price before fees and a net price after known fees for each venue.

Which prediction markets focus on sports?

Novig and ProphetX are sports-first exchanges, and sports are among the largest categories on Kalshi and Polymarket.