statshawk

Sports data for products and agents

Every sport. One data layer.

Consistent stats, schedules, and ready-made analysis for every league. REST for your product, MCP for Claude or any AI assistant. One account, one bill.

Start freeRead the docs

Have ChatGPT or Claude? Paste the setup line and ask about any game.

Two ways in. Same sports data.

REST API

Build products on normalized JSON.

Send a self-serve key in the X-API-Key header and get predictable responses from every endpoint.

curl https://api.statshawk.ai/v1/competitions -H "X-API-Key: $STATSHAWK_KEY"
Explore the API

Hosted MCP

Give your AI real sports data.

Connect Claude, Cursor, ChatGPT, or Codex with one sign-in. No keys to paste, nothing to configure.

claude mcp add --transport http statshawk https://mcp.statshawk.ai/mcp
Explore hosted MCP

Your LLM is wrong about sports.

without statshawk
you

What was Curry's stat line last night vs Miami?

claude

I don't have real-time data on last night's games, but based on his season averages Curry typically scores in the high 20s and shoots well from three. The Heat have a top-10 defense, but he often plays well against them.

with statshawk
you

What was Curry's stat line last night vs Miami?

get_box_score(player: "S. Curry", league: "nba")
28 PTS · 7-13 FG · 4-7 3PT · 6 AST · GSW W 118-112
claude

Curry went for 28 and 6 assists in last night's 118-112 win over Miami. He shot 4 of 7 from three on 13 total attempts.

Any MCP client can call statshawk tools. Non-MCP clients use the REST API. Either way the response is shaped for context, not for a dashboard.

The other way is scraping ESPN.

An LLM can answer this through web search or HTML scraping. It just costs you ~500x more tokens and gets the math wrong. Same question, three sports.

Same question, two ways to answer it. One burns context and gets arithmetic wrong. The other returns the prop card pre-computed on any paid plan.

A pitcher-vs-batter matchup, from one API call.

Per-zone hit rates, a swing-and-miss map, and every pitch a starter has thrown a hitter all season. Already joined, already shaped. Toggle the metric. Tap or hover a pitch.

Real Statcast pitch data from get_play_by_play(detail='full'). The same call powers zone models, scouting cards, and matchup tools.

Build with the API

One account, every league. OAuth for MCP, API keys for REST.

01

One format, every league

Box scores, season stats, and standings in the same shape across NBA, MLB, NFL, NHL, and NCAA, within coverage of 50+ competitions in 16 sports. Stop writing one-off adapters per data source.

02

REST + MCP, one account

The AI connection uses a normal sign-in; REST uses API keys. Both share one account, one usage meter, and the same responses.

03

Pricing that matches the work

A quick lookup counts as 1 call, heavy analysis as 10. Predictable bills, hard caps, no surprise overage.

04

Fresh from the source

Backed by stat-engine, our Rust data pipeline. Numbers land within minutes of the box score posting.

FAQ

Questions builders ask before the first request.

What is statshawk?

statshawk is a hosted sports data platform. It normalizes data from 50+ competitions across 16 sports, including NBA, MLB, NFL, NHL, and NCAA, into one schema and serves it two ways: a REST API at api.statshawk.ai for products, and an MCP server at mcp.statshawk.ai for AI assistants and coding agents. One account and one data model cover both.

What data does the API cover?

Scores and schedules, box scores, play-by-play (including MLB Statcast pitch data), rosters, player and team game logs, season stats, standings, player props, and pregame matchup analysis such as pitcher-versus-batter splits and team comparisons. Per-competition support is discoverable through the capabilities endpoints.

How fresh is the data?

Live games update within seconds of the source feed. Box scores and game logs finalize minutes after the final whistle. Rosters, standings, and season stats refresh on documented tiers, and every response carries cache headers that state how fresh it is.

How do AI assistants connect?

Add https://mcp.statshawk.ai/mcp as a remote MCP server in Claude, ChatGPT, Cursor, or any MCP-capable client. The server uses OAuth with PKCE, so you sign in once in the browser and the assistant receives read-only tools for scores, stats, rosters, and analysis.

How does pricing work?

The free tier needs no card and includes both REST and MCP access. Paid plans are usage based, priced per weighted unit, with higher rate limits and access to analysis endpoints. Published quotas and rate limits apply to every plan.

Is there an SDK or CLI?

The REST API is plain JSON over HTTPS with an OpenAPI 3.1 description at statshawk.ai/openapi.json, so any HTTP client or generated SDK works. The statshawk-cli package on npm installs agent skills, prints the MCP connect command, and completes browser API-key auth for coding agents.

Start free

An assistant that already knows last night's box score.

$0

to start

5,000

free lookups monthly

No card

required

REST + MCP

included