Disclosure: PredScope may receive compensation when you sign up for prediction market platforms through links on this site. This does not influence our ratings or reviews. Learn more.

HomeGuides › Prediction Market API

Free Prediction Market API: Real-Time Odds, Volume & Liquidity Data

Updated March 2026 — A free, public JSON API for prediction market data. No API key required. Get real-time odds from Polymarket and more in seconds.

Quick Start

Need prediction market data right now? One request is all it takes:

curl https://predscope.com/api/markets.json

No API key. No authentication. No sign-up. Returns JSON with live odds, volume, and liquidity for hundreds of prediction markets.

API Endpoint

GET https://predscope.com/api/markets.json
Property Details
Method GET
Authentication None required
Rate Limit 100 requests/hour (fair use)
Response Format JSON (application/json)
Update Frequency Every 5 minutes
CORS Enabled (use from any domain)
HTTPS Required

Response Format

The API returns a JSON object with a meta object and a markets array. Each market object contains pricing, volume, and outcome data.

Top-Level Structure

{
  "meta": { ... },
  "markets": [
    {
      "title": "2026 FIFA World Cup Winner",
      "slug": "2026-fifa-world-cup-winner-595",
      "url": "/event/2026-fifa-world-cup-winner-595",
      "volume": 432222665.75,
      "volume_24h": 16333352.32,
      "liquidity": 49475505.55,
      "categories": ["sports"],
      "outcomes": [
        {
          "title": "Spain",
          "probability": 0.1565,
          "day_change": 0.001
        },
        {
          "title": "Argentina",
          "probability": 0.1420,
          "day_change": -0.003
        }
      ]
    },
    ...
  ]
}

Market Object Fields

Field Type Description
title String Human-readable market name (e.g., "Democratic Presidential Nominee 2028")
slug String URL-safe identifier for the market
url String Relative path to the market detail page on PredScope
volume Number Total all-time trading volume in USD
volume_24h Number Trading volume in the last 24 hours in USD
liquidity Number Current liquidity available in the order book in USD
categories Array List of category tags (e.g., ["politics"], ["sports"], ["crypto"])
outcomes Array Array of outcome objects (see below)

Outcome Object Fields

Field Type Description
title String Name of the outcome (e.g., "Yes", "No", "Spain", "Gavin Newsom")
probability Number Current probability between 0.0 and 1.0 (multiply by 100 for percentage)
day_change Number 24-hour change in probability (positive = price up, negative = price down)

Code Examples

Copy-paste these examples to start pulling prediction market data in seconds.

# Fetch all prediction markets
curl -s https://predscope.com/api/markets.json | head -c 500

# Pretty-print with jq
curl -s https://predscope.com/api/markets.json | jq '.markets[:3]'

# Get only politics markets
curl -s https://predscope.com/api/markets.json | \
  jq '[.markets[] | select(.categories[] == "politics")]'

# Get markets sorted by 24h volume
curl -s https://predscope.com/api/markets.json | \
  jq '[.markets | sort_by(-.volume_24h)[:10] | .[] | {title, volume_24h}]'
import requests

# Fetch all markets
response = requests.get("https://predscope.com/api/markets.json")
data = response.json()

markets = data["markets"]
print(f"Total markets: {len(markets)}")

# Find the top 5 markets by 24h volume
top_markets = sorted(markets, key=lambda m: m["volume_24h"], reverse=True)[:5]

for market in top_markets:
    print(f"\n{market['title']}")
    print(f"  24h Volume: ${market['volume_24h']:,.0f}")
    print(f"  Liquidity:  ${market['liquidity']:,.0f}")
    for outcome in market["outcomes"][:3]:
        pct = outcome["probability"] * 100
        chg = outcome["day_change"] * 100
        print(f"  {outcome['title']}: {pct:.1f}% ({chg:+.1f}%)")


# Filter by category
politics = [m for m in markets if "politics" in m["categories"]]
crypto = [m for m in markets if "crypto" in m["categories"]]
sports = [m for m in markets if "sports" in m["categories"]]

print(f"\nPolitics: {len(politics)} | Crypto: {len(crypto)} | Sports: {len(sports)}")
// Fetch prediction market data (Node.js or browser)
async function getMarkets() {
  const res = await fetch("https://predscope.com/api/markets.json");
  const data = await res.json();
  return data.markets;
}

// Example: Display top movers (biggest 24h changes)
async function topMovers() {
  const markets = await getMarkets();

  // Flatten all outcomes with their market context
  const outcomes = markets.flatMap(m =>
    m.outcomes.map(o => ({
      market: m.title,
      outcome: o.title,
      probability: o.probability,
      dayChange: o.day_change
    }))
  );

  // Sort by absolute day change
  outcomes.sort((a, b) => Math.abs(b.dayChange) - Math.abs(a.dayChange));

  console.log("Top 10 Movers (24h):");
  outcomes.slice(0, 10).forEach(o => {
    const pct = (o.probability * 100).toFixed(1);
    const chg = (o.dayChange * 100).toFixed(1);
    console.log(`  ${o.outcome} (${o.market}): ${pct}% (${chg > 0 ? "+" : ""}${chg}%)`);
  });
}

