🚀 Product Hunt launch offer — $49/mo for your first 2 months (then $99/mo). Claim offer →
AI-Native Sports Data API

71 ENDPOINTS.
9 SPORTS.
ONE VALIDATED
INTELLIGENCE LAYER.

The sports data API built for AI-native apps. MCP-ready, SDK-first, validated ML included. API key in 60 seconds.

Read the Docs →

14-day Developer Sandbox — 200 req/day, core data endpoints, no credit card required

npm install @playcaller/sdk pip install playcaller-sdk

Already have an account? Go to Dashboard →

# One call. Live sports intelligence across 9 sports.
curl https://playcallerapp.com/v1/intelligence/news?player=AJ_Brown&limit=1 -H "X-PlayCaller-Key: pc_sbx_your_key"
71Live Endpoints
9Sports
<50msAvg Response
3Seasons Historical
The Intelligence Layer

No one else has it.

Every other sports data API sells you numbers. Sportradar at $1,400/month. SportsData.io at $5,000/month. Raw stats, scores, box scores. You build the intelligence yourself.

PlayCaller ships the intelligence pre-assembled.

The GET /v1/feed endpoint returns a complete player intelligence dossier in a single API call: a calibrated confidence score (logistic regression, 20,585 observations, 5 NFL seasons, AUC-ROC 0.697), a validated heat signal identifying players whose opportunity metrics are converging before the market prices it in (AUC-ROC 0.623, 25.6pp quartile lift), a signal breakdown showing what drove each score, and a plain-English synthesis sentence validated against the source data.

The same endpoint covers every sport with its own validated model — not borrowed NFL numbers. NBA confidence: AUC-ROC 0.855, 84.23x decile lift. NBA heat: AUC-ROC 0.740, 40.5pp quartile lift. MLB pitcher trend: AUC-ROC 0.647. MLB batter confidence: AUC-ROC 0.625, 26.98pp quartile lift. NHL confidence: AUC-ROC 0.669, 36.96pp quartile lift. 7 validated models total. Fields with no model stay null rather than fabricated.

No heuristics. No black boxes. Every claim traces to a measured model.

Confidence Model (NFL)
AUC-ROC0.697
Observations20,585
Seasons5 (2021-2025)
Decile lift4.61x
Top decile hit rate54.9%
Confidence Model (NBA)
AUC-ROC0.855
Decile lift84.23x
Signals5
Walk-forward folds3 (3 passed)
StatusACTIVE
Heat Model (NFL)
AUC-ROC0.623
Quartile lift25.6pp
Walk-forward folds3 (3 passed)
Signalvalidated directional
Displaygradient only
Heat Model (NBA)
AUC-ROC0.740
Quartile lift40.5pp
Walk-forward folds2 (2 passed)
StatusACTIVE
Confidence Model (MLB Pitcher)
AUC-ROC0.647
SignalTrending Up / Steady / Down
Walk-forward folds3 (3 passed)
StatusACTIVE
Confidence Model (MLB Batter)
AUC-ROC0.625
Quartile lift26.98pp
Walk-forward folds2 (2 passed)
StatusACTIVE
Confidence Model (NHL)
AUC-ROC0.669
Quartile lift36.96pp
Observations101,973
StatusACTIVE
The Feed Endpoint
GET /v1/feed
Response typepre-composed dossier
Includesconfidence + heat + synthesis
Rate cap at Pronone
API calls needed1
Quick Start

Your first intelligent API call in 5 minutes.

1
Sign Up Free

No credit card. 14-day Developer Sandbox starts immediately.

2
Get Your API Key

Activation link in inbox. Key generated instantly in pc_sbx_xxxx format.

3
Make Your First Call

One GET request, one header. Live sports intelligence in milliseconds.

# Fetch live injury signals (NFL, MLB, NBA)
curl https://playcallerapp.com/v1/intelligence/news \
  -H "X-PlayCaller-Key: pc_sbx_your_key_here" \
  -G -d "severity=high&limit=5"
# pip install requests
import requests

API_KEY = "pc_sbx_your_key_here"

resp = requests.get(
    "https://playcallerapp.com/v1/intelligence/news",
    headers={"X-PlayCaller-Key": API_KEY},
    params={"severity": "high", "limit": 5}
)
data = resp.json()
print(data["data"][0]["title"])
// Node.js (fetch built-in ≥v18) or modern browser
const API_KEY = "pc_sbx_your_key_here";

const res = await fetch(
  "https://playcallerapp.com/v1/intelligence/news?severity=high&limit=5",
  { headers: { "X-PlayCaller-Key": API_KEY } }
);
const { data } = await res.json();
console.log(data[0].title);
# Install the official SDK
npm install @playcaller/sdk

// Full IDE autocomplete + typed responses
import { PlayCallerClient } from "@playcaller/sdk";

const client = new PlayCallerClient({ apiKey: "pc_sbx_your_key_here" });

// Typed injury signals — autocomplete works in VS Code / Cursor
const injuries = await client.intelligence.getInjuries({ sport: "nfl", severity: "high" });

