Finding games across seven sports…

Real API snapshots · Refreshes about every two minutes

Sports data / Public beta

The game.
In your
format.

Build the scoreboard, ticker, or second screen you have in mind. Get scores and schedules as JSON, with one key across pro leagues, college sports, and soccer.

No card needed · 14 days or 10,000 calls
Keep your key with Pro for $9 USD/month.

01 / DATA IN PLAYINTERACTIVE EXAMPLE
NFL / SCOREBOARDILLUSTRATIVE DATA
BUF
Buffalo Bills
21
VS
BAL
Baltimore Ravens
17
THE SAME GAME / JSON
{

  "sport": "nfl",

  "games": [{

    "id": "illustrative-game",

    "sport": "nfl",

    "awayTeam": { "name": "Buffalo Bills", "shortName": "BUF", "score": 21 },

    "homeTeam": { "name": "Baltimore Ravens", "shortName": "BAL", "score": 17 },

    "status": { "type": "LIVE", "detail": "4:12 - 3rd Quarter", "shortDetail": "4:12 - 3rd Quarter", "period": 3, "completed": false }

  }]

}

A static, abbreviated example—not a live game feed. Switch sports to see the scoreboard and JSON change together.

7 feedsPro / college / soccer
One keyAll supported endpoints
1-minute cacheScoreboard responses
JSONReady for your interface

02 / Coverage

Know what's
on the board.

Seven coverage options, with the identifiers you'll actually use. Scores, team names, game status, and date-based schedules. Field availability varies by source and game.

CoverageAPI identifierAvailable endpoints
NFLnflScoreboard + schedule
NBAnbaScoreboard + schedule
NHLnhlScoreboard + schedule
MLBmlbScoreboard + schedule
College footballncaafScoreboard + schedule
Men's college basketballncaabScoreboard + schedule
SoccersoccerAggregate scoreboard + schedule

API scoreboards are cached for up to 1 minute; schedules for up to 5 minutes. Coverage depends on upstream availability. Soccer is an aggregate feed; not every competition is guaranteed. League names describe coverage and do not imply an official partnership.

03 / First request

A header.
A response.
Your next screen.

Sign in with Google, start your free trial, and copy your key. Then send your key in the X-API-Key header. The same key keeps working if you subscribe to Pro.

TERMINAL / CURL
curl https://sportyapi.com/api/sports/nfl/scoreboard \

  -H "X-API-Key: YOUR_API_KEY"

The sport changes with the example above.
Keep your key on your server. Don't publish it in frontend code.
Burst limits: 120/minute per key and 600/minute per IP. Limits apply per Cloudflare location. On HTTP 429, wait for Retry-After before retrying.

GET/api/sports/{sport}/scoreboard

Scores, teams, and game status for the selected feed.

GET/api/sports/{sport}/schedule

Games for a selected day. Add ?date=YYYY-MM-DD; defaults to today's UTC date.

GET/api/sports/available

Supported feed identifiers. No API key needed.

POST/api/keys

Create a key. Activate it through Stripe before making sports requests.

04 / Pricing

Try it on
your own turf.

Try all seven feeds for 14 days or 10,000 calls, whichever comes first. No card needed.

Pro / All seven feeds

$9 USD / month

Try it free, then choose whether to subscribe.

  • No daily request quota · 120 requests/minute per key
  • Scoreboards and date-based schedules
  • One API key across all seven coverage options
  • Email support at support@sportyapi.com
Start your 14-day trial

One trial per Google account. No automatic charges.
Already have a key? Account

Custom / Let's talk

Your setup.

Building something with specific data or operational requirements? Tell us what you're working on and we'll discuss what's possible.

  • Discuss your coverage needs
  • Plan your integration
  • Agree on scope and service terms
Talk to SportyApi

Custom arrangements are agreed directly.
No automatic enterprise plan or SLA.