Google Sports Results API
Sports scores move fast. League tables update weekly. Fans search Google before they open any sports app.
This repository demonstrates how to convert Google Search sports widgets into structured data using a dedicated Google Sports Results API.
Instead of scraping fragile HTML layouts or trying to intercept browser network calls, you can request structured JSON containing match results, live scores, standings, and fixtures — exactly as Google displays them.
If you need a flexible sports data API without integrating official league feeds, this approach provides reliable access to publicly visible sports information through Google.
Full request configuration options are available in the official
Google Sports API documentation.
What This API Extracts
Google sports widgets contain structured blocks that include:
• Live match scores
• Final match results
• Match status (Live, HT, FT)
• Team names
• Competition names
• League standings
• Upcoming fixtures
• Match dates
• Venue information
This Google sports API parses those structured widgets and returns machine-readable JSON.
How It Works
All requests are sent to:
https://app.scrapingbee.com/api/v1/
Sports data is retrieved using:
search=google
You simply pass a sports-related query such as:
• "NBA live score"
• "Premier League standings"
• "Barcelona vs Real Madrid"
• "NFL results today"
The API processes the SERP and extracts the sports result block.
Example: Fetch Live Match Data (cURL)
curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR_API_KEY&search=google&q=Manchester+United+vs+Liverpool&country_code=uk"
Example: Fetch League Standings (cURL)
curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR_API_KEY&search=google&q=Bundesliga+standings&country_code=de"
Python Example
import requests
params = {
"api_key": "YOUR_API_KEY",
"search": "google",
"q": "NBA live score",
"country_code": "us"
}
response = requests.get(
"https://app.scrapingbee.com/api/v1/",
params=params
)
data = response.json()
print(data)
Node.js Example
const { ScrapingBeeClient } = require('scrapingbee');
const client = new ScrapingBeeClient('YOUR_API_KEY');
async function getSportsResults() {
const response = await client.get({
url: 'https://www.google.com/search',
params: {
search: 'google',
q: 'Champions League results',
country_code: 'uk'
}
});
console.log(response.data);
}
getSportsResults();
Request Parameters
| Parameter | Description |
|---|---|
api_key |
Your API authentication key |
search |
Must be set to google |
q |
Sports query (team vs team, standings, results) |
country_code |
Region targeting (us, uk, de, fr, etc.) |
language |
Language localization |
render_js |
Enable JavaScript rendering if required |
premium_proxy |
Use higher reliability proxy routing |
Example JSON – Match Result
{
"sports_results": {
"match": {
"home_team": "Manchester United",
"away_team": "Liverpool",
"home_score": 3,
"away_score": 2,
"status": "Final",
"competition": "Premier League",
"match_date": "2025-03-10"
}
}
}
Example JSON – League Table
{
"sports_results": {
"league": "Bundesliga",
"standings": [
{
"position": 1,
"team": "Bayern Munich",
"points": 68
},
{
"position": 2,
"team": "Borussia Dortmund",
"points": 64
}
]
}
}
Real-Time Monitoring Strategy
For live score tracking systems:
- Poll match queries at controlled intervals
- Store responses with timestamps
- Compare score values between requests
- Trigger updates when changes occur
Because Google updates sports widgets in real time, polling intervals should be optimized to avoid unnecessary requests.
When to Use This Google Sports API
This approach works well for:
• Building sports dashboards
• Monitoring league standings
• Creating match tracking tools
• Feeding sports results into analytics systems
• Collecting publicly visible sports data
• Automating sports news summaries
It is not designed to replace official licensed sports feeds with deep historical statistics. Instead, it extracts exactly what users see in Google Search.
Production Best Practices
When deploying a sports data pipeline:
• Implement retry logic
• Respect rate limits
• Normalize team names
• Handle timezone differences
• Cache repeated queries
• Store historical snapshots for trend analysis
Closing Thoughts
Google Search already aggregates sports information in structured widgets. The Google Sports Results API allows you to programmatically access that data without maintaining scraping infrastructure.
If you need a flexible sports data API powered by Google search results, this repository provides a clean and developer-friendly starting point.