// Browse by sport namespace
const players = await client.nfl.players.list({ team: "KC", position: "WR" });
const games   = await client.mlb.games.list({ date: "today" });
const leaders = await client.mlb.scoring.leaders({ position: "SP" });
200 OK  ·  <50ms  ·  application/json Response Preview
{
  "success": true,
  "count":   5,
  "data": [{
    "player_name":    "Ja'Marr Chase",
    "team":           "CIN",
    "signal_type":    "injury_update",
    "severity":       "high",
    "title":          "Chase limited in practice, questionable for Sunday",
    "snap_delta":     -0.38,
    "beneficiaries":  ["Tee Higgins", "Tyler Boyd"],
    "source":         "ESPN beat · verified"
  }]
}
Get Your Free API Key →

14-day Developer Sandbox, 200 req/day, core data endpoints, no credit card

Try It Live

Real endpoint. Real request. Real response.

Pick any live endpoint, paste your API key, and fire a real request straight from this page — no curl, no Postman. The endpoint list below is read directly from our live OpenAPI spec, so it can't go stale.

Pick an endpoint and hit send — the real response shows up here.
API Reference

71 live endpoints. Everything you need.

Nine sports, 71 endpoints total. Live Now badges confirm production status.

NFL Intelligence (7) Live Now
GET
/v1/intelligence/news
Beat reporter signals, injury updates, snap share deltas, beneficiary IDs. Params: severity, team, player, limit, signal_type
GET
/v1/intelligence/injuries
Dedicated injury feed, severity filtering, team breakdown, 2-hour cadence
GET
/v1/analytics/trends
Historical performance 2021-2025, usage trends, snap/target share evolution (Pro)
GET
/v1/intelligence/news?signal_type=prop
Kalshi prediction market signals with AI confidence scores
GET
/v1/feed
Pre-composed intelligence dossier, confidence + heat + synthesis (Pro Insights)
GET
/v1/identity/map
Cross-platform player identity resolution Coming Soon
GET
/v1/daas/usage
Quota, rate limits, tier info, per-endpoint breakdown
MLB (9) Live Now
GET
/v1/mlb/players
966-player database
GET
/v1/mlb/players/:id
Individual player detail
GET
/v1/mlb/players/:id/stats
Per-game stats with fantasy_points
GET
/v1/mlb/teams
All 30 teams
GET
/v1/mlb/teams/:team/roster
Full roster with position filter
GET
/v1/mlb/games
Live and scheduled game states
GET
/v1/mlb/standings
Current standings by division
GET
/v1/mlb/scoring/leaders
Top fantasy scorers by position (Pro)
GET
/v1/mlb/scoring/categories
Rotisserie category leaders (Pro)
NBA (4) Live Now
GET
/v1/nba/games
Live scores and scheduled games
GET
/v1/nba/standings
Current standings by conference
GET
/v1/nba/teams
All 30 teams
GET
/v1/nba/players
NBA player database
CFB (4) Live Now
GET
/v1/cfb/games
Live scores and scheduled games
GET
/v1/cfb/standings
Conference standings
GET
/v1/cfb/players/:id
Individual player profile — 11,000+ FBS players
GET
/v1/cfb/rankings
AP Top 25 and CFP rankings (Pro)
NHL (5) Live Now
GET
/v1/nhl/games
Live scores and scheduled games
GET
/v1/nhl/standings
Division standings
GET
/v1/nhl/teams
All 32 franchises
GET
/v1/nhl/players/:id
Individual player profile
GET
/v1/nhl/players/:id/stats
Per-game stat log with fantasy points
Soccer (4) Live Now
GET
/v1/soccer/games
EPL, MLS, La Liga, Bundesliga, Serie A, Champions League
GET
/v1/soccer/standings
League table for all 6 competitions
GET
/v1/soccer/players
2,500+ players across all leagues
GET
/v1/soccer/players/:id
Player detail with league metadata
Tennis (1) Live Now
GET
/v1/tennis/matches
ATP and WTA match scores — year-round
Golf (2) Live Now
GET
/v1/golf/tournaments
Active and recent PGA Tour / LPGA tournaments
GET
/v1/golf/leaderboard
Live tournament leaderboard with round-by-round scores
Cross-Sport Utilities (5) Live Now
GET
/v1/players/compare
Side-by-side player profiles — injuries, anomaly score, recent stats
GET
/v1/:sport/players/:id/news
Beat reporter signals and injuries for any player across all 9 sports
GET
/v1/:sport/teams/:team/injuries
Active injury report for any team — every affected player, sorted by severity
GET
/v1/:sport/teams/:team/schedule
Past results and upcoming games for any team, any sport
GET
/v1/data/status
Per-sport data freshness timestamps, player counts, last signal update
Meta (3) Live Now
GET
/v1/sports
Discovery endpoint, lists all sports and endpoint families
GET
/v1/daas/usage
Quota and rate limits for your key
POST
/mcp/start-trial
Zero-friction MCP lead capture — email only, returns key immediately in response
Browse the full API reference →
Developer Guides

