Push live scores, match events, statistics and odds to your app over WebSocket, or fetch them over REST. One key, every sport, and a free plan to measure the speed yourself.
Subscribe once and receive score, incident and statistics changes as they happen. No polling loop, and keep-alive pings hold the connection open.
Live-score endpoints typically answer in well under a second. Use them to load the current state, then let the socket keep it fresh.
Football, basketball, tennis, cricket, ice hockey, baseball, American football, rugby and more, all on the same API key and plan.
Incidents and recoveries are posted openly, so you can see service health before you build on it.
The recommended pattern: fetch the current state once, subscribe for changes, and refetch once after any reconnect.
// 1. Load the current live matches (REST)
const res = await fetch("https://api.sportsapipro.com/v2/football/live", {
headers: { "x-api-key": process.env.SPORTS_API_KEY },
});
const live = await res.json();
// 2. Keep them fresh (WebSocket)
const ws = new WebSocket("wss://api.sportsapipro.com/v2/football/ws", {
headers: { "x-api-key": process.env.SPORTS_API_KEY },
});
ws.onmessage = (msg) => applyUpdate(JSON.parse(msg.data));
setInterval(() => ws.ping(), 30_000); // keep-aliveFree plan: 100 requests/day. Every plan includes all sports and endpoints.
pro
$45.00/mo
7,500 requests/day
ultra
$89.00/mo
75,000 requests/day
mega
$179.00/mo
150,000 requests/day
It is an API that delivers live scores, match events and statistics while games are in progress, either by pushing updates over WebSocket or by serving fresh snapshots over REST. SportsAPI Pro does both.
In our own checks, live-score REST requests typically return in about 0.25 to 0.65 seconds. WebSocket updates are pushed when the underlying data changes, so there is no fixed frame rate.
Yes. The Free plan includes 100 requests per day with real live data across all sports, which is enough to test speed and integration.
30+ sports, including football (soccer), basketball, tennis, cricket, ice hockey, baseball, American football, rugby, volleyball, handball and esports.
Use REST to load the current state and WebSocket to keep it updated. After any reconnect, call the REST live endpoint once to fill gaps.
Comparing providers? Read our guide to the best sports data APIs or check live service health on the status page.