topMovers();


// Example: Poll for updates every 5 minutes
setInterval(async () => {
  const markets = await getMarkets();
  console.log(`[${new Date().toISOString()}] ${markets.length} markets loaded`);
}, 5 * 60 * 1000);

Use Cases

The PredScope API is used by developers, researchers, and traders to build tools on top of prediction market data. Here are the most common applications:

For Developers

  • Portfolio trackers — monitor your prediction market positions
  • Trading bots — trigger alerts when odds shift
  • Odds dashboards — custom views of markets you care about
  • Discord/Telegram bots — post odds updates to your server
  • Arbitrage scanners — compare prices across platforms

For Researchers

  • Academic research — study prediction market accuracy
  • Data journalism — track probabilities for news stories
  • Market microstructure — analyze volume and liquidity patterns
  • Forecasting models — combine with polls and other signals
  • Visualization projects — charts and interactive graphics
Example: Election Tracker

Use the API to build a live election odds dashboard. Filter markets by "categories": ["politics"], sort by volume, and display the top candidates with their current probabilities. Update every 5 minutes for near real-time tracking.

Example: Price Alert Bot

Poll the API every 5 minutes and compare day_change values. When any outcome moves more than 5% in a day, send a notification via Telegram, Slack, or email. Useful for catching breaking news before it hits mainstream media.

API Comparison: PredScope vs Polymarket vs Kalshi

How does the PredScope API compare to the official prediction market platform APIs?

Feature PredScope API Polymarket CLOB API Kalshi REST API
Authentication None API Key + Signing API Key + OAuth
Price Free Free Free
Setup Time < 1 minute 15-30 minutes 10-20 minutes
Rate Limit 100 req/hour Varies by endpoint 100 req/minute
Data Format Simple JSON Complex JSON + WebSocket REST JSON
Market Data Yes (read-only) Yes Yes
Place Trades No Yes Yes
Order Book No Yes (full depth) Yes
Multiple Platforms Yes (aggregated) Polymarket only Kalshi only
Best For Reading odds, dashboards, research Trading, market making Trading on Kalshi

When to use PredScope: You want to read prediction market odds and data quickly without any setup. Ideal for dashboards, bots, research, and price tracking.

When to use official APIs: You need to place trades programmatically, access full order book depth, or build a trading bot that executes on a specific platform. You will need the Polymarket or Kalshi API for that.

Rate Limits & Fair Use

The API is free and open, but we ask that you follow these guidelines to keep it available for everyone:

Limit Details
Requests per hour 100 (per IP address)
Recommended poll interval Every 5 minutes (data refreshes at this rate)
Burst requests No more than 5 requests in 10 seconds
Caching Cache responses locally for at least 60 seconds

If you exceed the rate limit, you will receive a 429 Too Many Requests response. Wait a few minutes and retry. There is no penalty or ban for occasional overages.

Need Higher Limits?

Building something that requires more than 100 requests/hour? Contact us and we can discuss higher rate limits for your project.

Tips & Best Practices

Frequently Asked Questions

Is the PredScope prediction market API free?

Yes, completely free. No API key, no authentication, no sign-up required. The endpoint is publicly accessible at https://predscope.com/api/markets.json. We ask that you stay within the fair-use limit of 100 requests per hour.

What data does the API return?

The API returns a JSON object containing a markets array. Each market includes the title, slug, URL, total volume, 24-hour volume, liquidity, categories, and an array of outcomes. Each outcome has a title, current probability (0-1), and 24-hour price change. See the response format section above for full details.

How often is the data updated?

Market data is refreshed every 5 minutes. Prices, volumes, and liquidity figures reflect near real-time conditions. Polling more than once per 5 minutes will return identical data and waste your rate limit.

Do I need an API key?

No. Unlike the official Polymarket CLOB API or Kalshi REST API, the PredScope API requires no API key, no OAuth tokens, and no account registration. Just send a GET request to the endpoint and you will receive JSON data immediately.

Can I use this data in my own app or website?

Yes. You can use the API data in personal and commercial projects, including apps, dashboards, bots, and websites. We ask that you credit PredScope as the data source with a link to predscope.com. Do not resell the raw data feed.

How does this compare to the official Polymarket API?

The PredScope API is designed for simplicity: one endpoint, no auth, clean JSON. The official Polymarket CLOB API is more powerful but significantly more complex. It requires API key generation, request signing with private keys, and understanding the CLOB (Central Limit Order Book) architecture. Use PredScope for reading data; use the Polymarket API if you need to place trades.

What happens if I exceed the rate limit?

You will receive a 429 Too Many Requests HTTP response. There is no ban or penalty. Simply wait a few minutes and retry. To avoid hitting the limit, cache responses locally and poll no more than once every 5 minutes.

Want to Trade on These Markets?

The API gives you the data. To actually trade, sign up for a prediction market platform. Polymarket offers the deepest liquidity and near-zero fees.

Start Trading on Polymarket → Compare All Platforms

Related Guides

See also: Kalshi API — learn more about Kalshi API.