From integration to production, sport by sport.

Deep-dives on every sport's endpoints, model outputs, and common integration patterns.

Competitive Positioning

Built for AI-native apps. Priced for indie developers.

Sportradar SportsData.io API-Sports PlayCaller
Entry price $1,400+/mo $99-149/mo $10/mo $0 (Sandbox) / $99/mo
Self-serve No Limited Yes Yes
No sales call No No Yes Yes
Intelligence layer No No No Yes
Validated ML model No No No Yes
MCP server No No No Yes
TypeScript + Python SDKs No No No Yes
Semantic player similarity No No No Yes (pgvector)
SSE real-time stream No No No Yes
HMAC-signed webhooks No No No Yes
Free trial No Scrambled data 100 req/day forever 200 req/day, 14 days, no card
Sportradar is built for media companies and sportsbooks. SportsData.io requires a sales call for production access. Neither ships an MCP server, TypeScript/Python SDKs, pgvector semantic similarity, or a validated ML layer. PlayCaller is the only sports data API built natively for AI agents and LLM pipelines — at a price indie developers can actually pay.
Full side-by-side comparison →
Model Context Protocol

Register PlayCaller as a tool in any AI workflow.

PlayCaller implements Anthropic's Model Context Protocol over HTTP. Connect Cursor, Claude Desktop, Perplexity, or any MCP-compatible AI to live sports intelligence with a single endpoint.

Package: @playcaller/playcaller-mcp (published to npm)

Connect to Cursor or Claude Desktop

Add this to your .cursor/mcp.json:

# .cursor/mcp.json
{
  "mcpServers": {
    "playcaller": {
      "url": "https://playcallerapp.com/mcp",
      "headers": {
        "X-PlayCaller-Key": "YOUR_API_KEY"
      }
    }
  }
}

Test the MCP endpoint directly

# Discovery — list available tools
curl -s -X POST https://playcallerapp.com/mcp \
  -H "Content-Type: application/json" \
  -H "X-PlayCaller-Key: YOUR_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# Invoke a tool
curl -s -X POST https://playcallerapp.com/mcp \
  -H "Content-Type: application/json" \
  -H "X-PlayCaller-Key: YOUR_KEY" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_injury_signals","arguments":{"sport":"nfl","severity":"high","limit":5}}}'

10 Tools Available

get_injury_signals
Active beat reporter signals, filterable by sport and severity
get_player_identity
Resolve a player across ESPN, Sleeper, Yahoo, NFL.com. 31,000+ player identities normalized
get_anomaly_scores
Players deviating from 3-season usage baseline, score 0-100
get_player_projections
Trailing 10-game fantasy point average across NFL, NBA, and MLB
get_player_stats
Per-game statistical history for NFL, MLB, and NBA players — rushing yards, ERA, points, and more
get_team_roster
Active roster for any NFL, MLB, or NBA team with positions and PlayCaller IDs
get_games
Scheduled, live, and final scores across all 9 sports — filter by date, week, or status
get_standings
Division and conference standings for NFL, MLB, NBA, NHL, CFB, and Soccer
get_player_dossier
Full player profile in one call — identity, injury status, anomaly score, recent game stats
get_prediction_markets
Active Kalshi-tagged prop markets
Heuristic — not validated. confidence_score and market_probability are reserved fields, not yet populated.
Pricing

Simple. Flat-rate. No surprises.

Start with a free 14-day Developer Sandbox — 200 req/day, core data endpoints, no credit card required. Upgrade to a paid tier when you're ready to scale.

Developer Sandbox
$0
14-day window
  • 200 req/day
  • 2 req/min
  • Core data access
  • No credit card required
  • /v1/feed (ML intelligence) not included
Build
$99
per month
  • 2,000 req/day (60,000/mo)
  • 2 req/min
  • 20 transactional endpoints
  • NFL, MLB, NBA, NHL, CFB, Soccer, Tennis, Golf & UFC data
  • JSON + REST, community support
  • /v1/feed (ML intelligence) not included
Start Building — $99/mo →
Most Popular
Pro Insights
$499
per month
  • 20,000 req/day (600,000/mo)
  • 5 req/min
  • All 71 endpoints
  • /v1/feed — pre-composed intelligence dossier (rate-capped)
  • /v1/analytics/trends — 3 seasons historical
  • Priority support
Start Pro Insights — $499/mo →
Syndicate Alpha
$1,499
per month
  • No daily request ceiling
  • All 71 endpoints
  • /v1/feed — uncapped ML intelligence access
  • Dedicated API priority (no concurrency limits)
  • Priority support and SLA
Contact Us →
Hard rule: every paid plan gives you strictly more daily capacity than the Developer Sandbox. No surprises, no inversions.

Start building for free.

14-day Developer Sandbox. 200 req/day. core data endpoints. No credit card required. API key in 60 seconds.

Start Free Sandbox →