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.

Card required · Then $9 USD/month
Cancel before the trial ends to avoid a charge.

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": "STATUS_IN_PROGRESS", "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.

Create a key, save it, and complete your trial checkout. Then send your key in the X-API-Key header. The same key keeps working when your trial becomes 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.

14 days to build with the API. A card is required to activate your trial. After that, Pro automatically renews at $9 USD/month unless you cancel.

Pro / All seven feeds

$9 USD / month after trial

Start with 14 days free. Cancel through Manage billing before the trial ends to avoid a charge.

  • 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 billing email and card. Returning subscribers pay $9/month without another trial.
Already have a key? Manage billing

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.