diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..42669fe Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore index 36b13f1..6a5832f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,176 +1,11 @@ -# ---> Python -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -.pybuilder/ -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# UV -# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -#uv.lock - -# poetry -# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock - -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/latest/usage/project/#working-with-version-control -.pdm.toml -.pdm-python -.pdm-build/ - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ - -# PyCharm -# JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. For a more nuclear -# option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ - -# Ruff stuff: -.ruff_cache/ - -# PyPI configuration file -.pypirc - +__pycache__/ +*.pyc +*.pyo +*.pyd +*.egg-info/ +dist/ +build/ +.eggs/ +*.log +.env diff --git a/README.md b/README.md index c1b0a36..3b693e8 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,198 @@ -# nike +# Nike — Football Data Platform +MCP server and web dashboard for football (soccer) data, with full MLS support. + +Queries live data from [free-api-live-football-data](https://rapidapi.com/Creativesdev/api/free-api-live-football-data) (RapidAPI) and exposes it via MCP tools for conversational analysis and a Bootstrap status dashboard. + +--- + +## Architecture + +``` +┌─────────────────────────────────────────────────────────┐ +│ nike/server.py — single process on 0.0.0.0:{PORT} │ +│ │ +│ GET / → Bootstrap dashboard (dashboard.html)│ +│ GET /api/* → Dashboard JSON API │ +│ /mcp → FastMCP HTTP (streamable) │ +└──────────┬──────────────────────────────────────────────┘ + │ + nike/rapidapi.py + (free-api-live-football-data client) + │ + RapidAPI + (free-api-live-football-data.p.rapidapi.com) +``` + +### Module responsibilities + +| Module | Role | +|--------|------| +| `nike/config.py` | Centralised settings from `.env` (API keys, constants) | +| `nike/rapidapi.py` | RapidAPI client with TTL cache (live data backend) | +| `nike/server.py` | FastAPI app: MCP tools, dashboard routes, mounts MCP ASGI | +| `nike/templates/dashboard.html` | Live status dashboard (Bootstrap 5, dark theme) | + +### Legacy modules (preserved, not active) + +| Module | Role | +|--------|------| +| `nike/api_football.py` | API-Football v3 client (original backend) | +| `nike/db.py` | PostgreSQL connection pool and query helpers | +| `nike/sync.py` | API → DB sync pipeline | +| `schema.sql` | Database DDL | + +### MCP Tools + +| Tool | Description | +|------|-------------| +| `search(query)` | Universal search across teams, players, leagues, matches | +| `live_scores()` | All currently live matches worldwide | +| `fixtures(league, date)` | Matches by league and/or date | +| `standings(league)` | Full league table | +| `team_info(team)` | Team profile + squad roster | +| `player_info(player)` | Player profile and details | +| `match_detail(event_id)` | Full match: score, stats, lineups, venue, referee | +| `head_to_head(event_id)` | H2H history for a matchup | +| `top_players(league, stat)` | Top scorers / assists / rated | +| `transfers(league_or_team, scope)` | Transfer activity | +| `news(scope, name)` | Trending, league, or team news | + +--- + +## Setup + +### Prerequisites + +- Python >= 3.11 +- A RapidAPI key for [free-api-live-football-data](https://rapidapi.com/Creativesdev/api/free-api-live-football-data) + +### Install + +```bash +cd ~/gitea/nike +python3 -m venv ~/env/nike +source ~/env/nike/bin/activate +pip install -e . +``` + +### Configure + +Create (or edit) `.env` in the project root: + +```env +RAPIDAPI_KEY= +``` + +### Verify API connectivity + +```bash +python scripts/test_rapidapi.py +``` + +This searches for MLS, fetches standings, finds Toronto FC, and pulls the squad roster. + +--- + +## Running + +### Development + +```bash +python run.py +``` + +The server starts on `http://0.0.0.0:{PORT}`: +- **Dashboard** → `http://:{PORT}/` +- **MCP endpoint** → `http://:{PORT}/mcp` + +### Production (systemd) + +```bash +sudo cp nike.service /etc/systemd/system/ +sudo systemctl daemon-reload +sudo systemctl enable --now nike +``` + +--- + +## MCP Client Configuration + +Nike exposes a Streamable HTTP MCP endpoint at `/mcp`. To connect an MCP client (e.g. Claude Desktop, Cline, or any MCP-compatible tool), add the following to your client's MCP server configuration: + +```json +{ + "mcpServers": { + "nike": { + "type": "streamable-http", + "url": "http://:{PORT}/mcp" + } + } +} +``` + +Once connected, you can ask questions like: +- *"What matches are live right now?"* +- *"Show the MLS standings"* +- *"Who plays for Toronto FC?"* +- *"Who's the MLS top scorer?"* +- *"Any transfer news for Inter Miami?"* +- *"Tell me about Federico Bernardeschi"* + +--- + +## Scripts + +| Script | Purpose | +|--------|---------| +| `scripts/test_rapidapi.py` | Verify RapidAPI connectivity and fetch sample data | +| `scripts/test_db.py` | Verify PostgreSQL connectivity (legacy) | +| `scripts/test_api.py` | Verify API-Football connectivity (legacy) | +| `scripts/apply_schema.py` | Apply database schema (legacy) | +| `scripts/pull_tfc.py` | Full TFC data sync via API-Football (legacy) | +| `scripts/verify_db.py` | Print DB row counts (legacy) | + +--- + +## Project Structure + +``` +nike/ +├── .env # Secrets (not committed) +├── pyproject.toml # Package metadata & dependencies +├── run.py # Entrypoint: python run.py +├── schema.sql # Database DDL (legacy) +├── nike.service # systemd unit file +├── nike/ +│ ├── __init__.py +│ ├── config.py # Settings from .env +│ ├── rapidapi.py # RapidAPI client (active backend) +│ ├── api_football.py # API-Football v3 client (legacy) +│ ├── db.py # DB pool + queries (legacy) +│ ├── sync.py # API → DB sync logic (legacy) +│ ├── server.py # FastAPI + MCP server +│ └── templates/ +│ └── dashboard.html # Status dashboard +└── scripts/ + ├── test_rapidapi.py # RapidAPI smoke test + ├── apply_schema.py # (legacy) + ├── pull_tfc.py # (legacy) + ├── test_api.py # (legacy) + ├── test_db.py # (legacy) + └── verify_db.py # (legacy) +``` + +--- + +## API Quota + +The free-api-live-football-data RapidAPI pricing: + +| Plan | Price | Requests/Month | +|------|-------|----------------| +| Basic (Free) | $0 | 100 | +| Pro | $9.99/mo | 20,000 | +| Ultra | $19.99/mo | 200,000 | +| Mega | $49.99/mo | 500,000 | + +Nike uses a 5-minute in-memory TTL cache to minimize API calls during conversations. diff --git a/api.xml b/api.xml new file mode 100644 index 0000000..ae21fcc --- /dev/null +++ b/api.xml @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/docs/api_samples/01_popular_leagues.json b/docs/api_samples/01_popular_leagues.json new file mode 100644 index 0000000..040670a --- /dev/null +++ b/docs/api_samples/01_popular_leagues.json @@ -0,0 +1,77 @@ +{ + "status": "success", + "response": { + "popular": [ + { + "id": 47, + "name": "Premier League", + "localizedName": "Premier League", + "ccode": "ENG", + "logo": "https://images.fotmob.com/image_resources/logo/leaguelogo/dark/47.png" + }, + { + "id": 42, + "name": "Champions League", + "localizedName": "Champions League", + "ccode": "INT", + "logo": "https://images.fotmob.com/image_resources/logo/leaguelogo/dark/42.png" + }, + { + "id": 87, + "name": "LaLiga", + "localizedName": "LaLiga", + "ccode": "ESP", + "logo": "https://images.fotmob.com/image_resources/logo/leaguelogo/dark/87.png" + }, + { + "id": 77, + "name": "World Cup", + "localizedName": "FIFA World Cup", + "ccode": "INT", + "logo": "https://images.fotmob.com/image_resources/logo/leaguelogo/dark/77.png" + }, + { + "id": 54, + "name": "Bundesliga", + "localizedName": "Bundesliga", + "ccode": "GER", + "logo": "https://images.fotmob.com/image_resources/logo/leaguelogo/dark/54.png" + }, + { + "id": 73, + "name": "Europa League", + "localizedName": "Europa League", + "ccode": "INT", + "logo": "https://images.fotmob.com/image_resources/logo/leaguelogo/dark/73.png" + }, + { + "id": 53, + "name": "Ligue 1", + "localizedName": "Ligue 1", + "ccode": "FRA", + "logo": "https://images.fotmob.com/image_resources/logo/leaguelogo/dark/53.png" + }, + { + "id": 55, + "name": "Serie A", + "localizedName": "Serie A", + "ccode": "ITA", + "logo": "https://images.fotmob.com/image_resources/logo/leaguelogo/dark/55.png" + }, + { + "id": 138, + "name": "Copa del Rey", + "localizedName": "Copa del Rey", + "ccode": "ESP", + "logo": "https://images.fotmob.com/image_resources/logo/leaguelogo/dark/138.png" + }, + { + "id": 132, + "name": "FA Cup", + "localizedName": "FA Cup", + "ccode": "ENG", + "logo": "https://images.fotmob.com/image_resources/logo/leaguelogo/dark/132.png" + } + ] + } +} \ No newline at end of file diff --git a/docs/api_samples/01_search_leagues_epl.json b/docs/api_samples/01_search_leagues_epl.json new file mode 100644 index 0000000..717f769 --- /dev/null +++ b/docs/api_samples/01_search_leagues_epl.json @@ -0,0 +1,175 @@ +{ + "status": "success", + "response": { + "suggestions": [ + { + "type": "league", + "id": "47", + "score": 301131, + "name": "Premier League", + "ccode": "ENG" + }, + { + "type": "league", + "id": "519", + "score": 300091, + "name": "Premier League", + "ccode": "EGY" + }, + { + "type": "league", + "id": "9066", + "score": 300073, + "name": "Premier League", + "ccode": "TAN" + }, + { + "type": "league", + "id": "63", + "score": 300071, + "name": "Premier League", + "ccode": "RUS" + }, + { + "type": "league", + "id": "10028", + "score": 300058, + "name": "Premier League Qualification", + "ccode": "TAN" + }, + { + "type": "league", + "id": "441", + "score": 300054, + "name": "Premier League", + "ccode": "UKR" + }, + { + "type": "league", + "id": "522", + "score": 300054, + "name": "Premier League", + "ccode": "GHA" + }, + { + "type": "league", + "id": "9084", + "score": 300050, + "name": "Premier League 2", + "ccode": "ENG" + }, + { + "type": "league", + "id": "10176", + "score": 300041, + "name": "Premier League 2 Div 2", + "ccode": "ENG" + }, + { + "type": "league", + "id": "10068", + "score": 300036, + "name": "Premier League U18", + "ccode": "ENG" + }, + { + "type": "league", + "id": "263", + "score": 300024, + "name": "Premier League", + "ccode": "BLR" + }, + { + "type": "league", + "id": "225", + "score": 300023, + "name": "Premier League", + "ccode": "KAZ" + }, + { + "type": "league", + "id": "461", + "score": 300021, + "name": "Premier League", + "ccode": "SIN" + }, + { + "type": "league", + "id": "9986", + "score": 300021, + "name": "Premier League", + "ccode": "CAN" + }, + { + "type": "league", + "id": "262", + "score": 300020, + "name": "Premier League", + "ccode": "AZE" + }, + { + "type": "league", + "id": "10443", + "score": 300019, + "name": "Premier League", + "ccode": "BAN" + }, + { + "type": "league", + "id": "9829", + "score": 300018, + "name": "Premier League Qualification", + "ccode": "UKR" + }, + { + "type": "league", + "id": "9333", + "score": 300017, + "name": "Premier League Qualification", + "ccode": "RUS" + }, + { + "type": "league", + "id": "118", + "score": 300014, + "name": "Premier League", + "ccode": "ARM" + }, + { + "type": "league", + "id": "267", + "score": 300013, + "name": "Premier League", + "ccode": "BIH" + }, + { + "type": "league", + "id": "10783", + "score": 300011, + "name": "Women's Premier League", + "ccode": "KSA" + }, + { + "type": "league", + "id": "9255", + "score": 300010, + "name": "Premier League qualification", + "ccode": "BLR" + }, + { + "type": "league", + "id": "250", + "score": 300008, + "name": "Premier League", + "ccode": "FRO" + }, + { + "type": "league", + "id": "529", + "score": 300008, + "name": "Premier League", + "ccode": "KUW" + } + ] + } +} \ No newline at end of file diff --git a/docs/api_samples/01_search_leagues_mls.json b/docs/api_samples/01_search_leagues_mls.json new file mode 100644 index 0000000..0d2d429 --- /dev/null +++ b/docs/api_samples/01_search_leagues_mls.json @@ -0,0 +1,21 @@ +{ + "status": "success", + "response": { + "suggestions": [ + { + "type": "league", + "id": "130", + "score": 300491, + "name": "MLS", + "ccode": "USA" + }, + { + "type": "league", + "id": "10282", + "score": 300014, + "name": "MLS Next Pro", + "ccode": "USA" + } + ] + } +} \ No newline at end of file diff --git a/docs/api_samples/02_search_teams_arsenal.json b/docs/api_samples/02_search_teams_arsenal.json new file mode 100644 index 0000000..08e32f2 --- /dev/null +++ b/docs/api_samples/02_search_teams_arsenal.json @@ -0,0 +1,79 @@ +{ + "status": "success", + "response": { + "suggestions": [ + { + "type": "team", + "id": "9825", + "score": 300993, + "name": "Arsenal", + "leagueId": 47, + "leagueName": "Premier League" + }, + { + "type": "team", + "id": "258657", + "score": 300043, + "name": "Arsenal (W)", + "leagueId": 9227, + "leagueName": "WSL" + }, + { + "type": "team", + "id": "950214", + "score": 300010, + "name": "Arsenal U21", + "leagueId": 9084, + "leagueName": "Premier League 2" + }, + { + "type": "team", + "id": "1113566", + "score": 300008, + "name": "Arsenal U18", + "leagueId": 10068, + "leagueName": "Premier League U18" + }, + { + "type": "team", + "id": "10098", + "score": 300001, + "name": "Arsenal Sarandi", + "leagueId": 9213, + "leagueName": "Primera B Metropolitana" + }, + { + "type": "team", + "id": "1677", + "score": 300001, + "name": "Arsenal Tula", + "leagueId": 338, + "leagueName": "First League" + }, + { + "type": "team", + "id": "1142489", + "score": 300000, + "name": "Arsenal Dzerzhinsk", + "leagueId": 263, + "leagueName": "Premier League" + }, + { + "type": "team", + "id": "324771", + "score": 300000, + "name": "FK Arsenal Tivat", + "leagueId": 232, + "leagueName": "1. CFL" + }, + { + "type": "team", + "id": "553807", + "score": 300000, + "name": "Arsenal Tula II", + "leagueId": 9123, + "leagueName": "Second League Division B Group 3" + } + ] + } +} \ No newline at end of file diff --git a/docs/api_samples/02_search_teams_tfc.json b/docs/api_samples/02_search_teams_tfc.json new file mode 100644 index 0000000..a41c381 --- /dev/null +++ b/docs/api_samples/02_search_teams_tfc.json @@ -0,0 +1,31 @@ +{ + "status": "success", + "response": { + "suggestions": [ + { + "type": "team", + "id": "56453", + "score": 300012, + "name": "Toronto FC", + "leagueId": 130, + "leagueName": "Major League Soccer" + }, + { + "type": "team", + "id": "1022954", + "score": 300001, + "name": "Inter Toronto FC", + "leagueId": 9986, + "leagueName": "Premier League" + }, + { + "type": "team", + "id": "614319", + "score": 300000, + "name": "Toronto FC II", + "leagueId": 10282, + "leagueName": "MLS Next Pro" + } + ] + } +} \ No newline at end of file diff --git a/docs/api_samples/03_league_matches_epl.json b/docs/api_samples/03_league_matches_epl.json new file mode 100644 index 0000000..cb49fec --- /dev/null +++ b/docs/api_samples/03_league_matches_epl.json @@ -0,0 +1,13735 @@ +{ + "status": "success", + "response": { + "matches": [ + { + "id": "4813374", + "pageUrl": "/matches/liverpool-vs-afc-bournemouth/2he69q#4813374", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 4 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 4 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-15T19:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813375", + "pageUrl": "/matches/aston-villa-vs-newcastle-united/3h9v0m#4813375", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-16T11:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813376", + "pageUrl": "/matches/fulham-vs-brighton-hove-albion/3c2rvp#4813376", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-16T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813378", + "pageUrl": "/matches/sunderland-vs-west-ham-united/2fbl3n#4813378", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 3 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 3 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-16T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813379", + "pageUrl": "/matches/burnley-vs-tottenham-hotspur/2bss1j#4813379", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 3 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 3 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-16T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813380", + "pageUrl": "/matches/manchester-city-vs-wolverhampton-wanderers/2emo8d#4813380", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 4 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-16T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813381", + "pageUrl": "/matches/chelsea-vs-crystal-palace/2rhvvj#4813381", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-17T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813377", + "pageUrl": "/matches/brentford-vs-nottingham-forest/3crchb#4813377", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 3 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 3 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-17T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813382", + "pageUrl": "/matches/arsenal-vs-manchester-united/3c3mu0#4813382", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-17T15:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813383", + "pageUrl": "/matches/leeds-united-vs-everton/2fdf72#4813383", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-18T19:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813394", + "pageUrl": "/matches/chelsea-vs-west-ham-united/2f5ck5#4813394", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 5 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-22T19:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 5", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813392", + "pageUrl": "/matches/manchester-city-vs-tottenham-hotspur/2egtpx#4813392", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-23T11:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813385", + "pageUrl": "/matches/wolverhampton-wanderers-vs-afc-bournemouth/2gwdd2#4813385", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 1 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 1 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-23T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813387", + "pageUrl": "/matches/brentford-vs-aston-villa/3dciw4#4813387", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 1 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 1 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-23T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813388", + "pageUrl": "/matches/burnley-vs-sunderland/2anx64#4813388", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 2 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 2 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-23T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813386", + "pageUrl": "/matches/leeds-united-vs-arsenal/2rkmmx#4813386", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 5 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 5 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-23T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "5 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813389", + "pageUrl": "/matches/crystal-palace-vs-nottingham-forest/3bfk5h#4813389", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-24T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813390", + "pageUrl": "/matches/everton-vs-brighton-hove-albion/2y16fs#4813390", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 2 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 2 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-24T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813391", + "pageUrl": "/matches/fulham-vs-manchester-united/3cqww9#4813391", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-24T15:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813393", + "pageUrl": "/matches/liverpool-vs-newcastle-united/2ygyxm#4813393", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-25T19:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813397", + "pageUrl": "/matches/chelsea-vs-fulham/2s2omg#4813397", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-30T11:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813400", + "pageUrl": "/matches/burnley-vs-manchester-united/2tcrst#4813400", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 3 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 3 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-30T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813402", + "pageUrl": "/matches/sunderland-vs-brentford/2sw7v2#4813402", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 2 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 2 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-30T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813403", + "pageUrl": "/matches/tottenham-hotspur-vs-afc-bournemouth/2gqg4e#4813403", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-30T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813404", + "pageUrl": "/matches/wolverhampton-wanderers-vs-everton/2gso21#4813404", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 2 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 2 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-30T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813398", + "pageUrl": "/matches/leeds-united-vs-newcastle-united/2wdjjd#4813398", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-30T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813396", + "pageUrl": "/matches/manchester-city-vs-brighton-hove-albion/2vnwg2#4813396", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-31T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813401", + "pageUrl": "/matches/west-ham-united-vs-nottingham-forest/2xv42z#4813401", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-31T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813399", + "pageUrl": "/matches/liverpool-vs-arsenal/2tmaz7#4813399", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-31T15:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813395", + "pageUrl": "/matches/crystal-palace-vs-aston-villa/3c0md7#4813395", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-08-31T18:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813406", + "pageUrl": "/matches/arsenal-vs-nottingham-forest/3bf4p3#4813406", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 3 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 3 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-13T11:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813405", + "pageUrl": "/matches/afc-bournemouth-vs-brighton-hove-albion/2y583t#4813405", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-13T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813409", + "pageUrl": "/matches/sunderland-vs-crystal-palace/2rojsh#4813409", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-13T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813410", + "pageUrl": "/matches/everton-vs-aston-villa/2ykmb4#4813410", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-13T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813411", + "pageUrl": "/matches/leeds-united-vs-fulham/2s5tto#4813411", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-13T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813413", + "pageUrl": "/matches/wolverhampton-wanderers-vs-newcastle-united/2xxjcy#4813413", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 1 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 1 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-13T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813414", + "pageUrl": "/matches/tottenham-hotspur-vs-west-ham-united/2ghkm2#4813414", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-13T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813407", + "pageUrl": "/matches/chelsea-vs-brentford/2spihp#4813407", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 2 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 2 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-13T19:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813408", + "pageUrl": "/matches/burnley-vs-liverpool/2cfu6v#4813408", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-14T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813412", + "pageUrl": "/matches/manchester-city-vs-manchester-united/2wabz2#4813412", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-14T15:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813420", + "pageUrl": "/matches/liverpool-vs-everton/2hagld#4813420", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-20T11:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813417", + "pageUrl": "/matches/tottenham-hotspur-vs-brighton-hove-albion/2x42vj#4813417", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-20T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813418", + "pageUrl": "/matches/burnley-vs-nottingham-forest/2sq9j2#4813418", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 1 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 1 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-20T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813423", + "pageUrl": "/matches/west-ham-united-vs-crystal-palace/2toa9m#4813423", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-20T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813424", + "pageUrl": "/matches/leeds-united-vs-wolverhampton-wanderers/2ep8dz#4813424", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-20T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813421", + "pageUrl": "/matches/chelsea-vs-manchester-united/2w9xj5#4813421", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-20T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813419", + "pageUrl": "/matches/fulham-vs-brentford/38wlut#4813419", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 3 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 3 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-20T19:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813415", + "pageUrl": "/matches/afc-bournemouth-vs-newcastle-united/2ysbu8#4813415", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-21T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813422", + "pageUrl": "/matches/sunderland-vs-aston-villa/2wdjjm#4813422", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-21T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813416", + "pageUrl": "/matches/manchester-city-vs-arsenal/2rhvvi#4813416", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 1 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 1 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-21T15:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813426", + "pageUrl": "/matches/brentford-vs-manchester-united/3dfzjk#4813426", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 3 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 3 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-27T11:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813427", + "pageUrl": "/matches/chelsea-vs-brighton-hove-albion/2vni1p#4813427", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-27T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813428", + "pageUrl": "/matches/liverpool-vs-crystal-palace/2tmp8g#4813428", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 2 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 2 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-27T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813430", + "pageUrl": "/matches/leeds-united-vs-afc-bournemouth/2fh3fh#4813430", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 2 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 2 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-27T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813431", + "pageUrl": "/matches/burnley-vs-manchester-city/2ai7j8#4813431", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 5 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 5 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-27T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "5 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813433", + "pageUrl": "/matches/sunderland-vs-nottingham-forest/2vtwiu#4813433", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-27T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813434", + "pageUrl": "/matches/tottenham-hotspur-vs-wolverhampton-wanderers/2fydv8#4813434", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-27T19:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813425", + "pageUrl": "/matches/fulham-vs-aston-villa/3cnglp#4813425", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 3 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 3 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-28T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813432", + "pageUrl": "/matches/arsenal-vs-newcastle-united/3c42by#4813432", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 1 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 1 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-28T15:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813429", + "pageUrl": "/matches/west-ham-united-vs-everton/2hby1v#4813429", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-09-29T19:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813435", + "pageUrl": "/matches/afc-bournemouth-vs-fulham/2uiul6#4813435", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 3 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 3 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-03T19:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813441", + "pageUrl": "/matches/leeds-united-vs-tottenham-hotspur/2ejdsf#4813441", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-04T11:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813436", + "pageUrl": "/matches/west-ham-united-vs-arsenal/2tnw09#4813436", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-04T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813442", + "pageUrl": "/matches/sunderland-vs-manchester-united/2wgr5i#4813442", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-04T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813439", + "pageUrl": "/matches/chelsea-vs-liverpool/2f3vr7#4813439", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-04T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813437", + "pageUrl": "/matches/burnley-vs-aston-villa/2t9lxd#4813437", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 2 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 2 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-05T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813440", + "pageUrl": "/matches/everton-vs-crystal-palace/2tttz7#4813440", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 2 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 2 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-05T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813443", + "pageUrl": "/matches/nottingham-forest-vs-newcastle-united/3gocct#4813443", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-05T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813444", + "pageUrl": "/matches/wolverhampton-wanderers-vs-brighton-hove-albion/2xaiyv#4813444", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-05T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813438", + "pageUrl": "/matches/manchester-city-vs-brentford/2spwom#4813438", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-05T15:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813451", + "pageUrl": "/matches/chelsea-vs-nottingham-forest/2vn3ne#4813451", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-18T11:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813445", + "pageUrl": "/matches/brighton-hove-albion-vs-newcastle-united/3gos5a#4813445", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-18T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813446", + "pageUrl": "/matches/burnley-vs-leeds-united/2akph4#4813446", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 2 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 2 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-18T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813447", + "pageUrl": "/matches/afc-bournemouth-vs-crystal-palace/2txspy#4813447", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 3 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 3 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-18T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813450", + "pageUrl": "/matches/manchester-city-vs-everton/2fauom#4813450", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 2 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 2 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-18T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813452", + "pageUrl": "/matches/sunderland-vs-wolverhampton-wanderers/2esixh#4813452", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 2 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 2 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-18T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813448", + "pageUrl": "/matches/arsenal-vs-fulham/37l643#4813448", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-18T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813453", + "pageUrl": "/matches/tottenham-hotspur-vs-aston-villa/2xnfpj#4813453", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-19T13:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813449", + "pageUrl": "/matches/liverpool-vs-manchester-united/2ygkcb#4813449", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-19T15:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813454", + "pageUrl": "/matches/west-ham-united-vs-brentford/2uwdxd#4813454", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-20T19:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813461", + "pageUrl": "/matches/leeds-united-vs-west-ham-united/2f8a75#4813461", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 2 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 2 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-24T19:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813459", + "pageUrl": "/matches/chelsea-vs-sunderland/2dayh4#4813459", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-25T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813463", + "pageUrl": "/matches/fulham-vs-newcastle-united/3crcfp#4813463", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-25T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813462", + "pageUrl": "/matches/brighton-hove-albion-vs-manchester-united/3goccs#4813462", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 4 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 4 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-25T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813458", + "pageUrl": "/matches/liverpool-vs-brentford/2uusjv#4813458", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 3 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 3 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-25T19:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813455", + "pageUrl": "/matches/afc-bournemouth-vs-nottingham-forest/2y4tjb#4813455", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-26T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813456", + "pageUrl": "/matches/arsenal-vs-crystal-palace/36ytc8#4813456", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 1 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 1 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-26T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813457", + "pageUrl": "/matches/manchester-city-vs-aston-villa/2w74gq#4813457", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-26T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813464", + "pageUrl": "/matches/burnley-vs-wolverhampton-wanderers/2byja7#4813464", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 2 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 2 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-26T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813460", + "pageUrl": "/matches/tottenham-hotspur-vs-everton/2gmqxt#4813460", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-10-26T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813465", + "pageUrl": "/matches/leeds-united-vs-brighton-hove-albion/2vqp9d#4813465", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 3 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 3 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-01T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813466", + "pageUrl": "/matches/burnley-vs-arsenal/2omsup#4813466", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-01T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813467", + "pageUrl": "/matches/crystal-palace-vs-brentford/38a4jj#4813467", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 2 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 2 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-01T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813468", + "pageUrl": "/matches/wolverhampton-wanderers-vs-fulham/2tookg#4813468", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 3 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 3 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-01T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813471", + "pageUrl": "/matches/nottingham-forest-vs-manchester-united/3gnwkc#4813471", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 2 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 2 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-01T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813473", + "pageUrl": "/matches/chelsea-vs-tottenham-hotspur/2eggkj#4813473", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-01T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813469", + "pageUrl": "/matches/liverpool-vs-aston-villa/2ydbmv#4813469", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-01T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813474", + "pageUrl": "/matches/west-ham-united-vs-newcastle-united/2yilb8#4813474", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 3 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 3 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-02T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813470", + "pageUrl": "/matches/manchester-city-vs-afc-bournemouth/2feiv3#4813470", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-02T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813472", + "pageUrl": "/matches/sunderland-vs-everton/2fgq72#4813472", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-03T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813483", + "pageUrl": "/matches/tottenham-hotspur-vs-manchester-united/2xqo0r#4813483", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 2 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 2 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-08T12:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813479", + "pageUrl": "/matches/everton-vs-fulham/2uevfp#4813479", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 2 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 2 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-08T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813484", + "pageUrl": "/matches/burnley-vs-west-ham-united/2cha6h#4813484", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 3 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 3 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-08T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813482", + "pageUrl": "/matches/sunderland-vs-arsenal/2ro5o6#4813482", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 2 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 2 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-08T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813477", + "pageUrl": "/matches/chelsea-vs-wolverhampton-wanderers/2emb2j#4813477", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 3 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 3 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-08T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813475", + "pageUrl": "/matches/afc-bournemouth-vs-aston-villa/2yooch#4813475", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 4 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 4 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-09T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813476", + "pageUrl": "/matches/brentford-vs-newcastle-united/3dgf4m#4813476", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 3 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 3 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-09T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813478", + "pageUrl": "/matches/crystal-palace-vs-brighton-hove-albion/3bfzlv#4813478", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-09T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813481", + "pageUrl": "/matches/leeds-united-vs-nottingham-forest/2vqauu#4813481", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 3 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 3 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-09T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813480", + "pageUrl": "/matches/manchester-city-vs-liverpool/2f48yd#4813480", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-09T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813488", + "pageUrl": "/matches/burnley-vs-chelsea/2ahuos#4813488", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-22T12:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813485", + "pageUrl": "/matches/west-ham-united-vs-afc-bournemouth/2hfnrc#4813485", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-22T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813487", + "pageUrl": "/matches/brentford-vs-brighton-hove-albion/3crs0s#4813487", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-22T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813489", + "pageUrl": "/matches/sunderland-vs-fulham/2s9d8f#4813489", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-22T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813491", + "pageUrl": "/matches/liverpool-vs-nottingham-forest/2xthvt#4813491", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-22T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813494", + "pageUrl": "/matches/wolverhampton-wanderers-vs-crystal-palace/2t3pt4#4813494", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-22T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813493", + "pageUrl": "/matches/manchester-city-vs-newcastle-united/2waqez#4813493", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-22T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813490", + "pageUrl": "/matches/leeds-united-vs-aston-villa/2w9xjd#4813490", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-23T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813486", + "pageUrl": "/matches/tottenham-hotspur-vs-arsenal/2sx06r#4813486", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 4 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 4 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-23T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813492", + "pageUrl": "/matches/everton-vs-manchester-united/2ynv4k#4813492", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-24T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813496", + "pageUrl": "/matches/burnley-vs-brentford/2pu6rd#4813496", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 3 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 3 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-29T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813500", + "pageUrl": "/matches/manchester-city-vs-leeds-united/2d8203#4813500", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-29T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813502", + "pageUrl": "/matches/sunderland-vs-afc-bournemouth/2fkehz#4813502", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 3 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 3 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-29T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813499", + "pageUrl": "/matches/everton-vs-newcastle-united/2yo9qd#4813499", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 4 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-29T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813503", + "pageUrl": "/matches/tottenham-hotspur-vs-fulham/2tici0#4813503", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-29T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813498", + "pageUrl": "/matches/crystal-palace-vs-manchester-united/3c42bz#4813498", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-30T12:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813495", + "pageUrl": "/matches/wolverhampton-wanderers-vs-aston-villa/2xtwe7#4813495", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-30T14:05:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813501", + "pageUrl": "/matches/nottingham-forest-vs-brighton-hove-albion/3fzdi8#4813501", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-30T14:05:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813504", + "pageUrl": "/matches/liverpool-vs-west-ham-united/2h59kq#4813504", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-30T14:05:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813497", + "pageUrl": "/matches/chelsea-vs-arsenal/2rhhrp#4813497", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-11-30T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813505", + "pageUrl": "/matches/everton-vs-afc-bournemouth/2hkv2h#4813505", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-02T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813509", + "pageUrl": "/matches/manchester-city-vs-fulham/2s32rr#4813509", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 4 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 4 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 5 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-02T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 5", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813513", + "pageUrl": "/matches/tottenham-hotspur-vs-newcastle-united/2xr2ka#4813513", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-02T20:15:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813506", + "pageUrl": "/matches/arsenal-vs-brentford/389pak#4813506", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-03T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813507", + "pageUrl": "/matches/brighton-hove-albion-vs-aston-villa/3gku1s#4813507", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 3 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 3 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 4 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-03T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813508", + "pageUrl": "/matches/burnley-vs-crystal-palace/2on6r7#4813508", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-03T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813514", + "pageUrl": "/matches/wolverhampton-wanderers-vs-nottingham-forest/2xa4gh#4813514", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-03T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813510", + "pageUrl": "/matches/chelsea-vs-leeds-united/2d7oy4#4813510", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 3 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 3 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-03T20:15:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813511", + "pageUrl": "/matches/sunderland-vs-liverpool/2fa48t#4813511", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-03T20:15:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813512", + "pageUrl": "/matches/west-ham-united-vs-manchester-united/2yi6pt#4813512", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-04T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813516", + "pageUrl": "/matches/arsenal-vs-aston-villa/3c06vg#4813516", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 2 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 2 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-06T12:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813515", + "pageUrl": "/matches/chelsea-vs-afc-bournemouth/2fe5n5#4813515", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-06T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813518", + "pageUrl": "/matches/everton-vs-nottingham-forest/2y0rvk#4813518", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 3 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 3 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-06T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813521", + "pageUrl": "/matches/manchester-city-vs-sunderland/2dbbjc#4813521", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-06T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813522", + "pageUrl": "/matches/burnley-vs-newcastle-united/2td61d#4813522", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-06T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813523", + "pageUrl": "/matches/tottenham-hotspur-vs-brentford/2u5c8b#4813523", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 2 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 2 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-06T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813520", + "pageUrl": "/matches/leeds-united-vs-liverpool/2f6tdb#4813520", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 3 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 3 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-06T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813517", + "pageUrl": "/matches/west-ham-united-vs-brighton-hove-albion/2xvimt#4813517", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-07T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813519", + "pageUrl": "/matches/crystal-palace-vs-fulham/37llbg#4813519", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-07T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813524", + "pageUrl": "/matches/wolverhampton-wanderers-vs-manchester-united/2xx4sz#4813524", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 4 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-08T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813528", + "pageUrl": "/matches/chelsea-vs-everton/2fahgy#4813528", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-13T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813530", + "pageUrl": "/matches/liverpool-vs-brighton-hove-albion/2xtwfj#4813530", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-13T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813527", + "pageUrl": "/matches/burnley-vs-fulham/2p7opg#4813527", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 2 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 2 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-13T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813525", + "pageUrl": "/matches/wolverhampton-wanderers-vs-arsenal/2t3bl7#4813525", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-13T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813529", + "pageUrl": "/matches/manchester-city-vs-crystal-palace/2ri9zd#4813529", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-14T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813532", + "pageUrl": "/matches/tottenham-hotspur-vs-nottingham-forest/2x3odl#4813532", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 3 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 3 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-14T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813533", + "pageUrl": "/matches/sunderland-vs-newcastle-united/2wh5lv#4813533", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-14T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813534", + "pageUrl": "/matches/west-ham-united-vs-aston-villa/2yexzh#4813534", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 2 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 2 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-14T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813526", + "pageUrl": "/matches/leeds-united-vs-brentford/2sso1t#4813526", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 1 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 1 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-14T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813531", + "pageUrl": "/matches/afc-bournemouth-vs-manchester-united/2yrx85#4813531", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 4 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 4 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 4 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-15T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813542", + "pageUrl": "/matches/chelsea-vs-newcastle-united/2wabz1#4813542", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-20T12:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813535", + "pageUrl": "/matches/burnley-vs-afc-bournemouth/2cpydh#4813535", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 1 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 1 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-20T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813537", + "pageUrl": "/matches/sunderland-vs-brighton-hove-albion/2vuaxm#4813537", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-20T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813541", + "pageUrl": "/matches/manchester-city-vs-west-ham-united/2f5prf#4813541", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-20T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813544", + "pageUrl": "/matches/wolverhampton-wanderers-vs-brentford/2ubp0j#4813544", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-20T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813543", + "pageUrl": "/matches/tottenham-hotspur-vs-liverpool/2gg3ek#4813543", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-20T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813538", + "pageUrl": "/matches/everton-vs-arsenal/2ttfpg#4813538", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-20T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813540", + "pageUrl": "/matches/leeds-united-vs-crystal-palace/2rl0qz#4813540", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 4 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 4 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-20T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813536", + "pageUrl": "/matches/aston-villa-vs-manchester-united/3h9f6s#4813536", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 2 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 2 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-21T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813539", + "pageUrl": "/matches/fulham-vs-nottingham-forest/3c2cdu#4813539", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-22T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813551", + "pageUrl": "/matches/manchester-united-vs-newcastle-united/3hddo2#4813551", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-26T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813552", + "pageUrl": "/matches/manchester-city-vs-nottingham-forest/2vni1q#4813552", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 1 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 1 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-27T12:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813545", + "pageUrl": "/matches/arsenal-vs-brighton-hove-albion/3bfk5g#4813545", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-27T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813546", + "pageUrl": "/matches/afc-bournemouth-vs-brentford/2v5yfp#4813546", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 4 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 4 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-27T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813547", + "pageUrl": "/matches/burnley-vs-everton/2cmc8m#4813547", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-27T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813550", + "pageUrl": "/matches/wolverhampton-wanderers-vs-liverpool/2gm0as#4813550", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-27T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813554", + "pageUrl": "/matches/west-ham-united-vs-fulham/2u9b5i#4813554", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-27T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813548", + "pageUrl": "/matches/chelsea-vs-aston-villa/2w6q11#4813548", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-27T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813553", + "pageUrl": "/matches/leeds-united-vs-sunderland/2dduzo#4813553", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-28T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813549", + "pageUrl": "/matches/tottenham-hotspur-vs-crystal-palace/2sxee8#4813549", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-28T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813557", + "pageUrl": "/matches/burnley-vs-newcastle-united/2td61d#4813557", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 1 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 1 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-30T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813558", + "pageUrl": "/matches/chelsea-vs-afc-bournemouth/2fe5n5#4813558", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-30T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813562", + "pageUrl": "/matches/everton-vs-nottingham-forest/2y0rvk#4813562", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-30T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813564", + "pageUrl": "/matches/west-ham-united-vs-brighton-hove-albion/2xvimt#4813564", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 2 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 2 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-30T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813555", + "pageUrl": "/matches/arsenal-vs-aston-villa/3c06vg#4813555", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 4 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 4 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-30T20:15:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813561", + "pageUrl": "/matches/wolverhampton-wanderers-vs-manchester-united/2xx4sz#4813561", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2025-12-30T20:15:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813559", + "pageUrl": "/matches/crystal-palace-vs-fulham/37llbg#4813559", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-01T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813560", + "pageUrl": "/matches/leeds-united-vs-liverpool/2f6tdb#4813560", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-01T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813556", + "pageUrl": "/matches/tottenham-hotspur-vs-brentford/2u5c8b#4813556", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-01T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813563", + "pageUrl": "/matches/manchester-city-vs-sunderland/2dbbjc#4813563", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-01T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813566", + "pageUrl": "/matches/nottingham-forest-vs-aston-villa/3gke9k#4813566", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 3 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 3 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-03T12:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813567", + "pageUrl": "/matches/burnley-vs-brighton-hove-albion/2sqnq1#4813567", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-03T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813574", + "pageUrl": "/matches/wolverhampton-wanderers-vs-west-ham-united/2gnhk2#4813574", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 3 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 3 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-03T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813565", + "pageUrl": "/matches/afc-bournemouth-vs-arsenal/2txefx#4813565", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-03T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813570", + "pageUrl": "/matches/leeds-united-vs-manchester-united/2wd539#4813570", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-04T12:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813568", + "pageUrl": "/matches/everton-vs-brentford/2v1yu4#4813568", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 2 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 2 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 4 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-04T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813572", + "pageUrl": "/matches/crystal-palace-vs-newcastle-united/3c4hty#4813572", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-04T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813573", + "pageUrl": "/matches/sunderland-vs-tottenham-hotspur/2emo7x#4813573", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-04T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813569", + "pageUrl": "/matches/liverpool-vs-fulham/2u7pyg#4813569", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 2 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 2 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-04T15:15:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813571", + "pageUrl": "/matches/chelsea-vs-manchester-city/2d55kw#4813571", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 1 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 1 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-04T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813584", + "pageUrl": "/matches/west-ham-united-vs-nottingham-forest/2xv42z#4813584", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-06T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813575", + "pageUrl": "/matches/tottenham-hotspur-vs-afc-bournemouth/2gqg4e#4813575", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 3 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 3 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-07T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813577", + "pageUrl": "/matches/sunderland-vs-brentford/2sw7v2#4813577", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 3 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 3 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-07T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813579", + "pageUrl": "/matches/crystal-palace-vs-aston-villa/3c0md7#4813579", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-07T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813580", + "pageUrl": "/matches/wolverhampton-wanderers-vs-everton/2gso21#4813580", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-07T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813581", + "pageUrl": "/matches/chelsea-vs-fulham/2s2omg#4813581", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 2 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 2 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-07T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813582", + "pageUrl": "/matches/manchester-city-vs-brighton-hove-albion/2vnwg2#4813582", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 1 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 1 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-07T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813578", + "pageUrl": "/matches/burnley-vs-manchester-united/2tcrst#4813578", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 2 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 2 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-07T20:15:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813583", + "pageUrl": "/matches/leeds-united-vs-newcastle-united/2wdjjd#4813583", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 4 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 4 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-07T20:15:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813576", + "pageUrl": "/matches/liverpool-vs-arsenal/2tmaz7#4813576", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-08T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813590", + "pageUrl": "/matches/manchester-city-vs-manchester-united/2wabz2#4813590", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-17T12:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813587", + "pageUrl": "/matches/chelsea-vs-brentford/2spihp#4813587", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-17T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813588", + "pageUrl": "/matches/leeds-united-vs-fulham/2s5tto#4813588", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-17T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813589", + "pageUrl": "/matches/burnley-vs-liverpool/2cfu6v#4813589", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-17T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813592", + "pageUrl": "/matches/sunderland-vs-crystal-palace/2rojsh#4813592", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 2 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 2 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-17T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813593", + "pageUrl": "/matches/tottenham-hotspur-vs-west-ham-united/2ghkm2#4813593", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-17T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813591", + "pageUrl": "/matches/arsenal-vs-nottingham-forest/3bf4p3#4813591", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-17T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813594", + "pageUrl": "/matches/wolverhampton-wanderers-vs-newcastle-united/2xxjcy#4813594", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-18T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813585", + "pageUrl": "/matches/everton-vs-aston-villa/2ykmb4#4813585", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-18T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813586", + "pageUrl": "/matches/afc-bournemouth-vs-brighton-hove-albion/2y583t#4813586", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-19T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813604", + "pageUrl": "/matches/sunderland-vs-west-ham-united/2fbl3n#4813604", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 3 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 3 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-24T12:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813598", + "pageUrl": "/matches/burnley-vs-tottenham-hotspur/2bss1j#4813598", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 2 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 2 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-24T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813601", + "pageUrl": "/matches/fulham-vs-brighton-hove-albion/3c2rvp#4813601", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 2 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 2 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-24T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813602", + "pageUrl": "/matches/manchester-city-vs-wolverhampton-wanderers/2emo8d#4813602", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 2 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 2 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-24T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813595", + "pageUrl": "/matches/liverpool-vs-afc-bournemouth/2he69q#4813595", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 3 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 3 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-24T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813597", + "pageUrl": "/matches/brentford-vs-nottingham-forest/3crchb#4813597", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-25T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813599", + "pageUrl": "/matches/chelsea-vs-crystal-palace/2rhvvj#4813599", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-25T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813603", + "pageUrl": "/matches/aston-villa-vs-newcastle-united/3h9v0m#4813603", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-25T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813596", + "pageUrl": "/matches/arsenal-vs-manchester-united/3c3mu0#4813596", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-25T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813600", + "pageUrl": "/matches/leeds-united-vs-everton/2fdf72#4813600", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-26T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813606", + "pageUrl": "/matches/everton-vs-brighton-hove-albion/2y16fs#4813606", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 1 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-31T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813608", + "pageUrl": "/matches/leeds-united-vs-arsenal/2rkmmx#4813608", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 4 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-31T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813614", + "pageUrl": "/matches/wolverhampton-wanderers-vs-afc-bournemouth/2gwdd2#4813614", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-31T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813607", + "pageUrl": "/matches/chelsea-vs-west-ham-united/2f5ck5#4813607", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 3 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 3 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-31T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813609", + "pageUrl": "/matches/liverpool-vs-newcastle-united/2ygyxm#4813609", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 4 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 4 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-01-31T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813605", + "pageUrl": "/matches/brentford-vs-aston-villa/3dciw4#4813605", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-01T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813610", + "pageUrl": "/matches/fulham-vs-manchester-united/3cqww9#4813610", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 3 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 3 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-01T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813611", + "pageUrl": "/matches/crystal-palace-vs-nottingham-forest/3bfk5h#4813611", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 1 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 1 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-01T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813613", + "pageUrl": "/matches/manchester-city-vs-tottenham-hotspur/2egtpx#4813613", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 2 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 2 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-01T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813612", + "pageUrl": "/matches/burnley-vs-sunderland/2anx64#4813612", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 3 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 3 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-02T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813620", + "pageUrl": "/matches/leeds-united-vs-nottingham-forest/2vqauu#4813620", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 3 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 3 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-06T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813622", + "pageUrl": "/matches/tottenham-hotspur-vs-manchester-united/2xqo0r#4813622", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-07T12:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813615", + "pageUrl": "/matches/afc-bournemouth-vs-aston-villa/2yooch#4813615", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 1 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 1 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-07T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813616", + "pageUrl": "/matches/sunderland-vs-arsenal/2ro5o6#4813616", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 3 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 3 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-07T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813618", + "pageUrl": "/matches/burnley-vs-west-ham-united/2cha6h#4813618", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-07T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813619", + "pageUrl": "/matches/everton-vs-fulham/2uevfp#4813619", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 1 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-07T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813624", + "pageUrl": "/matches/chelsea-vs-wolverhampton-wanderers/2emb2j#4813624", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 1 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-07T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813623", + "pageUrl": "/matches/brentford-vs-newcastle-united/3dgf4m#4813623", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-07T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813617", + "pageUrl": "/matches/crystal-palace-vs-brighton-hove-albion/3bfzlv#4813617", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-08T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813621", + "pageUrl": "/matches/manchester-city-vs-liverpool/2f48yd#4813621", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-08T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813627", + "pageUrl": "/matches/chelsea-vs-leeds-united/2d7oy4#4813627", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 2 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-10T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813629", + "pageUrl": "/matches/everton-vs-afc-bournemouth/2hkv2h#4813629", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 1 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-10T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813633", + "pageUrl": "/matches/tottenham-hotspur-vs-newcastle-united/2xr2ka#4813633", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-10T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813634", + "pageUrl": "/matches/west-ham-united-vs-manchester-united/2yi6pt#4813634", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-10T20:15:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813625", + "pageUrl": "/matches/brighton-hove-albion-vs-aston-villa/3gku1s#4813625", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-11T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813630", + "pageUrl": "/matches/manchester-city-vs-fulham/2s32rr#4813630", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 3 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-11T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813631", + "pageUrl": "/matches/wolverhampton-wanderers-vs-nottingham-forest/2xa4gh#4813631", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-11T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813628", + "pageUrl": "/matches/burnley-vs-crystal-palace/2on6r7#4813628", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 2 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 2 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-11T19:40:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813632", + "pageUrl": "/matches/sunderland-vs-liverpool/2fa48t#4813632", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-11T20:15:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813626", + "pageUrl": "/matches/arsenal-vs-brentford/389pak#4813626", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 1 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 1 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-12T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813684", + "pageUrl": "/matches/wolverhampton-wanderers-vs-arsenal/2t3bl7#4813684", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 2 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 2 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-18T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813635", + "pageUrl": "/matches/leeds-united-vs-aston-villa/2w9xjd#4813635", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-21T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813636", + "pageUrl": "/matches/brentford-vs-brighton-hove-albion/3crs0s#4813636", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-21T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813637", + "pageUrl": "/matches/burnley-vs-chelsea/2ahuos#4813637", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-21T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813644", + "pageUrl": "/matches/west-ham-united-vs-afc-bournemouth/2hfnrc#4813644", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-21T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813640", + "pageUrl": "/matches/manchester-city-vs-newcastle-united/2waqez#4813640", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 2 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 2 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-21T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813638", + "pageUrl": "/matches/wolverhampton-wanderers-vs-crystal-palace/2t3pt4#4813638", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-22T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813641", + "pageUrl": "/matches/liverpool-vs-nottingham-forest/2xthvt#4813641", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-22T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813642", + "pageUrl": "/matches/sunderland-vs-fulham/2s9d8f#4813642", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-22T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813643", + "pageUrl": "/matches/tottenham-hotspur-vs-arsenal/2sx06r#4813643", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 4 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-22T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813639", + "pageUrl": "/matches/everton-vs-manchester-united/2ynv4k#4813639", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-23T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813654", + "pageUrl": "/matches/wolverhampton-wanderers-vs-aston-villa/2xtwe7#4813654", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 2 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 2 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-27T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813645", + "pageUrl": "/matches/sunderland-vs-afc-bournemouth/2fkehz#4813645", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 1 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 1 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-28T12:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813648", + "pageUrl": "/matches/burnley-vs-brentford/2pu6rd#4813648", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 3 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 3 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 4 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-28T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813651", + "pageUrl": "/matches/liverpool-vs-west-ham-united/2h59kq#4813651", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 5 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 5 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-28T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "5 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813653", + "pageUrl": "/matches/everton-vs-newcastle-united/2yo9qd#4813653", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-28T15:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813650", + "pageUrl": "/matches/manchester-city-vs-leeds-united/2d8203#4813650", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-02-28T17:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813647", + "pageUrl": "/matches/nottingham-forest-vs-brighton-hove-albion/3fzdi8#4813647", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 2 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-01T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813649", + "pageUrl": "/matches/tottenham-hotspur-vs-fulham/2tici0#4813649", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 2 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 2 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-01T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813652", + "pageUrl": "/matches/crystal-palace-vs-manchester-united/3c42bz#4813652", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 2 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-01T14:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813646", + "pageUrl": "/matches/chelsea-vs-arsenal/2rhhrp#4813646", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 2 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-01T16:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813655", + "pageUrl": "/matches/afc-bournemouth-vs-brentford/2v5yfp#4813655", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-03T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813658", + "pageUrl": "/matches/burnley-vs-everton/2cmc8m#4813658", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 2 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 2 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-03T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813660", + "pageUrl": "/matches/leeds-united-vs-sunderland/2dduzo#4813660", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-03T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813664", + "pageUrl": "/matches/wolverhampton-wanderers-vs-liverpool/2gm0as#4813664", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 2 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 2 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-03T20:15:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813656", + "pageUrl": "/matches/chelsea-vs-aston-villa/2w6q11#4813656", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 1 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 4 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-04T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813657", + "pageUrl": "/matches/arsenal-vs-brighton-hove-albion/3bfk5g#4813657", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-04T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813659", + "pageUrl": "/matches/west-ham-united-vs-fulham/2u9b5i#4813659", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-04T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813661", + "pageUrl": "/matches/manchester-city-vs-nottingham-forest/2vni1q#4813661", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 2 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 2 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 2 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-04T19:30:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813662", + "pageUrl": "/matches/manchester-united-vs-newcastle-united/3hddo2#4813662", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 2 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 1 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-04T20:15:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813663", + "pageUrl": "/matches/tottenham-hotspur-vs-crystal-palace/2sxee8#4813663", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 1 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 3 + }, + "displayTournament": true, + "notStarted": false, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-05T20:00:00Z", + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + } + }, + { + "id": "4813667", + "pageUrl": "/matches/burnley-vs-afc-bournemouth/2cpydh#4813667", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-14T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813673", + "pageUrl": "/matches/sunderland-vs-brighton-hove-albion/2vuaxm#4813673", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-14T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813665", + "pageUrl": "/matches/everton-vs-arsenal/2ttfpg#4813665", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-14T17:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813668", + "pageUrl": "/matches/chelsea-vs-newcastle-united/2wabz1#4813668", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-14T17:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813674", + "pageUrl": "/matches/manchester-city-vs-west-ham-united/2f5prf#4813674", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-14T20:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813669", + "pageUrl": "/matches/leeds-united-vs-crystal-palace/2rl0qz#4813669", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-15T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813671", + "pageUrl": "/matches/aston-villa-vs-manchester-united/3h9f6s#4813671", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-15T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813672", + "pageUrl": "/matches/fulham-vs-nottingham-forest/3c2cdu#4813672", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-15T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813670", + "pageUrl": "/matches/tottenham-hotspur-vs-liverpool/2gg3ek#4813670", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-15T16:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813666", + "pageUrl": "/matches/wolverhampton-wanderers-vs-brentford/2ubp0j#4813666", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-16T20:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813675", + "pageUrl": "/matches/afc-bournemouth-vs-manchester-united/2yrx85#4813675", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-20T20:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813677", + "pageUrl": "/matches/liverpool-vs-brighton-hove-albion/2xtwfj#4813677", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-21T12:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813679", + "pageUrl": "/matches/burnley-vs-fulham/2p7opg#4813679", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-21T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813681", + "pageUrl": "/matches/manchester-city-vs-crystal-palace/2ri9zd#4813681", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-21T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813678", + "pageUrl": "/matches/chelsea-vs-everton/2fahgy#4813678", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-21T17:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813680", + "pageUrl": "/matches/leeds-united-vs-brentford/2sso1t#4813680", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-21T20:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813682", + "pageUrl": "/matches/sunderland-vs-newcastle-united/2wh5lv#4813682", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-22T12:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813676", + "pageUrl": "/matches/west-ham-united-vs-aston-villa/2yexzh#4813676", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-22T14:15:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813683", + "pageUrl": "/matches/tottenham-hotspur-vs-nottingham-forest/2x3odl#4813683", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-03-22T14:15:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813694", + "pageUrl": "/matches/wolverhampton-wanderers-vs-west-ham-united/2gnhk2#4813694", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-10T19:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813685", + "pageUrl": "/matches/afc-bournemouth-vs-arsenal/2txefx#4813685", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-11T11:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813686", + "pageUrl": "/matches/everton-vs-brentford/2v1yu4#4813686", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-11T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813687", + "pageUrl": "/matches/burnley-vs-brighton-hove-albion/2sqnq1#4813687", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-11T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813689", + "pageUrl": "/matches/crystal-palace-vs-newcastle-united/3c4hty#4813689", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-11T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813692", + "pageUrl": "/matches/nottingham-forest-vs-aston-villa/3gke9k#4813692", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-11T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813690", + "pageUrl": "/matches/liverpool-vs-fulham/2u7pyg#4813690", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-11T16:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813693", + "pageUrl": "/matches/sunderland-vs-tottenham-hotspur/2emo7x#4813693", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-12T13:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813688", + "pageUrl": "/matches/chelsea-vs-manchester-city/2d55kw#4813688", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-12T15:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813691", + "pageUrl": "/matches/leeds-united-vs-manchester-united/2wd539#4813691", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-13T19:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813696", + "pageUrl": "/matches/fulham-vs-brentford/38wlut#4813696", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-18T11:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813695", + "pageUrl": "/matches/sunderland-vs-aston-villa/2wdjjm#4813695", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-18T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813700", + "pageUrl": "/matches/leeds-united-vs-wolverhampton-wanderers/2ep8dz#4813700", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-18T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813702", + "pageUrl": "/matches/afc-bournemouth-vs-newcastle-united/2ysbu8#4813702", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-18T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813703", + "pageUrl": "/matches/burnley-vs-nottingham-forest/2sq9j2#4813703", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-18T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813704", + "pageUrl": "/matches/tottenham-hotspur-vs-brighton-hove-albion/2x42vj#4813704", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-18T16:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813697", + "pageUrl": "/matches/chelsea-vs-manchester-united/2w9xj5#4813697", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-18T19:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813699", + "pageUrl": "/matches/liverpool-vs-everton/2hagld#4813699", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-19T13:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813701", + "pageUrl": "/matches/manchester-city-vs-arsenal/2rhvvi#4813701", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-19T15:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813698", + "pageUrl": "/matches/west-ham-united-vs-crystal-palace/2toa9m#4813698", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-20T19:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813712", + "pageUrl": "/matches/sunderland-vs-nottingham-forest/2vtwiu#4813712", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-24T19:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813709", + "pageUrl": "/matches/fulham-vs-aston-villa/3cnglp#4813709", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-25T11:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813705", + "pageUrl": "/matches/leeds-united-vs-afc-bournemouth/2fh3fh#4813705", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-25T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813710", + "pageUrl": "/matches/liverpool-vs-crystal-palace/2tmp8g#4813710", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-25T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813713", + "pageUrl": "/matches/west-ham-united-vs-everton/2hby1v#4813713", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-25T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813714", + "pageUrl": "/matches/tottenham-hotspur-vs-wolverhampton-wanderers/2fydv8#4813714", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-25T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813706", + "pageUrl": "/matches/arsenal-vs-newcastle-united/3c42by#4813706", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-25T16:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813708", + "pageUrl": "/matches/burnley-vs-manchester-city/2ai7j8#4813708", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-26T13:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813707", + "pageUrl": "/matches/chelsea-vs-brighton-hove-albion/2vni1p#4813707", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-26T15:30:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813711", + "pageUrl": "/matches/brentford-vs-manchester-united/3dfzjk#4813711", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-04-27T19:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813715", + "pageUrl": "/matches/afc-bournemouth-vs-crystal-palace/2txspy#4813715", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-02T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813716", + "pageUrl": "/matches/arsenal-vs-fulham/37l643#4813716", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-02T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813717", + "pageUrl": "/matches/tottenham-hotspur-vs-aston-villa/2xnfpj#4813717", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-02T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813718", + "pageUrl": "/matches/west-ham-united-vs-brentford/2uwdxd#4813718", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-02T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813719", + "pageUrl": "/matches/chelsea-vs-nottingham-forest/2vn3ne#4813719", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-02T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813720", + "pageUrl": "/matches/manchester-city-vs-everton/2fauom#4813720", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-02T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813721", + "pageUrl": "/matches/burnley-vs-leeds-united/2akph4#4813721", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-02T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813722", + "pageUrl": "/matches/liverpool-vs-manchester-united/2ygkcb#4813722", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-02T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813723", + "pageUrl": "/matches/brighton-hove-albion-vs-newcastle-united/3gos5a#4813723", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-02T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813724", + "pageUrl": "/matches/sunderland-vs-wolverhampton-wanderers/2esixh#4813724", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-02T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813725", + "pageUrl": "/matches/wolverhampton-wanderers-vs-brighton-hove-albion/2xaiyv#4813725", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-09T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813726", + "pageUrl": "/matches/burnley-vs-aston-villa/2t9lxd#4813726", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-09T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813727", + "pageUrl": "/matches/everton-vs-crystal-palace/2tttz7#4813727", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-09T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813728", + "pageUrl": "/matches/afc-bournemouth-vs-fulham/2uiul6#4813728", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-09T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813729", + "pageUrl": "/matches/chelsea-vs-liverpool/2f3vr7#4813729", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-09T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813730", + "pageUrl": "/matches/manchester-city-vs-brentford/2spwom#4813730", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-09T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813731", + "pageUrl": "/matches/nottingham-forest-vs-newcastle-united/3gocct#4813731", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-09T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813732", + "pageUrl": "/matches/sunderland-vs-manchester-united/2wgr5i#4813732", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-09T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813733", + "pageUrl": "/matches/leeds-united-vs-tottenham-hotspur/2ejdsf#4813733", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-09T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813734", + "pageUrl": "/matches/west-ham-united-vs-arsenal/2tnw09#4813734", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-09T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813735", + "pageUrl": "/matches/manchester-city-vs-afc-bournemouth/2feiv3#4813735", + "opponent": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "home": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "away": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-17T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813736", + "pageUrl": "/matches/burnley-vs-arsenal/2omsup#4813736", + "opponent": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "home": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "away": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-17T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813737", + "pageUrl": "/matches/liverpool-vs-aston-villa/2ydbmv#4813737", + "opponent": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "home": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "away": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-17T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813738", + "pageUrl": "/matches/crystal-palace-vs-brentford/38a4jj#4813738", + "opponent": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "home": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "away": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-17T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813739", + "pageUrl": "/matches/chelsea-vs-tottenham-hotspur/2eggkj#4813739", + "opponent": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "home": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "away": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-17T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813740", + "pageUrl": "/matches/sunderland-vs-everton/2fgq72#4813740", + "opponent": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "home": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "away": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-17T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813741", + "pageUrl": "/matches/leeds-united-vs-brighton-hove-albion/2vqp9d#4813741", + "opponent": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "home": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "away": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-17T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813742", + "pageUrl": "/matches/nottingham-forest-vs-manchester-united/3gnwkc#4813742", + "opponent": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "home": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "away": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-17T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813743", + "pageUrl": "/matches/west-ham-united-vs-newcastle-united/2yilb8#4813743", + "opponent": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "home": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "away": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-17T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813744", + "pageUrl": "/matches/wolverhampton-wanderers-vs-fulham/2tookg#4813744", + "opponent": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "home": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "away": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-17T14:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813745", + "pageUrl": "/matches/brighton-hove-albion-vs-manchester-united/3goccs#4813745", + "opponent": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "home": { + "id": "10204", + "name": "Brighton", + "score": 0 + }, + "away": { + "id": "10260", + "name": "Man United", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-24T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813746", + "pageUrl": "/matches/burnley-vs-wolverhampton-wanderers/2byja7#4813746", + "opponent": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "home": { + "id": "8191", + "name": "Burnley", + "score": 0 + }, + "away": { + "id": "8602", + "name": "Wolves", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-24T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813747", + "pageUrl": "/matches/arsenal-vs-crystal-palace/36ytc8#4813747", + "opponent": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "home": { + "id": "9826", + "name": "Crystal Palace", + "score": 0 + }, + "away": { + "id": "9825", + "name": "Arsenal", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-24T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813748", + "pageUrl": "/matches/fulham-vs-newcastle-united/3crcfp#4813748", + "opponent": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "home": { + "id": "9879", + "name": "Fulham", + "score": 0 + }, + "away": { + "id": "10261", + "name": "Newcastle", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-24T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813749", + "pageUrl": "/matches/liverpool-vs-brentford/2uusjv#4813749", + "opponent": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "home": { + "id": "8650", + "name": "Liverpool", + "score": 0 + }, + "away": { + "id": "9937", + "name": "Brentford", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-24T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813750", + "pageUrl": "/matches/manchester-city-vs-aston-villa/2w74gq#4813750", + "opponent": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "home": { + "id": "8456", + "name": "Man City", + "score": 0 + }, + "away": { + "id": "10252", + "name": "Aston Villa", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-24T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813751", + "pageUrl": "/matches/afc-bournemouth-vs-nottingham-forest/2y4tjb#4813751", + "opponent": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "home": { + "id": "10203", + "name": "Nottm Forest", + "score": 0 + }, + "away": { + "id": "8678", + "name": "Bournemouth", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-24T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813752", + "pageUrl": "/matches/chelsea-vs-sunderland/2dayh4#4813752", + "opponent": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "home": { + "id": "8472", + "name": "Sunderland", + "score": 0 + }, + "away": { + "id": "8455", + "name": "Chelsea", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-24T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813753", + "pageUrl": "/matches/tottenham-hotspur-vs-everton/2gmqxt#4813753", + "opponent": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "home": { + "id": "8586", + "name": "Tottenham", + "score": 0 + }, + "away": { + "id": "8668", + "name": "Everton", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-24T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + }, + { + "id": "4813754", + "pageUrl": "/matches/leeds-united-vs-west-ham-united/2f8a75#4813754", + "opponent": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "home": { + "id": "8654", + "name": "West Ham", + "score": 0 + }, + "away": { + "id": "8463", + "name": "Leeds", + "score": 0 + }, + "displayTournament": true, + "notStarted": true, + "tournament": { + "stage": "" + }, + "status": { + "utcTime": "2026-05-24T15:00:00Z", + "started": false, + "cancelled": false, + "finished": false + } + } + ] + } +} \ No newline at end of file diff --git a/docs/api_samples/03_league_matches_mls.json b/docs/api_samples/03_league_matches_mls.json new file mode 100644 index 0000000..a981095 --- /dev/null +++ b/docs/api_samples/03_league_matches_mls.json @@ -0,0 +1,6 @@ +{ + "status": "success", + "response": { + "matches": [] + } +} \ No newline at end of file diff --git a/docs/api_samples/03_matches_by_date_20260308.json b/docs/api_samples/03_matches_by_date_20260308.json new file mode 100644 index 0000000..00a79d4 --- /dev/null +++ b/docs/api_samples/03_matches_by_date_20260308.json @@ -0,0 +1,18703 @@ +{ + "status": "success", + "response": { + "matches": [ + { + "id": 4829537, + "leagueId": 54, + "time": "08.03.2026 15:30", + "home": { + "id": 8152, + "score": 0, + "name": "St. Pauli", + "longName": "St. Pauli" + }, + "away": { + "id": 9810, + "score": 0, + "name": "Frankfurt", + "longName": "Eintracht Frankfurt" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T14:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:30:23", + "secondHalfStarted": "08.03.2026 16:36:49" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772980200000 + }, + { + "id": 4829538, + "leagueId": 54, + "time": "08.03.2026 17:30", + "home": { + "id": 8149, + "score": 1, + "name": "Union Berlin", + "redCards": 1, + "longName": "Union Berlin" + }, + "away": { + "id": 8697, + "score": 4, + "name": "Werder Bremen", + "longName": "Werder Bremen" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T16:30:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 17:30:05", + "secondHalfStarted": "08.03.2026 18:38:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772987400000 + }, + { + "id": 5186380, + "leagueId": 908818, + "time": "07.03.2026 21:00", + "home": { + "id": 10261, + "score": 1, + "name": "Newcastle", + "longName": "Newcastle United" + }, + "away": { + "id": 8456, + "score": 3, + "name": "Man City", + "longName": "Manchester City" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:00:09", + "secondHalfStarted": "07.03.2026 22:03:18" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 5186378, + "leagueId": 908818, + "time": "08.03.2026 13:00", + "home": { + "id": 9879, + "score": 0, + "name": "Fulham", + "longName": "Fulham" + }, + "away": { + "id": 8466, + "score": 1, + "name": "Southampton", + "longName": "Southampton" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:01:11", + "secondHalfStarted": "08.03.2026 14:04:40" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 5186379, + "leagueId": 908818, + "time": "08.03.2026 14:30", + "home": { + "id": 9799, + "score": 1, + "name": "Port Vale", + "longName": "Port Vale" + }, + "away": { + "id": 8472, + "score": 0, + "name": "Sunderland", + "longName": "Sunderland" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:38:15", + "secondHalfStarted": "08.03.2026 15:36:06" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 5186381, + "leagueId": 908818, + "time": "08.03.2026 17:30", + "home": { + "id": 8463, + "score": 3, + "name": "Leeds", + "longName": "Leeds United" + }, + "away": { + "id": 9850, + "score": 0, + "name": "Norwich", + "longName": "Norwich City" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T16:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:30:17", + "secondHalfStarted": "08.03.2026 18:39:35" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772987400000 + }, + { + "id": 4837370, + "leagueId": 87, + "time": "07.03.2026 21:00", + "home": { + "id": 8315, + "score": 0, + "name": "Athletic Club", + "longName": "Athletic Club" + }, + "away": { + "id": 8634, + "score": 1, + "name": "Barcelona", + "longName": "Barcelona" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:01:00", + "secondHalfStarted": "07.03.2026 22:05:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 4837376, + "leagueId": 87, + "time": "08.03.2026 14:00", + "home": { + "id": 10205, + "score": 2, + "name": "Villarreal", + "longName": "Villarreal" + }, + "away": { + "id": 10268, + "score": 1, + "name": "Elche", + "longName": "Elche" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:00:30", + "secondHalfStarted": "08.03.2026 15:03:20" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4837375, + "leagueId": 87, + "time": "08.03.2026 16:15", + "home": { + "id": 8305, + "score": 2, + "name": "Getafe", + "longName": "Getafe" + }, + "away": { + "id": 8603, + "score": 0, + "name": "Real Betis", + "longName": "Real Betis" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T15:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:16:40", + "secondHalfStarted": "08.03.2026 17:25:11" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982900000 + }, + { + "id": 4837379, + "leagueId": 87, + "time": "08.03.2026 18:30", + "home": { + "id": 8302, + "score": 1, + "name": "Sevilla", + "longName": "Sevilla" + }, + "away": { + "id": 8370, + "score": 1, + "name": "Rayo Vallecano", + "longName": "Rayo Vallecano" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T17:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:31:37", + "secondHalfStarted": "08.03.2026 19:38:53" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772991000000 + }, + { + "id": 4830682, + "leagueId": 53, + "time": "07.03.2026 21:05", + "home": { + "id": 9941, + "score": 0, + "name": "Toulouse", + "longName": "Toulouse" + }, + "away": { + "id": 8592, + "score": 1, + "name": "Marseille", + "longName": "Marseille" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-07T20:05:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:05:17", + "secondHalfStarted": "07.03.2026 22:09:46" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772913900000 + }, + { + "id": 4830676, + "leagueId": 53, + "time": "08.03.2026 15:00", + "home": { + "id": 8588, + "score": 3, + "name": "Lens", + "longName": "Lens" + }, + "away": { + "id": 8550, + "score": 0, + "name": "Metz", + "longName": "Metz" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:00:47", + "secondHalfStarted": "08.03.2026 16:07:13" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4830675, + "leagueId": 53, + "time": "08.03.2026 17:15", + "home": { + "id": 8521, + "score": 2, + "name": "Brest", + "longName": "Brest" + }, + "away": { + "id": 9746, + "score": 0, + "name": "Le Havre", + "longName": "Le Havre" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T16:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:15:40", + "secondHalfStarted": "08.03.2026 18:19:35" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772986500000 + }, + { + "id": 4830677, + "leagueId": 53, + "time": "08.03.2026 17:15", + "home": { + "id": 8639, + "score": 1, + "name": "Lille", + "longName": "Lille" + }, + "away": { + "id": 8689, + "score": 1, + "name": "Lorient", + "longName": "Lorient" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T16:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:15:16", + "secondHalfStarted": "08.03.2026 18:20:51" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772986500000 + }, + { + "id": 4830680, + "leagueId": 53, + "time": "08.03.2026 17:15", + "home": { + "id": 9831, + "score": 0, + "name": "Nice", + "longName": "Nice" + }, + "away": { + "id": 9851, + "score": 4, + "name": "Rennes", + "longName": "Rennes" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T16:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:15:30", + "secondHalfStarted": "08.03.2026 18:22:35" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772986500000 + }, + { + "id": 5071021, + "leagueId": 913550, + "time": "07.03.2026 20:30", + "home": { + "id": 6580, + "score": 0, + "name": "New England", + "longName": "New England Revolution" + }, + "away": { + "id": 8259, + "score": 0, + "name": "Houston", + "longName": "Houston Dynamo FC" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-07T19:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:30:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772911800000 + }, + { + "id": 5071022, + "leagueId": 913550, + "time": "07.03.2026 20:30", + "home": { + "id": 546238, + "score": 5, + "name": "NYCFC", + "longName": "New York City FC" + }, + "away": { + "id": 267810, + "score": 0, + "name": "Orlando", + "redCards": 1, + "longName": "Orlando City" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-07T19:30:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "07.03.2026 20:40:19", + "secondHalfStarted": "07.03.2026 21:52:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "5 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772911800000 + }, + { + "id": 5071020, + "leagueId": 913550, + "time": "07.03.2026 22:30", + "home": { + "id": 6602, + "score": 1, + "name": "DC United", + "longName": "DC United" + }, + "away": { + "id": 960720, + "score": 2, + "name": "Inter Miami CF", + "longName": "Inter Miami CF" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-07T21:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:42:31", + "secondHalfStarted": "07.03.2026 23:45:22" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772919000000 + }, + { + "id": 5071023, + "leagueId": 913550, + "time": "08.03.2026 01:30", + "home": { + "id": 773958, + "score": 2, + "name": "Atlanta United", + "longName": "Atlanta United" + }, + "away": { + "id": 6606, + "score": 3, + "name": "Salt Lake", + "longName": "Real Salt Lake" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T00:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:40:10", + "secondHalfStarted": "08.03.2026 02:47:25" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772929800000 + }, + { + "id": 5071024, + "leagueId": 913550, + "time": "08.03.2026 01:30", + "home": { + "id": 1323940, + "score": 3, + "name": "Charlotte FC", + "longName": "Charlotte FC" + }, + "away": { + "id": 1218886, + "score": 1, + "name": "Austin FC", + "redCards": 1, + "longName": "Austin FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T00:30:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 01:40:51", + "secondHalfStarted": "08.03.2026 02:52:21" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772929800000 + }, + { + "id": 5071027, + "leagueId": 913550, + "time": "08.03.2026 01:30", + "home": { + "id": 6001, + "score": 0, + "name": "Columbus", + "longName": "Columbus Crew" + }, + "away": { + "id": 6397, + "score": 0, + "name": "Chicago", + "longName": "Chicago Fire FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T00:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:40:46", + "secondHalfStarted": "08.03.2026 02:45:18" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772929800000 + }, + { + "id": 5071031, + "leagueId": 913550, + "time": "08.03.2026 01:30", + "home": { + "id": 191716, + "score": 0, + "name": "Philadelphia", + "longName": "Philadelphia Union" + }, + "away": { + "id": 6603, + "score": 1, + "name": "San Jose", + "longName": "San Jose Earthquakes" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T00:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:40:43", + "secondHalfStarted": "08.03.2026 02:42:51" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772929800000 + }, + { + "id": 5071030, + "leagueId": 913550, + "time": "08.03.2026 02:30", + "home": { + "id": 915807, + "score": 3, + "name": "Nashville SC", + "longName": "Nashville SC" + }, + "away": { + "id": 207242, + "score": 1, + "name": "Minnesota", + "longName": "Minnesota United" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T01:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 02:40:23", + "secondHalfStarted": "08.03.2026 03:48:11" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772933400000 + }, + { + "id": 5071028, + "leagueId": 913550, + "time": "08.03.2026 02:30", + "home": { + "id": 6604, + "score": 0, + "name": "Sporting KC", + "longName": "Sporting Kansas City" + }, + "away": { + "id": 1701119, + "score": 1, + "name": "San Diego FC", + "longName": "San Diego FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T01:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 02:40:18", + "secondHalfStarted": "08.03.2026 03:41:17" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772933400000 + }, + { + "id": 5071032, + "leagueId": 913550, + "time": "08.03.2026 02:30", + "home": { + "id": 1427963, + "score": 0, + "name": "St. Louis City", + "longName": "St. Louis City" + }, + "away": { + "id": 130394, + "score": 1, + "name": "Seattle Sounders", + "longName": "Seattle Sounders FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T01:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 02:40:27", + "secondHalfStarted": "08.03.2026 03:44:02" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772933400000 + }, + { + "id": 5071026, + "leagueId": 913550, + "time": "08.03.2026 03:30", + "home": { + "id": 8314, + "score": 4, + "name": "Colorado", + "longName": "Colorado Rapids" + }, + "away": { + "id": 6637, + "score": 1, + "name": "LA Galaxy", + "redCards": 1, + "longName": "LA Galaxy" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T02:30:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 03:41:17", + "secondHalfStarted": "08.03.2026 04:43:41" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772937000000 + }, + { + "id": 5071029, + "leagueId": 913550, + "time": "08.03.2026 04:30", + "home": { + "id": 867280, + "score": 1, + "name": "LAFC", + "longName": "Los Angeles FC" + }, + "away": { + "id": 6399, + "score": 0, + "name": "Dallas", + "longName": "FC Dallas" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T03:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 04:40:20", + "secondHalfStarted": "08.03.2026 05:43:41" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772940600000 + }, + { + "id": 5071034, + "leagueId": 913550, + "time": "08.03.2026 04:30", + "home": { + "id": 307690, + "score": 1, + "name": "Portland", + "longName": "Portland Timbers" + }, + "away": { + "id": 307691, + "score": 4, + "name": "Vancouver", + "longName": "Vancouver Whitecaps" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T03:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 04:40:35", + "secondHalfStarted": "08.03.2026 05:43:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772940600000 + }, + { + "id": 4803313, + "leagueId": 55, + "time": "07.03.2026 20:45", + "home": { + "id": 9885, + "score": 4, + "name": "Juventus", + "longName": "Juventus" + }, + "away": { + "id": 6479, + "score": 0, + "name": "Pisa", + "longName": "Pisa" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-07T19:45:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:45:13", + "secondHalfStarted": "07.03.2026 21:46:29" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772912700000 + }, + { + "id": 4803315, + "leagueId": 55, + "time": "08.03.2026 12:30", + "home": { + "id": 9888, + "score": 2, + "name": "Lecce", + "longName": "Lecce" + }, + "away": { + "id": 7801, + "score": 1, + "name": "Cremonese", + "longName": "Cremonese" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T11:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:33:43", + "secondHalfStarted": "08.03.2026 13:37:53" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772969400000 + }, + { + "id": 4803317, + "leagueId": 55, + "time": "08.03.2026 15:00", + "home": { + "id": 9857, + "score": 1, + "name": "Bologna", + "longName": "Bologna" + }, + "away": { + "id": 9876, + "score": 2, + "name": "Hellas Verona", + "longName": "Hellas Verona" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:01:14", + "secondHalfStarted": "08.03.2026 16:06:21" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4803311, + "leagueId": 55, + "time": "08.03.2026 15:00", + "home": { + "id": 8535, + "score": 0, + "name": "Fiorentina", + "longName": "Fiorentina" + }, + "away": { + "id": 10167, + "score": 0, + "name": "Parma", + "longName": "Parma" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:03:10", + "secondHalfStarted": "08.03.2026 16:08:17" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4803312, + "leagueId": 55, + "time": "08.03.2026 18:00", + "home": { + "id": 10233, + "score": 2, + "name": "Genoa", + "longName": "Genoa" + }, + "away": { + "id": 8686, + "score": 1, + "name": "Roma", + "longName": "Roma" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:01:25", + "secondHalfStarted": "08.03.2026 19:04:58" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 4870099, + "leagueId": 165, + "time": "08.03.2026 14:00", + "home": { + "id": 4675, + "score": 2, + "name": "Boluspor", + "longName": "Boluspor" + }, + "away": { + "id": 1281818, + "score": 0, + "name": "Igdir FK", + "redCards": 1, + "longName": "Igdir FK" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 13:59:46", + "secondHalfStarted": "08.03.2026 15:04:34" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4870098, + "leagueId": 165, + "time": "08.03.2026 18:00", + "home": { + "id": 658811, + "score": 3, + "name": "Bodrum FK", + "redCards": 1, + "longName": "Bodrum FK" + }, + "away": { + "id": 863838, + "score": 4, + "name": "Esenler Erokspor", + "longName": "Esenler Erokspor" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 18:03:09", + "secondHalfStarted": "08.03.2026 19:08:42" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 4817298, + "leagueId": 900416, + "time": "08.03.2026 13:00", + "home": { + "id": 6362, + "score": 6, + "name": "Banik Ostrava", + "longName": "Banik Ostrava" + }, + "away": { + "id": 1860, + "score": 2, + "name": "FC Zlin", + "longName": "FC Zlin" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:03:07", + "secondHalfStarted": "08.03.2026 14:04:24" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "6 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 4817299, + "leagueId": 900416, + "time": "08.03.2026 15:30", + "home": { + "id": 1712, + "score": 0, + "name": "Hradec Kralove", + "longName": "Hradec Kralove" + }, + "away": { + "id": 6033, + "score": 3, + "name": "Viktoria Plzen", + "longName": "Viktoria Plzen" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T14:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:31:01", + "secondHalfStarted": "08.03.2026 16:35:09" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772980200000 + }, + { + "id": 4817300, + "leagueId": 900416, + "time": "08.03.2026 15:30", + "home": { + "id": 143833, + "score": 1, + "name": "Karvina", + "longName": "Karvina" + }, + "away": { + "id": 2406, + "score": 2, + "name": "Pardubice", + "longName": "Pardubice" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T14:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:31:55", + "secondHalfStarted": "08.03.2026 16:34:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772980200000 + }, + { + "id": 4817297, + "leagueId": 900416, + "time": "08.03.2026 18:30", + "home": { + "id": 7787, + "score": 3, + "name": "Slavia Prague", + "longName": "Slavia Prague" + }, + "away": { + "id": 10247, + "score": 1, + "name": "Sparta Prague", + "longName": "Sparta Prague" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T17:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:34:30", + "secondHalfStarted": "08.03.2026 19:45:51" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772991000000 + }, + { + "id": 5208284, + "leagueId": 922965, + "time": "08.03.2026 18:00", + "home": { + "id": 103598, + "score": 2, + "name": "DAC 1904 Dunajska Streda", + "longName": "DAC 1904 Dunajska Streda" + }, + "away": { + "id": 2437, + "score": 1, + "name": "Zeleziarne Podbrezova", + "longName": "Zeleziarne Podbrezova" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:01:10", + "secondHalfStarted": "08.03.2026 19:04:04" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 5208467, + "leagueId": 922967, + "time": "08.03.2026 15:30", + "home": { + "id": 611956, + "score": 3, + "name": "Komarno", + "longName": "Komarno" + }, + "away": { + "id": 10186, + "score": 0, + "name": "Ruzomberok", + "longName": "Ruzomberok" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T14:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:33:08", + "secondHalfStarted": "08.03.2026 16:35:33" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772980200000 + }, + { + "id": 4829869, + "leagueId": 146, + "time": "07.03.2026 20:30", + "home": { + "id": 9911, + "score": 3, + "name": "Bochum", + "longName": "Bochum" + }, + "away": { + "id": 8350, + "score": 2, + "name": "Kaiserslautern", + "longName": "Kaiserslautern" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-07T19:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:32:50", + "secondHalfStarted": "07.03.2026 21:38:44" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772911800000 + }, + { + "id": 4829872, + "leagueId": 146, + "time": "08.03.2026 13:30", + "home": { + "id": 9904, + "score": 1, + "name": "Hannover 96", + "longName": "Hannover 96" + }, + "away": { + "id": 8357, + "score": 2, + "name": "Greuther F\u00fcrth", + "longName": "Greuther F\u00fcrth" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T12:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:32:49", + "secondHalfStarted": "08.03.2026 14:33:31" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973000000 + }, + { + "id": 4829873, + "leagueId": 146, + "time": "08.03.2026 13:30", + "home": { + "id": 8295, + "score": 3, + "name": "Karlsruher SC", + "longName": "Karlsruher SC" + }, + "away": { + "id": 8480, + "score": 3, + "name": "Dynamo Dresden", + "longName": "Dynamo Dresden" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T12:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:31:04", + "secondHalfStarted": "08.03.2026 14:36:41" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973000000 + }, + { + "id": 4829876, + "leagueId": 146, + "time": "08.03.2026 13:30", + "home": { + "id": 8171, + "score": 1, + "name": "Preussen M\u00fcnster", + "longName": "Preussen M\u00fcnster" + }, + "away": { + "id": 8177, + "score": 2, + "name": "Hertha BSC", + "longName": "Hertha BSC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T12:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:32:49", + "secondHalfStarted": "08.03.2026 14:40:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973000000 + }, + { + "id": 5139655, + "leagueId": 918603, + "time": "08.03.2026 14:30", + "home": { + "id": 154788, + "score": 1, + "name": "ASIL Lysi", + "longName": "ASIL Lysi" + }, + "away": { + "id": 154796, + "score": 3, + "name": "PAEEK", + "longName": "PAEEK" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "8", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:32:32", + "secondHalfStarted": "08.03.2026 15:34:59" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4836315, + "leagueId": 900626, + "time": "08.03.2026 10:30", + "home": { + "id": 10053, + "score": 3, + "name": "Admira Wacker", + "longName": "Admira Wacker" + }, + "away": { + "id": 10009, + "score": 3, + "name": "SK Austria Klagenfurt", + "longName": "SK Austria Klagenfurt" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T09:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 10:31:19", + "secondHalfStarted": "08.03.2026 11:32:02" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772962200000 + }, + { + "id": 4838206, + "leagueId": 901093, + "time": "08.03.2026 10:30", + "home": { + "id": 10184, + "score": 1, + "name": "FC Petrzalka 1898", + "longName": "FC Petrzalka 1898" + }, + "away": { + "id": 558382, + "score": 1, + "name": "Lokomotiva Zvolen", + "redCards": 1, + "longName": "Lokomotiva Zvolen" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "19", + "status": { + "utcTime": "2026-03-08T09:30:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 10:31:19", + "secondHalfStarted": "08.03.2026 11:33:33" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772962200000 + }, + { + "id": 4838207, + "leagueId": 901093, + "time": "08.03.2026 11:00", + "home": { + "id": 1678940, + "score": 3, + "name": "Slavia TU Kosice", + "longName": "Slavia TU Kosice" + }, + "away": { + "id": 2436, + "score": 0, + "name": "Stara Lubovna", + "longName": "Stara Lubovna" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "19", + "status": { + "utcTime": "2026-03-08T10:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 11:01:13", + "secondHalfStarted": "08.03.2026 12:03:45" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772964000000 + }, + { + "id": 4846917, + "leagueId": 208, + "time": "08.03.2026 13:30", + "home": { + "id": 9743, + "score": 3, + "name": "Waldhof Mannheim", + "longName": "Waldhof Mannheim" + }, + "away": { + "id": 89338, + "score": 1, + "name": "TSV Havelse", + "longName": "TSV Havelse" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T12:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:32:49", + "secondHalfStarted": "08.03.2026 14:33:31" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973000000 + }, + { + "id": 4846914, + "leagueId": 208, + "time": "08.03.2026 16:30", + "home": { + "id": 8293, + "score": 4, + "name": "MSV Duisburg", + "longName": "MSV Duisburg" + }, + "away": { + "id": 8271, + "score": 2, + "name": "Saarbr\u00fccken", + "longName": "Saarbr\u00fccken" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T15:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:33:00", + "secondHalfStarted": "08.03.2026 17:38:43" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772983800000 + }, + { + "id": 4846916, + "leagueId": 208, + "time": "08.03.2026 19:30", + "home": { + "id": 8234, + "score": 1, + "name": "Ingolstadt", + "longName": "Ingolstadt" + }, + "away": { + "id": 7783, + "score": 2, + "name": "SC Verl", + "longName": "SC Verl" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T18:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:34:53", + "secondHalfStarted": "08.03.2026 20:34:09" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772994600000 + }, + { + "id": 5185170, + "leagueId": 228, + "time": "08.03.2026 13:15", + "home": { + "id": 169157, + "score": 5, + "name": "Banga Gargzdai", + "longName": "Banga Gargzdai" + }, + "away": { + "id": 257518, + "score": 0, + "name": "Riteriai", + "longName": "Riteriai" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T12:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:19:04", + "secondHalfStarted": "08.03.2026 14:19:20" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "5 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772972100000 + }, + { + "id": 4965726, + "leagueId": 901954, + "time": "08.03.2026 03:00", + "home": { + "id": 1642068, + "score": 2, + "name": "Auckland FC", + "longName": "Auckland FC" + }, + "away": { + "id": 7961, + "score": 2, + "name": "Perth Glory", + "longName": "Perth Glory" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T02:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 03:01:15", + "secondHalfStarted": "08.03.2026 04:04:50" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772935200000 + }, + { + "id": 5210528, + "leagueId": 922122, + "time": "07.03.2026 21:00", + "home": { + "id": 7877, + "score": 2, + "name": "Bahia", + "longName": "Bahia" + }, + "away": { + "id": 7733, + "score": 1, + "name": "Vitoria", + "longName": "Vitoria" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "final", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:03:51", + "secondHalfStarted": "07.03.2026 22:12:09" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 4818538, + "leagueId": 900433, + "time": "07.03.2026 20:45", + "home": { + "id": 7978, + "score": 2, + "name": "Union St.Gilloise", + "longName": "Union St.Gilloise" + }, + "away": { + "id": 9987, + "score": 1, + "name": "Genk", + "longName": "Genk" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-07T19:45:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:46:47", + "secondHalfStarted": "07.03.2026 21:51:49" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772912700000 + }, + { + "id": 4818533, + "leagueId": 900433, + "time": "08.03.2026 13:30", + "home": { + "id": 8342, + "score": 2, + "name": "Club Brugge", + "longName": "Club Brugge" + }, + "away": { + "id": 8635, + "score": 2, + "name": "Anderlecht", + "longName": "Anderlecht" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T12:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:32:49", + "secondHalfStarted": "08.03.2026 14:36:41" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973000000 + }, + { + "id": 4818535, + "leagueId": 900433, + "time": "08.03.2026 16:00", + "home": { + "id": 9991, + "score": 3, + "name": "Gent", + "longName": "Gent" + }, + "away": { + "id": 8203, + "score": 1, + "name": "KV Mechelen", + "longName": "KV Mechelen" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:05:15", + "secondHalfStarted": "08.03.2026 17:12:22" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4818540, + "leagueId": 900433, + "time": "08.03.2026 18:30", + "home": { + "id": 10000, + "score": 0, + "name": "Zulte Waregem", + "longName": "Zulte Waregem" + }, + "away": { + "id": 9985, + "score": 1, + "name": "Standard Liege", + "longName": "Standard Liege" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T17:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:34:30", + "secondHalfStarted": "08.03.2026 19:38:26" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772991000000 + }, + { + "id": 4818539, + "leagueId": 900433, + "time": "08.03.2026 19:15", + "home": { + "id": 9997, + "score": 2, + "name": "St.Truiden", + "longName": "St.Truiden" + }, + "away": { + "id": 9984, + "score": 1, + "name": "Cercle Brugge", + "longName": "Cercle Brugge" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T18:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:18:50", + "secondHalfStarted": "08.03.2026 20:21:17" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772993700000 + }, + { + "id": 5184067, + "leagueId": 530, + "time": "07.03.2026 23:00", + "home": { + "id": 102042, + "score": 2, + "name": "KACM", + "longName": "KACM" + }, + "away": { + "id": 102037, + "score": 1, + "name": "Hassania Agadir", + "longName": "Hassania Agadir" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "15", + "status": { + "utcTime": "2026-03-07T22:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 23:02:17", + "secondHalfStarted": "08.03.2026 00:10:44" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772920800000 + }, + { + "id": 5184071, + "leagueId": 530, + "time": "07.03.2026 23:00", + "home": { + "id": 570487, + "score": 0, + "name": "Olympique Dcheira", + "longName": "Olympique Dcheira" + }, + "away": { + "id": 102043, + "score": 2, + "name": "MAS Fes", + "longName": "MAS Fes" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "15", + "status": { + "utcTime": "2026-03-07T22:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 23:01:32", + "secondHalfStarted": "08.03.2026 00:08:43" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772920800000 + }, + { + "id": 5184068, + "leagueId": 530, + "time": "07.03.2026 23:00", + "home": { + "id": 102049, + "score": 2, + "name": "Raja Casablanca", + "longName": "Raja Casablanca" + }, + "away": { + "id": 102047, + "score": 0, + "name": "Olympic Club de Safi", + "redCards": 1, + "longName": "Olympic Club de Safi" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "15", + "status": { + "utcTime": "2026-03-07T22:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "07.03.2026 23:04:13", + "secondHalfStarted": "08.03.2026 00:08:51" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772920800000 + }, + { + "id": 5184069, + "leagueId": 530, + "time": "07.03.2026 23:00", + "home": { + "id": 950070, + "score": 0, + "name": "Renaissance Club Zemamra", + "longName": "Renaissance Club Zemamra" + }, + "away": { + "id": 102035, + "score": 0, + "name": "FAR Rabat", + "redCards": 1, + "longName": "FAR Rabat" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "15", + "status": { + "utcTime": "2026-03-07T22:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "07.03.2026 23:01:23", + "secondHalfStarted": "08.03.2026 00:06:36" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772920800000 + }, + { + "id": 4832299, + "leagueId": 900625, + "time": "08.03.2026 17:00", + "home": { + "id": 10056, + "score": 1, + "name": "Hartberg", + "longName": "Hartberg" + }, + "away": { + "id": 2433, + "score": 1, + "name": "BW Linz", + "longName": "BW Linz" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:02:00", + "secondHalfStarted": "08.03.2026 18:03:08" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4832300, + "leagueId": 900625, + "time": "08.03.2026 17:00", + "home": { + "id": 9977, + "score": 3, + "name": "LASK", + "longName": "LASK" + }, + "away": { + "id": 1954, + "score": 1, + "name": "Wolfsberger AC", + "longName": "Wolfsberger AC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:02:00", + "secondHalfStarted": "08.03.2026 18:03:49" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4832302, + "leagueId": 900625, + "time": "08.03.2026 17:00", + "home": { + "id": 10015, + "score": 1, + "name": "Rapid Wien", + "longName": "Rapid Wien" + }, + "away": { + "id": 10013, + "score": 0, + "name": "Salzburg", + "longName": "Salzburg" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:02:00", + "secondHalfStarted": "08.03.2026 18:05:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4832301, + "leagueId": 900625, + "time": "08.03.2026 17:00", + "home": { + "id": 10017, + "score": 0, + "name": "Ried", + "longName": "Ried" + }, + "away": { + "id": 10011, + "score": 2, + "name": "Austria Wien", + "longName": "Austria Wien" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:02:00", + "secondHalfStarted": "08.03.2026 18:03:49" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4832303, + "leagueId": 900625, + "time": "08.03.2026 17:00", + "home": { + "id": 10014, + "score": 2, + "name": "Sturm Graz", + "longName": "Sturm Graz" + }, + "away": { + "id": 10008, + "score": 0, + "name": "Altach", + "redCards": 1, + "longName": "Altach" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 17:02:00", + "secondHalfStarted": "08.03.2026 18:03:48" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4832304, + "leagueId": 900625, + "time": "08.03.2026 17:00", + "home": { + "id": 1583, + "score": 2, + "name": "WSG Tirol", + "longName": "WSG Tirol" + }, + "away": { + "id": 10012, + "score": 0, + "name": "Grazer AK", + "redCards": 1, + "longName": "Grazer AK" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 17:02:00", + "secondHalfStarted": "08.03.2026 18:03:49" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 5212717, + "leagueId": 921437, + "time": "07.03.2026 22:00", + "home": { + "id": 8517, + "score": 3, + "name": "Botafogo RJ", + "longName": "Botafogo RJ" + }, + "away": { + "id": 198133, + "score": 1, + "name": "Bangu", + "longName": "Bangu" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "final", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:01:24", + "secondHalfStarted": "07.03.2026 23:09:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5106095, + "leagueId": 900530, + "time": "08.03.2026 14:00", + "home": { + "id": 6447, + "score": 0, + "name": "Yverdon", + "longName": "Yverdon" + }, + "away": { + "id": 289334, + "score": 2, + "name": "FC Stade Lausanne-Ouchy", + "longName": "FC Stade Lausanne-Ouchy" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:46", + "secondHalfStarted": "08.03.2026 15:07:59" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4825461, + "leagueId": 900638, + "time": "08.03.2026 17:30", + "home": { + "id": 10172, + "score": 0, + "name": "QPR", + "longName": "Queens Park Rangers" + }, + "away": { + "id": 8549, + "score": 4, + "name": "Middlesbrough", + "longName": "Middlesbrough" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "36", + "status": { + "utcTime": "2026-03-08T16:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:30:24", + "secondHalfStarted": "08.03.2026 18:32:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772987400000 + }, + { + "id": 5126241, + "leagueId": 915708, + "time": "08.03.2026 16:00", + "home": { + "id": 8609, + "score": 3, + "name": "Sandefjord", + "longName": "Sandefjord" + }, + "away": { + "id": 9919, + "score": 2, + "name": "Start", + "longName": "Start" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:00:58", + "secondHalfStarted": "08.03.2026 17:02:48" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4989788, + "leagueId": 206, + "time": "08.03.2026 14:00", + "home": { + "id": 8617, + "score": 2, + "name": "Tromsdalen", + "longName": "Tromsdalen" + }, + "away": { + "id": 8468, + "score": 3, + "name": "Brann", + "longName": "Brann" + }, + "eliminatedTeamId": null, + "statusId": 11, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:00:15", + "secondHalfStarted": "08.03.2026 15:03:14", + "firstExtraHalfStarted": "08.03.2026 15:58:09", + "secondExtraHalfStarted": "08.03.2026 16:15:44" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "AET", + "shortKey": "afterextratime_short", + "long": "After extra time", + "longKey": "afterextra" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4989787, + "leagueId": 206, + "time": "08.03.2026 16:00", + "home": { + "id": 8531, + "score": 4, + "name": "Bryne", + "longName": "Bryne" + }, + "away": { + "id": 8422, + "score": 2, + "name": "Rosenborg", + "longName": "Rosenborg" + }, + "eliminatedTeamId": null, + "statusId": 11, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:00:20", + "secondHalfStarted": "08.03.2026 17:02:14", + "firstExtraHalfStarted": "08.03.2026 17:56:33", + "secondExtraHalfStarted": "08.03.2026 18:14:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 2", + "reason": { + "short": "AET", + "shortKey": "afterextratime_short", + "long": "After extra time", + "longKey": "afterextra" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4989785, + "leagueId": 206, + "time": "08.03.2026 18:00", + "home": { + "id": 8417, + "score": 2, + "name": "Fredrikstad", + "longName": "Fredrikstad" + }, + "away": { + "id": 8509, + "score": 1, + "name": "Sarpsborg 08", + "longName": "Sarpsborg 08" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:00:46", + "secondHalfStarted": "08.03.2026 19:02:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 5202641, + "leagueId": 9473, + "time": "08.03.2026 14:00", + "home": { + "id": 953498, + "score": 2, + "name": "TS Galaxy", + "longName": "TS Galaxy" + }, + "away": { + "id": 429860, + "score": 0, + "name": "Jacksa Spears", + "longName": "Jacksa Spears" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1/4", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:04:24", + "secondHalfStarted": "08.03.2026 15:01:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 5202642, + "leagueId": 9473, + "time": "08.03.2026 17:00", + "home": { + "id": 102097, + "score": 1, + "name": "Lamontville Golden Arrows", + "penScore": 4, + "longName": "Lamontville Golden Arrows" + }, + "away": { + "id": 149599, + "score": 1, + "name": "Durban City", + "penScore": 5, + "redCards": 1, + "longName": "Durban City" + }, + "eliminatedTeamId": 102097, + "statusId": 13, + "tournamentStage": "1/4", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 17:01:57", + "secondHalfStarted": "08.03.2026 18:05:00", + "firstExtraHalfStarted": "08.03.2026 19:00:00", + "secondExtraHalfStarted": "08.03.2026 19:17:50" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "Pen", + "shortKey": "penalties_short", + "long": "After penalties", + "longKey": "afterpenalties" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 5071560, + "leagueId": 913506, + "time": "08.03.2026 15:00", + "home": { + "id": 9893, + "score": 3, + "name": "IFK G\u00f6teborg", + "longName": "IFK G\u00f6teborg" + }, + "away": { + "id": 6544, + "score": 1, + "name": "Degerfors", + "longName": "Degerfors" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:00:44", + "secondHalfStarted": "08.03.2026 16:02:16" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 5071559, + "leagueId": 913506, + "time": "08.03.2026 15:00", + "home": { + "id": 2004, + "score": 3, + "name": "\u00d6stersunds FK", + "longName": "\u00d6stersunds FK" + }, + "away": { + "id": 8333, + "score": 0, + "name": "Trelleborgs FF", + "longName": "Trelleborgs FF" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:01:56", + "secondHalfStarted": "08.03.2026 16:04:01" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 5071567, + "leagueId": 913507, + "time": "08.03.2026 13:00", + "home": { + "id": 9802, + "score": 2, + "name": "Djurg\u00e5rden", + "longName": "Djurg\u00e5rden" + }, + "away": { + "id": 8501, + "score": 0, + "name": "Brommapojkarna", + "longName": "Brommapojkarna" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:00:35", + "secondHalfStarted": "08.03.2026 14:03:41" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 5071566, + "leagueId": 913507, + "time": "08.03.2026 13:00", + "home": { + "id": 6545, + "score": 3, + "name": "Falkenbergs FF", + "longName": "Falkenbergs FF" + }, + "away": { + "id": 610365, + "score": 2, + "name": "IFK Sk\u00f6vde FK", + "longName": "IFK Sk\u00f6vde FK" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:02:39", + "secondHalfStarted": "08.03.2026 14:07:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 5071573, + "leagueId": 913508, + "time": "08.03.2026 17:00", + "home": { + "id": 10237, + "score": 2, + "name": "Malm\u00f6 FF", + "longName": "Malm\u00f6 FF" + }, + "away": { + "id": 8310, + "score": 1, + "name": "Halmstads BK", + "longName": "Halmstads BK" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:01:57", + "secondHalfStarted": "08.03.2026 18:04:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 5071572, + "leagueId": 913508, + "time": "08.03.2026 17:00", + "home": { + "id": 6692, + "score": 2, + "name": "Varbergs BoIS FC", + "longName": "Varbergs BoIS FC" + }, + "away": { + "id": 191433, + "score": 0, + "name": "IF Karlstad", + "longName": "IF Karlstad" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:01:57", + "secondHalfStarted": "08.03.2026 18:04:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 5071585, + "leagueId": 913510, + "time": "08.03.2026 13:00", + "home": { + "id": 8014, + "score": 1, + "name": "Elfsborg", + "longName": "Elfsborg" + }, + "away": { + "id": 6694, + "score": 2, + "name": "Sirius", + "longName": "Sirius" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:00:35", + "secondHalfStarted": "08.03.2026 14:02:02" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 5071584, + "leagueId": 913510, + "time": "08.03.2026 13:00", + "home": { + "id": 9859, + "score": 1, + "name": "Helsingborg", + "redCards": 1, + "longName": "Helsingborg" + }, + "away": { + "id": 8359, + "score": 1, + "name": "GIF Sundsvall", + "longName": "GIF Sundsvall" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 13:01:17", + "secondHalfStarted": "08.03.2026 14:05:36" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 4878010, + "leagueId": 901499, + "time": "08.03.2026 15:00", + "home": { + "id": 8003, + "score": 2, + "name": "Apollon Limassol", + "longName": "Apollon Limassol" + }, + "away": { + "id": 2134, + "score": 1, + "name": "AEL Limassol", + "longName": "AEL Limassol" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:03:18", + "secondHalfStarted": "08.03.2026 16:08:53" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4878014, + "leagueId": 901499, + "time": "08.03.2026 15:00", + "home": { + "id": 4126, + "score": 0, + "name": "Enosis Paralimni", + "longName": "Enosis Paralimni" + }, + "away": { + "id": 2136, + "score": 4, + "name": "Aris Limassol", + "longName": "Aris Limassol" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:00:49", + "secondHalfStarted": "08.03.2026 16:04:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4878009, + "leagueId": 901499, + "time": "08.03.2026 16:00", + "home": { + "id": 8621, + "score": 0, + "name": "APOEL Nicosia", + "longName": "APOEL Nicosia" + }, + "away": { + "id": 6243, + "score": 2, + "name": "Anorthosis", + "longName": "Anorthosis" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:05:27", + "secondHalfStarted": "08.03.2026 17:10:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 5099886, + "leagueId": 242, + "time": "08.03.2026 18:00", + "home": { + "id": 8113, + "score": 1, + "name": "FC Midtjylland", + "longName": "FC Midtjylland" + }, + "away": { + "id": 8071, + "score": 1, + "name": "AGF", + "longName": "AGF" + }, + "eliminatedTeamId": 8071, + "statusId": 6, + "tournamentStage": "1/2", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:00:12", + "secondHalfStarted": "08.03.2026 19:02:06" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + }, + "aggregatedStr": "2 - 1" + }, + "timeTS": 1772989200000 + }, + { + "id": 4828157, + "leagueId": 111, + "time": "08.03.2026 12:15", + "home": { + "id": 8526, + "score": 1, + "name": "De Graafschap", + "longName": "De Graafschap" + }, + "away": { + "id": 8277, + "score": 4, + "name": "Vitesse", + "longName": "Vitesse" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "30", + "status": { + "utcTime": "2026-03-08T11:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:17:12", + "secondHalfStarted": "08.03.2026 13:22:21" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772968500000 + }, + { + "id": 4828158, + "leagueId": 111, + "time": "08.03.2026 14:30", + "home": { + "id": 8525, + "score": 1, + "name": "Willem II", + "longName": "Willem II" + }, + "away": { + "id": 9835, + "score": 1, + "name": "FC Den Bosch", + "redCards": 1, + "longName": "FC Den Bosch" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "30", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 14:34:48", + "secondHalfStarted": "08.03.2026 15:38:24" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4828159, + "leagueId": 111, + "time": "08.03.2026 16:45", + "home": { + "id": 7788, + "score": 1, + "name": "Cambuur", + "longName": "Cambuur" + }, + "away": { + "id": 278960, + "score": 0, + "name": "Jong FC Utrecht", + "longName": "Jong FC Utrecht" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "30", + "status": { + "utcTime": "2026-03-08T15:45:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:47:55", + "secondHalfStarted": "08.03.2026 17:51:05" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772984700000 + }, + { + "id": 4803633, + "leagueId": 899985, + "time": "07.03.2026 20:15", + "home": { + "id": 8024, + "score": 2, + "name": "Widzew \u0141\u00f3d\u017a", + "longName": "Widzew \u0141\u00f3d\u017a" + }, + "away": { + "id": 2182, + "score": 1, + "name": "Lech Poznan", + "longName": "Lech Poznan" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "24", + "status": { + "utcTime": "2026-03-07T19:15:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:17:36", + "secondHalfStarted": "07.03.2026 21:16:48" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910900000 + }, + { + "id": 4803629, + "leagueId": 899985, + "time": "08.03.2026 12:15", + "home": { + "id": 89466, + "score": 0, + "name": "Motor Lublin", + "longName": "Motor Lublin" + }, + "away": { + "id": 8020, + "score": 0, + "name": "G\u00f3rnik Zabrze", + "longName": "G\u00f3rnik Zabrze" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "24", + "status": { + "utcTime": "2026-03-08T11:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:16:04", + "secondHalfStarted": "08.03.2026 13:19:54" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772968500000 + }, + { + "id": 4803631, + "leagueId": 899985, + "time": "08.03.2026 14:45", + "home": { + "id": 5769, + "score": 0, + "name": "Radomiak Radom", + "longName": "Radomiak Radom" + }, + "away": { + "id": 4023, + "score": 1, + "name": "GKS Katowice", + "longName": "GKS Katowice" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "24", + "status": { + "utcTime": "2026-03-08T13:45:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:46:04", + "secondHalfStarted": "08.03.2026 15:51:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772977500000 + }, + { + "id": 4803632, + "leagueId": 899985, + "time": "08.03.2026 17:30", + "home": { + "id": 4024, + "score": 2, + "name": "Rak\u00f3w Cz\u0119stochowa", + "longName": "Rak\u00f3w Cz\u0119stochowa" + }, + "away": { + "id": 8023, + "score": 0, + "name": "Pogo\u0144 Szczecin", + "redCards": 1, + "longName": "Pogo\u0144 Szczecin" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "24", + "status": { + "utcTime": "2026-03-08T16:30:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 17:30:37", + "secondHalfStarted": "08.03.2026 18:34:30" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772987400000 + }, + { + "id": 4815467, + "leagueId": 900368, + "time": "07.03.2026 20:00", + "home": { + "id": 8640, + "score": 2, + "name": "PSV Eindhoven", + "longName": "PSV Eindhoven" + }, + "away": { + "id": 10229, + "score": 1, + "name": "AZ Alkmaar", + "longName": "AZ Alkmaar" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-07T19:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:01:07", + "secondHalfStarted": "07.03.2026 21:04:43" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910000000 + }, + { + "id": 4815461, + "leagueId": 900368, + "time": "07.03.2026 21:00", + "home": { + "id": 10218, + "score": 1, + "name": "Excelsior", + "longName": "Excelsior" + }, + "away": { + "id": 10228, + "score": 2, + "name": "SC Heerenveen", + "longName": "SC Heerenveen" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:00:19", + "secondHalfStarted": "07.03.2026 22:04:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 4815469, + "leagueId": 900368, + "time": "08.03.2026 12:15", + "home": { + "id": 8614, + "score": 1, + "name": "Sparta Rotterdam", + "longName": "Sparta Rotterdam" + }, + "away": { + "id": 6413, + "score": 1, + "name": "PEC Zwolle", + "longName": "PEC Zwolle" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:15:27", + "secondHalfStarted": "08.03.2026 13:18:37" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772968500000 + }, + { + "id": 4815468, + "leagueId": 900368, + "time": "08.03.2026 14:30", + "home": { + "id": 6422, + "score": 1, + "name": "Fortuna Sittard", + "longName": "Fortuna Sittard" + }, + "away": { + "id": 6414, + "score": 4, + "name": "Telstar", + "longName": "Telstar" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:32:43", + "secondHalfStarted": "08.03.2026 15:37:01" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4815462, + "leagueId": 900368, + "time": "08.03.2026 14:30", + "home": { + "id": 6433, + "score": 1, + "name": "Go Ahead Eagles", + "longName": "Go Ahead Eagles" + }, + "away": { + "id": 8611, + "score": 4, + "name": "FC Twente", + "longName": "FC Twente" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:31:20", + "secondHalfStarted": "08.03.2026 15:33:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4815465, + "leagueId": 900368, + "time": "08.03.2026 16:45", + "home": { + "id": 9761, + "score": 3, + "name": "NAC Breda", + "redCards": 1, + "longName": "NAC Breda" + }, + "away": { + "id": 10235, + "score": 3, + "name": "Feyenoord", + "longName": "Feyenoord" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T15:45:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 16:45:18", + "secondHalfStarted": "08.03.2026 17:53:12" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772984700000 + }, + { + "id": 5165251, + "leagueId": 439, + "time": "08.03.2026 12:00", + "home": { + "id": 316427, + "score": 0, + "name": "FC Meshakhte Tkibuli", + "longName": "FC Meshakhte Tkibuli" + }, + "away": { + "id": 316432, + "score": 0, + "name": "FC Samgurali Tskhaltubo", + "longName": "FC Samgurali Tskhaltubo" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "2", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:03:45", + "secondHalfStarted": "08.03.2026 13:08:02" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 5176399, + "leagueId": 905534, + "time": "07.03.2026 20:30", + "home": { + "id": 8457, + "score": 3, + "name": "Dunfermline Athletic", + "longName": "Dunfermline Athletic" + }, + "away": { + "id": 8485, + "score": 0, + "name": "Aberdeen", + "longName": "Aberdeen" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1/4", + "status": { + "utcTime": "2026-03-07T19:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:31:54", + "secondHalfStarted": "07.03.2026 21:37:24" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772911800000 + }, + { + "id": 5176401, + "leagueId": 905534, + "time": "08.03.2026 14:00", + "home": { + "id": 8548, + "score": 0, + "name": "Rangers", + "penScore": 2, + "longName": "Rangers" + }, + "away": { + "id": 9925, + "score": 0, + "name": "Celtic", + "penScore": 4, + "longName": "Celtic" + }, + "eliminatedTeamId": 8548, + "statusId": 13, + "tournamentStage": "1/4", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:33", + "secondHalfStarted": "08.03.2026 15:06:37", + "firstExtraHalfStarted": "08.03.2026 15:58:44", + "secondExtraHalfStarted": "08.03.2026 16:18:38" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "Pen", + "shortKey": "penalties_short", + "long": "After penalties", + "longKey": "afterpenalties" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 5101143, + "leagueId": 916016, + "time": "07.03.2026 20:30", + "home": { + "id": 4569, + "score": 0, + "name": "Longford Town", + "longName": "Longford Town" + }, + "away": { + "id": 1578, + "score": 0, + "name": "UCD", + "longName": "UCD" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-07T19:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:34:35", + "secondHalfStarted": "07.03.2026 21:34:38" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772911800000 + }, + { + "id": 5191054, + "leagueId": 901329, + "time": "08.03.2026 09:00", + "home": { + "id": 88584, + "score": 1, + "name": "FC Yenisey Krasnoyarsk", + "longName": "FC Yenisey Krasnoyarsk" + }, + "away": { + "id": 49695, + "score": 0, + "name": "KamAZ", + "longName": "KamAZ" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "23", + "status": { + "utcTime": "2026-03-08T08:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 09:02:48", + "secondHalfStarted": "08.03.2026 10:05:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772956800000 + }, + { + "id": 5191053, + "leagueId": 901329, + "time": "08.03.2026 14:00", + "home": { + "id": 8704, + "score": 0, + "name": "Torpedo Moscow", + "longName": "Torpedo Moscow" + }, + "away": { + "id": 1066681, + "score": 2, + "name": "Rodina", + "longName": "Rodina" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "23", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:01:22", + "secondHalfStarted": "08.03.2026 15:08:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 5191052, + "leagueId": 901329, + "time": "08.03.2026 15:30", + "home": { + "id": 198153, + "score": 0, + "name": "Neftekhimik", + "longName": "Neftekhimik" + }, + "away": { + "id": 1692, + "score": 0, + "name": "Fakel", + "longName": "Fakel" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "23", + "status": { + "utcTime": "2026-03-08T14:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:30:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772980200000 + }, + { + "id": 4867637, + "leagueId": 899885, + "time": "08.03.2026 11:45", + "home": { + "id": 10140, + "score": 1, + "name": "Dobrudzha Dobrich", + "longName": "Dobrudzha Dobrich" + }, + "away": { + "id": 10126, + "score": 0, + "name": "Beroe", + "redCards": 1, + "longName": "Beroe" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T10:45:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 11:45:34", + "secondHalfStarted": "08.03.2026 12:49:16" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772966700000 + }, + { + "id": 4867638, + "leagueId": 899885, + "time": "08.03.2026 14:15", + "home": { + "id": 944215, + "score": 0, + "name": "CSKA 1948", + "longName": "CSKA 1948" + }, + "away": { + "id": 10131, + "score": 0, + "name": "Botev Plovdiv", + "longName": "Botev Plovdiv" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T13:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:17:01", + "secondHalfStarted": "08.03.2026 15:21:20" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772975700000 + }, + { + "id": 4867642, + "leagueId": 899885, + "time": "08.03.2026 16:45", + "home": { + "id": 10144, + "score": 2, + "name": "CSKA Sofia", + "longName": "CSKA Sofia" + }, + "away": { + "id": 10128, + "score": 0, + "name": "PFC Lokomotiv Sofia 1929", + "longName": "PFC Lokomotiv Sofia 1929" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T15:45:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:47:22", + "secondHalfStarted": "08.03.2026 17:49:42" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772984700000 + }, + { + "id": 5176429, + "leagueId": 920288, + "time": "07.03.2026 21:00", + "home": { + "id": 197888, + "score": 0, + "name": "Avenida", + "longName": "Avenida" + }, + "away": { + "id": 197884, + "score": 0, + "name": "Inter de Santa Maria", + "longName": "Inter de Santa Maria" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "6", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:03:32", + "secondHalfStarted": "07.03.2026 22:10:57" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 5176430, + "leagueId": 920288, + "time": "07.03.2026 21:00", + "home": { + "id": 1698776, + "score": 2, + "name": "Monsoon", + "longName": "Monsoon" + }, + "away": { + "id": 1320332, + "score": 0, + "name": "Guarany de Bage", + "longName": "Guarany de Bage" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "6", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:03:32", + "secondHalfStarted": "07.03.2026 22:10:57" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 5212732, + "leagueId": 920551, + "time": "07.03.2026 20:00", + "home": { + "id": 165545, + "score": 0, + "name": "Atletico GO", + "longName": "Atletico GO" + }, + "away": { + "id": 9862, + "score": 2, + "name": "Goias", + "longName": "Goias" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "final", + "status": { + "utcTime": "2026-03-07T19:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:00:28", + "secondHalfStarted": "07.03.2026 21:06:16" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910000000 + }, + { + "id": 4814245, + "leagueId": 252, + "time": "08.03.2026 15:00", + "home": { + "id": 10154, + "score": 1, + "name": "Hajduk Split", + "longName": "Hajduk Split" + }, + "away": { + "id": 10156, + "score": 3, + "name": "Dinamo Zagreb", + "longName": "Dinamo Zagreb" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:03:33", + "secondHalfStarted": "08.03.2026 16:10:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4814247, + "leagueId": 252, + "time": "08.03.2026 17:45", + "home": { + "id": 45228, + "score": 0, + "name": "Vukovar 91", + "longName": "Vukovar 91" + }, + "away": { + "id": 10162, + "score": 1, + "name": "Rijeka", + "longName": "Rijeka" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T16:45:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:45:53", + "secondHalfStarted": "08.03.2026 18:48:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772988300000 + }, + { + "id": 4816979, + "leagueId": 197, + "time": "08.03.2026 12:00", + "home": { + "id": 89469, + "score": 2, + "name": "Znicz Pruszkow", + "longName": "Znicz Pruszkow" + }, + "away": { + "id": 8047, + "score": 3, + "name": "Odra Opole", + "longName": "Odra Opole" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "24", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:03:45", + "secondHalfStarted": "08.03.2026 13:06:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4816977, + "leagueId": 197, + "time": "08.03.2026 14:30", + "home": { + "id": 8031, + "score": 0, + "name": "Polonia Bytom", + "longName": "Polonia Bytom" + }, + "away": { + "id": 1601, + "score": 1, + "name": "Ruch Chorzow", + "longName": "Ruch Chorzow" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "24", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:33:31", + "secondHalfStarted": "08.03.2026 15:40:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4835462, + "leagueId": 8935, + "time": "08.03.2026 12:00", + "home": { + "id": 662294, + "score": 0, + "name": "KKS 1925 Kalisz", + "longName": "KKS 1925 Kalisz" + }, + "away": { + "id": 206344, + "score": 1, + "name": "Chojniczanka Chojnice", + "longName": "Chojniczanka Chojnice" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:03:45", + "secondHalfStarted": "08.03.2026 13:05:32" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4835467, + "leagueId": 8935, + "time": "08.03.2026 13:00", + "home": { + "id": 585484, + "score": 1, + "name": "Slask Wroclaw ll", + "longName": "Slask Wroclaw ll" + }, + "away": { + "id": 177358, + "score": 0, + "name": "Olimpia Grudziadz", + "longName": "Olimpia Grudziadz" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:02:02", + "secondHalfStarted": "08.03.2026 14:02:46" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 4835466, + "leagueId": 8935, + "time": "08.03.2026 19:30", + "home": { + "id": 2417, + "score": 3, + "name": "Skierniewice", + "longName": "Skierniewice" + }, + "away": { + "id": 8049, + "score": 2, + "name": "Stal Stalowa Wola", + "longName": "Stal Stalowa Wola" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-08T18:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:34:53", + "secondHalfStarted": "08.03.2026 20:34:09" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772994600000 + }, + { + "id": 5187198, + "leagueId": 8982, + "time": "08.03.2026 11:30", + "home": { + "id": 1782583, + "score": 2, + "name": "Diamond Harbour", + "longName": "Diamond Harbour" + }, + "away": { + "id": 165182, + "score": 1, + "name": "Dempo SC", + "longName": "Dempo SC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "2", + "status": { + "utcTime": "2026-03-08T10:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 11:30:56", + "secondHalfStarted": "08.03.2026 12:37:17" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772965800000 + }, + { + "id": 5187199, + "leagueId": 8982, + "time": "08.03.2026 14:00", + "home": { + "id": 184549, + "score": 2, + "name": "Shillong Lajong", + "longName": "Shillong Lajong" + }, + "away": { + "id": 970686, + "score": 1, + "name": "Real Kashmir FC", + "longName": "Real Kashmir FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "2", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:04:24", + "secondHalfStarted": "08.03.2026 15:05:01" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 5159601, + "leagueId": 920186, + "time": "08.03.2026 15:00", + "home": { + "id": 578655, + "score": 2, + "name": "Mumbai City FC", + "longName": "Mumbai City FC" + }, + "away": { + "id": 1086744, + "score": 2, + "name": "SC Delhi", + "longName": "SC Delhi" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:01:05", + "secondHalfStarted": "08.03.2026 16:05:15" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 5130398, + "leagueId": 918259, + "time": "08.03.2026 04:55", + "home": { + "id": 164739, + "score": 1, + "name": "Fagiano Okayama FC", + "longName": "Fagiano Okayama FC" + }, + "away": { + "id": 8542, + "score": 0, + "name": "Kyoto Sanga FC", + "longName": "Kyoto Sanga FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T03:55:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 05:01:45", + "secondHalfStarted": "08.03.2026 06:03:23" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772942100000 + }, + { + "id": 5130399, + "leagueId": 918259, + "time": "08.03.2026 07:00", + "home": { + "id": 6582, + "score": 3, + "name": "Gamba Osaka", + "longName": "Gamba Osaka" + }, + "away": { + "id": 194016, + "score": 2, + "name": "V-Varen Nagasaki", + "longName": "V-Varen Nagasaki" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T06:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 07:04:40", + "secondHalfStarted": "08.03.2026 08:06:30" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772949600000 + }, + { + "id": 5130516, + "leagueId": 918269, + "time": "08.03.2026 05:00", + "home": { + "id": 584880, + "score": 1, + "name": "Vanraure Hachinohe", + "penScore": 2, + "longName": "Vanraure Hachinohe" + }, + "away": { + "id": 49615, + "score": 1, + "name": "Yokohama FC", + "penScore": 4, + "longName": "Yokohama FC" + }, + "eliminatedTeamId": 584880, + "statusId": 13, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T04:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 05:03:48", + "secondHalfStarted": "08.03.2026 06:07:48" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "Pen", + "shortKey": "penalties_short", + "long": "After penalties", + "longKey": "afterpenalties" + } + }, + "timeTS": 1772942400000 + }, + { + "id": 5130517, + "leagueId": 918269, + "time": "08.03.2026 06:00", + "home": { + "id": 164720, + "score": 0, + "name": "Montedio Yamagata", + "longName": "Montedio Yamagata" + }, + "away": { + "id": 194015, + "score": 1, + "name": "Blaublitz Akita", + "longName": "Blaublitz Akita" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:04:10", + "secondHalfStarted": "08.03.2026 07:06:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5130519, + "leagueId": 918269, + "time": "08.03.2026 06:00", + "home": { + "id": 422974, + "score": 4, + "name": "SC Sagamihara", + "longName": "SC Sagamihara" + }, + "away": { + "id": 164738, + "score": 0, + "name": "Tochigi SC", + "longName": "Tochigi SC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:04:10", + "secondHalfStarted": "08.03.2026 07:06:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5130518, + "leagueId": 918269, + "time": "08.03.2026 06:00", + "home": { + "id": 194029, + "score": 1, + "name": "Tochigi City FC", + "penScore": 3, + "longName": "Tochigi City FC" + }, + "away": { + "id": 162194, + "score": 1, + "name": "Thespa Gunma", + "penScore": 5, + "longName": "Thespa Gunma" + }, + "eliminatedTeamId": 194029, + "statusId": 13, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:04:10", + "secondHalfStarted": "08.03.2026 07:05:46" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "Pen", + "shortKey": "penalties_short", + "long": "After penalties", + "longKey": "afterpenalties" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5130743, + "leagueId": 918271, + "time": "08.03.2026 06:00", + "home": { + "id": 162197, + "score": 0, + "name": "FC Gifu", + "longName": "FC Gifu" + }, + "away": { + "id": 8539, + "score": 1, + "name": "Ventforet Kofu", + "longName": "Ventforet Kofu" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:04:10", + "secondHalfStarted": "08.03.2026 07:05:13" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5130742, + "leagueId": 918271, + "time": "08.03.2026 06:00", + "home": { + "id": 408082, + "score": 4, + "name": "Fukushima United", + "longName": "Fukushima United" + }, + "away": { + "id": 243586, + "score": 2, + "name": "Nagano Parceiro", + "longName": "Nagano Parceiro" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:04:47", + "secondHalfStarted": "08.03.2026 07:07:05" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5130920, + "leagueId": 918272, + "time": "08.03.2026 06:00", + "home": { + "id": 243585, + "score": 1, + "name": "Kamatamare Sanuki", + "longName": "Kamatamare Sanuki" + }, + "away": { + "id": 820969, + "score": 0, + "name": "FC Imabari", + "longName": "FC Imabari" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:04:10", + "secondHalfStarted": "08.03.2026 07:06:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5130919, + "leagueId": 918272, + "time": "08.03.2026 06:00", + "home": { + "id": 164737, + "score": 2, + "name": "Kataller Toyama", + "penScore": 4, + "longName": "Kataller Toyama" + }, + "away": { + "id": 162198, + "score": 2, + "name": "Ehime FC", + "penScore": 3, + "longName": "Ehime FC" + }, + "eliminatedTeamId": 162198, + "statusId": 13, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:04:10", + "secondHalfStarted": "08.03.2026 07:04:40" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "Pen", + "shortKey": "penalties_short", + "long": "After penalties", + "longKey": "afterpenalties" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5131041, + "leagueId": 918272, + "time": "08.03.2026 06:00", + "home": { + "id": 194023, + "score": 0, + "name": "Zweigen Kanazawa", + "longName": "Zweigen Kanazawa" + }, + "away": { + "id": 162199, + "score": 4, + "name": "Tokushima Vortis", + "longName": "Tokushima Vortis" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:04:10", + "secondHalfStarted": "08.03.2026 07:07:23" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5131119, + "leagueId": 918273, + "time": "08.03.2026 06:00", + "home": { + "id": 194010, + "score": 0, + "name": "Gainare Tottori", + "penScore": 7, + "longName": "Gainare Tottori" + }, + "away": { + "id": 194021, + "score": 0, + "name": "FC Ryukyu", + "penScore": 6, + "longName": "FC Ryukyu" + }, + "eliminatedTeamId": 194021, + "statusId": 13, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:04:11", + "secondHalfStarted": "08.03.2026 07:06:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "Pen", + "shortKey": "penalties_short", + "long": "After penalties", + "longKey": "afterpenalties" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5131120, + "leagueId": 918273, + "time": "08.03.2026 06:00", + "home": { + "id": 4427, + "score": 0, + "name": "Oita Trinita", + "penScore": 5, + "longName": "Oita Trinita" + }, + "away": { + "id": 584867, + "score": 0, + "name": "Kagoshima United", + "penScore": 4, + "longName": "Kagoshima United" + }, + "eliminatedTeamId": 584867, + "statusId": 13, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:04:11", + "secondHalfStarted": "08.03.2026 07:06:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "Pen", + "shortKey": "penalties_short", + "long": "After penalties", + "longKey": "afterpenalties" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5131219, + "leagueId": 918273, + "time": "08.03.2026 06:00", + "home": { + "id": 194013, + "score": 1, + "name": "Reilac Shiga", + "longName": "Reilac Shiga" + }, + "away": { + "id": 162196, + "score": 0, + "name": "Roasso Kumamoto", + "longName": "Roasso Kumamoto" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:04:11", + "secondHalfStarted": "08.03.2026 07:05:46" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5200989, + "leagueId": 922584, + "time": "08.03.2026 06:00", + "home": { + "id": 187943, + "score": 1, + "name": "Changwon City", + "longName": "Changwon City" + }, + "away": { + "id": 1335275, + "score": 0, + "name": "Dangjin Citizen", + "longName": "Dangjin Citizen" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:01:13", + "secondHalfStarted": "08.03.2026 07:06:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5200990, + "leagueId": 922584, + "time": "08.03.2026 06:00", + "home": { + "id": 187954, + "score": 3, + "name": "Daejeon Korail", + "longName": "Daejeon Korail" + }, + "away": { + "id": 833668, + "score": 1, + "name": "Chuncheon FC", + "longName": "Chuncheon FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:02:32", + "secondHalfStarted": "08.03.2026 07:06:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5200991, + "leagueId": 922584, + "time": "08.03.2026 06:00", + "home": { + "id": 195451, + "score": 1, + "name": "FC Mokpo", + "redCards": 1, + "longName": "FC Mokpo" + }, + "away": { + "id": 739797, + "score": 1, + "name": "Yangpyeong", + "redCards": 1, + "longName": "Yangpyeong" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "numberOfHomeRedCards": 1, + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 06:01:13", + "secondHalfStarted": "08.03.2026 07:06:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5200992, + "leagueId": 922584, + "time": "08.03.2026 07:00", + "home": { + "id": 930090, + "score": 2, + "name": "Siheung Citizen", + "longName": "Siheung Citizen" + }, + "away": { + "id": 930076, + "score": 1, + "name": "Yeoju FC", + "longName": "Yeoju FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T06:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 07:01:57", + "secondHalfStarted": "08.03.2026 08:05:24" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772949600000 + }, + { + "id": 4888398, + "leagueId": 260, + "time": "08.03.2026 15:00", + "home": { + "id": 10026, + "score": 1, + "name": "Bylis", + "longName": "Bylis" + }, + "away": { + "id": 585403, + "score": 0, + "name": "Vora", + "longName": "Vora" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:00:44", + "secondHalfStarted": "08.03.2026 16:05:15" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4888402, + "leagueId": 260, + "time": "08.03.2026 15:00", + "home": { + "id": 10029, + "score": 0, + "name": "KF Tirana", + "longName": "KF Tirana" + }, + "away": { + "id": 10038, + "score": 1, + "name": "Elbasani", + "longName": "Elbasani" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:03:33", + "secondHalfStarted": "08.03.2026 16:05:15" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4888401, + "leagueId": 260, + "time": "08.03.2026 18:00", + "home": { + "id": 10030, + "score": 1, + "name": "Flamurtari", + "longName": "Flamurtari" + }, + "away": { + "id": 10034, + "score": 0, + "name": "Vllaznia", + "redCards": 1, + "longName": "Vllaznia" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 18:01:00", + "secondHalfStarted": "08.03.2026 19:05:19" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 5139872, + "leagueId": 919356, + "time": "08.03.2026 06:00", + "home": { + "id": 133901, + "score": 1, + "name": "Gimcheon Sangmu", + "longName": "Gimcheon Sangmu" + }, + "away": { + "id": 46038, + "score": 1, + "name": "Jeonbuk Hyundai Motors FC", + "longName": "Jeonbuk Hyundai Motors FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "2", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:01:13", + "secondHalfStarted": "08.03.2026 07:03:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5139873, + "leagueId": 919356, + "time": "08.03.2026 08:30", + "home": { + "id": 429440, + "score": 2, + "name": "FC Anyang", + "longName": "FC Anyang" + }, + "away": { + "id": 133898, + "score": 1, + "name": "Jeju SK", + "longName": "Jeju SK" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "2", + "status": { + "utcTime": "2026-03-08T07:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 08:30:56", + "secondHalfStarted": "08.03.2026 09:35:18" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772955000000 + }, + { + "id": 5155716, + "leagueId": 920066, + "time": "08.03.2026 06:00", + "home": { + "id": 821875, + "score": 1, + "name": "Ansan Greeners", + "longName": "Ansan Greeners" + }, + "away": { + "id": 6092, + "score": 3, + "name": "Busan I'Park", + "longName": "Busan I'Park" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "2", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:01:13", + "secondHalfStarted": "08.03.2026 07:09:49" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5155717, + "leagueId": 920066, + "time": "08.03.2026 06:00", + "home": { + "id": 6614, + "score": 2, + "name": "Seongnam FC", + "longName": "Seongnam FC" + }, + "away": { + "id": 833651, + "score": 2, + "name": "Cheongju FC", + "longName": "Cheongju FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "2", + "status": { + "utcTime": "2026-03-08T05:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 06:01:13", + "secondHalfStarted": "08.03.2026 07:05:46" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772946000000 + }, + { + "id": 5155718, + "leagueId": 920066, + "time": "08.03.2026 08:30", + "home": { + "id": 187960, + "score": 0, + "name": "Cheonan City", + "longName": "Cheonan City" + }, + "away": { + "id": 833649, + "score": 1, + "name": "Gimpo FC", + "longName": "Gimpo FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "2", + "status": { + "utcTime": "2026-03-08T07:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 08:30:56", + "secondHalfStarted": "08.03.2026 09:34:15" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772955000000 + }, + { + "id": 5155719, + "leagueId": 920066, + "time": "08.03.2026 08:30", + "home": { + "id": 739800, + "score": 2, + "name": "Hwaseong FC", + "longName": "Hwaseong FC" + }, + "away": { + "id": 187953, + "score": 0, + "name": "Gimhae FC 2008", + "longName": "Gimhae FC 2008" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "2", + "status": { + "utcTime": "2026-03-08T07:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 08:30:56", + "secondHalfStarted": "08.03.2026 09:33:25" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772955000000 + }, + { + "id": 4837807, + "leagueId": 901075, + "time": "07.03.2026 21:00", + "home": { + "id": 9864, + "score": 3, + "name": "Malaga", + "redCards": 1, + "longName": "Malaga" + }, + "away": { + "id": 10281, + "score": 3, + "name": "Real Valladolid", + "longName": "Real Valladolid" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "07.03.2026 21:01:47", + "secondHalfStarted": "07.03.2026 22:09:02" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 4837812, + "leagueId": 901075, + "time": "08.03.2026 14:00", + "home": { + "id": 8306, + "score": 4, + "name": "Las Palmas", + "longName": "Las Palmas" + }, + "away": { + "id": 357259, + "score": 0, + "name": "AD Ceuta FC", + "longName": "AD Ceuta FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:04:24", + "secondHalfStarted": "08.03.2026 15:06:37" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4837809, + "leagueId": 901075, + "time": "08.03.2026 16:15", + "home": { + "id": 494050, + "score": 1, + "name": "FC Andorra", + "longName": "FC Andorra" + }, + "away": { + "id": 9869, + "score": 0, + "name": "Sporting Gijon", + "longName": "Sporting Gijon" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T15:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:17:21", + "secondHalfStarted": "08.03.2026 17:21:58" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982900000 + }, + { + "id": 4837814, + "leagueId": 901075, + "time": "08.03.2026 18:30", + "home": { + "id": 7854, + "score": 0, + "name": "Leganes", + "longName": "Leganes" + }, + "away": { + "id": 8372, + "score": 1, + "name": "Eibar", + "longName": "Eibar" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T17:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:32:27", + "secondHalfStarted": "08.03.2026 19:34:59" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772991000000 + }, + { + "id": 4837813, + "leagueId": 901075, + "time": "08.03.2026 18:30", + "home": { + "id": 8696, + "score": 4, + "name": "Racing Santander", + "longName": "Racing Santander" + }, + "away": { + "id": 7869, + "score": 3, + "name": "Cordoba", + "longName": "Cordoba" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T17:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:34:30", + "secondHalfStarted": "08.03.2026 19:37:45" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772991000000 + }, + { + "id": 5093622, + "leagueId": 915412, + "time": "08.03.2026 16:00", + "home": { + "id": 750462, + "score": 0, + "name": "Vestri", + "longName": "Vestri" + }, + "away": { + "id": 6343, + "score": 0, + "name": "Stjarnan", + "longName": "Stjarnan" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4825997, + "leagueId": 900639, + "time": "08.03.2026 13:00", + "home": { + "id": 158319, + "score": 1, + "name": "Wimbledon", + "longName": "AFC Wimbledon" + }, + "away": { + "id": 8651, + "score": 0, + "name": "Northampton", + "longName": "Northampton Town" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "36", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:01:18", + "secondHalfStarted": "08.03.2026 14:04:24" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 5169223, + "leagueId": 919710, + "time": "07.03.2026 21:30", + "home": { + "id": 1848, + "score": 3, + "name": "Sporting Cristal", + "longName": "Sporting Cristal" + }, + "away": { + "id": 4410, + "score": 1, + "name": "Alianza Atletico", + "redCards": 2, + "longName": "Alianza Atletico" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "6", + "status": { + "utcTime": "2026-03-07T20:30:00.000Z", + "numberOfAwayRedCards": 2, + "halfs": { + "firstHalfStarted": "07.03.2026 21:31:29", + "secondHalfStarted": "07.03.2026 22:34:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772915400000 + }, + { + "id": 5169220, + "leagueId": 919710, + "time": "08.03.2026 01:00", + "home": { + "id": 305171, + "score": 1, + "name": "Cusco FC", + "longName": "Cusco FC" + }, + "away": { + "id": 920788, + "score": 0, + "name": "Deportivo Garcilaso", + "longName": "Deportivo Garcilaso" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "6", + "status": { + "utcTime": "2026-03-08T00:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:01:19", + "secondHalfStarted": "08.03.2026 02:04:31" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772928000000 + }, + { + "id": 5169215, + "leagueId": 919710, + "time": "08.03.2026 19:15", + "home": { + "id": 1104719, + "score": 2, + "name": "Asociacion Deportiva Tarma", + "longName": "Asociacion Deportiva Tarma" + }, + "away": { + "id": 1573153, + "score": 3, + "name": "ADC Juan Pablo II", + "longName": "ADC Juan Pablo II" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "6", + "status": { + "utcTime": "2026-03-08T18:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:18:07", + "secondHalfStarted": "08.03.2026 20:21:01" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772993700000 + }, + { + "id": 5165637, + "leagueId": 920295, + "time": "08.03.2026 12:00", + "home": { + "id": 47535, + "score": 1, + "name": "Mafra", + "longName": "Mafra" + }, + "away": { + "id": 338305, + "score": 2, + "name": "Vitoria de Guimaraes B", + "redCards": 1, + "longName": "Vitoria de Guimaraes B" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 12:03:45", + "secondHalfStarted": "08.03.2026 13:04:25" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 5165639, + "leagueId": 920295, + "time": "08.03.2026 16:00", + "home": { + "id": 280216, + "score": 1, + "name": "Amarante FC", + "longName": "Amarante FC" + }, + "away": { + "id": 7992, + "score": 0, + "name": "Trofense", + "longName": "Trofense" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:10:59" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 5165669, + "leagueId": 920297, + "time": "08.03.2026 16:00", + "home": { + "id": 2503, + "score": 0, + "name": "Paredes", + "longName": "Paredes" + }, + "away": { + "id": 212796, + "score": 0, + "name": "AD Fafe", + "longName": "AD Fafe" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:10:31" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 5165670, + "leagueId": 920297, + "time": "08.03.2026 16:00", + "home": { + "id": 1796, + "score": 1, + "name": "Sanjoanense", + "redCards": 2, + "longName": "Sanjoanense" + }, + "away": { + "id": 1530180, + "score": 1, + "name": "AD Marco 09", + "redCards": 1, + "longName": "AD Marco 09" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "numberOfHomeRedCards": 2, + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 16:04:01", + "secondHalfStarted": "08.03.2026 17:11:04" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 5165671, + "leagueId": 920297, + "time": "08.03.2026 16:00", + "home": { + "id": 238631, + "score": 1, + "name": "SC Joao Ver", + "longName": "SC Joao Ver" + }, + "away": { + "id": 338303, + "score": 1, + "name": "Braga B", + "longName": "Braga B" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:01:02", + "secondHalfStarted": "08.03.2026 17:06:43" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 5206480, + "leagueId": 920319, + "time": "07.03.2026 21:00", + "home": { + "id": 1838, + "score": 2, + "name": "Progreso", + "longName": "Club Atl\u00e9tico Progreso" + }, + "away": { + "id": 924934, + "score": 2, + "name": "Albion", + "redCards": 1, + "longName": "Albion" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "07.03.2026 21:03:47", + "secondHalfStarted": "07.03.2026 22:05:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 5206479, + "leagueId": 920319, + "time": "08.03.2026 00:30", + "home": { + "id": 8450, + "score": 1, + "name": "Pe\u00f1arol", + "longName": "Club Atletico Penarol" + }, + "away": { + "id": 8562, + "score": 1, + "name": "Danubio", + "longName": "Danubio" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T23:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 00:31:25", + "secondHalfStarted": "08.03.2026 01:37:38" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772926200000 + }, + { + "id": 5206481, + "leagueId": 920319, + "time": "08.03.2026 13:45", + "home": { + "id": 6043, + "score": 1, + "name": "Racing", + "longName": "Racing" + }, + "away": { + "id": 1836, + "score": 0, + "name": "Cerro", + "longName": "Cerro" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-08T12:45:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:46:57", + "secondHalfStarted": "08.03.2026 14:51:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973900000 + }, + { + "id": 5106303, + "leagueId": 916290, + "time": "08.03.2026 00:00", + "home": { + "id": 1942, + "score": 2, + "name": "Atlante", + "redCards": 1, + "longName": "Atlante" + }, + "away": { + "id": 6575, + "score": 1, + "name": "Atletico Morelia", + "redCards": 1, + "longName": "Atletico Morelia" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "9", + "status": { + "utcTime": "2026-03-07T23:00:00.000Z", + "numberOfHomeRedCards": 1, + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 00:03:03", + "secondHalfStarted": "08.03.2026 01:07:43" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772924400000 + }, + { + "id": 5106304, + "leagueId": 916290, + "time": "08.03.2026 02:00", + "home": { + "id": 2548, + "score": 6, + "name": "Irapuato", + "longName": "Irapuato" + }, + "away": { + "id": 452823, + "score": 2, + "name": "Alebrijes", + "longName": "Alebrijes Oaxaca" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "9", + "status": { + "utcTime": "2026-03-08T01:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 02:01:26", + "secondHalfStarted": "08.03.2026 03:06:18" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "6 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772931600000 + }, + { + "id": 5106302, + "leagueId": 916290, + "time": "08.03.2026 04:00", + "home": { + "id": 1374638, + "score": 2, + "name": "Atletico La Paz", + "longName": "Atletico La Paz" + }, + "away": { + "id": 584866, + "score": 0, + "name": "Tlaxcala FC", + "longName": "Tlaxcala FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "9", + "status": { + "utcTime": "2026-03-08T03:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 04:01:09", + "secondHalfStarted": "08.03.2026 05:06:06" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772938800000 + }, + { + "id": 4889989, + "leagueId": 901684, + "time": "08.03.2026 10:00", + "home": { + "id": 1661158, + "score": 1, + "name": "Metalul Buzau", + "longName": "Metalul Buzau" + }, + "away": { + "id": 1787832, + "score": 4, + "name": "Gloria Bistrita", + "longName": "Gloria Bistrita" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T09:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 10:03:53", + "secondHalfStarted": "08.03.2026 11:08:23" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772960400000 + }, + { + "id": 4889997, + "leagueId": 901684, + "time": "08.03.2026 11:00", + "home": { + "id": 408363, + "score": 1, + "name": "CSM Resita", + "longName": "CSM Resita" + }, + "away": { + "id": 1515102, + "score": 3, + "name": "Corvinul Hunedoara", + "longName": "Corvinul Hunedoara" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T10:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 11:03:52", + "secondHalfStarted": "08.03.2026 12:06:52" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772964000000 + }, + { + "id": 5101797, + "leagueId": 916051, + "time": "08.03.2026 00:00", + "home": { + "id": 6578, + "score": 3, + "name": "Cruz Azul", + "longName": "Cruz Azul" + }, + "away": { + "id": 6358, + "score": 0, + "name": "San Luis", + "redCards": 1, + "longName": "Atletico de San Luis" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "10", + "status": { + "utcTime": "2026-03-07T23:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 00:00:32", + "secondHalfStarted": "08.03.2026 01:10:31" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772924400000 + }, + { + "id": 5101801, + "leagueId": 916051, + "time": "08.03.2026 00:00", + "home": { + "id": 1943, + "score": 1, + "name": "Quer\u00e9taro", + "longName": "Queretaro FC" + }, + "away": { + "id": 6576, + "score": 2, + "name": "Am\u00e9rica", + "longName": "CF America" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "10", + "status": { + "utcTime": "2026-03-07T23:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 00:02:13", + "secondHalfStarted": "08.03.2026 01:07:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772924400000 + }, + { + "id": 5101799, + "leagueId": 916051, + "time": "08.03.2026 02:05", + "home": { + "id": 6577, + "score": 1, + "name": "Atlas", + "longName": "Atlas" + }, + "away": { + "id": 7807, + "score": 2, + "name": "Chivas", + "longName": "Chivas" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "10", + "status": { + "utcTime": "2026-03-08T01:05:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 02:08:23", + "secondHalfStarted": "08.03.2026 03:14:52" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772931900000 + }, + { + "id": 5101798, + "leagueId": 916051, + "time": "08.03.2026 02:06", + "home": { + "id": 7848, + "score": 2, + "name": "Pachuca", + "redCards": 1, + "longName": "Pachuca" + }, + "away": { + "id": 7847, + "score": 1, + "name": "Puebla", + "longName": "Puebla" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "10", + "status": { + "utcTime": "2026-03-08T01:06:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 02:07:55", + "secondHalfStarted": "08.03.2026 03:14:52" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772931960000 + }, + { + "id": 5101800, + "leagueId": 916051, + "time": "08.03.2026 04:00", + "home": { + "id": 8561, + "score": 1, + "name": "Tigres", + "longName": "Tigres" + }, + "away": { + "id": 7849, + "score": 0, + "name": "Monterrey", + "longName": "Monterrey" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "10", + "status": { + "utcTime": "2026-03-08T03:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 04:02:32", + "secondHalfStarted": "08.03.2026 05:06:06" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772938800000 + }, + { + "id": 5180919, + "leagueId": 918407, + "time": "08.03.2026 00:15", + "home": { + "id": 1384118, + "score": 2, + "name": "Olancho FC", + "longName": "Olancho FC" + }, + "away": { + "id": 49777, + "score": 1, + "name": "Platense FC", + "longName": "Platense FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "10", + "status": { + "utcTime": "2026-03-07T23:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 00:15:24", + "secondHalfStarted": "08.03.2026 01:20:50" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772925300000 + }, + { + "id": 5180918, + "leagueId": 918407, + "time": "08.03.2026 02:30", + "home": { + "id": 276800, + "score": 1, + "name": "CD Choloma", + "longName": "CD Choloma" + }, + "away": { + "id": 49785, + "score": 3, + "name": "FC Motagua", + "longName": "FC Motagua" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "10", + "status": { + "utcTime": "2026-03-08T01:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 02:30:26", + "secondHalfStarted": "08.03.2026 03:34:15" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772933400000 + }, + { + "id": 5121896, + "leagueId": 917698, + "time": "07.03.2026 22:00", + "home": { + "id": 188299, + "score": 1, + "name": "Deportivo Mixco", + "longName": "Deportivo Mixco" + }, + "away": { + "id": 188303, + "score": 0, + "name": "Guastatoya", + "longName": "Guastatoya" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "12", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:00:10", + "secondHalfStarted": "07.03.2026 23:04:45" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5121897, + "leagueId": 917698, + "time": "08.03.2026 03:00", + "home": { + "id": 9934, + "score": 1, + "name": "Deportivo Marquense", + "longName": "Deportivo Marquense" + }, + "away": { + "id": 89674, + "score": 0, + "name": "Deportivo Malacateco", + "longName": "Deportivo Malacateco" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "12", + "status": { + "utcTime": "2026-03-08T02:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 03:04:22", + "secondHalfStarted": "08.03.2026 04:07:58" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772935200000 + }, + { + "id": 5121894, + "leagueId": 917698, + "time": "08.03.2026 18:00", + "home": { + "id": 188294, + "score": 0, + "name": "Aurora FC", + "longName": "Aurora FC" + }, + "away": { + "id": 49758, + "score": 0, + "name": "Club Xelaju", + "longName": "Club Xelaju" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "12", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:06:04", + "secondHalfStarted": "08.03.2026 19:11:30" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 4844378, + "leagueId": 61, + "time": "07.03.2026 21:30", + "home": { + "id": 7842, + "score": 0, + "name": "Estoril", + "longName": "Estoril" + }, + "away": { + "id": 212821, + "score": 0, + "name": "Casa Pia AC", + "longName": "Casa Pia AC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-07T20:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:32:38", + "secondHalfStarted": "07.03.2026 22:36:40" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772915400000 + }, + { + "id": 4844381, + "leagueId": 61, + "time": "08.03.2026 16:30", + "home": { + "id": 1074320, + "score": 2, + "name": "Estrela da Amadora", + "longName": "Estrela da Amadora" + }, + "away": { + "id": 9764, + "score": 2, + "name": "Gil Vicente", + "longName": "Gil Vicente" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T15:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:31:51", + "secondHalfStarted": "08.03.2026 17:41:11" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772983800000 + }, + { + "id": 4844385, + "leagueId": 61, + "time": "08.03.2026 19:00", + "home": { + "id": 9772, + "score": 2, + "name": "Benfica", + "longName": "Benfica" + }, + "away": { + "id": 9773, + "score": 2, + "name": "FC Porto", + "longName": "FC Porto" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T18:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:02:45", + "secondHalfStarted": "08.03.2026 20:12:51" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772992800000 + }, + { + "id": 4844690, + "leagueId": 185, + "time": "08.03.2026 12:00", + "home": { + "id": 474326, + "score": 0, + "name": "Felgueiras 1932", + "longName": "Felgueiras 1932" + }, + "away": { + "id": 4531, + "score": 1, + "name": "Vizela", + "longName": "Vizela" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:03:09", + "secondHalfStarted": "08.03.2026 13:11:31" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4844688, + "leagueId": 185, + "time": "08.03.2026 15:00", + "home": { + "id": 6421, + "score": 1, + "name": "Leixoes", + "longName": "Leixoes" + }, + "away": { + "id": 9771, + "score": 4, + "name": "Uniao de Leiria", + "longName": "Uniao de Leiria" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:04:34", + "secondHalfStarted": "08.03.2026 16:10:15" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4844692, + "leagueId": 185, + "time": "08.03.2026 16:30", + "home": { + "id": 10212, + "score": 2, + "name": "Maritimo", + "longName": "Maritimo" + }, + "away": { + "id": 338304, + "score": 1, + "name": "FC Porto B", + "longName": "FC Porto B" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T15:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:32:31", + "secondHalfStarted": "08.03.2026 17:41:05" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772983800000 + }, + { + "id": 4844691, + "leagueId": 185, + "time": "08.03.2026 19:00", + "home": { + "id": 188154, + "score": 1, + "name": "Lusitania Lourosa", + "longName": "Lusitania Lourosa" + }, + "away": { + "id": 338301, + "score": 0, + "name": "Sporting CP B", + "longName": "Sporting CP B" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T18:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:03:04", + "secondHalfStarted": "08.03.2026 20:10:05" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772992800000 + }, + { + "id": 5101999, + "leagueId": 905256, + "time": "07.03.2026 21:00", + "home": { + "id": 161728, + "score": 0, + "name": "Aldosivi", + "longName": "Aldosivi" + }, + "away": { + "id": 161729, + "score": 0, + "name": "Independiente Rivadavia", + "longName": "Independiente Rivadavia" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "9", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 5102003, + "leagueId": 905256, + "time": "07.03.2026 21:00", + "home": { + "id": 213591, + "score": 0, + "name": "Estudiantes de Rio Cuarto", + "longName": "Estudiantes de Rio Cuarto" + }, + "away": { + "id": 10090, + "score": 0, + "name": "Instituto", + "longName": "Instituto" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "9", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 5102011, + "leagueId": 905256, + "time": "07.03.2026 23:15", + "home": { + "id": 10083, + "score": 0, + "name": "San Lorenzo", + "longName": "San Lorenzo" + }, + "away": { + "id": 10078, + "score": 0, + "name": "Independiente", + "longName": "Independiente" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "9", + "status": { + "utcTime": "2026-03-07T22:15:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 23:15:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772921700000 + }, + { + "id": 5102001, + "leagueId": 905256, + "time": "08.03.2026 01:30", + "home": { + "id": 10092, + "score": 0, + "name": "Belgrano", + "longName": "Belgrano" + }, + "away": { + "id": 202757, + "score": 0, + "name": "Sarmiento", + "longName": "Sarmiento" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "9", + "status": { + "utcTime": "2026-03-08T00:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:30:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772929800000 + }, + { + "id": 5102008, + "leagueId": 905256, + "time": "08.03.2026 01:30", + "home": { + "id": 10080, + "score": 0, + "name": "Racing Club", + "longName": "Racing Club" + }, + "away": { + "id": 10081, + "score": 0, + "name": "Huracan", + "longName": "Huracan" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "9", + "status": { + "utcTime": "2026-03-08T00:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:30:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772929800000 + }, + { + "id": 4865033, + "leagueId": 8985, + "time": "08.03.2026 15:00", + "home": { + "id": 165223, + "score": 4, + "name": "Selangor", + "longName": "Selangor" + }, + "away": { + "id": 1783759, + "score": 0, + "name": "Imigresen FC", + "longName": "Imigresen FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:00:24", + "secondHalfStarted": "08.03.2026 16:05:38" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 5156369, + "leagueId": 516, + "time": "07.03.2026 22:00", + "home": { + "id": 101633, + "score": 3, + "name": "CR Belouizdad", + "longName": "CR Belouizdad" + }, + "away": { + "id": 1792386, + "score": 1, + "name": "MB Rouissat", + "longName": "MB Rouissat" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:01:24", + "secondHalfStarted": "07.03.2026 23:07:33" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5156371, + "leagueId": 516, + "time": "08.03.2026 15:00", + "home": { + "id": 1660716, + "score": 1, + "name": "Olympique Akbou", + "longName": "Olympique Akbou" + }, + "away": { + "id": 316399, + "score": 0, + "name": "JS Saoura", + "longName": "JS Saoura" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:00:44", + "secondHalfStarted": "08.03.2026 16:08:03" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4832099, + "leagueId": 110, + "time": "07.03.2026 20:00", + "home": { + "id": 9853, + "score": 2, + "name": "Saint-Etienne", + "longName": "Saint-Etienne" + }, + "away": { + "id": 6390, + "score": 0, + "name": "Red Star", + "longName": "Red Star" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-07T19:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:00:28", + "secondHalfStarted": "07.03.2026 21:04:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910000000 + }, + { + "id": 5191072, + "leagueId": 901568, + "time": "08.03.2026 13:00", + "home": { + "id": 316413, + "score": 0, + "name": "Ben Guerdane", + "longName": "Ben Guerdane" + }, + "away": { + "id": 102102, + "score": 1, + "name": "Club Africain", + "longName": "Club Africain" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "23", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:02:02", + "secondHalfStarted": "08.03.2026 14:06:42" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 5191074, + "leagueId": 901568, + "time": "08.03.2026 13:00", + "home": { + "id": 177179, + "score": 1, + "name": "JS Kairouanaise", + "longName": "JS Kairouanaise" + }, + "away": { + "id": 102107, + "score": 2, + "name": "CA Bizertin", + "longName": "CA Bizertin" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "23", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:01:17", + "secondHalfStarted": "08.03.2026 14:09:22" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 5191078, + "leagueId": 901568, + "time": "08.03.2026 13:00", + "home": { + "id": 102116, + "score": 1, + "name": "Stade Tunisien", + "longName": "Stade Tunisien" + }, + "away": { + "id": 6366, + "score": 1, + "name": "Etoile du Sahel", + "longName": "Etoile du Sahel" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "23", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:01:18", + "secondHalfStarted": "08.03.2026 14:07:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 5149581, + "leagueId": 918463, + "time": "08.03.2026 00:15", + "home": { + "id": 165475, + "score": 0, + "name": "CD Universitario", + "longName": "CD Universitario" + }, + "away": { + "id": 165473, + "score": 1, + "name": "Alianza FC", + "longName": "Alianza FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "8", + "status": { + "utcTime": "2026-03-07T23:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 00:16:11", + "secondHalfStarted": "08.03.2026 01:19:13" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772925300000 + }, + { + "id": 5149582, + "leagueId": 918463, + "time": "08.03.2026 02:30", + "home": { + "id": 165476, + "score": 2, + "name": "CD Plaza Amador", + "longName": "CD Plaza Amador" + }, + "away": { + "id": 98585, + "score": 1, + "name": "San Francisco FC", + "longName": "San Francisco FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "8", + "status": { + "utcTime": "2026-03-08T01:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 02:31:09", + "secondHalfStarted": "08.03.2026 03:34:15" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772933400000 + }, + { + "id": 5209892, + "leagueId": 921210, + "time": "07.03.2026 22:30", + "home": { + "id": 1860734, + "score": 1, + "name": "North Esporte Clube", + "longName": "North Esporte Clube" + }, + "away": { + "id": 510793, + "score": 0, + "name": "Uniao Recreativa dos Trabalhadores", + "longName": "Uniao Recreativa dos Trabalhadores" + }, + "eliminatedTeamId": 510793, + "statusId": 6, + "tournamentStage": "final", + "status": { + "utcTime": "2026-03-07T21:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:31:14", + "secondHalfStarted": "07.03.2026 23:37:14" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + }, + "aggregatedStr": "3 - 1" + }, + "timeTS": 1772919000000 + }, + { + "id": 4854853, + "leagueId": 229, + "time": "08.03.2026 16:00", + "home": { + "id": 2108, + "score": 0, + "name": "AS Jeunesse Esch", + "redCards": 1, + "longName": "AS Jeunesse Esch" + }, + "away": { + "id": 187904, + "score": 1, + "name": "FC Jeunesse Canach", + "longName": "FC Jeunesse Canach" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 16:03:06", + "secondHalfStarted": "08.03.2026 17:10:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4854850, + "leagueId": 229, + "time": "08.03.2026 16:00", + "home": { + "id": 7951, + "score": 3, + "name": "FC Differdange 03", + "longName": "FC Differdange 03" + }, + "away": { + "id": 187906, + "score": 2, + "name": "US Hostert", + "longName": "US Hostert" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:04:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4854745, + "leagueId": 229, + "time": "08.03.2026 16:00", + "home": { + "id": 463433, + "score": 1, + "name": "FC Rodange 91", + "redCards": 1, + "longName": "FC Rodange 91" + }, + "away": { + "id": 4548, + "score": 2, + "name": "F91 Dudelange", + "longName": "F91 Dudelange" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 16:03:57", + "secondHalfStarted": "08.03.2026 17:10:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4854857, + "leagueId": 229, + "time": "08.03.2026 16:00", + "home": { + "id": 2112, + "score": 1, + "name": "FC Victoria Rosport", + "longName": "FC Victoria Rosport" + }, + "away": { + "id": 763242, + "score": 0, + "name": "Atert Bissen", + "longName": "Atert Bissen" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:03:06", + "secondHalfStarted": "08.03.2026 17:04:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4854852, + "leagueId": 229, + "time": "08.03.2026 16:00", + "home": { + "id": 2113, + "score": 0, + "name": "Swift Hesperange", + "longName": "Swift Hesperange" + }, + "away": { + "id": 7952, + "score": 1, + "name": "FC Mamer 32", + "longName": "FC Mamer 32" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:10:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4854855, + "leagueId": 229, + "time": "08.03.2026 16:00", + "home": { + "id": 271923, + "score": 2, + "name": "Una Strassen", + "longName": "Una Strassen" + }, + "away": { + "id": 7953, + "score": 0, + "name": "FC Progr\u00e8s Niederkorn", + "redCards": 1, + "longName": "FC Progr\u00e8s Niederkorn" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:04:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4854856, + "leagueId": 229, + "time": "08.03.2026 16:00", + "home": { + "id": 654352, + "score": 1, + "name": "Union Titus P\u00e9tange", + "longName": "Union Titus P\u00e9tange" + }, + "away": { + "id": 4526, + "score": 2, + "name": "UN K\u00e4erjeng 97", + "longName": "UN K\u00e4erjeng 97" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:04:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4854854, + "leagueId": 229, + "time": "08.03.2026 16:00", + "home": { + "id": 205813, + "score": 1, + "name": "US Mondorf les Bains", + "longName": "US Mondorf les Bains" + }, + "away": { + "id": 2110, + "score": 3, + "name": "Racing FC Union Luxembourg", + "longName": "Racing FC Union Luxembourg" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:10:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4813212, + "leagueId": 212, + "time": "08.03.2026 13:30", + "home": { + "id": 7778, + "score": 1, + "name": "MTK Budapest", + "longName": "MTK Budapest" + }, + "away": { + "id": 2476, + "score": 1, + "name": "Diosgyori VTK", + "longName": "Diosgyori VTK" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T12:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:31:45", + "secondHalfStarted": "08.03.2026 14:31:47" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973000000 + }, + { + "id": 4813211, + "leagueId": 212, + "time": "08.03.2026 17:45", + "home": { + "id": 2280, + "score": 0, + "name": "Kazincbarcikai BSC", + "longName": "Kazincbarcikai BSC" + }, + "away": { + "id": 8369, + "score": 3, + "name": "Debrecen", + "longName": "Debrecen" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T16:45:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:45:53", + "secondHalfStarted": "08.03.2026 18:50:53" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772988300000 + }, + { + "id": 4813210, + "leagueId": 212, + "time": "08.03.2026 18:30", + "home": { + "id": 2035, + "score": 1, + "name": "Nyiregyhaza Spartacus FC", + "longName": "Nyiregyhaza Spartacus FC" + }, + "away": { + "id": 8222, + "score": 3, + "name": "Ferencvaros", + "longName": "Ferencvaros" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T17:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:31:39", + "secondHalfStarted": "08.03.2026 19:34:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772991000000 + }, + { + "id": 4933288, + "leagueId": 902172, + "time": "08.03.2026 15:30", + "home": { + "id": 102059, + "score": 1, + "name": "Kano Pillars", + "longName": "Kano Pillars" + }, + "away": { + "id": 1791636, + "score": 0, + "name": "Barau", + "longName": "Barau" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T14:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:03:52", + "secondHalfStarted": "08.03.2026 17:10:46" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772980200000 + }, + { + "id": 4933289, + "leagueId": 902172, + "time": "08.03.2026 15:30", + "home": { + "id": 818870, + "score": 1, + "name": "Katsina United", + "longName": "Katsina United" + }, + "away": { + "id": 102060, + "score": 2, + "name": "Kwara United", + "longName": "Kwara United" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T14:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:07:00", + "secondHalfStarted": "08.03.2026 17:10:47" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772980200000 + }, + { + "id": 4933287, + "leagueId": 902172, + "time": "08.03.2026 16:00", + "home": { + "id": 520679, + "score": 2, + "name": "Abia Warriors", + "longName": "Abia Warriors" + }, + "away": { + "id": 184465, + "score": 0, + "name": "Shooting Stars", + "longName": "Shooting Stars" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:03:06", + "secondHalfStarted": "08.03.2026 17:10:44" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4933293, + "leagueId": 902172, + "time": "08.03.2026 16:00", + "home": { + "id": 102054, + "score": 4, + "name": "Enugu Rangers", + "longName": "Enugu Rangers" + }, + "away": { + "id": 818875, + "score": 1, + "name": "Remo Stars", + "longName": "Remo Stars" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:13:14", + "secondHalfStarted": "08.03.2026 17:10:49" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4933290, + "leagueId": 902172, + "time": "08.03.2026 16:00", + "home": { + "id": 1791630, + "score": 1, + "name": "Kun Khalifat", + "longName": "Kun Khalifat" + }, + "away": { + "id": 102052, + "score": 0, + "name": "Bayelsa United", + "longName": "Bayelsa United" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:04:01", + "secondHalfStarted": "08.03.2026 17:11:04" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4933291, + "leagueId": 902172, + "time": "08.03.2026 16:00", + "home": { + "id": 102062, + "score": 1, + "name": "Nasarawa United", + "longName": "Nasarawa United" + }, + "away": { + "id": 1661097, + "score": 0, + "name": "Ikorodu City", + "longName": "Ikorodu City" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:08:38", + "secondHalfStarted": "08.03.2026 17:16:38" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4933292, + "leagueId": 902172, + "time": "08.03.2026 16:00", + "home": { + "id": 213295, + "score": 3, + "name": "Plateau United", + "longName": "Plateau United" + }, + "away": { + "id": 102063, + "score": 0, + "name": "Niger Tornadoes", + "longName": "Niger Tornadoes" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:10:46" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4933294, + "leagueId": 902172, + "time": "08.03.2026 16:00", + "home": { + "id": 184466, + "score": 3, + "name": "Rivers United FC", + "longName": "Rivers United FC" + }, + "away": { + "id": 102053, + "score": 1, + "name": "Bendel Insurance", + "longName": "Bendel Insurance" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:13:32", + "secondHalfStarted": "08.03.2026 17:23:29" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4933295, + "leagueId": 902172, + "time": "08.03.2026 16:00", + "home": { + "id": 154580, + "score": 2, + "name": "Warri Wolves FC", + "longName": "Warri Wolves FC" + }, + "away": { + "id": 6623, + "score": 1, + "name": "Enyimba", + "longName": "Enyimba" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:16:03", + "secondHalfStarted": "08.03.2026 17:10:46" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 5100815, + "leagueId": 126, + "time": "07.03.2026 20:45", + "home": { + "id": 6361, + "score": 2, + "name": "Sligo Rovers", + "longName": "Sligo Rovers" + }, + "away": { + "id": 8339, + "score": 1, + "name": "Drogheda United", + "longName": "Drogheda United" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T19:45:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:46:48", + "secondHalfStarted": "07.03.2026 21:48:36" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772912700000 + }, + { + "id": 4862432, + "leagueId": 63, + "time": "08.03.2026 10:00", + "home": { + "id": 132286, + "score": 2, + "name": "Orenburg", + "longName": "FC Orenburg" + }, + "away": { + "id": 8698, + "score": 1, + "name": "Zenit", + "longName": "Zenit St. Petersburg" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T09:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 10:03:53", + "secondHalfStarted": "08.03.2026 11:08:23" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772960400000 + }, + { + "id": 4819648, + "leagueId": 63, + "time": "08.03.2026 12:30", + "home": { + "id": 8709, + "score": 2, + "name": "Krylya Sovetov", + "longName": "Krylya Sovetov Samara" + }, + "away": { + "id": 1068353, + "score": 0, + "name": "Dynamo Makhachkala", + "longName": "Dynamo Makhachkala" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T11:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:33:03", + "secondHalfStarted": "08.03.2026 13:38:43" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772969400000 + }, + { + "id": 4819651, + "leagueId": 63, + "time": "08.03.2026 15:00", + "home": { + "id": 8683, + "score": 2, + "name": "Rubin", + "longName": "Rubin Kazan" + }, + "away": { + "id": 168719, + "score": 1, + "name": "Krasnodar", + "longName": "FC Krasnodar" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:05:49", + "secondHalfStarted": "08.03.2026 16:10:51" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4819646, + "leagueId": 63, + "time": "08.03.2026 17:30", + "home": { + "id": 9760, + "score": 1, + "name": "CSKA", + "redCards": 1, + "longName": "CSKA Moscow" + }, + "away": { + "id": 9763, + "score": 4, + "name": "Dinamo", + "longName": "Dinamo Moscow" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "20", + "status": { + "utcTime": "2026-03-08T16:30:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 17:38:43", + "secondHalfStarted": "08.03.2026 18:41:04" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772987400000 + }, + { + "id": 4899717, + "leagueId": 901925, + "time": "07.03.2026 20:30", + "home": { + "id": 101752, + "score": 0, + "name": "Ghazl Al Mahalla", + "longName": "Ghazl Al Mahalla" + }, + "away": { + "id": 581345, + "score": 0, + "name": "Pharco FC", + "longName": "Pharco FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "21", + "status": { + "utcTime": "2026-03-07T19:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:32:50", + "secondHalfStarted": "07.03.2026 21:37:24" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772911800000 + }, + { + "id": 4899720, + "leagueId": 901925, + "time": "07.03.2026 20:30", + "home": { + "id": 316480, + "score": 1, + "name": "Kahrbaa Ismailia", + "redCards": 1, + "longName": "Kahrbaa Ismailia" + }, + "away": { + "id": 101754, + "score": 2, + "name": "ENPPI", + "longName": "ENPPI" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "21", + "status": { + "utcTime": "2026-03-07T19:30:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "07.03.2026 20:32:50", + "secondHalfStarted": "07.03.2026 21:42:08" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772911800000 + }, + { + "id": 4899718, + "leagueId": 901925, + "time": "07.03.2026 20:30", + "home": { + "id": 205189, + "score": 3, + "name": "Smouha SC", + "longName": "Smouha SC" + }, + "away": { + "id": 797212, + "score": 0, + "name": "Modern Sport FC", + "redCards": 1, + "longName": "Modern Sport FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "21", + "status": { + "utcTime": "2026-03-07T19:30:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "07.03.2026 20:34:35", + "secondHalfStarted": "07.03.2026 21:44:58" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772911800000 + }, + { + "id": 4844943, + "leagueId": 900627, + "time": "08.03.2026 12:00", + "home": { + "id": 7770, + "score": 4, + "name": "Zorya", + "longName": "Zorya" + }, + "away": { + "id": 1395689, + "score": 0, + "name": "SC Poltava", + "longName": "SC Poltava" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "19", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:03:09", + "secondHalfStarted": "08.03.2026 13:06:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4844944, + "leagueId": 900627, + "time": "08.03.2026 14:30", + "home": { + "id": 8691, + "score": 1, + "name": "Karpaty", + "longName": "Karpaty" + }, + "away": { + "id": 1763072, + "score": 1, + "name": "Kudrivka", + "longName": "Kudrivka" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "19", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:33:31", + "secondHalfStarted": "08.03.2026 15:42:26" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4844947, + "leagueId": 900627, + "time": "08.03.2026 17:00", + "home": { + "id": 1181312, + "score": 1, + "name": "Polissya Zhytomyr", + "longName": "Polissya Zhytomyr" + }, + "away": { + "id": 8688, + "score": 2, + "name": "Dynamo Kyiv", + "longName": "Dynamo Kyiv" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "19", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:04:40", + "secondHalfStarted": "08.03.2026 18:13:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4946765, + "leagueId": 262, + "time": "08.03.2026 12:00", + "home": { + "id": 2103, + "score": 0, + "name": "Shamakhi FK", + "longName": "Shamakhi FK" + }, + "away": { + "id": 1786024, + "score": 0, + "name": "Imisli FK", + "longName": "Imisli FK" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "23", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:03:09", + "secondHalfStarted": "08.03.2026 13:03:21" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4946763, + "leagueId": 262, + "time": "08.03.2026 16:15", + "home": { + "id": 7981, + "score": 6, + "name": "Qarabag FK", + "longName": "Qarabag FK" + }, + "away": { + "id": 485832, + "score": 0, + "name": "Araz PFK", + "longName": "Araz PFK" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "23", + "status": { + "utcTime": "2026-03-08T15:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:21:39", + "secondHalfStarted": "08.03.2026 17:20:12" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "6 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982900000 + }, + { + "id": 5136309, + "leagueId": 250, + "time": "08.03.2026 16:00", + "home": { + "id": 167964, + "score": 1, + "name": "07 Vestur", + "longName": "07 Vestur" + }, + "away": { + "id": 8106, + "score": 5, + "name": "Klaksvik", + "longName": "Klaksvik" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:02:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 5", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 5136310, + "leagueId": 250, + "time": "08.03.2026 16:00", + "home": { + "id": 8002, + "score": 2, + "name": "B36 Torshavn", + "longName": "B36 Torshavn" + }, + "away": { + "id": 2227, + "score": 1, + "name": "EB/Streymur", + "longName": "EB/Streymur" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:02:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 5136311, + "leagueId": 250, + "time": "08.03.2026 16:00", + "home": { + "id": 8110, + "score": 1, + "name": "NSI Runavik", + "longName": "NSI Runavik" + }, + "away": { + "id": 4666, + "score": 0, + "name": "Vikingur", + "longName": "Vikingur" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:04:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 5136312, + "leagueId": 250, + "time": "08.03.2026 18:15", + "home": { + "id": 2228, + "score": 1, + "name": "Sk\u00e1la", + "longName": "Sk\u00e1la" + }, + "away": { + "id": 6652, + "score": 2, + "name": "HB Torshavn", + "longName": "HB Torshavn" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T17:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:17:31", + "secondHalfStarted": "08.03.2026 19:21:40" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772990100000 + }, + { + "id": 4835714, + "leagueId": 900837, + "time": "08.03.2026 19:00", + "home": { + "id": 10107, + "score": 2, + "name": "Zrinjski Mostar", + "longName": "Zrinjski Mostar" + }, + "away": { + "id": 10124, + "score": 1, + "name": "Radnik Bijeljina", + "longName": "Radnik Bijeljina" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "24", + "status": { + "utcTime": "2026-03-08T18:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:03:01", + "secondHalfStarted": "08.03.2026 20:04:11" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772992800000 + }, + { + "id": 5185302, + "leagueId": 118, + "time": "08.03.2026 14:00", + "home": { + "id": 1078402, + "score": 0, + "name": "BKMA", + "redCards": 1, + "longName": "BKMA" + }, + "away": { + "id": 866111, + "score": 2, + "name": "FC Noah", + "redCards": 1, + "longName": "FC Noah" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "17", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "numberOfHomeRedCards": 1, + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:46", + "secondHalfStarted": "08.03.2026 15:04:34" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 5194623, + "leagueId": 902649, + "time": "08.03.2026 19:30", + "home": { + "id": 101711, + "score": 0, + "name": "Al-Arabi", + "longName": "Al-Arabi" + }, + "away": { + "id": 101717, + "score": 0, + "name": "Al-Tadhamon", + "longName": "Al-Tadhamon" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "15", + "status": { + "utcTime": "2026-03-08T18:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:30:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772994600000 + }, + { + "id": 5194622, + "leagueId": 902649, + "time": "08.03.2026 19:30", + "home": { + "id": 150412, + "score": 0, + "name": "Al-Shabab SC", + "longName": "Al-Shabab SC" + }, + "away": { + "id": 101718, + "score": 0, + "name": "Kazma", + "longName": "Kazma" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "15", + "status": { + "utcTime": "2026-03-08T18:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:30:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772994600000 + }, + { + "id": 4890081, + "leagueId": 461, + "time": "08.03.2026 13:30", + "home": { + "id": 67381, + "score": 0, + "name": "Young Lions", + "longName": "Young Lions" + }, + "away": { + "id": 67386, + "score": 5, + "name": "Tampines Rovers FC", + "longName": "Tampines Rovers FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "14", + "status": { + "utcTime": "2026-03-08T12:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:31:04", + "secondHalfStarted": "08.03.2026 14:48:02" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 5", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973000000 + }, + { + "id": 4926466, + "leagueId": 522, + "time": "08.03.2026 16:00", + "home": { + "id": 186663, + "score": 2, + "name": "Aduana Stars", + "longName": "Aduana Stars" + }, + "away": { + "id": 1194058, + "score": 0, + "name": "Eleven Wonders", + "longName": "Eleven Wonders" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:04:01", + "secondHalfStarted": "08.03.2026 17:10:47" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4926467, + "leagueId": 522, + "time": "08.03.2026 16:00", + "home": { + "id": 102019, + "score": 1, + "name": "Heart of Lions", + "longName": "Heart of Lions" + }, + "away": { + "id": 102027, + "score": 0, + "name": "All Blacks", + "longName": "All Blacks" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:01:02", + "secondHalfStarted": "08.03.2026 17:10:33" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4926468, + "leagueId": 522, + "time": "08.03.2026 16:00", + "home": { + "id": 102016, + "score": 0, + "name": "Hearts of Oak", + "redCards": 1, + "longName": "Hearts of Oak" + }, + "away": { + "id": 1665707, + "score": 0, + "name": "Holy Stars", + "longName": "Holy Stars" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 16:04:51", + "secondHalfStarted": "08.03.2026 17:10:59" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4926469, + "leagueId": 522, + "time": "08.03.2026 16:00", + "home": { + "id": 1194060, + "score": 1, + "name": "Karela United", + "longName": "Karela United" + }, + "away": { + "id": 102018, + "score": 0, + "name": "Asante Kotoko SC", + "redCards": 1, + "longName": "Asante Kotoko SC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 16:01:02", + "secondHalfStarted": "08.03.2026 17:04:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4926470, + "leagueId": 522, + "time": "08.03.2026 16:00", + "home": { + "id": 106975, + "score": 1, + "name": "Medeama SC", + "longName": "Medeama SC" + }, + "away": { + "id": 1799015, + "score": 2, + "name": "Hohoe United", + "longName": "Hohoe United" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:04:01", + "secondHalfStarted": "08.03.2026 17:12:47" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4926474, + "leagueId": 522, + "time": "08.03.2026 16:00", + "home": { + "id": 1665706, + "score": 3, + "name": "Young Apostles", + "longName": "Young Apostles" + }, + "away": { + "id": 1300594, + "score": 1, + "name": "Bibiani Gold Stars", + "longName": "Bibiani Gold Stars" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:04:51", + "secondHalfStarted": "08.03.2026 17:11:01" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 5204045, + "leagueId": 922739, + "time": "08.03.2026 10:00", + "home": { + "id": 2120, + "score": 2, + "name": "FC Kyzylzhar Petropavlovsk", + "redCards": 1, + "longName": "FC Kyzylzhar Petropavlovsk" + }, + "away": { + "id": 200279, + "score": 1, + "name": "Kaspiy Aktau", + "longName": "Kaspiy Aktau" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T09:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 10:01:45", + "secondHalfStarted": "08.03.2026 11:08:23" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772960400000 + }, + { + "id": 5204046, + "leagueId": 922739, + "time": "08.03.2026 11:00", + "home": { + "id": 2349, + "score": 0, + "name": "Atyrau", + "longName": "Atyrau" + }, + "away": { + "id": 1622701, + "score": 0, + "name": "Ulytau", + "redCards": 1, + "longName": "Ulytau" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T10:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 11:01:32", + "secondHalfStarted": "08.03.2026 12:14:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772964000000 + }, + { + "id": 5204047, + "leagueId": 922739, + "time": "08.03.2026 12:00", + "home": { + "id": 2125, + "score": 1, + "name": "Kaisar Kyzylorda", + "longName": "Kaisar Kyzylorda" + }, + "away": { + "id": 1614087, + "score": 1, + "name": "Zhenis", + "longName": "Zhenis" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:06:52", + "secondHalfStarted": "08.03.2026 13:08:24" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 5204048, + "leagueId": 922739, + "time": "08.03.2026 14:00", + "home": { + "id": 166865, + "score": 4, + "name": "FC Astana", + "longName": "FC Astana" + }, + "away": { + "id": 2118, + "score": 1, + "name": "Zhetysu Taldykorgan", + "longName": "Zhetysu Taldykorgan" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:03:57", + "secondHalfStarted": "08.03.2026 15:13:32" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 5134505, + "leagueId": 917521, + "time": "07.03.2026 22:00", + "home": { + "id": 193025, + "score": 1, + "name": "Aguilas Doradas", + "longName": "Aguilas Doradas" + }, + "away": { + "id": 6368, + "score": 2, + "name": "Atletico Nacional", + "longName": "Atletico Nacional" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "10", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:01:24", + "secondHalfStarted": "07.03.2026 23:11:50" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5113726, + "leagueId": 916561, + "time": "07.03.2026 21:00", + "home": { + "id": 213533, + "score": 0, + "name": "Sportivo Italiano", + "longName": "Sportivo Italiano" + }, + "away": { + "id": 581825, + "score": 0, + "name": "San Martin Burzaco", + "longName": "San Martin Burzaco" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 5113716, + "leagueId": 916561, + "time": "07.03.2026 22:00", + "home": { + "id": 581807, + "score": 0, + "name": "Argentino de Quilmes", + "longName": "Argentino de Quilmes" + }, + "away": { + "id": 298633, + "score": 0, + "name": "Excursionistas", + "longName": "Excursionistas" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5113717, + "leagueId": 916561, + "time": "07.03.2026 22:00", + "home": { + "id": 213532, + "score": 0, + "name": "Brown de Adrogue", + "longName": "Brown de Adrogue" + }, + "away": { + "id": 581805, + "score": 0, + "name": "CA Talleres Remedios de Escalada", + "longName": "CA Talleres Remedios de Escalada" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5113719, + "leagueId": 916561, + "time": "07.03.2026 22:00", + "home": { + "id": 425967, + "score": 0, + "name": "CA Defensores Unidos", + "longName": "CA Defensores Unidos" + }, + "away": { + "id": 298630, + "score": 0, + "name": "Villa Dalmine", + "longName": "Villa Dalmine" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5113722, + "leagueId": 916561, + "time": "07.03.2026 22:00", + "home": { + "id": 837624, + "score": 0, + "name": "CASD Camioneros", + "longName": "CASD Camioneros" + }, + "away": { + "id": 213526, + "score": 0, + "name": "Villa San Carlos", + "longName": "Villa San Carlos" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5113718, + "leagueId": 916561, + "time": "07.03.2026 22:00", + "home": { + "id": 213536, + "score": 0, + "name": "Comunicaciones", + "longName": "Comunicaciones" + }, + "away": { + "id": 425968, + "score": 0, + "name": "CD UAI Urquiza", + "longName": "CD UAI Urquiza" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5113721, + "leagueId": 916561, + "time": "07.03.2026 22:00", + "home": { + "id": 213527, + "score": 0, + "name": "Deportivo Armenio", + "longName": "Deportivo Armenio" + }, + "away": { + "id": 581809, + "score": 0, + "name": "Argentino de Merlo", + "longName": "Argentino de Merlo" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5113720, + "leagueId": 916561, + "time": "07.03.2026 22:00", + "home": { + "id": 178272, + "score": 0, + "name": "Deportivo Merlo", + "longName": "Deportivo Merlo" + }, + "away": { + "id": 581822, + "score": 0, + "name": "CS Deportivo Liniers", + "longName": "CS Deportivo Liniers" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5113723, + "leagueId": 916561, + "time": "07.03.2026 22:00", + "home": { + "id": 581802, + "score": 0, + "name": "Dock Sud", + "longName": "Dock Sud" + }, + "away": { + "id": 1018433, + "score": 0, + "name": "Real Pilar", + "longName": "Real Pilar" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5113724, + "leagueId": 916561, + "time": "07.03.2026 22:00", + "home": { + "id": 213537, + "score": 0, + "name": "Flandria", + "longName": "Flandria" + }, + "away": { + "id": 10098, + "score": 0, + "name": "Arsenal Sarandi", + "longName": "Arsenal Sarandi" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5113725, + "leagueId": 916561, + "time": "07.03.2026 22:00", + "home": { + "id": 581820, + "score": 0, + "name": "Ituzaingo", + "longName": "Ituzaingo" + }, + "away": { + "id": 581808, + "score": 0, + "name": "Laferrere", + "longName": "Laferrere" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "5", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5140457, + "leagueId": 919426, + "time": "07.03.2026 22:00", + "home": { + "id": 4058, + "score": 0, + "name": "Audax Italiano", + "longName": "Audax Italiano" + }, + "away": { + "id": 7815, + "score": 1, + "name": "Colo Colo", + "longName": "Colo Colo" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "6", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:01:33", + "secondHalfStarted": "07.03.2026 23:07:14" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5140462, + "leagueId": 919426, + "time": "08.03.2026 00:30", + "home": { + "id": 6296, + "score": 1, + "name": "O'Higgins", + "longName": "O'Higgins" + }, + "away": { + "id": 6458, + "score": 0, + "name": "Universidad Catolica", + "longName": "Universidad Catolica" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "6", + "status": { + "utcTime": "2026-03-07T23:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 00:29:36", + "secondHalfStarted": "08.03.2026 01:34:40" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772926200000 + }, + { + "id": 5142095, + "leagueId": 919709, + "time": "07.03.2026 22:00", + "home": { + "id": 49686, + "score": 0, + "name": "Zamora FC", + "longName": "Zamora FC" + }, + "away": { + "id": 49681, + "score": 0, + "name": "Carabobo FC", + "longName": "Carabobo FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "6", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:00:38", + "secondHalfStarted": "07.03.2026 23:05:09" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 5142090, + "leagueId": 919709, + "time": "07.03.2026 23:00", + "home": { + "id": 7850, + "score": 0, + "name": "Caracas", + "longName": "Caracas" + }, + "away": { + "id": 1896, + "score": 1, + "name": "Deportivo Tachira", + "longName": "Deportivo Tachira" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "6", + "status": { + "utcTime": "2026-03-07T22:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 23:00:17", + "secondHalfStarted": "08.03.2026 00:11:35" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772920800000 + }, + { + "id": 5142089, + "leagueId": 919709, + "time": "08.03.2026 01:30", + "home": { + "id": 1349498, + "score": 0, + "name": "Anzoategui FC", + "longName": "Anzoategui FC" + }, + "away": { + "id": 657277, + "score": 1, + "name": "Academia Puerto Cabello", + "longName": "Academia Puerto Cabello" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "6", + "status": { + "utcTime": "2026-03-08T00:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:33:07", + "secondHalfStarted": "08.03.2026 02:42:50" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772929800000 + }, + { + "id": 5136780, + "leagueId": 919025, + "time": "08.03.2026 01:00", + "home": { + "id": 1783449, + "score": 1, + "name": "Inter FA", + "longName": "Inter FA" + }, + "away": { + "id": 1783451, + "score": 0, + "name": "Zacatecoluca", + "longName": "Zacatecoluca" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "11", + "status": { + "utcTime": "2026-03-08T00:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:06:38", + "secondHalfStarted": "08.03.2026 02:05:08" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772928000000 + }, + { + "id": 5136778, + "leagueId": 919025, + "time": "08.03.2026 02:00", + "home": { + "id": 49740, + "score": 3, + "name": "Alianza FC", + "longName": "Alianza FC" + }, + "away": { + "id": 1525664, + "score": 2, + "name": "Fuerte San Francisco", + "longName": "Fuerte San Francisco" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "11", + "status": { + "utcTime": "2026-03-08T01:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 02:03:06", + "secondHalfStarted": "08.03.2026 03:06:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772931600000 + }, + { + "id": 5136782, + "leagueId": 919025, + "time": "08.03.2026 02:00", + "home": { + "id": 49746, + "score": 1, + "name": "Isidro Metapan", + "longName": "Isidro Metapan" + }, + "away": { + "id": 49747, + "score": 1, + "name": "Hercules", + "longName": "Hercules" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "11", + "status": { + "utcTime": "2026-03-08T01:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 02:05:56", + "secondHalfStarted": "08.03.2026 03:08:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772931600000 + }, + { + "id": 5086380, + "leagueId": 914695, + "time": "08.03.2026 03:00", + "home": { + "id": 49728, + "score": 0, + "name": "Deportiva San Carlos", + "longName": "Deportiva San Carlos" + }, + "away": { + "id": 6335, + "score": 2, + "name": "LD Alajuelense", + "longName": "LD Alajuelense" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "11", + "status": { + "utcTime": "2026-03-08T02:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 03:01:11", + "secondHalfStarted": "08.03.2026 04:09:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772935200000 + }, + { + "id": 5086378, + "leagueId": 914695, + "time": "08.03.2026 18:00", + "home": { + "id": 49732, + "score": 3, + "name": "C.S. Cartagin\u00e9s", + "redCards": 1, + "longName": "C.S. Cartagin\u00e9s" + }, + "away": { + "id": 9935, + "score": 2, + "name": "Puntarenas FC", + "redCards": 1, + "longName": "Puntarenas FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "11", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "numberOfHomeRedCards": 1, + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 18:01:00", + "secondHalfStarted": "08.03.2026 19:09:11" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 4871610, + "leagueId": 901480, + "time": "07.03.2026 21:00", + "home": { + "id": 8317, + "score": 0, + "name": "Merida", + "longName": "Merida" + }, + "away": { + "id": 357239, + "score": 0, + "name": "CF Talavera de la Reina", + "longName": "CF Talavera de la Reina" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:03:51", + "secondHalfStarted": "07.03.2026 22:03:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 4871614, + "leagueId": 901480, + "time": "08.03.2026 12:00", + "home": { + "id": 189594, + "score": 0, + "name": "Real Aviles CF", + "longName": "Real Aviles CF" + }, + "away": { + "id": 4031, + "score": 2, + "name": "Zamora", + "longName": "Zamora" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:02:18", + "secondHalfStarted": "08.03.2026 13:06:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4871607, + "leagueId": 901480, + "time": "08.03.2026 16:00", + "home": { + "id": 161850, + "score": 1, + "name": "Athletic Club B", + "longName": "Athletic Club B" + }, + "away": { + "id": 189631, + "score": 1, + "name": "Arenas Getxo", + "longName": "Arenas Getxo" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:04:01", + "secondHalfStarted": "08.03.2026 17:10:30" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4871609, + "leagueId": 901480, + "time": "08.03.2026 16:00", + "home": { + "id": 161782, + "score": 3, + "name": "Guadalajara", + "longName": "Guadalajara" + }, + "away": { + "id": 161743, + "score": 0, + "name": "Celta Fortuna", + "redCards": 1, + "longName": "Celta Fortuna" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:11:01" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4871612, + "leagueId": 901480, + "time": "08.03.2026 16:00", + "home": { + "id": 7862, + "score": 0, + "name": "Pontevedra", + "longName": "Pontevedra" + }, + "away": { + "id": 780591, + "score": 0, + "name": "Unionistas de Salamanca", + "redCards": 1, + "longName": "Unionistas de Salamanca" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 16:04:01", + "secondHalfStarted": "08.03.2026 17:10:31" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4871608, + "leagueId": 901480, + "time": "08.03.2026 18:30", + "home": { + "id": 7734, + "score": 1, + "name": "Barakaldo", + "longName": "Barakaldo" + }, + "away": { + "id": 7859, + "score": 0, + "name": "Ourense", + "longName": "Ourense" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T17:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:31:39", + "secondHalfStarted": "08.03.2026 19:38:26" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772991000000 + }, + { + "id": 4871994, + "leagueId": 901481, + "time": "08.03.2026 12:00", + "home": { + "id": 190091, + "score": 1, + "name": "CD Teruel", + "longName": "CD Teruel" + }, + "away": { + "id": 161771, + "score": 0, + "name": "Villarreal B", + "longName": "Villarreal B" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:01:17", + "secondHalfStarted": "08.03.2026 13:04:02" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4871995, + "leagueId": 901481, + "time": "08.03.2026 12:00", + "home": { + "id": 371716, + "score": 1, + "name": "Juventud Torremolinos CF", + "longName": "Juventud Torremolinos CF" + }, + "away": { + "id": 161750, + "score": 0, + "name": "Alcorcon", + "longName": "Alcorcon" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:01:17", + "secondHalfStarted": "08.03.2026 13:06:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4871993, + "leagueId": 901481, + "time": "08.03.2026 16:00", + "home": { + "id": 209196, + "score": 0, + "name": "SD Tarazona", + "longName": "SD Tarazona" + }, + "away": { + "id": 8554, + "score": 0, + "name": "Cartagena", + "longName": "Cartagena" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:01:02", + "secondHalfStarted": "08.03.2026 17:04:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4871987, + "leagueId": 901481, + "time": "08.03.2026 18:15", + "home": { + "id": 161759, + "score": 0, + "name": "Atletico Madrileno", + "longName": "Atletico Madrileno" + }, + "away": { + "id": 10278, + "score": 0, + "name": "Hercules", + "longName": "Hercules" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "27", + "status": { + "utcTime": "2026-03-08T17:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:14:39", + "secondHalfStarted": "08.03.2026 19:22:43" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772990100000 + }, + { + "id": 5113210, + "leagueId": 916553, + "time": "07.03.2026 21:00", + "home": { + "id": 213529, + "score": 0, + "name": "Acassuso", + "longName": "Acassuso" + }, + "away": { + "id": 581826, + "score": 0, + "name": "CA San Miguel", + "longName": "CA San Miguel" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 5112859, + "leagueId": 916553, + "time": "07.03.2026 21:00", + "home": { + "id": 10099, + "score": 0, + "name": "Almagro", + "longName": "Almagro" + }, + "away": { + "id": 213525, + "score": 0, + "name": "Atlanta", + "longName": "Atlanta" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 5113215, + "leagueId": 916553, + "time": "07.03.2026 21:00", + "home": { + "id": 213603, + "score": 0, + "name": "CA Defensores de Belgrano", + "longName": "CA Defensores de Belgrano" + }, + "away": { + "id": 161732, + "score": 0, + "name": "All Boys", + "longName": "All Boys" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 5112864, + "leagueId": 916553, + "time": "07.03.2026 21:00", + "home": { + "id": 10091, + "score": 0, + "name": "Nueva Chicago", + "longName": "Nueva Chicago" + }, + "away": { + "id": 10085, + "score": 0, + "name": "Atletico Rafaela", + "longName": "Atletico Rafaela" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-07T20:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772913600000 + }, + { + "id": 5113213, + "leagueId": 916553, + "time": "07.03.2026 22:30", + "home": { + "id": 465716, + "score": 0, + "name": "CA Chaco For Ever", + "longName": "CA Chaco For Ever" + }, + "away": { + "id": 10088, + "score": 0, + "name": "Colon", + "longName": "Colon" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-07T21:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:30:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772919000000 + }, + { + "id": 5112867, + "leagueId": 916553, + "time": "07.03.2026 23:00", + "home": { + "id": 213531, + "score": 0, + "name": "Temperley", + "longName": "Temperley" + }, + "away": { + "id": 146371, + "score": 0, + "name": "San Martin de Tucuman", + "longName": "San Martin de Tucuman" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-07T22:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 23:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772920800000 + }, + { + "id": 5112862, + "leagueId": 916553, + "time": "08.03.2026 00:00", + "home": { + "id": 213535, + "score": 0, + "name": "Colegiales", + "longName": "Colegiales" + }, + "away": { + "id": 10226, + "score": 0, + "name": "Quilmes", + "longName": "Quilmes" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-07T23:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 00:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772924400000 + }, + { + "id": 4834543, + "leagueId": 173, + "time": "08.03.2026 15:00", + "home": { + "id": 7872, + "score": 0, + "name": "Olimpija Ljubljana", + "longName": "Olimpija Ljubljana" + }, + "away": { + "id": 8340, + "score": 0, + "name": "Maribor", + "longName": "Maribor" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:03:33", + "secondHalfStarted": "08.03.2026 16:12:45" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4834540, + "leagueId": 173, + "time": "08.03.2026 17:30", + "home": { + "id": 1862, + "score": 2, + "name": "Aluminij", + "longName": "Aluminij" + }, + "away": { + "id": 5772, + "score": 4, + "name": "Koper", + "longName": "Koper" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T16:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:33:17", + "secondHalfStarted": "08.03.2026 18:36:42" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772987400000 + }, + { + "id": 4904849, + "leagueId": 249, + "time": "08.03.2026 14:00", + "home": { + "id": 1523811, + "score": 2, + "name": "Bashkimi", + "longName": "Bashkimi" + }, + "away": { + "id": 276798, + "score": 0, + "name": "Makedonija GP", + "longName": "Makedonija GP" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:00:15", + "secondHalfStarted": "08.03.2026 15:05:00" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4904854, + "leagueId": 249, + "time": "08.03.2026 14:00", + "home": { + "id": 206546, + "score": 1, + "name": "GFK Tikves Kavadarci", + "longName": "GFK Tikves Kavadarci" + }, + "away": { + "id": 1589, + "score": 0, + "name": "Pelister", + "longName": "Pelister" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "22", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:03:41", + "secondHalfStarted": "08.03.2026 15:05:00" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4869353, + "leagueId": 901198, + "time": "08.03.2026 13:30", + "home": { + "id": 765375, + "score": 0, + "name": "HSC Hannover", + "longName": "HSC Hannover" + }, + "away": { + "id": 79905, + "score": 3, + "name": "Oldenburg", + "longName": "Oldenburg" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T12:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:32:49", + "secondHalfStarted": "08.03.2026 14:32:32" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973000000 + }, + { + "id": 4869197, + "leagueId": 901198, + "time": "08.03.2026 14:00", + "home": { + "id": 145705, + "score": 3, + "name": "Bremer SV", + "redCards": 1, + "longName": "Bremer SV" + }, + "away": { + "id": 1381258, + "score": 3, + "name": "Sch\u00f6ningen", + "longName": "Sch\u00f6ningen" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:00", + "secondHalfStarted": "08.03.2026 15:04:34" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4869356, + "leagueId": 901198, + "time": "08.03.2026 14:00", + "home": { + "id": 145723, + "score": 3, + "name": "Eintracht Norderstedt", + "longName": "Eintracht Norderstedt" + }, + "away": { + "id": 4478, + "score": 2, + "name": "St. Pauli II", + "longName": "St. Pauli II" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:02", + "secondHalfStarted": "08.03.2026 15:04:34" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4869352, + "leagueId": 901198, + "time": "08.03.2026 15:00", + "home": { + "id": 8167, + "score": 0, + "name": "Hannover 96 II", + "longName": "Hannover 96 II" + }, + "away": { + "id": 8192, + "score": 0, + "name": "Kickers Emden", + "longName": "Kickers Emden" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:00:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4869354, + "leagueId": 901198, + "time": "08.03.2026 15:00", + "home": { + "id": 343377, + "score": 2, + "name": "SSV Jeddeloh", + "longName": "SSV Jeddeloh" + }, + "away": { + "id": 79904, + "score": 3, + "name": "Meppen", + "longName": "Meppen" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:01:56", + "secondHalfStarted": "08.03.2026 16:04:01" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4850727, + "leagueId": 899890, + "time": "08.03.2026 14:00", + "home": { + "id": 6081, + "score": 1, + "name": "Hertha Zehlendorf", + "redCards": 1, + "longName": "Hertha Zehlendorf" + }, + "away": { + "id": 177076, + "score": 1, + "name": "FSV Luckenwalde", + "longName": "FSV Luckenwalde" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:02", + "secondHalfStarted": "08.03.2026 15:04:34" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4850728, + "leagueId": 899890, + "time": "08.03.2026 14:00", + "home": { + "id": 145597, + "score": 1, + "name": "Lokomotive Leipzig", + "longName": "Lokomotive Leipzig" + }, + "away": { + "id": 8320, + "score": 2, + "name": "Carl Zeiss Jena", + "longName": "Carl Zeiss Jena" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:02", + "secondHalfStarted": "08.03.2026 15:04:34" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4850723, + "leagueId": 899890, + "time": "08.03.2026 14:00", + "home": { + "id": 8148, + "score": 2, + "name": "RW Erfurt", + "redCards": 1, + "longName": "RW Erfurt" + }, + "away": { + "id": 586031, + "score": 2, + "name": "BSG Chemie Leipzig", + "longName": "BSG Chemie Leipzig" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:02", + "secondHalfStarted": "08.03.2026 15:04:34" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4850730, + "leagueId": 899890, + "time": "08.03.2026 14:00", + "home": { + "id": 95209, + "score": 4, + "name": "ZFC Meuselwitz", + "longName": "ZFC Meuselwitz" + }, + "away": { + "id": 339999, + "score": 0, + "name": "VSG Altglienicke", + "redCards": 1, + "longName": "VSG Altglienicke" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:02", + "secondHalfStarted": "08.03.2026 15:04:34" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4860953, + "leagueId": 901354, + "time": "08.03.2026 14:00", + "home": { + "id": 1734, + "score": 1, + "name": "Homburg", + "longName": "Homburg" + }, + "away": { + "id": 8407, + "score": 1, + "name": "Kickers Offenbach", + "longName": "Kickers Offenbach" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "23", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:02", + "secondHalfStarted": "08.03.2026 15:04:34" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4860738, + "leagueId": 901355, + "time": "08.03.2026 14:00", + "home": { + "id": 8200, + "score": 3, + "name": "Bochum II", + "longName": "Bochum II" + }, + "away": { + "id": 95106, + "score": 1, + "name": "SC Wiedenbr\u00fcck", + "longName": "SC Wiedenbr\u00fcck" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:02", + "secondHalfStarted": "08.03.2026 15:04:34" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4927528, + "leagueId": 536, + "time": "07.03.2026 20:00", + "home": { + "id": 582759, + "score": 0, + "name": "Al Akhdoud", + "longName": "Al Akhdoud" + }, + "away": { + "id": 582749, + "score": 5, + "name": "Al-Fayha", + "longName": "Al-Fayha" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-07T19:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:07:25", + "secondHalfStarted": "07.03.2026 21:03:52" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 5", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910000000 + }, + { + "id": 4927526, + "leagueId": 536, + "time": "07.03.2026 20:00", + "home": { + "id": 1523706, + "score": 1, + "name": "Al Kholood", + "longName": "Al Kholood" + }, + "away": { + "id": 101919, + "score": 4, + "name": "Al Qadsiah", + "longName": "Al Qadsiah" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-07T19:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:01:16", + "secondHalfStarted": "07.03.2026 21:07:00" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910000000 + }, + { + "id": 4927527, + "leagueId": 536, + "time": "07.03.2026 20:00", + "home": { + "id": 101918, + "score": 1, + "name": "Al Nassr FC", + "longName": "Al Nassr FC" + }, + "away": { + "id": 1699505, + "score": 0, + "name": "Neom SC", + "longName": "Neom SC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-07T19:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:03:26", + "secondHalfStarted": "07.03.2026 21:07:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910000000 + }, + { + "id": 4927523, + "leagueId": 536, + "time": "07.03.2026 20:00", + "home": { + "id": 101915, + "score": 1, + "name": "Al-Ettifaq", + "longName": "Al-Ettifaq" + }, + "away": { + "id": 101916, + "score": 1, + "name": "Al Shabab", + "longName": "Al Shabab" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-07T19:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:01:33", + "secondHalfStarted": "07.03.2026 21:05:25" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910000000 + }, + { + "id": 4951372, + "leagueId": 9096, + "time": "08.03.2026 14:30", + "home": { + "id": 1651910, + "score": 1, + "name": "Fratria", + "longName": "Fratria" + }, + "away": { + "id": 675790, + "score": 4, + "name": "Sevlievo", + "longName": "Sevlievo" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "23", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:33:31", + "secondHalfStarted": "08.03.2026 15:35:38" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4872336, + "leagueId": 901483, + "time": "08.03.2026 16:00", + "home": { + "id": 189588, + "score": 1, + "name": "CD Lealtad", + "longName": "CD Lealtad" + }, + "away": { + "id": 2244, + "score": 0, + "name": "Gimnastica Segoviana", + "longName": "Gimnastica Segoviana" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:16", + "secondHalfStarted": "08.03.2026 17:03:51" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4872333, + "leagueId": 901483, + "time": "08.03.2026 17:00", + "home": { + "id": 277424, + "score": 1, + "name": "Burgos Promesas", + "longName": "Burgos Promesas" + }, + "away": { + "id": 189567, + "score": 0, + "name": "Bergantinos CF", + "longName": "Bergantinos CF" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:03:14", + "secondHalfStarted": "08.03.2026 18:04:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4872334, + "leagueId": 901483, + "time": "08.03.2026 17:00", + "home": { + "id": 96929, + "score": 1, + "name": "Coruxo FC", + "longName": "Coruxo FC" + }, + "away": { + "id": 189590, + "score": 2, + "name": "UP Langreo", + "longName": "UP Langreo" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:01:57", + "secondHalfStarted": "08.03.2026 18:04:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4872338, + "leagueId": 901483, + "time": "08.03.2026 17:00", + "home": { + "id": 490334, + "score": 5, + "name": "Salamanca CF UDS", + "longName": "Salamanca CF UDS" + }, + "away": { + "id": 657830, + "score": 1, + "name": "UD Samano", + "longName": "UD Samano" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:03:14", + "secondHalfStarted": "08.03.2026 18:01:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "5 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4872339, + "leagueId": 901483, + "time": "08.03.2026 17:00", + "home": { + "id": 1784666, + "score": 3, + "name": "UD Ourense", + "longName": "UD Ourense" + }, + "away": { + "id": 209008, + "score": 0, + "name": "Real Oviedo B", + "longName": "Real Oviedo B" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:03:14", + "secondHalfStarted": "08.03.2026 18:05:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4872830, + "leagueId": 901484, + "time": "08.03.2026 12:00", + "home": { + "id": 277394, + "score": 2, + "name": "Deportivo Alaves B", + "longName": "Deportivo Alaves B" + }, + "away": { + "id": 96923, + "score": 1, + "name": "Utebo", + "longName": "Utebo" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:05:14", + "secondHalfStarted": "08.03.2026 13:08:02" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4872838, + "leagueId": 901484, + "time": "08.03.2026 12:00", + "home": { + "id": 190092, + "score": 1, + "name": "Deportivo Aragon", + "longName": "Deportivo Aragon" + }, + "away": { + "id": 189627, + "score": 1, + "name": "CD Basconia", + "longName": "CD Basconia" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:03:09", + "secondHalfStarted": "08.03.2026 13:10:38" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4872833, + "leagueId": 901484, + "time": "08.03.2026 12:00", + "home": { + "id": 141787, + "score": 1, + "name": "Ejea", + "longName": "Ejea" + }, + "away": { + "id": 190077, + "score": 1, + "name": "Naxara", + "longName": "Naxara" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:02:18", + "secondHalfStarted": "08.03.2026 13:05:32" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4872834, + "leagueId": 901484, + "time": "08.03.2026 12:00", + "home": { + "id": 189629, + "score": 1, + "name": "SD Gernika", + "longName": "SD Gernika" + }, + "away": { + "id": 7880, + "score": 3, + "name": "Logrones", + "longName": "Logrones" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:02:18", + "secondHalfStarted": "08.03.2026 13:05:10" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4872831, + "leagueId": 901484, + "time": "08.03.2026 17:00", + "home": { + "id": 141783, + "score": 0, + "name": "CD Alfaro", + "longName": "CD Alfaro" + }, + "away": { + "id": 189624, + "score": 0, + "name": "SD Amorebieta", + "longName": "SD Amorebieta" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:03:14", + "secondHalfStarted": "08.03.2026 18:03:49" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4872835, + "leagueId": 901484, + "time": "08.03.2026 17:00", + "home": { + "id": 8380, + "score": 4, + "name": "Real Union", + "longName": "Real Union" + }, + "away": { + "id": 7726, + "score": 0, + "name": "Beasain", + "longName": "Beasain" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:02:00", + "secondHalfStarted": "08.03.2026 18:03:49" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4872836, + "leagueId": 901484, + "time": "08.03.2026 17:00", + "home": { + "id": 210847, + "score": 1, + "name": "SD Logrones", + "redCards": 1, + "longName": "SD Logrones" + }, + "away": { + "id": 190057, + "score": 3, + "name": "UD Mutilvera", + "longName": "UD Mutilvera" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 17:03:14", + "secondHalfStarted": "08.03.2026 18:05:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4872837, + "leagueId": 901484, + "time": "08.03.2026 17:00", + "home": { + "id": 190055, + "score": 2, + "name": "Tudelano", + "longName": "Tudelano" + }, + "away": { + "id": 209199, + "score": 4, + "name": "Ebro", + "longName": "Ebro" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:10:30", + "secondHalfStarted": "08.03.2026 18:03:08" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4873860, + "leagueId": 901485, + "time": "08.03.2026 11:30", + "home": { + "id": 1783970, + "score": 1, + "name": "Atletic Lleida", + "longName": "Atletic Lleida" + }, + "away": { + "id": 189750, + "score": 2, + "name": "Poblense", + "longName": "Poblense" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T10:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 11:40:13", + "secondHalfStarted": "08.03.2026 12:35:26" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772965800000 + }, + { + "id": 4873861, + "leagueId": 901485, + "time": "08.03.2026 12:00", + "home": { + "id": 161774, + "score": 1, + "name": "Barca Atletic", + "longName": "Barca Atletic" + }, + "away": { + "id": 141784, + "score": 1, + "name": "Atletico Baleares", + "longName": "Atletico Baleares" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:02:18", + "secondHalfStarted": "08.03.2026 13:02:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4873859, + "leagueId": 901485, + "time": "08.03.2026 12:00", + "home": { + "id": 351558, + "score": 1, + "name": "CE Andratx", + "redCards": 1, + "longName": "CE Andratx" + }, + "away": { + "id": 1784556, + "score": 1, + "name": "Castellon B", + "longName": "Castellon B" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 12:02:18", + "secondHalfStarted": "08.03.2026 13:08:24" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4873863, + "leagueId": 901485, + "time": "08.03.2026 12:00", + "home": { + "id": 1784557, + "score": 1, + "name": "Girona B", + "redCards": 1, + "longName": "Girona B" + }, + "away": { + "id": 161777, + "score": 1, + "name": "Valencia B", + "longName": "Valencia B" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 12:02:18", + "secondHalfStarted": "08.03.2026 13:04:02" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4873865, + "leagueId": 901485, + "time": "08.03.2026 12:00", + "home": { + "id": 1207140, + "score": 1, + "name": "Ibiza Islas Pitiusas", + "longName": "Ibiza Islas Pitiusas" + }, + "away": { + "id": 8214, + "score": 2, + "name": "Barbastro", + "longName": "Barbastro" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:03:09", + "secondHalfStarted": "08.03.2026 13:05:32" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4873867, + "leagueId": 901485, + "time": "08.03.2026 12:00", + "home": { + "id": 1515440, + "score": 1, + "name": "Torrent CF", + "longName": "Torrent CF" + }, + "away": { + "id": 1784558, + "score": 0, + "name": "Porreres", + "longName": "Porreres" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:02:18", + "secondHalfStarted": "08.03.2026 13:05:32" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4873866, + "leagueId": 901485, + "time": "08.03.2026 12:30", + "home": { + "id": 7822, + "score": 1, + "name": "Terrassa", + "longName": "Terrassa" + }, + "away": { + "id": 277406, + "score": 0, + "name": "UE Olot", + "longName": "UE Olot" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:34:52", + "secondHalfStarted": "08.03.2026 13:38:43" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772969400000 + }, + { + "id": 4873864, + "leagueId": 901485, + "time": "08.03.2026 17:00", + "home": { + "id": 96927, + "score": 0, + "name": "Reus", + "longName": "Reus" + }, + "away": { + "id": 4697, + "score": 1, + "name": "Alcoyano", + "redCards": 1, + "longName": "Alcoyano" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 17:03:14", + "secondHalfStarted": "08.03.2026 18:07:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4873862, + "leagueId": 901485, + "time": "08.03.2026 18:00", + "home": { + "id": 177226, + "score": 1, + "name": "Espanyol B", + "longName": "Espanyol B" + }, + "away": { + "id": 8229, + "score": 2, + "name": "Sant Andreu", + "longName": "Sant Andreu" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:04:27", + "secondHalfStarted": "08.03.2026 19:08:42" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 4874871, + "leagueId": 901486, + "time": "08.03.2026 12:00", + "home": { + "id": 189701, + "score": 2, + "name": "Almeria B", + "longName": "Almeria B" + }, + "away": { + "id": 1686598, + "score": 2, + "name": "CD Extremadura", + "longName": "CD Extremadura" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:02:18", + "secondHalfStarted": "08.03.2026 13:05:42" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4874872, + "leagueId": 901486, + "time": "08.03.2026 12:00", + "home": { + "id": 177231, + "score": 3, + "name": "CD Estepona", + "longName": "CD Estepona" + }, + "away": { + "id": 465112, + "score": 2, + "name": "La Union CF", + "longName": "La Union CF" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:00:30", + "secondHalfStarted": "08.03.2026 13:08:24" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4874873, + "leagueId": 901486, + "time": "08.03.2026 12:00", + "home": { + "id": 278805, + "score": 3, + "name": "Deportiva Minera", + "longName": "Deportiva Minera" + }, + "away": { + "id": 6210, + "score": 2, + "name": "Atletico Malagueno", + "redCards": 1, + "longName": "Atletico Malagueno" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 12:02:18", + "secondHalfStarted": "08.03.2026 13:06:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4874874, + "leagueId": 901486, + "time": "08.03.2026 12:00", + "home": { + "id": 357261, + "score": 1, + "name": "Linares Deportivo", + "longName": "Linares Deportivo" + }, + "away": { + "id": 7799, + "score": 1, + "name": "Real Jaen", + "longName": "Real Jaen" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:00:38", + "secondHalfStarted": "08.03.2026 13:04:25" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4874876, + "leagueId": 901486, + "time": "08.03.2026 12:00", + "home": { + "id": 141789, + "score": 1, + "name": "Melilla", + "longName": "Melilla" + }, + "away": { + "id": 277430, + "score": 1, + "name": "CA Antoniano", + "longName": "CA Antoniano" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:00:23", + "secondHalfStarted": "08.03.2026 13:04:25" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4874878, + "leagueId": 901486, + "time": "08.03.2026 17:30", + "home": { + "id": 189781, + "score": 1, + "name": "Yeclano", + "longName": "Yeclano" + }, + "away": { + "id": 189783, + "score": 1, + "name": "UCAM Murcia", + "redCards": 1, + "longName": "UCAM Murcia" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T16:30:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 17:32:21", + "secondHalfStarted": "08.03.2026 18:34:30" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772987400000 + }, + { + "id": 4874875, + "leagueId": 901486, + "time": "08.03.2026 18:00", + "home": { + "id": 656544, + "score": 1, + "name": "Lorca Deportiva", + "redCards": 1, + "longName": "Lorca Deportiva" + }, + "away": { + "id": 1315047, + "score": 0, + "name": "Xerez Deportivo", + "longName": "Xerez Deportivo" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 18:01:10", + "secondHalfStarted": "08.03.2026 19:05:19" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 4874877, + "leagueId": 901486, + "time": "08.03.2026 18:00", + "home": { + "id": 9868, + "score": 1, + "name": "Xerez", + "longName": "Xerez" + }, + "away": { + "id": 8479, + "score": 0, + "name": "Recreativo Huelva", + "longName": "Recreativo Huelva" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:03:09", + "secondHalfStarted": "08.03.2026 19:09:57" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 4874870, + "leagueId": 901486, + "time": "08.03.2026 18:30", + "home": { + "id": 278806, + "score": 3, + "name": "CDA Aguilas FC", + "longName": "CDA Aguilas FC" + }, + "away": { + "id": 1784559, + "score": 1, + "name": "Puente Genil", + "longName": "Puente Genil" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T17:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:31:39", + "secondHalfStarted": "08.03.2026 19:36:24" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772991000000 + }, + { + "id": 4874565, + "leagueId": 901487, + "time": "08.03.2026 11:30", + "home": { + "id": 189672, + "score": 4, + "name": "Getafe B", + "longName": "Getafe B" + }, + "away": { + "id": 189807, + "score": 1, + "name": "CD Coria", + "longName": "CD Coria" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T10:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 11:34:23", + "secondHalfStarted": "08.03.2026 12:35:26" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772965800000 + }, + { + "id": 4874564, + "leagueId": 901487, + "time": "08.03.2026 12:00", + "home": { + "id": 278798, + "score": 4, + "name": "CD Colonia Moscardo", + "longName": "CD Colonia Moscardo" + }, + "away": { + "id": 189671, + "score": 0, + "name": "Rayo Vallecano B", + "longName": "Rayo Vallecano B" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:05:26", + "secondHalfStarted": "08.03.2026 13:10:47" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4874563, + "leagueId": 901487, + "time": "08.03.2026 12:00", + "home": { + "id": 1112101, + "score": 0, + "name": "CF Intercity", + "redCards": 1, + "longName": "CF Intercity" + }, + "away": { + "id": 6256, + "score": 2, + "name": "Conquense", + "longName": "Conquense" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 12:02:18", + "secondHalfStarted": "08.03.2026 13:04:02" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4874566, + "leagueId": 901487, + "time": "08.03.2026 12:00", + "home": { + "id": 161760, + "score": 1, + "name": "Las Palmas B", + "longName": "Las Palmas B" + }, + "away": { + "id": 190126, + "score": 2, + "name": "CD Quintanar del Rey", + "redCards": 1, + "longName": "CD Quintanar del Rey" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 12:04:23", + "secondHalfStarted": "08.03.2026 13:11:31" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4874568, + "leagueId": 901487, + "time": "08.03.2026 12:00", + "home": { + "id": 189680, + "score": 4, + "name": "Real Madrid C", + "longName": "Real Madrid C" + }, + "away": { + "id": 181802, + "score": 0, + "name": "Tenerife B", + "redCards": 1, + "longName": "Tenerife B" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 12:02:18", + "secondHalfStarted": "08.03.2026 13:08:47" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4874571, + "leagueId": 901487, + "time": "08.03.2026 12:00", + "home": { + "id": 190123, + "score": 1, + "name": "Socuellamos", + "longName": "Socuellamos" + }, + "away": { + "id": 161758, + "score": 0, + "name": "Navalcarnero", + "longName": "Navalcarnero" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:03:09", + "secondHalfStarted": "08.03.2026 13:06:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 4874567, + "leagueId": 901487, + "time": "08.03.2026 18:30", + "home": { + "id": 8213, + "score": 2, + "name": "Orihuela", + "longName": "Orihuela" + }, + "away": { + "id": 189674, + "score": 3, + "name": "Rayo Majadahonda", + "redCards": 1, + "longName": "Rayo Majadahonda" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T17:30:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 18:31:39", + "secondHalfStarted": "08.03.2026 19:35:00" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772991000000 + }, + { + "id": 4906268, + "leagueId": 902171, + "time": "08.03.2026 15:00", + "home": { + "id": 10168, + "score": 3, + "name": "Catanzaro", + "longName": "Catanzaro" + }, + "away": { + "id": 8534, + "score": 2, + "name": "Empoli", + "longName": "Empoli" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:03:33", + "secondHalfStarted": "08.03.2026 16:08:38" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4906269, + "leagueId": 902171, + "time": "08.03.2026 15:00", + "home": { + "id": 9891, + "score": 3, + "name": "Frosinone", + "longName": "Frosinone" + }, + "away": { + "id": 9882, + "score": 0, + "name": "Sampdoria", + "longName": "Sampdoria" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 15:03:33", + "secondHalfStarted": "08.03.2026 16:04:51" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4906270, + "leagueId": 902171, + "time": "08.03.2026 15:00", + "home": { + "id": 9889, + "score": 2, + "name": "Mantova", + "longName": "Mantova" + }, + "away": { + "id": 6106, + "score": 0, + "name": "Juve Stabia", + "redCards": 2, + "longName": "Juve Stabia" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "numberOfAwayRedCards": 2, + "halfs": { + "firstHalfStarted": "08.03.2026 15:03:33", + "secondHalfStarted": "08.03.2026 16:08:38" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4906267, + "leagueId": 902171, + "time": "08.03.2026 17:15", + "home": { + "id": 6488, + "score": 0, + "name": "Carrarese", + "longName": "Carrarese" + }, + "away": { + "id": 8540, + "score": 1, + "name": "Palermo", + "longName": "Palermo" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T16:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:17:35", + "secondHalfStarted": "08.03.2026 18:22:45" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772986500000 + }, + { + "id": 4906272, + "leagueId": 902171, + "time": "08.03.2026 19:45", + "home": { + "id": 9878, + "score": 4, + "name": "Pescara", + "longName": "Pescara" + }, + "away": { + "id": 9976, + "score": 0, + "name": "Bari", + "longName": "Bari" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T18:45:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:46:41", + "secondHalfStarted": "08.03.2026 20:47:43" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772995500000 + }, + { + "id": 4898616, + "leagueId": 901979, + "time": "08.03.2026 12:30", + "home": { + "id": 6071, + "score": 1, + "name": "Forl\u00ec", + "longName": "Forl\u00ec" + }, + "away": { + "id": 8537, + "score": 1, + "name": "Livorno", + "longName": "Livorno" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "31", + "status": { + "utcTime": "2026-03-08T11:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:30:44", + "secondHalfStarted": "08.03.2026 13:37:29" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772969400000 + }, + { + "id": 4898618, + "leagueId": 901979, + "time": "08.03.2026 12:30", + "home": { + "id": 956184, + "score": 1, + "name": "Juventus Next Gen", + "longName": "Juventus Next Gen" + }, + "away": { + "id": 6049, + "score": 3, + "name": "Vis Pesaro", + "longName": "Vis Pesaro" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "31", + "status": { + "utcTime": "2026-03-08T11:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:32:08", + "secondHalfStarted": "08.03.2026 13:38:43" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772969400000 + }, + { + "id": 4898615, + "leagueId": 901979, + "time": "08.03.2026 14:30", + "home": { + "id": 208931, + "score": 1, + "name": "Carpi", + "longName": "Carpi" + }, + "away": { + "id": 7856, + "score": 1, + "name": "Torres", + "longName": "Torres" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "31", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:32:32", + "secondHalfStarted": "08.03.2026 15:35:18" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4898620, + "leagueId": 901979, + "time": "08.03.2026 14:30", + "home": { + "id": 584069, + "score": 1, + "name": "Pianese", + "longName": "Pianese" + }, + "away": { + "id": 770928, + "score": 0, + "name": "Pineto", + "longName": "Pineto" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "31", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:31:13", + "secondHalfStarted": "08.03.2026 15:37:00" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4898617, + "leagueId": 901979, + "time": "08.03.2026 17:30", + "home": { + "id": 1667898, + "score": 0, + "name": "Guidonia Montecelio", + "redCards": 1, + "longName": "Guidonia Montecelio" + }, + "away": { + "id": 8482, + "score": 1, + "name": "Sambenedettese", + "longName": "Sambenedettese" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "31", + "status": { + "utcTime": "2026-03-08T16:30:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 17:31:37", + "secondHalfStarted": "08.03.2026 18:37:06" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772987400000 + }, + { + "id": 4898613, + "leagueId": 901979, + "time": "08.03.2026 18:30", + "home": { + "id": 474518, + "score": 0, + "name": "Bra", + "longName": "Bra" + }, + "away": { + "id": 9886, + "score": 0, + "name": "Rimini", + "longName": "Rimini" + }, + "eliminatedTeamId": null, + "statusId": 106, + "tournamentStage": "31", + "status": { + "utcTime": "2026-03-08T17:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:30:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "Can", + "shortKey": "cancelled_short", + "long": "Cancelled", + "longKey": "cancelled" + } + }, + "timeTS": 1772991000000 + }, + { + "id": 4899207, + "leagueId": 901990, + "time": "08.03.2026 14:30", + "home": { + "id": 6456, + "score": 1, + "name": "Cosenza", + "longName": "Cosenza" + }, + "away": { + "id": 867623, + "score": 0, + "name": "Team Altamura", + "longName": "Team Altamura" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "31", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:31:47", + "secondHalfStarted": "08.03.2026 15:37:07" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4899210, + "leagueId": 901990, + "time": "08.03.2026 14:30", + "home": { + "id": 6480, + "score": 2, + "name": "Salernitana", + "redCards": 2, + "longName": "Salernitana" + }, + "away": { + "id": 212660, + "score": 1, + "name": "Latina", + "longName": "Latina" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "31", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "numberOfHomeRedCards": 2, + "halfs": { + "firstHalfStarted": "08.03.2026 14:31:47", + "secondHalfStarted": "08.03.2026 15:35:18" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4899211, + "leagueId": 901990, + "time": "08.03.2026 14:30", + "home": { + "id": 674812, + "score": 2, + "name": "Siracusa Calcio", + "longName": "Siracusa Calcio" + }, + "away": { + "id": 6040, + "score": 1, + "name": "Giugliano", + "longName": "Giugliano" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "31", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:31:47", + "secondHalfStarted": "08.03.2026 15:35:18" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4899213, + "leagueId": 901990, + "time": "08.03.2026 14:30", + "home": { + "id": 208936, + "score": 1, + "name": "Trapani", + "longName": "Trapani" + }, + "away": { + "id": 9884, + "score": 4, + "name": "Crotone", + "longName": "Crotone" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "31", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:31:47", + "secondHalfStarted": "08.03.2026 15:38:59" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4899208, + "leagueId": 901990, + "time": "08.03.2026 17:30", + "home": { + "id": 6466, + "score": 0, + "name": "Foggia", + "longName": "Foggia" + }, + "away": { + "id": 6099, + "score": 1, + "name": "Potenza", + "longName": "Potenza" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "31", + "status": { + "utcTime": "2026-03-08T16:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:32:58", + "secondHalfStarted": "08.03.2026 18:37:06" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772987400000 + }, + { + "id": 4899212, + "leagueId": 901990, + "time": "08.03.2026 17:30", + "home": { + "id": 88998, + "score": 0, + "name": "Sorrento", + "longName": "Sorrento" + }, + "away": { + "id": 6266, + "score": 2, + "name": "Benevento", + "longName": "Benevento" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "31", + "status": { + "utcTime": "2026-03-08T16:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:31:37", + "secondHalfStarted": "08.03.2026 18:38:15" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772987400000 + }, + { + "id": 5135658, + "leagueId": 918861, + "time": "07.03.2026 21:30", + "home": { + "id": 5909, + "score": 1, + "name": "USA (W)", + "longName": "USA (W)" + }, + "away": { + "id": 239729, + "score": 0, + "name": "Colombia (W)", + "longName": "Colombia (W)" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-07T20:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:38:22", + "secondHalfStarted": "07.03.2026 22:42:15" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772915400000 + }, + { + "id": 5204886, + "leagueId": 905798, + "time": "07.03.2026 21:15", + "home": { + "id": 1680577, + "score": 2, + "name": "Al-Karma", + "longName": "Al-Karma" + }, + "away": { + "id": 101649, + "score": 3, + "name": "Erbil", + "longName": "Erbil" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "21", + "status": { + "utcTime": "2026-03-07T20:15:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 21:17:43", + "secondHalfStarted": "07.03.2026 22:25:49" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772914500000 + }, + { + "id": 5204887, + "leagueId": 905798, + "time": "07.03.2026 21:15", + "home": { + "id": 101650, + "score": 2, + "name": "Duhok", + "longName": "Duhok" + }, + "away": { + "id": 101655, + "score": 1, + "name": "Al Shorta", + "redCards": 1, + "longName": "Al Shorta" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "21", + "status": { + "utcTime": "2026-03-07T20:15:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "07.03.2026 21:19:00", + "secondHalfStarted": "07.03.2026 22:26:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772914500000 + }, + { + "id": 4859162, + "leagueId": 900624, + "time": "08.03.2026 15:00", + "home": { + "id": 80654, + "score": 0, + "name": "Asteras Tripolis", + "redCards": 1, + "longName": "Asteras Tripolis" + }, + "away": { + "id": 104814, + "score": 1, + "name": "Panserraikos FC", + "longName": "Panserraikos FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "24", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 15:03:33", + "secondHalfStarted": "08.03.2026 16:06:12" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 4859166, + "leagueId": 900624, + "time": "08.03.2026 16:00", + "home": { + "id": 885256, + "score": 1, + "name": "NFC Volos", + "longName": "NFC Volos" + }, + "away": { + "id": 7753, + "score": 1, + "name": "OFI Crete", + "longName": "OFI Crete" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "24", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:03:06", + "secondHalfStarted": "08.03.2026 17:10:43" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4859163, + "leagueId": 900624, + "time": "08.03.2026 18:00", + "home": { + "id": 4493, + "score": 1, + "name": "Levadiakos", + "longName": "Levadiakos" + }, + "away": { + "id": 10200, + "score": 4, + "name": "Panathinaikos", + "longName": "Panathinaikos" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "24", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:03:45", + "secondHalfStarted": "08.03.2026 19:09:11" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 5106028, + "leagueId": 900529, + "time": "07.03.2026 20:30", + "home": { + "id": 7896, + "score": 1, + "name": "Lugano", + "longName": "Lugano" + }, + "away": { + "id": 10199, + "score": 3, + "name": "Luzern", + "longName": "Luzern" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-07T19:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:31:03", + "secondHalfStarted": "07.03.2026 21:31:29" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772911800000 + }, + { + "id": 5106029, + "leagueId": 900529, + "time": "08.03.2026 14:00", + "home": { + "id": 10190, + "score": 3, + "name": "St. Gallen", + "longName": "St. Gallen" + }, + "away": { + "id": 9931, + "score": 0, + "name": "Basel", + "longName": "Basel" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:01:04", + "secondHalfStarted": "08.03.2026 15:03:33" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 5106030, + "leagueId": 900529, + "time": "08.03.2026 16:30", + "home": { + "id": 9956, + "score": 2, + "name": "Grasshopper", + "redCards": 1, + "longName": "Grasshopper" + }, + "away": { + "id": 7730, + "score": 3, + "name": "Lausanne", + "longName": "Lausanne" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T15:30:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 16:30:52", + "secondHalfStarted": "08.03.2026 17:32:58" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772983800000 + }, + { + "id": 5106031, + "leagueId": 900529, + "time": "08.03.2026 16:30", + "home": { + "id": 10192, + "score": 1, + "name": "Young Boys", + "longName": "Young Boys" + }, + "away": { + "id": 10191, + "score": 2, + "name": "Thun", + "longName": "Thun" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T15:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:31:22", + "secondHalfStarted": "08.03.2026 17:38:42" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772983800000 + }, + { + "id": 5186409, + "leagueId": 920266, + "time": "08.03.2026 08:30", + "home": { + "id": 51443, + "score": 2, + "name": "Zhejiang Professional", + "longName": "Zhejiang Professional" + }, + "away": { + "id": 1283248, + "score": 0, + "name": "Qingdao West Coast", + "longName": "Qingdao West Coast" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T07:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 08:30:56", + "secondHalfStarted": "08.03.2026 09:39:18" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772955000000 + }, + { + "id": 5186410, + "leagueId": 920266, + "time": "08.03.2026 12:00", + "home": { + "id": 1029687, + "score": 0, + "name": "Wuhan Three Towns", + "longName": "Wuhan Three Towns" + }, + "away": { + "id": 4177, + "score": 2, + "name": "Beijing Guoan", + "longName": "Beijing Guoan" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:03:09", + "secondHalfStarted": "08.03.2026 13:03:21" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 5175799, + "leagueId": 920539, + "time": "08.03.2026 14:00", + "home": { + "id": 1679128, + "score": 0, + "name": "Asteras Tripolis B", + "longName": "Asteras Tripolis B" + }, + "away": { + "id": 8675, + "score": 2, + "name": "Iraklis", + "longName": "Iraklis" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:04:24", + "secondHalfStarted": "08.03.2026 15:05:01" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 5175800, + "leagueId": 920539, + "time": "08.03.2026 14:00", + "home": { + "id": 6013, + "score": 1, + "name": "Niki Volou", + "longName": "Niki Volou" + }, + "away": { + "id": 149647, + "score": 0, + "name": "Anagennisi Karditsas", + "longName": "Anagennisi Karditsas" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:02", + "secondHalfStarted": "08.03.2026 15:01:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 5176035, + "leagueId": 920540, + "time": "08.03.2026 14:00", + "home": { + "id": 162387, + "score": 0, + "name": "Makedonikos Neapolis", + "longName": "Makedonikos Neapolis" + }, + "away": { + "id": 149646, + "score": 0, + "name": "Kavala", + "longName": "Kavala" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:02:02", + "secondHalfStarted": "08.03.2026 15:01:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 5176103, + "leagueId": 920540, + "time": "08.03.2026 14:00", + "home": { + "id": 1303118, + "score": 3, + "name": "PAOK Thessaloniki B", + "longName": "PAOK Thessaloniki B" + }, + "away": { + "id": 488158, + "score": 0, + "name": "Kampaniakos Chalastras", + "longName": "Kampaniakos Chalastras" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:04:24", + "secondHalfStarted": "08.03.2026 15:07:59" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 5176102, + "leagueId": 920540, + "time": "08.03.2026 14:00", + "home": { + "id": 1620, + "score": 0, + "name": "PAS Giannina", + "longName": "PAS Giannina" + }, + "away": { + "id": 488150, + "score": 0, + "name": "Nestos Chrisoupolis", + "redCards": 1, + "longName": "Nestos Chrisoupolis" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "4", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 14:04:24", + "secondHalfStarted": "08.03.2026 15:07:59" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4842536, + "leagueId": 71, + "time": "08.03.2026 11:30", + "home": { + "id": 4081, + "score": 1, + "name": "Gaziantep FK", + "longName": "Gaziantep FK" + }, + "away": { + "id": 2088, + "score": 1, + "name": "Karag\u00fcmr\u00fck", + "longName": "Fatih Karag\u00fcmr\u00fck" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T10:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 11:31:37", + "secondHalfStarted": "08.03.2026 12:37:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772965800000 + }, + { + "id": 4842539, + "leagueId": 71, + "time": "08.03.2026 11:30", + "home": { + "id": 2166, + "score": 1, + "name": "Rizespor", + "longName": "Rizespor" + }, + "away": { + "id": 1931, + "score": 0, + "name": "Antalyaspor", + "longName": "Antalyaspor" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T10:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 11:31:40", + "secondHalfStarted": "08.03.2026 12:37:46" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772965800000 + }, + { + "id": 4842538, + "leagueId": 71, + "time": "08.03.2026 14:00", + "home": { + "id": 8622, + "score": 1, + "name": "Konyaspor", + "longName": "Konyaspor" + }, + "away": { + "id": 4685, + "score": 1, + "name": "Kas\u0131mpa\u015fa", + "longName": "Kas\u0131mpa\u015fa" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:01:36", + "secondHalfStarted": "08.03.2026 15:11:27" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4842535, + "leagueId": 71, + "time": "08.03.2026 18:00", + "home": { + "id": 8695, + "score": 3, + "name": "Fenerbah\u00e7e", + "longName": "Fenerbah\u00e7e" + }, + "away": { + "id": 9750, + "score": 2, + "name": "Samsunspor", + "longName": "Samsunspor" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "25", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:02:22", + "secondHalfStarted": "08.03.2026 19:09:21" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 5091065, + "leagueId": 915154, + "time": "08.03.2026 14:00", + "home": { + "id": 561981, + "score": 3, + "name": "CS Petrocub", + "longName": "CS Petrocub" + }, + "away": { + "id": 188151, + "score": 0, + "name": "Dacia Buiucani", + "longName": "Dacia Buiucani" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:04:24", + "secondHalfStarted": "08.03.2026 15:03:33" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 5091064, + "leagueId": 915154, + "time": "08.03.2026 17:00", + "home": { + "id": 8012, + "score": 0, + "name": "FC Balti", + "longName": "FC Balti" + }, + "away": { + "id": 9729, + "score": 1, + "name": "FC Sheriff", + "longName": "FC Sheriff" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:02:10", + "secondHalfStarted": "08.03.2026 18:03:49" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 4824861, + "leagueId": 900636, + "time": "08.03.2026 13:30", + "home": { + "id": 9736, + "score": 0, + "name": "Otelul Galati", + "redCards": 3, + "longName": "Otelul Galati" + }, + "away": { + "id": 864269, + "score": 2, + "name": "Hermannstadt", + "longName": "Hermannstadt" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "30", + "status": { + "utcTime": "2026-03-08T12:30:00.000Z", + "numberOfHomeRedCards": 3, + "halfs": { + "firstHalfStarted": "08.03.2026 13:32:22", + "secondHalfStarted": "08.03.2026 14:42:17" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973000000 + }, + { + "id": 4824864, + "leagueId": 900636, + "time": "08.03.2026 16:00", + "home": { + "id": 9732, + "score": 0, + "name": "FC Arges Pitesti", + "longName": "FC Arges Pitesti" + }, + "away": { + "id": 364411, + "score": 0, + "name": "FC Unirea Slobozia", + "longName": "FC Unirea Slobozia" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "30", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:01:33", + "secondHalfStarted": "08.03.2026 17:05:15" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4824865, + "leagueId": 900636, + "time": "08.03.2026 19:00", + "home": { + "id": 9738, + "score": 1, + "name": "Rapid Bucuresti", + "longName": "Rapid Bucuresti" + }, + "away": { + "id": 480286, + "score": 1, + "name": "Universitatea Craiova", + "longName": "Universitatea Craiova" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "30", + "status": { + "utcTime": "2026-03-08T18:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:01:24", + "secondHalfStarted": "08.03.2026 20:03:34" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772992800000 + }, + { + "id": 5109653, + "leagueId": 8972, + "time": "08.03.2026 00:00", + "home": { + "id": 162183, + "score": 2, + "name": "Charleston Battery", + "longName": "Charleston Battery" + }, + "away": { + "id": 267816, + "score": 1, + "name": "Pittsburgh Riverhounds SC", + "longName": "Pittsburgh Riverhounds SC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-07T23:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 00:11:12", + "secondHalfStarted": "08.03.2026 01:13:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772924400000 + }, + { + "id": 5109659, + "leagueId": 8972, + "time": "08.03.2026 01:30", + "home": { + "id": 1737991, + "score": 0, + "name": "Sporting JAX", + "longName": "Sporting JAX" + }, + "away": { + "id": 1003206, + "score": 3, + "name": "Hartford Athletic", + "longName": "Hartford Athletic" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T00:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:39:39", + "secondHalfStarted": "08.03.2026 02:43:13" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772929800000 + }, + { + "id": 5109658, + "leagueId": 8972, + "time": "08.03.2026 02:30", + "home": { + "id": 722269, + "score": 2, + "name": "San Antonio FC", + "longName": "San Antonio FC" + }, + "away": { + "id": 424268, + "score": 1, + "name": "Phoenix Rising FC", + "longName": "Phoenix Rising FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T01:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 02:37:11", + "secondHalfStarted": "08.03.2026 03:40:08" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772933400000 + }, + { + "id": 5109654, + "leagueId": 8972, + "time": "08.03.2026 03:00", + "home": { + "id": 1003209, + "score": 2, + "name": "El Paso Locomotive FC", + "longName": "El Paso Locomotive FC" + }, + "away": { + "id": 614321, + "score": 2, + "name": "Colorado Springs Switchbacks FC", + "longName": "Colorado Springs Switchbacks FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T02:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 03:08:55", + "secondHalfStarted": "08.03.2026 04:10:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772935200000 + }, + { + "id": 5109652, + "leagueId": 8972, + "time": "08.03.2026 03:30", + "home": { + "id": 1003207, + "score": 0, + "name": "Birmingham Legion FC", + "longName": "Birmingham Legion FC" + }, + "away": { + "id": 197328, + "score": 1, + "name": "Tampa Bay Rowdies", + "longName": "Tampa Bay Rowdies" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T02:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 03:42:51", + "secondHalfStarted": "08.03.2026 04:39:35" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772937000000 + }, + { + "id": 5109655, + "leagueId": 8972, + "time": "08.03.2026 04:00", + "home": { + "id": 915808, + "score": 0, + "name": "Monterey Bay FC", + "longName": "Monterey Bay FC" + }, + "away": { + "id": 1130413, + "score": 1, + "name": "Oakland Roots SC", + "longName": "Oakland Roots SC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T03:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 04:07:58", + "secondHalfStarted": "08.03.2026 05:12:40" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772938800000 + }, + { + "id": 5109808, + "leagueId": 8972, + "time": "08.03.2026 04:00", + "home": { + "id": 267813, + "score": 1, + "name": "Orange County SC", + "longName": "Orange County SC" + }, + "away": { + "id": 915809, + "score": 1, + "name": "Las Vegas Lights FC", + "longName": "Las Vegas Lights FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T03:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 04:07:58", + "secondHalfStarted": "08.03.2026 05:08:59" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772938800000 + }, + { + "id": 5109657, + "leagueId": 8972, + "time": "08.03.2026 04:00", + "home": { + "id": 521004, + "score": 2, + "name": "Sacramento Republic FC", + "longName": "Sacramento Republic FC" + }, + "away": { + "id": 614325, + "score": 0, + "name": "FC Tulsa", + "longName": "FC Tulsa" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T03:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 04:12:57", + "secondHalfStarted": "08.03.2026 05:17:56" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772938800000 + }, + { + "id": 5109313, + "leagueId": 916345, + "time": "08.03.2026 01:00", + "home": { + "id": 1701877, + "score": 2, + "name": "FC Naples", + "longName": "FC Naples" + }, + "away": { + "id": 1358072, + "score": 0, + "name": "Fort Wayne", + "longName": "Fort Wayne" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T00:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:06:56", + "secondHalfStarted": "08.03.2026 02:10:16" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772928000000 + }, + { + "id": 5109312, + "leagueId": 916345, + "time": "08.03.2026 01:00", + "home": { + "id": 1706430, + "score": 2, + "name": "Westchester SC", + "longName": "Westchester SC" + }, + "away": { + "id": 1358088, + "score": 3, + "name": "One Knoxville SC", + "longName": "One Knoxville SC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T00:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:06:38", + "secondHalfStarted": "08.03.2026 02:12:09" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772928000000 + }, + { + "id": 5109314, + "leagueId": 916345, + "time": "08.03.2026 03:10", + "home": { + "id": 1448561, + "score": 0, + "name": "Sarasota Paradise", + "longName": "Sarasota Paradise" + }, + "away": { + "id": 1877675, + "score": 1, + "name": "Boise", + "longName": "Boise" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T02:10:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 03:12:44", + "secondHalfStarted": "08.03.2026 04:14:49" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772935800000 + }, + { + "id": 5109311, + "leagueId": 916345, + "time": "08.03.2026 04:30", + "home": { + "id": 1701876, + "score": 1, + "name": "AV Alta", + "longName": "AV Alta" + }, + "away": { + "id": 267811, + "score": 1, + "name": "Richmond Kickers", + "longName": "Richmond Kickers" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T03:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 04:36:59", + "secondHalfStarted": "08.03.2026 05:38:13" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772940600000 + }, + { + "id": 4930310, + "leagueId": 901708, + "time": "07.03.2026 20:00", + "home": { + "id": 1669149, + "score": 0, + "name": "Brooklyn FC (W)", + "longName": "Brooklyn FC (W)" + }, + "away": { + "id": 1669152, + "score": 2, + "name": "DC Power FC (W)", + "longName": "DC Power FC (W)" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-07T19:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:07:25", + "secondHalfStarted": "07.03.2026 21:13:48" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910000000 + }, + { + "id": 4930279, + "leagueId": 901708, + "time": "08.03.2026 18:00", + "home": { + "id": 1669154, + "score": 0, + "name": "Lexington SC (W)", + "longName": "Lexington SC (W)" + }, + "away": { + "id": 1669151, + "score": 1, + "name": "Dallas Trinity FC (W)", + "longName": "Dallas Trinity FC (W)" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:07:57", + "secondHalfStarted": "08.03.2026 19:13:16" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 5172821, + "leagueId": 9088, + "time": "08.03.2026 12:00", + "home": { + "id": 109374, + "score": 1, + "name": "HCM City", + "longName": "HCM City" + }, + "away": { + "id": 743070, + "score": 3, + "name": "Viettel", + "longName": "Viettel" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "15", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:00:25", + "secondHalfStarted": "08.03.2026 13:06:39" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 5172822, + "leagueId": 9088, + "time": "08.03.2026 12:00", + "home": { + "id": 1105640, + "score": 0, + "name": "PVF-CAND", + "longName": "PVF-CAND" + }, + "away": { + "id": 109375, + "score": 1, + "name": "Nam Dinh", + "longName": "Nam Dinh" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "15", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:00:01", + "secondHalfStarted": "08.03.2026 13:04:25" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 5172823, + "leagueId": 9088, + "time": "08.03.2026 13:15", + "home": { + "id": 179219, + "score": 2, + "name": "Ha Noi FC", + "longName": "Ha Noi FC" + }, + "away": { + "id": 614354, + "score": 1, + "name": "Cong An Ha Noi", + "longName": "Cong An Ha Noi" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "15", + "status": { + "utcTime": "2026-03-08T12:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:15:44", + "secondHalfStarted": "08.03.2026 14:22:09" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772972100000 + }, + { + "id": 5205111, + "leagueId": 9166, + "time": "08.03.2026 14:30", + "home": { + "id": 1914729, + "score": 1, + "name": "Rhyl 1879", + "longName": "Rhyl 1879" + }, + "away": { + "id": 2198, + "score": 2, + "name": "Caernarfon", + "longName": "Caernarfon" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1/2", + "status": { + "utcTime": "2026-03-08T13:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 14:31:13", + "secondHalfStarted": "08.03.2026 15:33:08" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772976600000 + }, + { + "id": 4903348, + "leagueId": 902142, + "time": "08.03.2026 10:00", + "home": { + "id": 5981, + "score": 3, + "name": "Australia (W)", + "longName": "Australia (W)" + }, + "away": { + "id": 244164, + "score": 3, + "name": "South Korea (W)", + "longName": "South Korea (W)" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T09:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 10:01:40", + "secondHalfStarted": "08.03.2026 11:09:38" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772960400000 + }, + { + "id": 4903349, + "leagueId": 902142, + "time": "08.03.2026 10:00", + "home": { + "id": 794818, + "score": 0, + "name": "Iran (W)", + "longName": "Iran (W)" + }, + "away": { + "id": 633428, + "score": 2, + "name": "Philippines (W)", + "longName": "Philippines (W)" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T09:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 10:00:58", + "secondHalfStarted": "08.03.2026 11:05:51" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772960400000 + }, + { + "id": 5063086, + "leagueId": 911400, + "time": "07.03.2026 20:45", + "home": { + "id": 159980, + "score": 2, + "name": "Netherlands (W)", + "longName": "Netherlands (W)" + }, + "away": { + "id": 394241, + "score": 1, + "name": "Ireland (W)", + "longName": "Ireland (W)" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-07T19:45:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:46:47", + "secondHalfStarted": "07.03.2026 21:49:24" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772912700000 + }, + { + "id": 5063085, + "leagueId": 911400, + "time": "07.03.2026 21:10", + "home": { + "id": 6325, + "score": 4, + "name": "France (W)", + "longName": "France (W)" + }, + "away": { + "id": 394250, + "score": 1, + "name": "Poland (W)", + "redCards": 1, + "longName": "Poland (W)" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-07T20:10:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "07.03.2026 21:11:12", + "secondHalfStarted": "07.03.2026 22:14:58" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772914200000 + }, + { + "id": 5063133, + "leagueId": 911693, + "time": "07.03.2026 20:00", + "home": { + "id": 394248, + "score": 0, + "name": "Northern Ireland (W)", + "longName": "Northern Ireland (W)" + }, + "away": { + "id": 394252, + "score": 1, + "name": "Turkiye (W)", + "longName": "Turkiye (W)" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "2", + "status": { + "utcTime": "2026-03-07T19:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:01:47", + "secondHalfStarted": "07.03.2026 21:05:21" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910000000 + }, + { + "id": 1000005143, + "leagueId": 1000001202, + "time": "08.03.2026 01:00", + "home": { + "id": 1648006, + "score": 0, + "name": "Aruba", + "longName": "Aruba" + }, + "away": { + "id": 967030, + "score": 1, + "name": "Cuba", + "longName": "Cuba" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "Group E", + "status": { + "utcTime": "2026-03-08T00:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:00:16", + "secondHalfStarted": "08.03.2026 02:04:20" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772928000000 + }, + { + "id": 1000009334, + "leagueId": 1000001317, + "time": "07.03.2026 23:00", + "home": { + "id": 1912144, + "score": 1, + "name": "Independiente Medellin U20", + "longName": "Independiente Medellin U20" + }, + "away": { + "id": 1912136, + "score": 0, + "name": "Bolivar U20", + "longName": "Bolivar U20" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-07T22:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 23:00:40", + "secondHalfStarted": "08.03.2026 00:03:54" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772920800000 + }, + { + "id": 1000009335, + "leagueId": 1000001317, + "time": "08.03.2026 01:00", + "home": { + "id": 602497, + "score": 4, + "name": "Flamengo U20", + "longName": "Flamengo U20" + }, + "away": { + "id": 1912138, + "score": 1, + "name": "Estudiantes Merida U20", + "longName": "Estudiantes Merida U20" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T00:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:00:49", + "secondHalfStarted": "08.03.2026 02:05:36" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772928000000 + }, + { + "id": 1000005647, + "leagueId": 199, + "time": "07.03.2026 22:30", + "home": { + "id": 1893, + "score": 0, + "name": "Guarani", + "longName": "Guarani" + }, + "away": { + "id": 6295, + "score": 2, + "name": "Cerro Porteno", + "longName": "Cerro Porteno" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "9", + "status": { + "utcTime": "2026-03-07T21:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:30:16", + "secondHalfStarted": "07.03.2026 23:33:15" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772919000000 + }, + { + "id": 1000005644, + "leagueId": 199, + "time": "08.03.2026 00:30", + "home": { + "id": 6620, + "score": 1, + "name": "Libertad", + "longName": "Libertad" + }, + "away": { + "id": 49687, + "score": 0, + "name": "Luqueno", + "longName": "Luqueno" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "9", + "status": { + "utcTime": "2026-03-07T23:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 00:30:16", + "secondHalfStarted": "08.03.2026 01:31:48" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772926200000 + }, + { + "id": 4862837, + "leagueId": 264, + "time": "07.03.2026 20:00", + "home": { + "id": 1378461, + "score": 0, + "name": "Anderlecht Futures", + "longName": "Anderlecht Futures" + }, + "away": { + "id": 274583, + "score": 0, + "name": "Patro Eisden", + "longName": "Patro Eisden" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-07T19:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:00:10", + "secondHalfStarted": "07.03.2026 21:00:47" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910000000 + }, + { + "id": 4862841, + "leagueId": 264, + "time": "07.03.2026 20:00", + "home": { + "id": 6702, + "score": 1, + "name": "Lommel", + "longName": "Lommel" + }, + "away": { + "id": 8571, + "score": 1, + "name": "Kortrijk", + "longName": "Kortrijk" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-07T19:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:00:24", + "secondHalfStarted": "07.03.2026 21:00:33" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910000000 + }, + { + "id": 4862842, + "leagueId": 264, + "time": "07.03.2026 20:00", + "home": { + "id": 4137, + "score": 0, + "name": "Olympic de Charleroi", + "longName": "Olympic de Charleroi" + }, + "away": { + "id": 9992, + "score": 2, + "name": "RWDM Brussels", + "longName": "RWDM Brussels" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-07T19:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 20:01:53", + "secondHalfStarted": "07.03.2026 21:04:04" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772910000000 + }, + { + "id": 4862844, + "leagueId": 264, + "time": "08.03.2026 13:30", + "home": { + "id": 213307, + "score": 1, + "name": "KSC Lokeren", + "longName": "KSC Lokeren" + }, + "away": { + "id": 8475, + "score": 2, + "name": "SK Beveren", + "longName": "SK Beveren" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T12:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:30:15", + "secondHalfStarted": "08.03.2026 14:33:55" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973000000 + }, + { + "id": 4862843, + "leagueId": 264, + "time": "08.03.2026 16:00", + "home": { + "id": 149408, + "score": 4, + "name": "RFC Seraing", + "longName": "RFC Seraing" + }, + "away": { + "id": 96953, + "score": 0, + "name": "Francs Borains", + "longName": "Francs Borains" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "28", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:00:09", + "secondHalfStarted": "08.03.2026 17:03:35" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4817486, + "leagueId": 253, + "time": "08.03.2026 10:30", + "home": { + "id": 132215, + "score": 0, + "name": "Sparta Prague B", + "redCards": 1, + "longName": "Sparta Prague B" + }, + "away": { + "id": 5733, + "score": 2, + "name": "Usti nad Labem", + "longName": "Usti nad Labem" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "18", + "status": { + "utcTime": "2026-03-08T09:30:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 10:32:46", + "secondHalfStarted": "08.03.2026 11:34:04" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772962200000 + }, + { + "id": 4817487, + "leagueId": 253, + "time": "08.03.2026 14:45", + "home": { + "id": 157007, + "score": 0, + "name": "FC Silon Taborsko", + "redCards": 1, + "longName": "FC Silon Taborsko" + }, + "away": { + "id": 1673, + "score": 1, + "name": "FC Zbrojovka Brno", + "longName": "FC Zbrojovka Brno" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "18", + "status": { + "utcTime": "2026-03-08T13:45:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 14:48:28", + "secondHalfStarted": "08.03.2026 15:50:40" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772977500000 + }, + { + "id": 4864445, + "leagueId": 127, + "time": "08.03.2026 19:15", + "home": { + "id": 459591, + "score": 0, + "name": "Hapoel Jerusalem FC", + "longName": "Hapoel Jerusalem FC" + }, + "away": { + "id": 8173, + "score": 0, + "name": "Beitar Jerusalem", + "longName": "Beitar Jerusalem" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T18:15:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:15:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772993700000 + }, + { + "id": 1000007811, + "leagueId": 10282, + "time": "08.03.2026 02:30", + "home": { + "id": 1004921, + "score": 3, + "name": "North Texas SC", + "longName": "North Texas SC" + }, + "away": { + "id": 1348103, + "score": 1, + "name": "Colorado Rapids 2", + "longName": "Colorado Rapids 2" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "2", + "status": { + "utcTime": "2026-03-08T01:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 02:33:58", + "secondHalfStarted": "08.03.2026 03:38:54" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772933400000 + }, + { + "id": 4920284, + "leagueId": 9084, + "time": "08.03.2026 15:00", + "home": { + "id": 1070259, + "score": 5, + "name": "Liverpool U21", + "longName": "Liverpool U21" + }, + "away": { + "id": 773683, + "score": 0, + "name": "Wolverhampton Wanderers U21", + "redCards": 1, + "longName": "Wolverhampton Wanderers U21" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "18", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 15:02:29", + "secondHalfStarted": "08.03.2026 16:06:22" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "5 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + }, + { + "id": 1000007825, + "leagueId": 248, + "time": "08.03.2026 11:30", + "home": { + "id": 1588, + "score": 2, + "name": "FCI Levadia", + "longName": "FCI Levadia" + }, + "away": { + "id": 4146, + "score": 0, + "name": "FC Kuressaare", + "longName": "FC Kuressaare" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T10:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 11:30:26", + "secondHalfStarted": "08.03.2026 12:31:25" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772965800000 + }, + { + "id": 1000007826, + "leagueId": 248, + "time": "08.03.2026 13:30", + "home": { + "id": 4147, + "score": 0, + "name": "Tammeka", + "longName": "Tammeka" + }, + "away": { + "id": 112484, + "score": 1, + "name": "Nomme JK Kalju", + "longName": "Nomme JK Kalju" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T12:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:30:51", + "secondHalfStarted": "08.03.2026 14:34:52" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973000000 + }, + { + "id": 1000007137, + "leagueId": 9126, + "time": "07.03.2026 22:00", + "home": { + "id": 1843, + "score": 5, + "name": "Cobreloa", + "longName": "Cobreloa" + }, + "away": { + "id": 162905, + "score": 1, + "name": "Curico Unido", + "longName": "Curico Unido" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-07T21:00:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:05:00", + "secondHalfStarted": "07.03.2026 23:11:20" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "5 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772917200000 + }, + { + "id": 1000007131, + "leagueId": 9126, + "time": "08.03.2026 00:30", + "home": { + "id": 162904, + "score": 0, + "name": "Deportes Iquique", + "longName": "Deportes Iquique" + }, + "away": { + "id": 192433, + "score": 0, + "name": "San Marcos", + "longName": "San Marcos" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-07T23:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 00:31:54", + "secondHalfStarted": "08.03.2026 01:38:36" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772926200000 + }, + { + "id": 1000006461, + "leagueId": 10721, + "time": "08.03.2026 19:45", + "home": { + "id": 150414, + "score": 0, + "name": "Abha", + "longName": "Abha" + }, + "away": { + "id": 1699507, + "score": 0, + "name": "Al-Jubail", + "longName": "Al-Jubail" + }, + "eliminatedTeamId": null, + "statusId": 5, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T18:45:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:45:00" + }, + "periodLength": 45, + "cancelled": true, + "started": false, + "finished": false, + "reason": { + "short": "PP", + "shortKey": "postponed_short", + "long": "Postponed", + "longKey": "postponed" + } + }, + "timeTS": 1772995500000 + }, + { + "id": 1000006462, + "leagueId": 10721, + "time": "08.03.2026 19:45", + "home": { + "id": 101917, + "score": 1, + "name": "Al Taee", + "longName": "Al Taee" + }, + "away": { + "id": 1896040, + "score": 1, + "name": "Al Anwar", + "redCards": 1, + "longName": "Al Anwar" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T18:45:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 19:45:10", + "secondHalfStarted": "08.03.2026 20:50:45" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772995500000 + }, + { + "id": 1000006463, + "leagueId": 10721, + "time": "08.03.2026 19:45", + "home": { + "id": 463259, + "score": 1, + "name": "Al-Orobah FC", + "longName": "Al-Orobah FC" + }, + "away": { + "id": 1115137, + "score": 0, + "name": "Al Arabi", + "redCards": 1, + "longName": "Al Arabi" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T18:45:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 19:45:12", + "secondHalfStarted": "08.03.2026 20:57:03" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772995500000 + }, + { + "id": 1000006464, + "leagueId": 10721, + "time": "08.03.2026 19:45", + "home": { + "id": 1017737, + "score": 0, + "name": "Jeddah", + "redCards": 1, + "longName": "Jeddah" + }, + "away": { + "id": 1793879, + "score": 4, + "name": "Al-Ula FC", + "longName": "Al-Ula FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T18:45:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 19:46:00", + "secondHalfStarted": "08.03.2026 20:55:11" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 4", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772995500000 + }, + { + "id": 1000006465, + "leagueId": 10721, + "time": "08.03.2026 19:45", + "home": { + "id": 1699506, + "score": 1, + "name": "Al-Zulfi", + "longName": "Al-Zulfi" + }, + "away": { + "id": 6354, + "score": 0, + "name": "Al-Wehda", + "longName": "Al-Wehda" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T18:45:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:45:13", + "secondHalfStarted": "08.03.2026 20:55:28" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772995500000 + }, + { + "id": 1000008889, + "leagueId": 246, + "time": "07.03.2026 22:30", + "home": { + "id": 6453, + "score": 1, + "name": "Barcelona SC", + "longName": "Barcelona SC" + }, + "away": { + "id": 1850, + "score": 0, + "name": "Emelec", + "longName": "Emelec" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-07T21:30:00.000Z", + "halfs": { + "firstHalfStarted": "07.03.2026 22:32:44", + "secondHalfStarted": "07.03.2026 23:38:21" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772919000000 + }, + { + "id": 1000008893, + "leagueId": 246, + "time": "07.03.2026 22:30", + "home": { + "id": 192875, + "score": 3, + "name": "Independiente del Valle", + "redCards": 1, + "longName": "Independiente del Valle" + }, + "away": { + "id": 304929, + "score": 1, + "name": "Mushuc Runa", + "redCards": 2, + "longName": "Mushuc Runa" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-07T21:30:00.000Z", + "numberOfHomeRedCards": 1, + "numberOfAwayRedCards": 2, + "halfs": { + "firstHalfStarted": "07.03.2026 22:30:07", + "secondHalfStarted": "07.03.2026 23:37:16" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772919000000 + }, + { + "id": 1000008891, + "leagueId": 246, + "time": "08.03.2026 01:00", + "home": { + "id": 1345405, + "score": 2, + "name": "Libertad", + "longName": "Libertad" + }, + "away": { + "id": 6721, + "score": 1, + "name": "LDU de Quito", + "longName": "LDU de Quito" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T00:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 01:03:04", + "secondHalfStarted": "08.03.2026 02:12:40" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772928000000 + }, + { + "id": 1000008895, + "leagueId": 246, + "time": "08.03.2026 17:00", + "home": { + "id": 6608, + "score": 0, + "name": "Aucas", + "longName": "Aucas" + }, + "away": { + "id": 4144, + "score": 1, + "name": "Deportivo Cuenca", + "longName": "Deportivo Cuenca" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T16:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 17:02:21", + "secondHalfStarted": "08.03.2026 18:08:04" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772985600000 + }, + { + "id": 1000008892, + "leagueId": 246, + "time": "08.03.2026 19:30", + "home": { + "id": 6609, + "score": 1, + "name": "CSD Macara", + "longName": "CSD Macara" + }, + "away": { + "id": 113054, + "score": 1, + "name": "Tecnico Universitario", + "longName": "Tecnico Universitario" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "3", + "status": { + "utcTime": "2026-03-08T18:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 19:30:28", + "secondHalfStarted": "08.03.2026 20:42:36" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772994600000 + }, + { + "id": 4810830, + "leagueId": 182, + "time": "08.03.2026 14:00", + "home": { + "id": 463461, + "score": 2, + "name": "FK Radnik Surdulica", + "longName": "FK Radnik Surdulica" + }, + "away": { + "id": 6410, + "score": 2, + "name": "Radnicki Nis", + "redCards": 1, + "longName": "Radnicki Nis" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T13:00:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 13:59:57", + "secondHalfStarted": "08.03.2026 15:08:57" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772974800000 + }, + { + "id": 4810826, + "leagueId": 182, + "time": "08.03.2026 16:00", + "home": { + "id": 8687, + "score": 4, + "name": "FK Crvena Zvezda", + "longName": "FK Crvena Zvezda" + }, + "away": { + "id": 6050, + "score": 0, + "name": "Napredak", + "longName": "Napredak" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:34", + "secondHalfStarted": "08.03.2026 17:06:53" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "4 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4810831, + "leagueId": 182, + "time": "08.03.2026 16:00", + "home": { + "id": 176525, + "score": 0, + "name": "FK Spartak Subotica", + "redCards": 1, + "longName": "FK Spartak Subotica" + }, + "away": { + "id": 568569, + "score": 1, + "name": "FK IMT Beograd", + "longName": "FK IMT Beograd" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T15:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 16:02:13", + "secondHalfStarted": "08.03.2026 17:04:35" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772982000000 + }, + { + "id": 4810833, + "leagueId": 182, + "time": "08.03.2026 18:00", + "home": { + "id": 6406, + "score": 3, + "name": "Vojvodina", + "longName": "Vojvodina" + }, + "away": { + "id": 7998, + "score": 0, + "name": "Partizan Beograd", + "longName": "Partizan Beograd" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "26", + "status": { + "utcTime": "2026-03-08T17:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 18:02:35", + "secondHalfStarted": "08.03.2026 19:07:02" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772989200000 + }, + { + "id": 5096406, + "leagueId": 8984, + "time": "08.03.2026 13:00", + "home": { + "id": 165250, + "score": 2, + "name": "BG Pathum United", + "longName": "BG Pathum United" + }, + "away": { + "id": 109378, + "score": 3, + "name": "Chonburi FC", + "longName": "Chonburi FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "24", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:01:04", + "secondHalfStarted": "08.03.2026 14:07:54" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 3", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 1000005479, + "leagueId": 9498, + "time": "08.03.2026 12:00", + "home": { + "id": 1381498, + "score": 2, + "name": "Nakhon Si United", + "longName": "Nakhon Si United" + }, + "away": { + "id": 564561, + "score": 2, + "name": "Sisaket UTD", + "longName": "Sisaket UTD" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:00:15", + "secondHalfStarted": "08.03.2026 13:03:20" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 1000005480, + "leagueId": 9498, + "time": "08.03.2026 12:00", + "home": { + "id": 165244, + "score": 0, + "name": "Police Tero FC", + "longName": "Police Tero FC" + }, + "away": { + "id": 1696880, + "score": 0, + "name": "Mahasarakham Sam Bai Tao", + "longName": "Mahasarakham Sam Bai Tao" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T11:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 12:01:55", + "secondHalfStarted": "08.03.2026 13:07:46" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 0", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772967600000 + }, + { + "id": 1000005481, + "leagueId": 9498, + "time": "08.03.2026 12:30", + "home": { + "id": 583128, + "score": 1, + "name": "Trat FC", + "longName": "Trat FC" + }, + "away": { + "id": 626806, + "score": 2, + "name": "Nong Bua Pitchaya FC", + "redCards": 1, + "longName": "Nong Bua Pitchaya FC" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T11:30:00.000Z", + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 12:31:09", + "secondHalfStarted": "08.03.2026 13:32:54" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "1 - 2", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772969400000 + }, + { + "id": 1000005482, + "leagueId": 9498, + "time": "08.03.2026 12:30", + "home": { + "id": 165252, + "score": 0, + "name": "Nakhon Pathom", + "redCards": 2, + "longName": "Nakhon Pathom" + }, + "away": { + "id": 615409, + "score": 1, + "name": "Kasetsart", + "redCards": 1, + "longName": "Kasetsart" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T11:30:00.000Z", + "numberOfHomeRedCards": 2, + "numberOfAwayRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 12:31:07", + "secondHalfStarted": "08.03.2026 13:34:34" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "0 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772969400000 + }, + { + "id": 1000005483, + "leagueId": 9498, + "time": "08.03.2026 13:30", + "home": { + "id": 585115, + "score": 3, + "name": "Pattani FC", + "longName": "Pattani FC" + }, + "away": { + "id": 578228, + "score": 1, + "name": "Phrae United", + "longName": "Phrae United" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "29", + "status": { + "utcTime": "2026-03-08T12:30:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:30:44", + "secondHalfStarted": "08.03.2026 14:39:00" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "3 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772973000000 + }, + { + "id": 5161920, + "leagueId": 226, + "time": "08.03.2026 13:00", + "home": { + "id": 192962, + "score": 2, + "name": "FK Jelgava", + "longName": "FK Jelgava" + }, + "away": { + "id": 197870, + "score": 1, + "name": "FK Tukums 2000", + "longName": "FK Tukums 2000" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T12:00:00.000Z", + "halfs": { + "firstHalfStarted": "08.03.2026 13:00:15", + "secondHalfStarted": "08.03.2026 14:02:07" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772971200000 + }, + { + "id": 5161921, + "leagueId": 226, + "time": "08.03.2026 15:00", + "home": { + "id": 2106, + "score": 2, + "name": "Auda", + "redCards": 1, + "longName": "Auda" + }, + "away": { + "id": 981193, + "score": 1, + "name": "SK Super Nova", + "longName": "SK Super Nova" + }, + "eliminatedTeamId": null, + "statusId": 6, + "tournamentStage": "1", + "status": { + "utcTime": "2026-03-08T14:00:00.000Z", + "numberOfHomeRedCards": 1, + "halfs": { + "firstHalfStarted": "08.03.2026 15:03:17", + "secondHalfStarted": "08.03.2026 16:08:58" + }, + "periodLength": 45, + "finished": true, + "started": true, + "cancelled": false, + "awarded": false, + "scoreStr": "2 - 1", + "reason": { + "short": "FT", + "shortKey": "fulltime_short", + "long": "Full-Time", + "longKey": "finished" + } + }, + "timeTS": 1772978400000 + } + ] + } +} \ No newline at end of file diff --git a/docs/api_samples/04_match_detail.json b/docs/api_samples/04_match_detail.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/04_match_detail.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/04_match_detail_tfc.json b/docs/api_samples/04_match_detail_tfc.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/04_match_detail_tfc.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/04_match_location.json b/docs/api_samples/04_match_location.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/04_match_location.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/04_match_location_tfc.json b/docs/api_samples/04_match_location_tfc.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/04_match_location_tfc.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/04_match_score.json b/docs/api_samples/04_match_score.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/04_match_score.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/04_match_score_tfc.json b/docs/api_samples/04_match_score_tfc.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/04_match_score_tfc.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/04_match_status.json b/docs/api_samples/04_match_status.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/04_match_status.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/04_match_status_tfc.json b/docs/api_samples/04_match_status_tfc.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/04_match_status_tfc.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/05_match_highlights_tfc.json b/docs/api_samples/05_match_highlights_tfc.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/05_match_highlights_tfc.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/05_match_referee_tfc.json b/docs/api_samples/05_match_referee_tfc.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/05_match_referee_tfc.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/05_match_stats_tfc.json b/docs/api_samples/05_match_stats_tfc.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/05_match_stats_tfc.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/06_lineup_away_tfc.json b/docs/api_samples/06_lineup_away_tfc.json new file mode 100644 index 0000000..c83274f --- /dev/null +++ b/docs/api_samples/06_lineup_away_tfc.json @@ -0,0 +1,3 @@ +{ + "message": "You have exceeded the MONTHLY quota for Requests on your current plan, BASIC. Upgrade your plan at https://rapidapi.com/Creativesdev/api/free-api-live-football-data" +} \ No newline at end of file diff --git a/docs/api_samples/06_lineup_home_tfc.json b/docs/api_samples/06_lineup_home_tfc.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/06_lineup_home_tfc.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/07_squad_tfc.json b/docs/api_samples/07_squad_tfc.json new file mode 100644 index 0000000..f3668dc --- /dev/null +++ b/docs/api_samples/07_squad_tfc.json @@ -0,0 +1,827 @@ +{ + "status": "success", + "response": { + "list": { + "squad": [ + { + "title": "coach", + "members": [ + { + "id": 308837, + "height": null, + "age": 59, + "dateOfBirth": "1966-12-17", + "name": "Robin Fraser", + "ccode": "USA", + "cname": "USA", + "role": { + "key": "coach", + "fallback": "Coach" + }, + "excludeFromRanking": true + } + ] + }, + { + "title": "keepers", + "members": [ + { + "id": 1715087, + "name": "Adisa De Rosario", + "shirtNumber": null, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "keeper_long", + "fallback": "Keeper" + }, + "positionId": 0, + "injured": true, + "injury": { + "id": "35", + "expectedReturn": "Early April 2026" + }, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": "11", + "positionIdsDesc": "GK", + "height": 185, + "age": 21, + "dateOfBirth": "2004-10-27", + "transferValue": 100000 + }, + { + "id": 1338704, + "name": "Luka Gavran", + "shirtNumber": 1, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "keeper_long", + "fallback": "Keeper" + }, + "positionId": 0, + "injury": null, + "rating": 4.87, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "11", + "positionIdsDesc": "GK", + "height": 198, + "age": 25, + "dateOfBirth": "2000-05-09", + "transferValue": 242993 + }, + { + "id": 342699, + "name": "William Yarbrough", + "shirtNumber": 23, + "ccode": "USA", + "cname": "USA", + "role": { + "key": "keeper_long", + "fallback": "Keeper" + }, + "positionId": 0, + "injury": null, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": "11", + "positionIdsDesc": "GK", + "height": 187, + "age": 36, + "dateOfBirth": "1989-03-20", + "transferValue": 50000 + } + ] + }, + { + "title": "defenders", + "members": [ + { + "id": 574923, + "name": "Benjam\u00edn Kuscevic", + "shirtNumber": null, + "ccode": "CHI", + "cname": "Chile", + "role": { + "key": "defender_long", + "fallback": "Defender" + }, + "positionId": 1, + "injury": null, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": "34", + "positionIdsDesc": "CB", + "height": 186, + "age": 29, + "dateOfBirth": "1996-05-02", + "transferValue": 1483178 + }, + { + "id": 825691, + "name": "Henry Wingo", + "shirtNumber": 2, + "ccode": "USA", + "cname": "USA", + "role": { + "key": "defender_long", + "fallback": "Defender" + }, + "positionId": 1, + "injured": true, + "injury": { + "id": "42", + "expectedReturn": "Early April 2026" + }, + "rating": 6.14, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "71", + "positionIdsDesc": "RM", + "height": 183, + "age": 30, + "dateOfBirth": "1995-10-04", + "transferValue": 130182 + }, + { + "id": 1130753, + "name": "Zane Monlouis", + "shirtNumber": 12, + "ccode": "JAM", + "cname": "Jamaica", + "role": { + "key": "defender_long", + "fallback": "Defender" + }, + "positionId": 1, + "injury": null, + "rating": 6.44, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "34", + "positionIdsDesc": "CB", + "height": 185, + "age": 22, + "dateOfBirth": "2003-10-16", + "transferValue": 502064 + }, + { + "id": 1346549, + "name": "Nicksoen Gomis", + "shirtNumber": 15, + "ccode": "FRA", + "cname": "France", + "role": { + "key": "defender_long", + "fallback": "Defender" + }, + "positionId": 1, + "injured": true, + "injury": { + "id": "73", + "expectedReturn": "Late March 2026" + }, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": "36,38", + "positionIdsDesc": "CB,LB", + "height": 185, + "age": 23, + "dateOfBirth": "2002-03-15", + "transferValue": 238195 + }, + { + "id": 1106934, + "name": "Kobe Franklin", + "shirtNumber": 19, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "defender_long", + "fallback": "Defender" + }, + "positionId": 1, + "injury": null, + "rating": 5.44, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "32,38", + "positionIdsDesc": "RB,LB", + "height": 168, + "age": 22, + "dateOfBirth": "2003-05-10", + "transferValue": 240778 + }, + { + "id": 729506, + "name": "Richie Laryea", + "shirtNumber": 22, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "defender_long", + "fallback": "Defender" + }, + "positionId": 1, + "injury": null, + "rating": 6.19, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "38,32,66,34", + "positionIdsDesc": "LB,RB,CDM,CB", + "height": 175, + "age": 31, + "dateOfBirth": "1995-01-07", + "transferValue": 470837 + }, + { + "id": 431956, + "name": "Walker Zimmerman", + "shirtNumber": 25, + "ccode": "USA", + "cname": "USA", + "role": { + "key": "defender_long", + "fallback": "Defender" + }, + "positionId": 1, + "injury": null, + "rating": 5.51, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "34", + "positionIdsDesc": "CB", + "height": 191, + "age": 32, + "dateOfBirth": "1993-05-19", + "transferValue": 1163870 + }, + { + "id": 664764, + "name": "Raheem Edwards", + "shirtNumber": 44, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "defender_long", + "fallback": "Defender" + }, + "positionId": 1, + "injury": null, + "rating": 6.88, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 1, + "excludeFromRanking": false, + "positionIds": "38,68", + "positionIdsDesc": "LB,LWB", + "height": 173, + "age": 30, + "dateOfBirth": "1995-07-17", + "transferValue": 246577 + }, + { + "id": 1261310, + "name": "Kosi Thompson", + "shirtNumber": 47, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "defender_long", + "fallback": "Defender" + }, + "positionId": 1, + "injury": null, + "rating": 6.16, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "32,36,62", + "positionIdsDesc": "RB,CB,RWB", + "height": 178, + "age": 23, + "dateOfBirth": "2003-01-27", + "transferValue": 726678 + }, + { + "id": 1357562, + "name": "Adam Pearlman", + "shirtNumber": 51, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "defender_long", + "fallback": "Defender" + }, + "positionId": 1, + "injury": null, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": "32,72,33", + "positionIdsDesc": "RB,RM,CB", + "height": 183, + "age": 20, + "dateOfBirth": "2005-04-05", + "transferValue": 571247 + }, + { + "id": 1504606, + "name": "Lazar Stefanovic", + "shirtNumber": 76, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "defender_long", + "fallback": "Defender" + }, + "positionId": 1, + "injury": null, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": "37", + "positionIdsDesc": "CB", + "height": 187, + "age": 19, + "dateOfBirth": "2006-08-10", + "transferValue": 874785 + }, + { + "id": 1780464, + "name": "Stefan Kapor", + "shirtNumber": 98, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "defender_long", + "fallback": "Defender" + }, + "positionId": 1, + "injury": null, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": null, + "positionIdsDesc": null, + "height": null, + "age": 16, + "dateOfBirth": "2009-04-04", + "transferValue": null + } + ] + }, + { + "title": "midfielders", + "members": [ + { + "id": 1187623, + "name": "Matheus Pereira", + "shirtNumber": 3, + "ccode": "BRA", + "cname": "Brazil", + "role": { + "key": "midfielder_long", + "fallback": "Midfielder" + }, + "positionId": 2, + "injured": true, + "injury": { + "id": "47", + "expectedReturn": "Early April 2026" + }, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": "78,107,59", + "positionIdsDesc": "LM,LW,LWB", + "height": 172, + "age": 25, + "dateOfBirth": "2000-12-21", + "transferValue": 1867261 + }, + { + "id": 1053698, + "name": "Jos\u00e9 Cifuentes", + "shirtNumber": 8, + "ccode": "ECU", + "cname": "Ecuador", + "role": { + "key": "midfielder_long", + "fallback": "Midfielder" + }, + "positionId": 2, + "injury": null, + "rating": 6.83, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "64,76,86", + "positionIdsDesc": "CDM,CM,CAM", + "height": 178, + "age": 26, + "dateOfBirth": "1999-03-12", + "transferValue": 1895906 + }, + { + "id": 830601, + "name": "Djordje Mihailovic", + "shirtNumber": 10, + "ccode": "USA", + "cname": "USA", + "role": { + "key": "midfielder_long", + "fallback": "Midfielder" + }, + "positionId": 2, + "injury": null, + "rating": 7.14, + "goals": 1, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "85,107,78,115", + "positionIdsDesc": "CAM,LW,LM,ST", + "height": 177, + "age": 27, + "dateOfBirth": "1998-11-10", + "transferValue": 6067551 + }, + { + "id": 1364471, + "name": "Alonso Coello", + "shirtNumber": 14, + "ccode": "ESP", + "cname": "Spain", + "role": { + "key": "midfielder_long", + "fallback": "Midfielder" + }, + "positionId": 2, + "injury": null, + "rating": 6.23, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "73,66", + "positionIdsDesc": "CM,CDM", + "height": 185, + "age": 26, + "dateOfBirth": "1999-10-12", + "transferValue": 623924 + }, + { + "id": 432605, + "name": "Jonathan Osorio", + "shirtNumber": 21, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "midfielder_long", + "fallback": "Midfielder" + }, + "positionId": 2, + "injury": null, + "rating": 7.07, + "goals": 0, + "penalties": 0, + "assists": 1, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "66,77,86,78", + "positionIdsDesc": "CDM,CM,CAM,LM", + "height": 175, + "age": 33, + "dateOfBirth": "1992-06-12", + "transferValue": 676957 + }, + { + "id": 1455365, + "name": "Markus Cimermancic", + "shirtNumber": 71, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "midfielder_long", + "fallback": "Midfielder" + }, + "positionId": 2, + "injury": null, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": "76", + "positionIdsDesc": "CM", + "height": 175, + "age": 21, + "dateOfBirth": "2004-10-01", + "transferValue": 255919 + }, + { + "id": 1778338, + "name": "Malik Henry", + "shirtNumber": 78, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "midfielder_long", + "fallback": "Midfielder" + }, + "positionId": 2, + "injury": null, + "rating": 6.44, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 1, + "excludeFromRanking": false, + "positionIds": "72,83", + "positionIdsDesc": "RM,RW", + "height": 163, + "age": 23, + "dateOfBirth": "2002-07-23", + "transferValue": 193874 + } + ] + }, + { + "title": "attackers", + "members": [ + { + "id": 1113737, + "name": "Theo Corbeanu", + "shirtNumber": 7, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "attacker_long", + "fallback": "Attacker" + }, + "positionId": 3, + "injured": true, + "injury": { + "id": "14", + "expectedReturn": "Late April 2026" + }, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": "87,83,104,72,84", + "positionIdsDesc": "LW,RW,ST,RM,CAM", + "height": 190, + "age": 23, + "dateOfBirth": "2002-05-17", + "transferValue": 1258500 + }, + { + "id": 848011, + "name": "Josh Sargent", + "shirtNumber": 9, + "ccode": "USA", + "cname": "USA", + "role": { + "key": "attacker_long", + "fallback": "Attacker" + }, + "positionId": 3, + "injury": null, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": "115", + "positionIdsDesc": "ST", + "height": 185, + "age": 26, + "dateOfBirth": "2000-02-20", + "transferValue": 22347702 + }, + { + "id": 643482, + "name": "Derrick Etienne Jr.", + "shirtNumber": 11, + "ccode": "HAI", + "cname": "Haiti", + "role": { + "key": "attacker_long", + "fallback": "Attacker" + }, + "positionId": 3, + "injury": null, + "rating": 6.71, + "goals": 1, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "115,87,79", + "positionIdsDesc": "ST,LW,LM", + "height": 178, + "age": 29, + "dateOfBirth": "1996-11-25", + "transferValue": 495791 + }, + { + "id": 1579304, + "name": "Emilio Aristiz\u00e1bal", + "shirtNumber": 17, + "ccode": "COL", + "cname": "Colombia", + "role": { + "key": "attacker_long", + "fallback": "Attacker" + }, + "positionId": 3, + "injury": null, + "rating": 5.67, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "106", + "positionIdsDesc": "ST", + "height": 187, + "age": 20, + "dateOfBirth": "2005-08-05", + "transferValue": 1020000 + }, + { + "id": 655524, + "name": "D\u00e1niel Sall\u00f3i", + "shirtNumber": 20, + "ccode": "HUN", + "cname": "Hungary", + "role": { + "key": "attacker_long", + "fallback": "Attacker" + }, + "positionId": 3, + "injury": null, + "rating": 6.1, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": false, + "positionIds": "107,78,83", + "positionIdsDesc": "LW,LM,RW", + "height": 185, + "age": 29, + "dateOfBirth": "1996-07-19", + "transferValue": 1598605 + }, + { + "id": 1338703, + "name": "Deandre Kerr", + "shirtNumber": 29, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "attacker_long", + "fallback": "Attacker" + }, + "positionId": 3, + "injured": true, + "injury": { + "id": "87", + "expectedReturn": "Late March 2026" + }, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": "115", + "positionIdsDesc": "ST", + "height": 180, + "age": 23, + "dateOfBirth": "2002-11-29", + "transferValue": 1095554 + }, + { + "id": 1276785, + "name": "Jules-Anthony Vilsaint", + "shirtNumber": 99, + "ccode": "CAN", + "cname": "Canada", + "role": { + "key": "attacker_long", + "fallback": "Attacker" + }, + "positionId": 3, + "injury": null, + "rating": null, + "goals": 0, + "penalties": 0, + "assists": 0, + "rcards": 0, + "ycards": 0, + "excludeFromRanking": true, + "positionIds": "106", + "positionIdsDesc": "ST", + "height": 193, + "age": 23, + "dateOfBirth": "2003-01-06", + "transferValue": 286274 + } + ] + } + ], + "isNationalTeam": false + } + } +} \ No newline at end of file diff --git a/docs/api_samples/08_standings_mls.json b/docs/api_samples/08_standings_mls.json new file mode 100644 index 0000000..b875be7 --- /dev/null +++ b/docs/api_samples/08_standings_mls.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "message": "Request Failed Please try Again" +} \ No newline at end of file diff --git a/docs/api_samples/09_head_to_head_tfc.json b/docs/api_samples/09_head_to_head_tfc.json new file mode 100644 index 0000000..c83274f --- /dev/null +++ b/docs/api_samples/09_head_to_head_tfc.json @@ -0,0 +1,3 @@ +{ + "message": "You have exceeded the MONTHLY quota for Requests on your current plan, BASIC. Upgrade your plan at https://rapidapi.com/Creativesdev/api/free-api-live-football-data" +} \ No newline at end of file diff --git a/docs/api_samples/extra_get_standing_all_47.json b/docs/api_samples/extra_get_standing_all_47.json new file mode 100644 index 0000000..1b01c3f --- /dev/null +++ b/docs/api_samples/extra_get_standing_all_47.json @@ -0,0 +1,347 @@ +{ + "status": "success", + "response": { + "standing": [ + { + "name": "Arsenal", + "shortName": "Arsenal", + "id": 9825, + "pageUrl": "/teams/9825/overview/arsenal", + "deduction": null, + "ongoing": null, + "played": 30, + "wins": 20, + "draws": 7, + "losses": 3, + "scoresStr": "59-22", + "goalConDiff": 37, + "pts": 67, + "idx": 1, + "qualColor": "#2AD572" + }, + { + "name": "Manchester City", + "shortName": "Man City", + "id": 8456, + "pageUrl": "/teams/8456/overview/manchester-city", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 18, + "draws": 6, + "losses": 5, + "scoresStr": "59-27", + "goalConDiff": 32, + "pts": 60, + "idx": 2, + "qualColor": "#2AD572" + }, + { + "name": "Manchester United", + "shortName": "Man United", + "id": 10260, + "pageUrl": "/teams/10260/overview/manchester-united", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 14, + "draws": 9, + "losses": 6, + "scoresStr": "51-40", + "goalConDiff": 11, + "pts": 51, + "idx": 3, + "qualColor": "#2AD572" + }, + { + "name": "Aston Villa", + "shortName": "Aston Villa", + "id": 10252, + "pageUrl": "/teams/10252/overview/aston-villa", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 15, + "draws": 6, + "losses": 8, + "scoresStr": "39-34", + "goalConDiff": 5, + "pts": 51, + "idx": 4, + "qualColor": "#2AD572" + }, + { + "name": "Chelsea", + "shortName": "Chelsea", + "id": 8455, + "pageUrl": "/teams/8455/overview/chelsea", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 13, + "draws": 9, + "losses": 7, + "scoresStr": "53-34", + "goalConDiff": 19, + "pts": 48, + "idx": 5, + "qualColor": "#0046A7" + }, + { + "name": "Liverpool", + "shortName": "Liverpool", + "id": 8650, + "pageUrl": "/teams/8650/overview/liverpool", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 14, + "draws": 6, + "losses": 9, + "scoresStr": "48-39", + "goalConDiff": 9, + "pts": 48, + "idx": 6, + "qualColor": null + }, + { + "name": "Brentford", + "shortName": "Brentford", + "id": 9937, + "pageUrl": "/teams/9937/overview/brentford", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 13, + "draws": 5, + "losses": 11, + "scoresStr": "44-40", + "goalConDiff": 4, + "pts": 44, + "idx": 7, + "qualColor": null + }, + { + "name": "Everton", + "shortName": "Everton", + "id": 8668, + "pageUrl": "/teams/8668/overview/everton", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 12, + "draws": 7, + "losses": 10, + "scoresStr": "34-33", + "goalConDiff": 1, + "pts": 43, + "idx": 8, + "qualColor": null + }, + { + "name": "AFC Bournemouth", + "shortName": "Bournemouth", + "id": 8678, + "pageUrl": "/teams/8678/overview/afc-bournemouth", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 9, + "draws": 13, + "losses": 7, + "scoresStr": "44-46", + "goalConDiff": -2, + "pts": 40, + "idx": 9, + "qualColor": null + }, + { + "name": "Fulham", + "shortName": "Fulham", + "id": 9879, + "pageUrl": "/teams/9879/overview/fulham", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 12, + "draws": 4, + "losses": 13, + "scoresStr": "40-43", + "goalConDiff": -3, + "pts": 40, + "idx": 10, + "qualColor": null + }, + { + "name": "Sunderland", + "shortName": "Sunderland", + "id": 8472, + "pageUrl": "/teams/8472/overview/sunderland", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 10, + "draws": 10, + "losses": 9, + "scoresStr": "30-34", + "goalConDiff": -4, + "pts": 40, + "idx": 11, + "qualColor": null + }, + { + "name": "Newcastle United", + "shortName": "Newcastle", + "id": 10261, + "pageUrl": "/teams/10261/overview/newcastle-united", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 11, + "draws": 6, + "losses": 12, + "scoresStr": "42-43", + "goalConDiff": -1, + "pts": 39, + "idx": 12, + "qualColor": null + }, + { + "name": "Crystal Palace", + "shortName": "Crystal Palace", + "id": 9826, + "pageUrl": "/teams/9826/overview/crystal-palace", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 10, + "draws": 8, + "losses": 11, + "scoresStr": "33-35", + "goalConDiff": -2, + "pts": 38, + "idx": 13, + "qualColor": null + }, + { + "name": "Brighton & Hove Albion", + "shortName": "Brighton", + "id": 10204, + "pageUrl": "/teams/10204/overview/brighton-hove-albion", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 9, + "draws": 10, + "losses": 10, + "scoresStr": "38-36", + "goalConDiff": 2, + "pts": 37, + "idx": 14, + "qualColor": null + }, + { + "name": "Leeds United", + "shortName": "Leeds", + "id": 8463, + "pageUrl": "/teams/8463/overview/leeds-united", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 7, + "draws": 10, + "losses": 12, + "scoresStr": "37-48", + "goalConDiff": -11, + "pts": 31, + "idx": 15, + "qualColor": null + }, + { + "name": "Tottenham Hotspur", + "shortName": "Tottenham", + "id": 8586, + "pageUrl": "/teams/8586/overview/tottenham-hotspur", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 7, + "draws": 8, + "losses": 14, + "scoresStr": "39-46", + "goalConDiff": -7, + "pts": 29, + "idx": 16, + "qualColor": null + }, + { + "name": "Nottingham Forest", + "shortName": "Nottm Forest", + "id": 10203, + "pageUrl": "/teams/10203/overview/nottingham-forest", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 7, + "draws": 7, + "losses": 15, + "scoresStr": "28-43", + "goalConDiff": -15, + "pts": 28, + "idx": 17, + "qualColor": null + }, + { + "name": "West Ham United", + "shortName": "West Ham", + "id": 8654, + "pageUrl": "/teams/8654/overview/west-ham-united", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 7, + "draws": 7, + "losses": 15, + "scoresStr": "35-54", + "goalConDiff": -19, + "pts": 28, + "idx": 18, + "qualColor": "#FF4646" + }, + { + "name": "Burnley", + "shortName": "Burnley", + "id": 8191, + "pageUrl": "/teams/8191/overview/burnley", + "deduction": null, + "ongoing": null, + "played": 29, + "wins": 4, + "draws": 7, + "losses": 18, + "scoresStr": "32-58", + "goalConDiff": -26, + "pts": 19, + "idx": 19, + "qualColor": "#FF4646" + }, + { + "name": "Wolverhampton Wanderers", + "shortName": "Wolves", + "id": 8602, + "pageUrl": "/teams/8602/overview/wolverhampton-wanderers", + "deduction": null, + "ongoing": null, + "played": 30, + "wins": 3, + "draws": 7, + "losses": 20, + "scoresStr": "22-52", + "goalConDiff": -30, + "pts": 16, + "idx": 20, + "qualColor": "#FF4646" + } + ] + } +} \ No newline at end of file diff --git a/docs/api_samples/extra_get_top_players_by_goals_47.json b/docs/api_samples/extra_get_top_players_by_goals_47.json new file mode 100644 index 0000000..572703e --- /dev/null +++ b/docs/api_samples/extra_get_top_players_by_goals_47.json @@ -0,0 +1,67 @@ +{ + "status": "success", + "response": { + "players": [ + { + "id": 737066, + "name": "Erling Haaland", + "teamId": 8456, + "teamName": "Manchester City", + "goals": 22, + "value": 22, + "stat": { + "name": "goals", + "value": 22, + "format": "number", + "fractions": 0 + }, + "teamColors": { + "darkMode": "#76b4e5", + "lightMode": "#69A8D8", + "fontDarkMode": "rgba(29, 29, 29, 1.0)", + "fontLightMode": "rgba(255, 255, 255, 1.0)" + } + }, + { + "id": 1302005, + "name": "Igor Thiago", + "teamId": 9937, + "teamName": "Brentford", + "goals": 18, + "value": 18, + "stat": { + "name": "goals", + "value": 18, + "format": "number", + "fractions": 0 + }, + "teamColors": { + "darkMode": "#C00808", + "lightMode": "#C00808", + "fontDarkMode": "rgba(255, 255, 255, 1.0)", + "fontLightMode": "rgba(255, 255, 255, 1.0)" + } + }, + { + "id": 933576, + "name": "Antoine Semenyo", + "teamId": 8456, + "teamName": "Manchester City", + "goals": 15, + "value": 15, + "stat": { + "name": "goals", + "value": 15, + "format": "number", + "fractions": 0 + }, + "teamColors": { + "darkMode": "#76b4e5", + "lightMode": "#69A8D8", + "fontDarkMode": "rgba(29, 29, 29, 1.0)", + "fontLightMode": "rgba(255, 255, 255, 1.0)" + } + } + ] + } +} \ No newline at end of file diff --git a/docs/api_samples/extra_get_trendingnews_.json b/docs/api_samples/extra_get_trendingnews_.json new file mode 100644 index 0000000..443cd6f --- /dev/null +++ b/docs/api_samples/extra_get_trendingnews_.json @@ -0,0 +1,62 @@ +{ + "status": "success", + "response": { + "news": [ + { + "id": "ftbpro_01kk79jmekr0", + "imageUrl": "https://images2.minutemediacdn.com/image/upload/c_crop,w_1024,h_576,x_0,y_8/c_fill,w_912,h_516,f_auto,q_auto,g_auto/images/voltaxMediaLibrary/mmsport/si/01kk7af3bceybg72beqv.jpg", + "title": "Arsenal Need To Sell a Superstar: Four Players To Consider\u2014Ranked", + "gmtTime": "2026-03-08T23:00:00.000Z", + "sourceStr": "SI", + "sourceIconUrl": "https://images.fotmob.com/image_resources/news/si.png", + "page": { + "url": "/embed/news/01kk79jmekr0/arsenal-need-sell-superstar-four-players-considerranked" + } + }, + { + "id": "ftbpro_01kk77nh7348", + "imageUrl": "https://images2.minutemediacdn.com/image/upload/c_crop,w_1919,h_1079,x_0,y_0/c_fill,w_912,h_516,f_auto,q_auto,g_auto/images/voltaxMediaLibrary/mmsport/si/01kk7b4hp7157m0sbm2f.jpg", + "title": "Transfer News, Rumors: Shock Zubimendi U-Turn Stings Man Utd; Real Madrid\u2019s Rodri Twist", + "gmtTime": "2026-03-09T00:05:00.000Z", + "sourceStr": "SI", + "sourceIconUrl": "https://images.fotmob.com/image_resources/news/si.png", + "page": { + "url": "/embed/news/01kk77nh7348/transfer-news-rumors-shock-zubimendi-u-turn-stings-man-utd-real-madrids-rodri-twist" + } + }, + { + "id": "ftbpro_01khv73gpnbm", + "imageUrl": "https://images2.minutemediacdn.com/image/upload/c_crop,w_2141,h_1204,x_0,y_107/c_fill,w_912,h_516,f_auto,q_auto,g_auto/images/voltaxMediaLibrary/mmsport/si/01kj7qd6q1tmdh64dpn7.jpg", + "title": "Real Madrid\u2019s 10 Best Kits of All Time\u2014Ranked", + "gmtTime": "2026-03-08T22:00:00.000Z", + "sourceStr": "SI", + "sourceIconUrl": "https://images.fotmob.com/image_resources/news/si.png", + "page": { + "url": "/embed/news/01khv73gpnbm/real-madrids-10-best-kits-all-timeranked" + } + }, + { + "id": "90hptfhwzvo61817ve6yo5cwr", + "imageUrl": "https://images.performgroup.com/di/library/omnisport/de/3d/pervis-estupinan_1vh3xc9744gyb15kz1mabotx3x.png?t=-741518868&w=520&h=300", + "title": "AC Milan 1-0 Inter: Estupinan strike settles Derby della Madonnina", + "gmtTime": "2026-03-08T22:55:22.000Z", + "sourceStr": "FotMob", + "sourceIconUrl": "https://images.fotmob.com/image_resources/news/fotmob.png", + "page": { + "url": "/news/90hptfhwzvo61817ve6yo5cwr-ac-milan-1-0-inter-estupinan-strike-settles-derby-della-madonnina" + } + }, + { + "id": "ftbpro_01kk714gxhgj", + "imageUrl": "https://images2.minutemediacdn.com/image/upload/c_crop,w_1024,h_576,x_0,y_0/c_fill,w_912,h_516,f_auto,q_auto,g_auto/images/voltaxMediaLibrary/mmsport/si/01kk76ca6tg3gfyxsk6a.jpg", + "title": "'They Should Have Took Me'\u2014Tottenham Jibed By Record-Breaking English Manager", + "gmtTime": "2026-03-08T20:00:01.000Z", + "sourceStr": "SI", + "sourceIconUrl": "https://images.fotmob.com/image_resources/news/si.png", + "page": { + "url": "/embed/news/01kk714gxhgj/they-should-have-took-metottenham-jibed-record-breaking-english-manager" + } + } + ] + } +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/01_v1_search_teams_arsenal.json b/docs/api_samples/sportsdb/01_v1_search_teams_arsenal.json new file mode 100644 index 0000000..808f880 --- /dev/null +++ b/docs/api_samples/sportsdb/01_v1_search_teams_arsenal.json @@ -0,0 +1,70 @@ +{ + "teams": [ + { + "idTeam": "133604", + "idESPN": "359", + "idAPIfootball": "42", + "intLoved": "9", + "strTeam": "Arsenal", + "strTeamAlternate": "Arsenal Football Club, AFC, Arsenal FC", + "strTeamShort": "ARS", + "intFormedYear": "1892", + "strSport": "Soccer", + "strLeague": "English Premier League", + "idLeague": "4328", + "strLeague2": "FA Cup", + "idLeague2": "4482", + "strLeague3": "EFL Cup", + "idLeague3": "4570", + "strLeague4": "UEFA Champions League", + "idLeague4": "4480", + "strLeague5": "Emirates Cup", + "idLeague5": "5648", + "strLeague6": "", + "idLeague6": null, + "strLeague7": "", + "idLeague7": null, + "strDivision": null, + "idVenue": "15528", + "strStadium": "Emirates Stadium", + "strKeywords": "Gunners, Gooners", + "strRSS": "", + "strLocation": "Holloway, London, England", + "intStadiumCapacity": "60338", + "strWebsite": "www.arsenal.com", + "strFacebook": "www.facebook.com/Arsenal", + "strTwitter": "twitter.com/arsenal", + "strInstagram": "instagram.com/arsenal", + "strDescriptionEN": "Arsenal Football Club is a professional football club based in Islington, London, England, that plays in the Premier League, the top flight of English football. The club has won 13 League titles, a record 13 FA Cups, 2 League Cups, 15 FA Community Shields, 1 League Centenary Trophy, 1 UEFA Cup Winners' Cup and 1 Inter-Cities Fairs Cup.\r\n\r\nArsenal was the first club from the South of England to join The Football League, in 1893, and they reached the First Division in 1904. Relegated only once, in 1913, they continue the longest streak in the top division, and have won the second-most top-flight matches in English football history. In the 1930s, Arsenal won five League Championships and two FA Cups, and another FA Cup and two Championships after the war. In 1970\u201371, they won their first League and FA Cup Double. Between 1989 and 2005, they won five League titles and five FA Cups, including two more Doubles. They completed the 20th century with the highest average league position.\r\n\r\nHerbert Chapman won Arsenal's first national trophies, but died prematurely. He helped introduce the WM formation, floodlights, and shirt numbers, and added the white sleeves and brighter red to the club's kit. Ars\u00e8ne Wenger was the longest-serving manager and won the most trophies. He won a record 7 FA Cups, and his title-winning team set an English record for the longest top-flight unbeaten league run at 49 games between 2003 and 2004, receiving the nickname The Invincibles.\r\n\r\nIn 1886, Woolwich munitions workers founded the club as Dial Square. In 1913, the club crossed the city to Arsenal Stadium in Highbury, becoming close neighbours of Tottenham Hotspur, and creating the North London derby. In 2006, they moved to the nearby Emirates Stadium. In terms of revenue, Arsenal is the ninth highest-earning football club in the world, earned \u20ac487.6m in 2016\u201317 season. Based on social media activity from 2014 to 2015, Arsenal's fanbase is the fifth largest in the world. In 2018, Forbes estimated the club was the third most valuable in England, with the club being worth $2.24 billion.", + "strDescriptionDE": "Der FC Arsenal (offiziell: Arsenal Football Club) \u2013 auch bekannt als (The) Arsenal, (The) Gunners (deutsche \u00dcbersetzung: \u201eSch\u00fctzen\u201c oder \u201eKanoniere\u201c) oder im deutschen Sprachraum auch Arsenal London genannt \u2013 ist ein 1886 gegr\u00fcndeter Fu\u00dfballverein aus dem Ortsteil Holloway des Nordlondoner Bezirks Islington. Mit 13 englischen Meisterschaften und elf FA-Pokalsiegen z\u00e4hlt der Klub zu den erfolgreichsten englischen Fu\u00dfballvereinen.Erst \u00fcber 40 Jahre nach der Gr\u00fcndung gewann Arsenal mit f\u00fcnf Ligatiteln und zwei FA Cups in den 1930er Jahren seine ersten bedeutenden Titel. Der n\u00e4chste Meilenstein war in der Saison 1970/71 der Gewinn des zweiten englischen \u201eDoubles\u201c im 20. Jahrhundert. In den vergangenen 20 Jahren etablierte sich Arsenal endg\u00fcltig als einer der erfolgreichsten englischen Fu\u00dfballvereine, und beim Gewinn zweier weiterer Doubles zu Beginn des 21. Jahrhunderts blieb die Mannschaft in der Ligasaison 2003/04 als zweite in der englischen Fu\u00dfballgeschichte ungeschlagen. Zunehmende europ\u00e4ische Ambitionen unterstrich der Verein in der Spielzeit 2005/06, als Arsenal als erster Londoner Verein das Finale der Champions League erreichte.", + "strDescriptionFR": "Arsenal Football Club est un club de football anglais fond\u00e9 le 1er d\u00e9cembre 1886 \u00e0 Londres. Son si\u00e8ge est situ\u00e9 dans le borough londonien d'Islington.\r\n\r\nArsenal participe au championnat d'Angleterre de football depuis 1919 dont il a remport\u00e9 treize \u00e9ditions, ce qui en fait le troisi\u00e8me club le plus titr\u00e9 d'Angleterre, ainsi que treize coupes d'Angleterre ce qui constitue un record (devant Manchester United, qui en a remport\u00e9 12). Sur le plan continental, les Gunners (en fran\u00e7ais : \u00ab les canonniers \u00bb) comptent \u00e0 leur palmar\u00e8s une Coupe d'Europe des vainqueurs de coupe obtenue en 1994. Deux fois finalistes de cette coupe des vainqueurs de coupe en 1980 et 1995, ils ont \u00e9galement atteint les finales de la coupe de l'UEFA en 2000, de la Ligue des champions en 2006 et de l'Europa League en 2019.\r\n\r\nR\u00e9sident d\u00e8s 1913 du stade de Highbury, situ\u00e9 dans un quartier du nord de Londres, le club s\u2019est install\u00e9 en 2006 dans une nouvelle enceinte de 60 355 places : l'Emirates Stadium, situ\u00e9 \u00e0 Ashburton Grove. Arsenal nourrit une certaine rivalit\u00e9 avec les nombreux autres clubs de la capitale, mais celle l'opposant \u00e0 Tottenham Hotspur, avec qui il dispute chaque ann\u00e9e le \u00ab North London derby \u00bb est particuli\u00e8rement ancienne et profonde.\r\n\r\nLe club est dirig\u00e9 par Chips Keswick (en) qui succ\u00e8de pour raisons de sant\u00e9 en juin 2013 \u00e0 Peter Hill-Wood, fils et petit-fils des anciens pr\u00e9sidents Denis et Samuel Hill-Wood. Il remplace son p\u00e8re \u00e0 la mort de ce dernier, en 1982, apr\u00e8s vingt ans de responsabilit\u00e9s. Son entra\u00eeneur depuis le 29 novembre 2019 est le Su\u00e9dois Fredrik Ljungberg, ancien joueur du club, apr\u00e8s le limogeage de l\u2019Espagnol Unai Emery. Cependant le 20 d\u00e9cembre 2019, l'Espagnol Mikel Arteta, lui aussi ancien joueur du club, est nomm\u00e9 entra\u00eeneur. Il \u00e9tait avant sa nomination l'assistant de Pep Guardiola \u00e0 Manchester City", + "strDescriptionCN": null, + "strDescriptionIT": "L'Arsenal Football Club, noto semplicemente come Arsenal, \u00e8 una societ\u00e0 calcistica inglese con sede a Londra, pi\u00f9 precisamente nel quartiere di Holloway, nel borgo di Islington.[3]\r\n\r\nFondato nel 1886, \u00e8 uno dei quattordici club che rappresentano la citt\u00e0 di Londra a livello professionistico,[4] nonch\u00e9 uno dei pi\u00f9 antichi del Paese. Milita nella massima serie del calcio inglese ininterrottamente dal 1919-1920, risultando quindi la squadra da pi\u00f9 tempo presente in First Division/Premier League. \u00c8 la prima squadra della capitale del Regno Unito per successi sportivi e, in ambito federale, la terza dopo Manchester United e Liverpool, essendosi aggiudicata nel corso della sua storia tredici campionati inglesi, dodici FA Cup (record di vittorie, condiviso con il Manchester United), due League Cup e quattordici Community Shield (una condivisa),[5] mentre in ambito internazionale ha conquistato una Coppa delle Coppe ed una Coppa delle Fiere. Inoltre \u00e8 una delle tredici squadre che hanno raggiunto le finali di tutte le tre principali competizioni gestite dalla UEFA: Champions League (2005-2006), Coppa UEFA (1999-2000) e Coppa delle Coppe (1979-1980, 1993-1994 e 1994-1995).[6]\r\n\r\nI colori sociali, rosso per la maglietta e bianco per i pantaloncini, hanno sub\u00ecto variazioni pi\u00f9 o meno evidenti nel corso degli anni. Anche la sede del club \u00e8 stata cambiata pi\u00f9 volte: inizialmente la squadra giocava a Woolwich, ma nel 1913 si spost\u00f2 all'Arsenal Stadium, nel quartiere di Highbury; dal 2006 disputa invece le sue partite casalinghe nel nuovo Emirates Stadium. Lo stemma \u00e8 stato modificato ripetutamente, ma al suo interno \u00e8 sempre comparso almeno un cannone. Proprio per questo motivo i giocatori ed i tifosi dell'Arsenal sono spesso soprannominati Gunners (in italiano \"cannonieri\").\r\n\r\nL'Arsenal conta su una schiera di tifosi molto nutrita, distribuita in ogni parte del mondo. Nel corso degli anni sono sorte profonde rivalit\u00e0 con i sostenitori di club concittadini, la pi\u00f9 sentita delle quali \u00e8 quella con i seguaci del Tottenham Hotspur, con i quali i Gunners giocano regolarmente il North London derby.[7] L'Arsenal \u00e8 anche uno dei club pi\u00f9 ricchi del mondo, con un patrimonio stimato di 1,3 miliardi di dollari, secondo la rivista Forbes nel 2014, facendone il quinto club pi\u00f9 ricco del pianeta e il secondo in Inghilterra.[8]", + "strDescriptionJP": "\u30a2\u30fc\u30bb\u30ca\u30eb\u30fb\u30d5\u30c3\u30c8\u30dc\u30fc\u30eb\u30fb\u30af\u30e9\u30d6\uff08Arsenal Football Club\u3001\u30a4\u30ae\u30ea\u30b9\u82f1\u8a9e\u767a\u97f3: [\u02c8\u0251\u02d0s\u0259nl \u02c8fut\u02ccb\u0254\u02d0l kl\u028cb]\uff09\u306f\u3001\u30a4\u30f3\u30b0\u30e9\u30f3\u30c9\u306e\u9996\u90fd\u30ed\u30f3\u30c9\u30f3\u5317\u90e8\u3092\u30db\u30fc\u30e0\u30bf\u30a6\u30f3\u3068\u3059\u308b\u3001\u30a4\u30f3\u30b0\u30e9\u30f3\u30c9\u30d7\u30ed\u30b5\u30c3\u30ab\u30fc\u30ea\u30fc\u30b0\uff08\u30d7\u30ec\u30df\u30a2\u30ea\u30fc\u30b0\uff09\u306b\u52a0\u76df\u3059\u308b\u30d7\u30ed\u30b5\u30c3\u30ab\u30fc\u30af\u30e9\u30d6\u3002\u30af\u30e9\u30d6\u30ab\u30e9\u30fc\u306f\u8d64\u3068\u767d\u3002\r\n\r\n\u73fe\u5728\u306e\u30db\u30fc\u30e0\u30b9\u30bf\u30b8\u30a2\u30e0\u306f\u30ed\u30f3\u30c9\u30f3\u306e\u30a8\u30df\u30ec\u30fc\u30c4\u30fb\u30b9\u30bf\u30b8\u30a2\u30e0\uff08\u53ce\u5bb9\u4eba\u657060,260\u4eba\uff09\u3002\u30d7\u30ec\u30df\u30a2\u30ea\u30fc\u30b0\u306b\u6240\u5c5e\u3057\u3001\u540c\u30ea\u30fc\u30b0\u306b\u304a\u3044\u30663\u56de\u306e\u512a\u52dd\u8a18\u9332\u3092\u6301\u3064\uff08\u30d5\u30c3\u30c8\u30dc\u30fc\u30eb\u30ea\u30fc\u30b0\u6642\u4ee3\u3092\u542b\u3081\u308b\u306813\u56de\uff09\u30022003-2004\u30b7\u30fc\u30ba\u30f3\u306b\u306f\u7121\u6557\u512a\u52dd\u3092\u9054\u6210\u3057\u305f\u30a4\u30f3\u30b0\u30e9\u30f3\u30c9\u5c48\u6307\u306e\u5f37\u8c6a\u3067\u3042\u308b\u30021886\u5e74\u306b\u8ecd\u9700\u5de5\u5834\u306e\u52b4\u50cd\u8005\u306e\u30af\u30e9\u30d6\u3068\u3057\u3066\u5275\u8a2d\u3055\u308c\u305f\u305f\u3081\u3001\u30c1\u30fc\u30e0\u306e\u30a8\u30f3\u30d6\u30ec\u30e0\u306f\u5927\u7832\u306e\u30de\u30fc\u30af\u3092\u6301\u3064\u3002\u300c\u30ac\u30ca\u30fc\u30ba\uff08Gunners\uff09\u300d\u306e\u611b\u79f0\u3067\u77e5\u3089\u308c[1]\u3001\u30b5\u30dd\u30fc\u30bf\u30fc\u306f\u300c\u30b0\u30fc\u30ca\u30fc\uff08Gooner\uff09\u300d\u3068\u547c\u3070\u308c\u308b\u3002\r\n\r\n\u30af\u30e9\u30d6\u306e\u30e2\u30c3\u30c8\u30fc\u306f\u300c\u52dd\u5229\u306f\u8abf\u548c\u306e\u4e2d\u304b\u3089\u751f\u307e\u308c\u308b\uff08\u30e9\u30c6\u30f3\u8a9e: Victoria Concordia Crescit\uff09\u300d\u30021949\u5e74\u304b\u3089\u4f7f\u7528\u3055\u308c\u305f\u30af\u30ec\u30b9\u30c8\u306b\u521d\u3081\u3066\u767b\u5834\u3059\u308b\u3002\u73fe\u884c\u306e\u30af\u30ec\u30b9\u30c8\u306f2002\u5e74\u304b\u3089\u4f7f\u7528\u3055\u308c\u3066\u304a\u308a\u3001\u5927\u7832\u306e\u4e0a\u306b\u30b5\u30f3\u30bb\u30ea\u30d5\u4f53\u3067\u30c1\u30fc\u30e0\u540d\u304c\u66f8\u304b\u308c\u3066\u3044\u308b\u3002", + "strDescriptionRU": "\u00ab\u0410\u0440\u0441\u0435\u043d\u0430\u0301\u043b\u00bb (\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u2014 \u0424\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0443\u0431 \u00ab\u0410\u0440\u0441\u0435\u043d\u0430\u043b\u00bb, \u0430\u043d\u0433\u043b. Arsenal Football Club, \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u043d\u043e\u0448\u0435\u043d\u0438\u0435: [\u02c8\u0251rs\u0259n\u0259l 'futb\u0254:l kl\u028cb]) \u2014 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0443\u0431 \u0438\u0437 \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u041b\u043e\u043d\u0434\u043e\u043d\u0430, \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0439 \u0432 \u041f\u0440\u0435\u043c\u044c\u0435\u0440-\u043b\u0438\u0433\u0435. \u041e\u0441\u043d\u043e\u0432\u0430\u043d \u0432 \u043e\u043a\u0442\u044f\u0431\u0440\u0435 1886 \u0433\u043e\u0434\u0430. \u041a\u043b\u0443\u0431 13 \u0440\u0430\u0437 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u043e\u043c \u0410\u043d\u0433\u043b\u0438\u0438, 13 \u0440\u0430\u0437 \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u043b \u041a\u0443\u0431\u043e\u043a \u0410\u043d\u0433\u043b\u0438\u0438. \u0414\u043e\u043c\u0430\u0448\u043d\u0438\u043c \u0441\u0442\u0430\u0434\u0438\u043e\u043d\u043e\u043c \u043a\u043b\u0443\u0431\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u042d\u043c\u0438\u0440\u0435\u0439\u0442\u0441, \u0432\u043c\u0435\u0449\u0430\u044e\u0449\u0438\u0439 60 704 \u0437\u0440\u0438\u0442\u0435\u043b\u0435\u0439[1].\r\n\r\n\u00ab\u0410\u0440\u0441\u0435\u043d\u0430\u043b\u00bb \u043f\u0440\u043e\u0432\u0451\u043b \u0431\u043e\u0301\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0441\u0432\u043e\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0432 \u0432\u044b\u0441\u0448\u0435\u043c \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0435 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0444\u0443\u0442\u0431\u043e\u043b\u0430, \u0432 1892 \u0433\u043e\u0434\u0443 \u0441\u0442\u0430\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043a\u043b\u0443\u0431\u043e\u0432-\u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0439 \u041f\u0440\u0435\u043c\u044c\u0435\u0440-\u043b\u0438\u0433\u0438[4]. \u0422\u0430\u043a\u0436\u0435 \u043a\u043b\u0443\u0431 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u043a\u043e\u0440\u0434\u0441\u043c\u0435\u043d\u043e\u043c \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0441\u0435\u0437\u043e\u043d\u043e\u0432 \u043f\u043e\u0434\u0440\u044f\u0434, \u043f\u0440\u043e\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0445 \u0432 \u0432\u044b\u0441\u0448\u0435\u043c \u0434\u0438\u0432\u0438\u0437\u0438\u043e\u043d\u0435 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u0430 \u0410\u043d\u0433\u043b\u0438\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 1919 \u0433\u043e\u0434\u0430[5].\r\n\r\n\u041f\u043e \u0434\u0430\u043d\u043d\u044b\u043c Forbes \u043d\u0430 2018 \u0433\u043e\u0434, \u00ab\u0410\u0440\u0441\u0435\u043d\u0430\u043b\u00bb \u0437\u0430\u043d\u0438\u043c\u0430\u043b \u0448\u0435\u0441\u0442\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0441\u0430\u043c\u044b\u0445 \u0434\u043e\u0440\u043e\u0433\u0438\u0445 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0443\u0431\u043e\u0432 \u043c\u0438\u0440\u0430 \u0438 \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u043b\u0441\u044f \u0432 \u0441\u0443\u043c\u043c\u0443 2,238 \u043c\u043b\u0440\u0434. \u0434\u043e\u043b\u043b\u0430\u0440\u043e\u0432 \u0421\u0428\u0410[6]. \u041f\u043e \u0434\u0430\u043d\u043d\u044b\u043c \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0441\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Deloitte, \u043f\u043e \u0438\u0442\u043e\u0433\u0430\u043c \u0441\u0435\u0437\u043e\u043d\u0430 2016/17 \u00ab\u0410\u0440\u0441\u0435\u043d\u0430\u043b\u00bb \u0437\u0430\u043d\u0438\u043c\u0430\u043b 6-\u044e \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0432 \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0435 \u0441\u0430\u043c\u044b\u0445 \u0434\u043e\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0443\u0431\u043e\u0432 \u0441 \u0434\u043e\u0445\u043e\u0434\u043e\u043c \u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u0435 487,6 \u043c\u043b\u043d \u0435\u0432\u0440\u043e[7].", + "strDescriptionES": "El Arsenal Football Club (pronunciaci\u00f3n en ingl\u00e9s: /\u02c8\u0251\u02d0(\u0279)s\u0259n\u0259l \u02c8f\u028at\u02ccb\u0254l kl\u028cb/) es un club de f\u00fatbol profesional con sede en Holloway, Londres, Inglaterra, que juega en la m\u00e1xima categor\u00eda del f\u00fatbol de ese pa\u00eds, la Premier League. Uno de los m\u00e1s laureados del f\u00fatbol ingl\u00e9s, ha ganado 43 t\u00edtulos en su pa\u00eds, incluyendo 13 campeonatos de liga y un r\u00e9cord de 13 Copas de Inglaterra; tambi\u00e9n ha ganado dos t\u00edtulos internacionales: la Copa europea de Ferias en 1970 y la Recopa de Europa en 1994.\r\n\r\nFundado en 1886 en el sudeste de Londres, en 1893, se convirti\u00f3 en el primer club del sur de Inglaterra en unirse a la Football League. Gan\u00f3 sus primeros t\u00edtulos \u2014cinco ligas y dos FA Cups\u2014 en los a\u00f1os 1930. Luego de un per\u00edodo de escasez en los a\u00f1os posteriores a la Segunda Guerra Mundial, se convirti\u00f3 en el segundo club del siglo XX en ganar el doblete, obteniendo el Campeonato de Liga y la FA Cup de la temporada 1970-71. Los logros siguieron en los a\u00f1os 1990 y 2000. Durante esos a\u00f1os, Arsenal gan\u00f3 un doblete de copas nacionales, dos dobletes de Liga y Copa, y dos bicampeonatos de la Copa de Inglaterra. Finaliz\u00f3 una temporada de Liga invicto y se convirti\u00f3 en el primer club de Londres en llegar a la final de la Liga de Campeones de la UEFA.\r\n\r\nLos colores tradicionales del club, el blanco y el rojo, han evolucionado con el tiempo. Del mismo modo, fue cambiando la ubicaci\u00f3n del club; fundado en el distrito de Woolwich, en el sureste de Londres, en 1913 se mud\u00f3 al norte de Londres, m\u00e1s exactamente en el distrito de Highbury, donde fue establecido el Arsenal Stadium, que funcion\u00f3 hasta 2006, donde se hizo un traslado m\u00e1s corto, hacia los alrededores de Holloway, donde se levant\u00f3 el actual Emirates Stadium. La estad\u00eda hist\u00f3rica del Arsenal en el norte de Londres, ha creado con el tiempo una fuerte rivalidad con el Tottenham Hotspur, conocida como el Derbi del Norte de Londres.4\u200b\r\n\r\nArsenal posee una de las aficiones m\u00e1s numerosas del mundo.5\u200b6\u200b7\u200b Seg\u00fan la revista Forbes, el club fue el quinto club m\u00e1s valioso del mundo en 2014, con un valor de 1300 millones libras.8\u200b", + "strDescriptionPT": "Arsenal Football Club \u00e9 um clube de futebol, fundado e baseado em Londres, capital da Inglaterra.\r\n\r\nO clube disputa a Premier League e \u00e9 um dos mais bem sucedidos do futebol ingl\u00eas, tendo ganhado por 13 vezes o t\u00edtulo de campe\u00e3o do Campeonato Ingl\u00eas, sendo o terceiro em n\u00famero de conquistas, e por 13 vezes a Copa da Inglaterra (recorde), sendo tamb\u00e9m detentor do recorde de maior per\u00edodo de invencibilidade no Campeonato Ingl\u00eas e tamb\u00e9m o de ser o \u00fanico a ganhar a Premier League invicto. No plano internacional, conquistou a Recopa Europeia e a Ta\u00e7a das Cidades com Feiras, j\u00e1 tendo sido finalista da Liga dos Campe\u00f5es da UEFA, a principal competi\u00e7\u00e3o europeia de clubes.\r\n\r\nO Arsenal mudou de localiza\u00e7\u00e3o ao longo do tempo, tendo sido fundado em Woolwich, sudeste de Londres, em 1913 mudou-se para o norte de Londres, para o Arsenal Stadium, em Highbury. Em 2006 foi conclu\u00edda a constru\u00e7\u00e3o do Emirates Stadium, que est\u00e1 localizado nas proximidades de Holloway, o que foi prometido desde 2004, ap\u00f3s o clube fechar neg\u00f3cio com a Emirates Airlines, tendo capacidade para mais de 60.000 expectadores.[3]\r\n\r\nO Arsenal tem muitos torcedores por todo mundo, possuindo uma s\u00e9rie de rivalidades de longa data com outros clubes, sendo a mais not\u00e1vel delas contra os vizinhos do Tottenham, com quem disputa regularmente o North London Derby, bastante intensas tamb\u00e9m contra o Chelsea e o Manchester United.[4]\r\n\r\nSuas cores t\u00eam sido tradicionalmente vermelho e branco, mas seus uniformes evolu\u00edram ao longo da hist\u00f3ria. Um outro grande feito \u00e9 o de ser um dos 5 \u00fanicos clubes do mundo que j\u00e1 venceram a Sele\u00e7\u00e3o Brasileira.[5] J\u00e1 o Arsenal Ladies, \u00e9 um dos clubes mais bem sucedidos do futebol feminino na Inglaterra.", + "strDescriptionSE": null, + "strDescriptionNL": null, + "strDescriptionHU": null, + "strDescriptionNO": "Arsenal Football Club er en engelsk fotballklubb som spiller i Premier League. Klubben ble stiftet i 1886, og ble valgt inn i The Football League i 1893. \u00abThe Gunners\u00bb, som er kallenavnet til Arsenal, spiller hjemmekampene sine p\u00e5 Emirates Stadium i Holloway. Holloway er et sted i bydelen Islington som ligger i det nordlige London.", + "strDescriptionIL": null, + "strDescriptionPL": null, + "strColour1": "#EF0107", + "strColour2": "#fbffff", + "strColour3": "#013373", + "strGender": "Male", + "strCountry": "England", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/uyhbfe1612467038.png", + "strLogo": "https://r2.thesportsdb.com/images/media/team/logo/q2mxlz1512644512.png", + "strFanart1": "https://r2.thesportsdb.com/images/media/team/fanart/ouqjzl1769332470.jpg", + "strFanart2": "https://r2.thesportsdb.com/images/media/team/fanart/db23ct1769332477.jpg", + "strFanart3": "https://r2.thesportsdb.com/images/media/team/fanart/k3r9od1769332483.jpg", + "strFanart4": "https://r2.thesportsdb.com/images/media/team/fanart/2uvo8p1731313907.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/team/banner/24sngv1718273065.jpg", + "strEquipment": "https://r2.thesportsdb.com/images/media/team/equipment/fwav4f1752100996.png", + "strYoutube": "www.youtube.com/user/ArsenalTour", + "strLocked": "unlocked" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/01_v1_search_teams_tfc.json b/docs/api_samples/sportsdb/01_v1_search_teams_tfc.json new file mode 100644 index 0000000..94c0c8d --- /dev/null +++ b/docs/api_samples/sportsdb/01_v1_search_teams_tfc.json @@ -0,0 +1,70 @@ +{ + "teams": [ + { + "idTeam": "134148", + "idESPN": null, + "idAPIfootball": "1601", + "intLoved": "2", + "strTeam": "Toronto FC", + "strTeamAlternate": "", + "strTeamShort": "TOR", + "intFormedYear": "2006", + "strSport": "Soccer", + "strLeague": "American Major League Soccer", + "idLeague": "4346", + "strLeague2": "Leagues Cup", + "idLeague2": "5281", + "strLeague3": "", + "idLeague3": null, + "strLeague4": "", + "idLeague4": null, + "strLeague5": "", + "idLeague5": null, + "strLeague6": "", + "idLeague6": null, + "strLeague7": "", + "idLeague7": null, + "strDivision": null, + "idVenue": "16782", + "strStadium": "BMO Field", + "strKeywords": "", + "strRSS": "", + "strLocation": "Toronto, Ontario", + "intStadiumCapacity": "30991", + "strWebsite": "www.torontofc.ca", + "strFacebook": "www.facebook.com/torontofc", + "strTwitter": "twitter.com/torontofc", + "strInstagram": "www.instagram.com/torontofc", + "strDescriptionEN": "Toronto Football Club is a Canadian professional soccer club based in Toronto. The club competes in Major League Soccer (MLS) as a member of the Eastern Conference. The team plays its home matches at BMO Field, located at Exhibition Place on Toronto's shoreline west of Downtown Toronto. Toronto FC joined MLS in 2007 as an expansion team and was the first Canadian-based franchise in the league.\r\n\r\nThe first team is operated by Maple Leaf Sports & Entertainment, which also operates the MLS Next Pro affiliate team Toronto FC II and most other professional sports franchises in the city, like the Toronto Maple Leafs of the NHL, Toronto Raptors of the NBA and the Toronto Argonauts of the CFL.\r\n\r\nIn 2017, Toronto FC won the domestic treble with the MLS Cup, Supporters' Shield and Canadian Championship. They are seven-time winners of the Canadian Championship and were runners-up of the 2018 CONCACAF Champions League, as well as the MLS Cup in 2016 and 2019.\r\n\r\nAs of 2019, the club has an estimated value of US$395 million, making them the fifth most valuable club behind Atlanta United, LA Galaxy, Los Angeles FC, and Seattle Sounders, and have the highest player payroll in Major League Soccer.", + "strDescriptionDE": null, + "strDescriptionFR": null, + "strDescriptionCN": null, + "strDescriptionIT": "Il Toronto FC \u00e8 una societ\u00e0 calcistica canadese con sede nella citt\u00e0 di Toronto, fondata nel 2005. Milita nella Major League Soccer (MLS), il massimo campionato di calcio degli Stati Uniti d'America e del Canada.[1]\r\n\r\n\u00c8 stato il primo club non statunitense ad entrare a far parte della MLS e il primo ad aggiudicarsi la MLS.[2] \u00c8 stato inoltre il primo club nordamericano (e finora unico) a centrare il treble, ovvero la vittoria della coppa nazionale (2017), della stagione regolare (2017) e della MLS Cup (2017) in un'unica stagione. In ambito nazionale vanta la vittoria di 7 Canadian Championship, mentre in ambito internazionale ha raggiunto la finale della CONCACAF Champions League nel 2018.\r\n\r\nIl club \u00e8 una delle 5 squadre ad ad aver conquistato nella stessa stagione l'MLS Cup e il Supporters' Shield.\r\n\r\nLa squadra disputa le partite interne allo stadio BMO Field di Toronto.", + "strDescriptionJP": null, + "strDescriptionRU": null, + "strDescriptionES": null, + "strDescriptionPT": null, + "strDescriptionSE": null, + "strDescriptionNL": null, + "strDescriptionHU": null, + "strDescriptionNO": null, + "strDescriptionIL": null, + "strDescriptionPL": null, + "strColour1": "#B81137", + "strColour2": "#455560", + "strColour3": "", + "strGender": "Male", + "strCountry": "Canada", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strLogo": "https://r2.thesportsdb.com/images/media/team/logo/d1tbhj1547221736.png", + "strFanart1": "https://r2.thesportsdb.com/images/media/team/fanart/qxsttq1420795117.jpg", + "strFanart2": "https://r2.thesportsdb.com/images/media/team/fanart/ryfs3t1547729361.jpg", + "strFanart3": "https://r2.thesportsdb.com/images/media/team/fanart/vbstx91547729367.jpg", + "strFanart4": "https://r2.thesportsdb.com/images/media/team/fanart/tyw1av1547729372.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/team/banner/pssp4z1547805955.jpg", + "strEquipment": "https://www.thesportsdb.com/images/media/team/equipment/ly8y4n1766576019.png", + "strYoutube": "www.youtube.com/torontofc", + "strLocked": "unlocked" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/01_v2_search_leagues_epl.json b/docs/api_samples/sportsdb/01_v2_search_leagues_epl.json new file mode 100644 index 0000000..26575f7 --- /dev/null +++ b/docs/api_samples/sportsdb/01_v2_search_leagues_epl.json @@ -0,0 +1,3 @@ +{ + "Message": "No data found" +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/01_v2_search_leagues_mls.json b/docs/api_samples/sportsdb/01_v2_search_leagues_mls.json new file mode 100644 index 0000000..36a999a --- /dev/null +++ b/docs/api_samples/sportsdb/01_v2_search_leagues_mls.json @@ -0,0 +1,13 @@ +{ + "search": [ + { + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSport": "Soccer", + "strBadge": "https://r2.thesportsdb.com/images/media/league/badge/vokzs71650475719.png", + "strCountry": "United States", + "strCurrentSeason": "2026", + "strGender": "Male" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/02_v1_team_detail_tfc.json b/docs/api_samples/sportsdb/02_v1_team_detail_tfc.json new file mode 100644 index 0000000..94c0c8d --- /dev/null +++ b/docs/api_samples/sportsdb/02_v1_team_detail_tfc.json @@ -0,0 +1,70 @@ +{ + "teams": [ + { + "idTeam": "134148", + "idESPN": null, + "idAPIfootball": "1601", + "intLoved": "2", + "strTeam": "Toronto FC", + "strTeamAlternate": "", + "strTeamShort": "TOR", + "intFormedYear": "2006", + "strSport": "Soccer", + "strLeague": "American Major League Soccer", + "idLeague": "4346", + "strLeague2": "Leagues Cup", + "idLeague2": "5281", + "strLeague3": "", + "idLeague3": null, + "strLeague4": "", + "idLeague4": null, + "strLeague5": "", + "idLeague5": null, + "strLeague6": "", + "idLeague6": null, + "strLeague7": "", + "idLeague7": null, + "strDivision": null, + "idVenue": "16782", + "strStadium": "BMO Field", + "strKeywords": "", + "strRSS": "", + "strLocation": "Toronto, Ontario", + "intStadiumCapacity": "30991", + "strWebsite": "www.torontofc.ca", + "strFacebook": "www.facebook.com/torontofc", + "strTwitter": "twitter.com/torontofc", + "strInstagram": "www.instagram.com/torontofc", + "strDescriptionEN": "Toronto Football Club is a Canadian professional soccer club based in Toronto. The club competes in Major League Soccer (MLS) as a member of the Eastern Conference. The team plays its home matches at BMO Field, located at Exhibition Place on Toronto's shoreline west of Downtown Toronto. Toronto FC joined MLS in 2007 as an expansion team and was the first Canadian-based franchise in the league.\r\n\r\nThe first team is operated by Maple Leaf Sports & Entertainment, which also operates the MLS Next Pro affiliate team Toronto FC II and most other professional sports franchises in the city, like the Toronto Maple Leafs of the NHL, Toronto Raptors of the NBA and the Toronto Argonauts of the CFL.\r\n\r\nIn 2017, Toronto FC won the domestic treble with the MLS Cup, Supporters' Shield and Canadian Championship. They are seven-time winners of the Canadian Championship and were runners-up of the 2018 CONCACAF Champions League, as well as the MLS Cup in 2016 and 2019.\r\n\r\nAs of 2019, the club has an estimated value of US$395 million, making them the fifth most valuable club behind Atlanta United, LA Galaxy, Los Angeles FC, and Seattle Sounders, and have the highest player payroll in Major League Soccer.", + "strDescriptionDE": null, + "strDescriptionFR": null, + "strDescriptionCN": null, + "strDescriptionIT": "Il Toronto FC \u00e8 una societ\u00e0 calcistica canadese con sede nella citt\u00e0 di Toronto, fondata nel 2005. Milita nella Major League Soccer (MLS), il massimo campionato di calcio degli Stati Uniti d'America e del Canada.[1]\r\n\r\n\u00c8 stato il primo club non statunitense ad entrare a far parte della MLS e il primo ad aggiudicarsi la MLS.[2] \u00c8 stato inoltre il primo club nordamericano (e finora unico) a centrare il treble, ovvero la vittoria della coppa nazionale (2017), della stagione regolare (2017) e della MLS Cup (2017) in un'unica stagione. In ambito nazionale vanta la vittoria di 7 Canadian Championship, mentre in ambito internazionale ha raggiunto la finale della CONCACAF Champions League nel 2018.\r\n\r\nIl club \u00e8 una delle 5 squadre ad ad aver conquistato nella stessa stagione l'MLS Cup e il Supporters' Shield.\r\n\r\nLa squadra disputa le partite interne allo stadio BMO Field di Toronto.", + "strDescriptionJP": null, + "strDescriptionRU": null, + "strDescriptionES": null, + "strDescriptionPT": null, + "strDescriptionSE": null, + "strDescriptionNL": null, + "strDescriptionHU": null, + "strDescriptionNO": null, + "strDescriptionIL": null, + "strDescriptionPL": null, + "strColour1": "#B81137", + "strColour2": "#455560", + "strColour3": "", + "strGender": "Male", + "strCountry": "Canada", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strLogo": "https://r2.thesportsdb.com/images/media/team/logo/d1tbhj1547221736.png", + "strFanart1": "https://r2.thesportsdb.com/images/media/team/fanart/qxsttq1420795117.jpg", + "strFanart2": "https://r2.thesportsdb.com/images/media/team/fanart/ryfs3t1547729361.jpg", + "strFanart3": "https://r2.thesportsdb.com/images/media/team/fanart/vbstx91547729367.jpg", + "strFanart4": "https://r2.thesportsdb.com/images/media/team/fanart/tyw1av1547729372.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/team/banner/pssp4z1547805955.jpg", + "strEquipment": "https://www.thesportsdb.com/images/media/team/equipment/ly8y4n1766576019.png", + "strYoutube": "www.youtube.com/torontofc", + "strLocked": "unlocked" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/03_v1_next_tfc.json b/docs/api_samples/sportsdb/03_v1_next_tfc.json new file mode 100644 index 0000000..34b7bcf --- /dev/null +++ b/docs/api_samples/sportsdb/03_v1_next_tfc.json @@ -0,0 +1,484 @@ +{ + "events": [ + { + "idEvent": "2406753", + "idAPIfootball": "1490151", + "strTimestamp": "2026-03-14T17:00:00", + "strEvent": "Toronto FC vs New York Red Bulls", + "strEventAlternate": "New York Red Bulls @ Toronto FC", + "strFilename": "American Major League Soccer 2026-03-14 Toronto FC vs New York Red Bulls", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": null, + "strHomeTeam": "Toronto FC", + "strAwayTeam": "New York Red Bulls", + "intHomeScore": null, + "intRound": "4", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-14", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strGroup": null, + "idHomeTeam": "134148", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "idAwayTeam": "134156", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/suytvy1473536462.png", + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": "16782", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strCity": null, + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/4wgouh1706716030.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/l0z2931706714037.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/rt3hqv1706713405.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/6lpnqd1706718691.jpg", + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "Not Started", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2406768", + "idAPIfootball": "1490165", + "strTimestamp": "2026-03-21T17:00:00", + "strEvent": "Toronto FC vs Columbus Crew", + "strEventAlternate": "Columbus Crew @ Toronto FC", + "strFilename": "American Major League Soccer 2026-03-21 Toronto FC vs Columbus Crew", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": null, + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Columbus Crew", + "intHomeScore": null, + "intRound": "5", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-21", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strGroup": null, + "idHomeTeam": "134148", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "idAwayTeam": "134152", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/dzs8cp1629059854.png", + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": "16782", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strCity": null, + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/gdbc391706715993.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/pp3i0l1706714009.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/xab3h11706713371.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/y2lohb1706718675.jpg", + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "Not Started", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2406782", + "idAPIfootball": "1490180", + "strTimestamp": "2026-04-04T17:00:00", + "strEvent": "Toronto FC vs Colorado Rapids", + "strEventAlternate": "Colorado Rapids @ Toronto FC", + "strFilename": "American Major League Soccer 2026-04-04 Toronto FC vs Colorado Rapids", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": null, + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Colorado Rapids", + "intHomeScore": null, + "intRound": "6", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-04-04", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strGroup": null, + "idHomeTeam": "134148", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "idAwayTeam": "134794", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/uppupv1473536412.png", + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": "16782", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strCity": null, + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/tuqxzy1771753493.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/oqmxey1771754131.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/re0wo71771753307.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/b4c9171771753983.jpg", + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "Not Started", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2406798", + "idAPIfootball": "1490196", + "strTimestamp": "2026-04-11T17:00:00", + "strEvent": "Toronto FC vs FC Cincinnati", + "strEventAlternate": "FC Cincinnati @ Toronto FC", + "strFilename": "American Major League Soccer 2026-04-11 Toronto FC vs FC Cincinnati", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": null, + "strHomeTeam": "Toronto FC", + "strAwayTeam": "FC Cincinnati", + "intHomeScore": null, + "intRound": "7", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-04-11", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strGroup": null, + "idHomeTeam": "134148", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "idAwayTeam": "136688", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/vvhsqc1707631046.png", + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": "16782", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strCity": null, + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/oag8hp1674489270.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/r6l2dl1706713803.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/p5mxz71706713223.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/3do5bk1706718587.jpg", + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "Not Started", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2406813", + "idAPIfootball": "1490212", + "strTimestamp": "2026-04-18T17:00:00", + "strEvent": "Toronto FC vs Austin FC", + "strEventAlternate": "Austin FC @ Toronto FC", + "strFilename": "American Major League Soccer 2026-04-18 Toronto FC vs Austin FC", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": null, + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Austin FC", + "intHomeScore": null, + "intRound": "8", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-04-18", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strGroup": null, + "idHomeTeam": "134148", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "idAwayTeam": "140079", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/a3dlg61595434277.png", + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": "16782", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strCity": null, + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/adf29m1771753504.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/ko7gbq1771754143.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/c7qigg1771753319.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/iitgo81771753993.jpg", + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "Not Started", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2406829", + "idAPIfootball": "1490227", + "strTimestamp": "2026-04-22T23:30:00", + "strEvent": "Toronto FC vs Philadelphia Union", + "strEventAlternate": "Philadelphia Union @ Toronto FC", + "strFilename": "American Major League Soccer 2026-04-22 Toronto FC vs Philadelphia Union", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": null, + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Philadelphia Union", + "intHomeScore": null, + "intRound": "9", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-04-22", + "dateEventLocal": null, + "strTime": "23:30:00", + "strTimeLocal": null, + "strGroup": null, + "idHomeTeam": "134148", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "idAwayTeam": "134142", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/gyznyo1602103682.png", + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": "16782", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strCity": null, + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/qx2k6k1706715901.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/ail0fh1706713966.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/8sfg181706713309.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/z0ucvs1706718638.jpg", + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "Not Started", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2406839", + "idAPIfootball": "1490237", + "strTimestamp": "2026-04-25T17:00:00", + "strEvent": "Toronto FC vs Atlanta United", + "strEventAlternate": "Atlanta United @ Toronto FC", + "strFilename": "American Major League Soccer 2026-04-25 Toronto FC vs Atlanta United", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": null, + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Atlanta United", + "intHomeScore": null, + "intRound": "9", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-04-25", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strGroup": null, + "idHomeTeam": "134148", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "idAwayTeam": "135851", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ej091x1602103070.png", + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": "16782", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strCity": null, + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/0d1mu81674489091.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/1i0wk21706713736.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/lh56x71706713125.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/349xhb1706718535.jpg", + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "Not Started", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2406865", + "idAPIfootball": "1490252", + "strTimestamp": "2026-05-02T17:00:00", + "strEvent": "Toronto FC vs San Jose Earthquakes", + "strEventAlternate": "San Jose Earthquakes @ Toronto FC", + "strFilename": "American Major League Soccer 2026-05-02 Toronto FC vs San Jose Earthquakes", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": null, + "strHomeTeam": "Toronto FC", + "strAwayTeam": "San Jose Earthquakes", + "intHomeScore": null, + "intRound": "10", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-05-02", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strGroup": null, + "idHomeTeam": "134148", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "idAwayTeam": "134157", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/xyrqqt1420781048.png", + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": "16782", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strCity": null, + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/epsk7c1659976798.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/3x100g1659980618.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/fqaaht1644524215.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/mu24rs1659979032.jpg", + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "Not Started", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2406878", + "idAPIfootball": "1490267", + "strTimestamp": "2026-05-09T17:00:00", + "strEvent": "Toronto FC vs Inter Miami", + "strEventAlternate": "Inter Miami @ Toronto FC", + "strFilename": "American Major League Soccer 2026-05-09 Toronto FC vs Inter Miami", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": null, + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Inter Miami", + "intHomeScore": null, + "intRound": "11", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-05-09", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strGroup": null, + "idHomeTeam": "134148", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "idAwayTeam": "137699", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/m4it3e1602103647.png", + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": "16782", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strCity": null, + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/yg9alq1706716044.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/2p6ac91706714071.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/jqdmuw1706713416.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/jaqgyc1706718698.jpg", + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "Not Started", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2406900", + "idAPIfootball": "1490298", + "strTimestamp": "2026-05-16T23:30:00", + "strEvent": "Charlotte FC vs Toronto FC", + "strEventAlternate": "Toronto FC @ Charlotte FC", + "strFilename": "American Major League Soccer 2026-05-16 Charlotte FC vs Toronto FC", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": null, + "strHomeTeam": "Charlotte FC", + "strAwayTeam": "Toronto FC", + "intHomeScore": null, + "intRound": "12", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-05-16", + "dateEventLocal": null, + "strTime": "23:30:00", + "strTimeLocal": null, + "strGroup": null, + "idHomeTeam": "140078", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/b6p4uz1595434047.png", + "idAwayTeam": "134148", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": "18776", + "strVenue": "Bank of America Stadium", + "strCountry": "United States", + "strCity": null, + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/dekc1y1674489274.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/21yoe01706713753.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/1n0kgw1706713151.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/q1vueq1706718550.jpg", + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "Not Started", + "strPostponed": "no", + "strLocked": "unlocked" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/03_v1_previous_tfc.json b/docs/api_samples/sportsdb/03_v1_previous_tfc.json new file mode 100644 index 0000000..83c7b3b --- /dev/null +++ b/docs/api_samples/sportsdb/03_v1_previous_tfc.json @@ -0,0 +1,244 @@ +{ + "results": [ + { + "idEvent": "2406751", + "idAPIfootball": "1490149", + "strTimestamp": "2026-03-08T23:00:00", + "strEvent": "FC Cincinnati vs Toronto FC", + "strEventAlternate": "Toronto FC @ FC Cincinnati", + "strFilename": "American Major League Soccer 2026-03-08 FC Cincinnati vs Toronto FC", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "FC Cincinnati", + "strAwayTeam": "Toronto FC", + "intHomeScore": "0", + "intRound": "3", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-08", + "dateEventLocal": "2026-03-08", + "strTime": "23:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "136688", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/vvhsqc1707631046.png", + "idAwayTeam": "134148", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "20820", + "strVenue": "TQL Stadium", + "strCountry": "United States", + "strCity": "", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/tnm6721674489170.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/frynnc1706713440.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/7xrdgm1706713089.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/zkk3rl1706718516.jpg", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=LloAaRmqvag", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2406731", + "idAPIfootball": "1490129", + "strTimestamp": "2026-03-01T02:30:00", + "strEvent": "Vancouver Whitecaps vs Toronto FC", + "strEventAlternate": "Toronto FC @ Vancouver Whitecaps", + "strFilename": "American Major League Soccer 2026-03-01 Vancouver Whitecaps vs Toronto FC", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Vancouver Whitecaps", + "strAwayTeam": "Toronto FC", + "intHomeScore": "3", + "intRound": "2", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-01", + "dateEventLocal": "2026-02-28", + "strTime": "02:30:00", + "strTimeLocal": "18:30:00", + "strGroup": "", + "idHomeTeam": "134147", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/tpwxpy1473536521.png", + "idAwayTeam": "134148", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "25843", + "strVenue": "BC Place", + "strCountry": "Canada", + "strCity": "", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/oolq431659976740.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/ecyoz01706713746.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/7r0ggq1706713138.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/4lwklu1706718544.jpg", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=RTawJpGyvPg", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2406713", + "idAPIfootball": "1490781", + "strTimestamp": "2026-02-22T01:30:00", + "strEvent": "FC Dallas vs Toronto FC", + "strEventAlternate": "Toronto FC @ FC Dallas", + "strFilename": "American Major League Soccer 2026-02-22 FC Dallas vs Toronto FC", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "FC Dallas", + "strAwayTeam": "Toronto FC", + "intHomeScore": "3", + "intRound": "1", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-02-22", + "dateEventLocal": "2026-02-21", + "strTime": "01:30:00", + "strTimeLocal": "19:30:00", + "strGroup": "", + "idHomeTeam": "134146", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/vxy8xy1602103187.png", + "idAwayTeam": "134148", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16781", + "strVenue": "Toyota Stadium Dallas", + "strCountry": "United States", + "strCity": "", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/9bjukc1659976671.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/fj461l1659980511.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/owuytt1644524082.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/1yvzoa1659978946.jpg", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=Sf5YmqW5ONo", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2425216", + "idAPIfootball": "1514800", + "strTimestamp": "2026-02-14T09:45:00", + "strEvent": "Toronto FC vs Polissya Zhytomyr", + "strEventAlternate": "Polissya Zhytomyr @ Toronto FC", + "strFilename": "Club Friendlies 2026-02-14 Toronto FC vs Polissya Zhytomyr", + "strSport": "Soccer", + "idLeague": "4569", + "strLeague": "Club Friendlies", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/gb18781565430778.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Polissya Zhytomyr", + "intHomeScore": "2", + "intRound": "0", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-02-14", + "dateEventLocal": "2026-02-14", + "strTime": "09:45:00", + "strTimeLocal": "04:45:00", + "strGroup": "", + "idHomeTeam": "134148", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "idAwayTeam": "140180", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/6r8o5l1725171180.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16782", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2425209", + "idAPIfootball": "1514792", + "strTimestamp": "2026-02-11T11:00:00", + "strEvent": "Toronto FC vs Fredrikstad", + "strEventAlternate": "Fredrikstad @ Toronto FC", + "strFilename": "Club Friendlies 2026-02-11 Toronto FC vs Fredrikstad", + "strSport": "Soccer", + "idLeague": "4569", + "strLeague": "Club Friendlies", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/gb18781565430778.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Fredrikstad", + "intHomeScore": "0", + "intRound": "0", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-02-11", + "dateEventLocal": "2026-02-11", + "strTime": "11:00:00", + "strTimeLocal": "06:00:00", + "strGroup": "", + "idHomeTeam": "134148", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "idAwayTeam": "134749", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/9se6qv1690695269.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16782", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/03_v2_next_tfc.json b/docs/api_samples/sportsdb/03_v2_next_tfc.json new file mode 100644 index 0000000..7a02946 --- /dev/null +++ b/docs/api_samples/sportsdb/03_v2_next_tfc.json @@ -0,0 +1,294 @@ +{ + "schedule": [ + { + "idEvent": "2406753", + "strEvent": "Toronto FC vs New York Red Bulls", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "New York Red Bulls", + "idHomeTeam": "134148", + "idAwayTeam": "134156", + "intRound": "4", + "intHomeScore": null, + "intAwayScore": null, + "strTimestamp": "2026-03-14T17:00:00", + "dateEvent": "2026-03-14", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/suytvy1473536462.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/rt3hqv1706713405.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/4wgouh1706716030.jpg", + "strVideo": null, + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-03-14 Toronto FC vs New York Red Bulls", + "strStatus": "Not Started" + }, + { + "idEvent": "2406768", + "strEvent": "Toronto FC vs Columbus Crew", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Columbus Crew", + "idHomeTeam": "134148", + "idAwayTeam": "134152", + "intRound": "5", + "intHomeScore": null, + "intAwayScore": null, + "strTimestamp": "2026-03-21T17:00:00", + "dateEvent": "2026-03-21", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/dzs8cp1629059854.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/xab3h11706713371.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/gdbc391706715993.jpg", + "strVideo": null, + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-03-21 Toronto FC vs Columbus Crew", + "strStatus": "Not Started" + }, + { + "idEvent": "2406782", + "strEvent": "Toronto FC vs Colorado Rapids", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Colorado Rapids", + "idHomeTeam": "134148", + "idAwayTeam": "134794", + "intRound": "6", + "intHomeScore": null, + "intAwayScore": null, + "strTimestamp": "2026-04-04T17:00:00", + "dateEvent": "2026-04-04", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/uppupv1473536412.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/re0wo71771753307.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/tuqxzy1771753493.jpg", + "strVideo": null, + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-04-04 Toronto FC vs Colorado Rapids", + "strStatus": "Not Started" + }, + { + "idEvent": "2406798", + "strEvent": "Toronto FC vs FC Cincinnati", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "FC Cincinnati", + "idHomeTeam": "134148", + "idAwayTeam": "136688", + "intRound": "7", + "intHomeScore": null, + "intAwayScore": null, + "strTimestamp": "2026-04-11T17:00:00", + "dateEvent": "2026-04-11", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/vvhsqc1707631046.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/p5mxz71706713223.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/oag8hp1674489270.jpg", + "strVideo": null, + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-04-11 Toronto FC vs FC Cincinnati", + "strStatus": "Not Started" + }, + { + "idEvent": "2406813", + "strEvent": "Toronto FC vs Austin FC", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Austin FC", + "idHomeTeam": "134148", + "idAwayTeam": "140079", + "intRound": "8", + "intHomeScore": null, + "intAwayScore": null, + "strTimestamp": "2026-04-18T17:00:00", + "dateEvent": "2026-04-18", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/a3dlg61595434277.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/c7qigg1771753319.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/adf29m1771753504.jpg", + "strVideo": null, + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-04-18 Toronto FC vs Austin FC", + "strStatus": "Not Started" + }, + { + "idEvent": "2406829", + "strEvent": "Toronto FC vs Philadelphia Union", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Philadelphia Union", + "idHomeTeam": "134148", + "idAwayTeam": "134142", + "intRound": "9", + "intHomeScore": null, + "intAwayScore": null, + "strTimestamp": "2026-04-22T23:30:00", + "dateEvent": "2026-04-22", + "dateEventLocal": null, + "strTime": "23:30:00", + "strTimeLocal": null, + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/gyznyo1602103682.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/8sfg181706713309.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/qx2k6k1706715901.jpg", + "strVideo": null, + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-04-22 Toronto FC vs Philadelphia Union", + "strStatus": "Not Started" + }, + { + "idEvent": "2406839", + "strEvent": "Toronto FC vs Atlanta United", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Atlanta United", + "idHomeTeam": "134148", + "idAwayTeam": "135851", + "intRound": "9", + "intHomeScore": null, + "intAwayScore": null, + "strTimestamp": "2026-04-25T17:00:00", + "dateEvent": "2026-04-25", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ej091x1602103070.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/lh56x71706713125.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/0d1mu81674489091.jpg", + "strVideo": null, + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-04-25 Toronto FC vs Atlanta United", + "strStatus": "Not Started" + }, + { + "idEvent": "2406865", + "strEvent": "Toronto FC vs San Jose Earthquakes", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "San Jose Earthquakes", + "idHomeTeam": "134148", + "idAwayTeam": "134157", + "intRound": "10", + "intHomeScore": null, + "intAwayScore": null, + "strTimestamp": "2026-05-02T17:00:00", + "dateEvent": "2026-05-02", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/xyrqqt1420781048.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/fqaaht1644524215.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/epsk7c1659976798.jpg", + "strVideo": null, + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-05-02 Toronto FC vs San Jose Earthquakes", + "strStatus": "Not Started" + }, + { + "idEvent": "2406878", + "strEvent": "Toronto FC vs Inter Miami", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Inter Miami", + "idHomeTeam": "134148", + "idAwayTeam": "137699", + "intRound": "11", + "intHomeScore": null, + "intAwayScore": null, + "strTimestamp": "2026-05-09T17:00:00", + "dateEvent": "2026-05-09", + "dateEventLocal": null, + "strTime": "17:00:00", + "strTimeLocal": null, + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/m4it3e1602103647.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/jqdmuw1706713416.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/yg9alq1706716044.jpg", + "strVideo": null, + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-05-09 Toronto FC vs Inter Miami", + "strStatus": "Not Started" + }, + { + "idEvent": "2406900", + "strEvent": "Charlotte FC vs Toronto FC", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Charlotte FC", + "strAwayTeam": "Toronto FC", + "idHomeTeam": "140078", + "idAwayTeam": "134148", + "intRound": "12", + "intHomeScore": null, + "intAwayScore": null, + "strTimestamp": "2026-05-16T23:30:00", + "dateEvent": "2026-05-16", + "dateEventLocal": null, + "strTime": "23:30:00", + "strTimeLocal": null, + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/b6p4uz1595434047.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strVenue": "Bank of America Stadium", + "strCountry": "United States", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/1n0kgw1706713151.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/dekc1y1674489274.jpg", + "strVideo": null, + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-05-16 Charlotte FC vs Toronto FC", + "strStatus": "Not Started" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/03_v2_previous_tfc.json b/docs/api_samples/sportsdb/03_v2_previous_tfc.json new file mode 100644 index 0000000..c646130 --- /dev/null +++ b/docs/api_samples/sportsdb/03_v2_previous_tfc.json @@ -0,0 +1,294 @@ +{ + "schedule": [ + { + "idEvent": "2406751", + "strEvent": "FC Cincinnati vs Toronto FC", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "FC Cincinnati", + "strAwayTeam": "Toronto FC", + "idHomeTeam": "136688", + "idAwayTeam": "134148", + "intRound": "3", + "intHomeScore": "0", + "intAwayScore": "1", + "strTimestamp": "2026-03-08T23:00:00", + "dateEvent": "2026-03-08", + "dateEventLocal": "2026-03-08", + "strTime": "23:00:00", + "strTimeLocal": "18:00:00", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/vvhsqc1707631046.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strVenue": "TQL Stadium", + "strCountry": "United States", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/7xrdgm1706713089.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/tnm6721674489170.jpg", + "strVideo": "https://www.youtube.com/watch?v=LloAaRmqvag", + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-03-08 FC Cincinnati vs Toronto FC", + "strStatus": "Match Finished" + }, + { + "idEvent": "2406731", + "strEvent": "Vancouver Whitecaps vs Toronto FC", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Vancouver Whitecaps", + "strAwayTeam": "Toronto FC", + "idHomeTeam": "134147", + "idAwayTeam": "134148", + "intRound": "2", + "intHomeScore": "3", + "intAwayScore": "0", + "strTimestamp": "2026-03-01T02:30:00", + "dateEvent": "2026-03-01", + "dateEventLocal": "2026-02-28", + "strTime": "02:30:00", + "strTimeLocal": "18:30:00", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/tpwxpy1473536521.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strVenue": "BC Place", + "strCountry": "Canada", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/7r0ggq1706713138.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/oolq431659976740.jpg", + "strVideo": "https://www.youtube.com/watch?v=RTawJpGyvPg", + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-03-01 Vancouver Whitecaps vs Toronto FC", + "strStatus": "Match Finished" + }, + { + "idEvent": "2406713", + "strEvent": "FC Dallas vs Toronto FC", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "FC Dallas", + "strAwayTeam": "Toronto FC", + "idHomeTeam": "134146", + "idAwayTeam": "134148", + "intRound": "1", + "intHomeScore": "3", + "intAwayScore": "2", + "strTimestamp": "2026-02-22T01:30:00", + "dateEvent": "2026-02-22", + "dateEventLocal": "2026-02-21", + "strTime": "01:30:00", + "strTimeLocal": "19:30:00", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/vxy8xy1602103187.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strVenue": "Toyota Stadium Dallas", + "strCountry": "United States", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/owuytt1644524082.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/9bjukc1659976671.jpg", + "strVideo": "https://www.youtube.com/watch?v=Sf5YmqW5ONo", + "strPostponed": "no", + "strFilename": "American Major League Soccer 2026-02-22 FC Dallas vs Toronto FC", + "strStatus": "Match Finished" + }, + { + "idEvent": "2425216", + "strEvent": "Toronto FC vs Polissya Zhytomyr", + "idLeague": "4569", + "strLeague": "Club Friendlies", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Polissya Zhytomyr", + "idHomeTeam": "134148", + "idAwayTeam": "140180", + "intRound": "0", + "intHomeScore": "2", + "intAwayScore": "1", + "strTimestamp": "2026-02-14T09:45:00", + "dateEvent": "2026-02-14", + "dateEventLocal": "2026-02-14", + "strTime": "09:45:00", + "strTimeLocal": "04:45:00", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/6r8o5l1725171180.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "", + "strPoster": "", + "strVideo": "", + "strPostponed": "no", + "strFilename": "Club Friendlies 2026-02-14 Toronto FC vs Polissya Zhytomyr", + "strStatus": "Match Finished" + }, + { + "idEvent": "2425209", + "strEvent": "Toronto FC vs Fredrikstad", + "idLeague": "4569", + "strLeague": "Club Friendlies", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Fredrikstad", + "idHomeTeam": "134148", + "idAwayTeam": "134749", + "intRound": "0", + "intHomeScore": "0", + "intAwayScore": "1", + "strTimestamp": "2026-02-11T11:00:00", + "dateEvent": "2026-02-11", + "dateEventLocal": "2026-02-11", + "strTime": "11:00:00", + "strTimeLocal": "06:00:00", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/9se6qv1690695269.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "", + "strPoster": "", + "strVideo": "", + "strPostponed": "no", + "strFilename": "Club Friendlies 2026-02-11 Toronto FC vs Fredrikstad", + "strStatus": "Match Finished" + }, + { + "idEvent": "2425206", + "strEvent": "Toronto FC vs AIK", + "idLeague": "4569", + "strLeague": "Club Friendlies", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "AIK", + "idHomeTeam": "134148", + "idAwayTeam": "134011", + "intRound": "0", + "intHomeScore": "2", + "intAwayScore": "2", + "strTimestamp": "2026-02-08T15:00:00", + "dateEvent": "2026-02-08", + "dateEventLocal": "2026-02-07", + "strTime": "15:00:00", + "strTimeLocal": "09:00:00", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rwsrxq1420769503.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "", + "strPoster": "", + "strVideo": "", + "strPostponed": "no", + "strFilename": "Club Friendlies 2026-02-08 Toronto FC vs AIK", + "strStatus": "Match Finished" + }, + { + "idEvent": "2425183", + "strEvent": "Toronto FC vs Jeonbuk Hyundai Motors", + "idLeague": "4569", + "strLeague": "Club Friendlies", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Jeonbuk Hyundai Motors", + "idHomeTeam": "134148", + "idAwayTeam": "138111", + "intRound": "0", + "intHomeScore": "2", + "intAwayScore": "0", + "strTimestamp": "2026-01-31T13:00:00", + "dateEvent": "2026-01-31", + "dateEventLocal": "2026-01-31", + "strTime": "13:00:00", + "strTimeLocal": "08:00:00", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/8jif3b1747853225.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "", + "strPoster": "", + "strVideo": "", + "strPostponed": "no", + "strFilename": "Club Friendlies 2026-01-31 Toronto FC vs Jeonbuk Hyundai Motors", + "strStatus": "Match Finished" + }, + { + "idEvent": "2425155", + "strEvent": "Toronto FC vs Incheon United", + "idLeague": "4569", + "strLeague": "Club Friendlies", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Incheon United", + "idHomeTeam": "134148", + "idAwayTeam": "138110", + "intRound": "0", + "intHomeScore": "4", + "intAwayScore": "1", + "strTimestamp": "2026-01-28T15:00:00", + "dateEvent": "2026-01-28", + "dateEventLocal": null, + "strTime": "15:00:00", + "strTimeLocal": null, + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/2no9nq1579473100.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "", + "strPoster": "", + "strVideo": null, + "strPostponed": "no", + "strFilename": "Club Friendlies 2026-01-28 Toronto FC vs Incheon United", + "strStatus": "Match Finished" + }, + { + "idEvent": "2192510", + "strEvent": "Toronto FC vs Orlando City", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Toronto FC", + "strAwayTeam": "Orlando City", + "idHomeTeam": "134148", + "idAwayTeam": "135292", + "intRound": "51", + "intHomeScore": "4", + "intAwayScore": "2", + "strTimestamp": "2025-10-18T22:00:00", + "dateEvent": "2025-10-18", + "dateEventLocal": "2025-10-18", + "strTime": "22:00:00", + "strTimeLocal": "18:00:00", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/qyppxw1423832326.png", + "strVenue": "BMO Field", + "strCountry": "Canada", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/vruhs31736768055.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/7zrec61674489293.jpg", + "strVideo": "https://www.youtube.com/watch?v=n9HxS3fULdk", + "strPostponed": "no", + "strFilename": "American Major League Soccer 2025-10-18 Toronto FC vs Orlando City", + "strStatus": "Match Finished" + }, + { + "idEvent": "2192264", + "strEvent": "Los Angeles FC vs Toronto FC", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strSport": "Soccer", + "strHomeTeam": "Los Angeles FC", + "strAwayTeam": "Toronto FC", + "idHomeTeam": "136050", + "idAwayTeam": "134148", + "intRound": "26", + "intHomeScore": "2", + "intAwayScore": "0", + "strTimestamp": "2025-10-09T02:30:00", + "dateEvent": "2025-10-09", + "dateEventLocal": "2025-10-08", + "strTime": "02:30:00", + "strTimeLocal": "19:30:00", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/7nbj2a1602103638.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "strVenue": "BMO Stadium", + "strCountry": "United States", + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/8tksek1736767451.jpg", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/8ynzkg1736773640.jpg", + "strVideo": "https://www.youtube.com/watch?v=qXM4fqLLJ_I", + "strPostponed": "no", + "strFilename": "American Major League Soccer 2025-10-09 Los Angeles FC vs Toronto FC", + "strStatus": "Match Finished" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/04_v1_event_detail.json b/docs/api_samples/sportsdb/04_v1_event_detail.json new file mode 100644 index 0000000..4079d9b --- /dev/null +++ b/docs/api_samples/sportsdb/04_v1_event_detail.json @@ -0,0 +1,52 @@ +{ + "events": [ + { + "idEvent": "2406751", + "idAPIfootball": "1490149", + "strTimestamp": "2026-03-08T23:00:00", + "strEvent": "FC Cincinnati vs Toronto FC", + "strEventAlternate": "Toronto FC @ FC Cincinnati", + "strFilename": "American Major League Soccer 2026-03-08 FC Cincinnati vs Toronto FC", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "FC Cincinnati", + "strAwayTeam": "Toronto FC", + "intHomeScore": "0", + "intRound": "3", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-08", + "dateEventLocal": "2026-03-08", + "strTime": "23:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "136688", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/vvhsqc1707631046.png", + "idAwayTeam": "134148", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "20820", + "strVenue": "TQL Stadium", + "strCountry": "United States", + "strCity": "", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/tnm6721674489170.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/frynnc1706713440.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/7xrdgm1706713089.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/zkk3rl1706718516.jpg", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=LloAaRmqvag", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/04_v2_event_detail.json b/docs/api_samples/sportsdb/04_v2_event_detail.json new file mode 100644 index 0000000..007342b --- /dev/null +++ b/docs/api_samples/sportsdb/04_v2_event_detail.json @@ -0,0 +1,52 @@ +{ + "lookup": [ + { + "idEvent": "2406751", + "idAPIfootball": "1490149", + "strTimestamp": "2026-03-08T23:00:00", + "strEvent": "FC Cincinnati vs Toronto FC", + "strEventAlternate": "Toronto FC @ FC Cincinnati", + "strFilename": "American Major League Soccer 2026-03-08 FC Cincinnati vs Toronto FC", + "strSport": "Soccer", + "idLeague": "4346", + "strLeague": "American Major League Soccer", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dqo6r91549878326.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "FC Cincinnati", + "strAwayTeam": "Toronto FC", + "intHomeScore": "0", + "intRound": "3", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-08", + "dateEventLocal": "2026-03-08", + "strTime": "23:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "136688", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/vvhsqc1707631046.png", + "idAwayTeam": "134148", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rsxyrr1473536512.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "20820", + "strVenue": "TQL Stadium", + "strCountry": "United States", + "strCity": "", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/tnm6721674489170.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/frynnc1706713440.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/7xrdgm1706713089.jpg", + "strBanner": "https://r2.thesportsdb.com/images/media/event/banner/zkk3rl1706718516.jpg", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=LloAaRmqvag", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/04_v2_event_lineup.json b/docs/api_samples/sportsdb/04_v2_event_lineup.json new file mode 100644 index 0000000..26575f7 --- /dev/null +++ b/docs/api_samples/sportsdb/04_v2_event_lineup.json @@ -0,0 +1,3 @@ +{ + "Message": "No data found" +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/04_v2_event_stats.json b/docs/api_samples/sportsdb/04_v2_event_stats.json new file mode 100644 index 0000000..26575f7 --- /dev/null +++ b/docs/api_samples/sportsdb/04_v2_event_stats.json @@ -0,0 +1,3 @@ +{ + "Message": "No data found" +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/04_v2_event_timeline.json b/docs/api_samples/sportsdb/04_v2_event_timeline.json new file mode 100644 index 0000000..26575f7 --- /dev/null +++ b/docs/api_samples/sportsdb/04_v2_event_timeline.json @@ -0,0 +1,3 @@ +{ + "Message": "No data found" +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/05_v1_search_player.json b/docs/api_samples/sportsdb/05_v1_search_player.json new file mode 100644 index 0000000..77a0946 --- /dev/null +++ b/docs/api_samples/sportsdb/05_v1_search_player.json @@ -0,0 +1,19 @@ +{ + "player": [ + { + "idPlayer": "34148472", + "idTeam": "134781", + "strPlayer": "Federico Bernardeschi", + "strTeam": "Bologna", + "strSport": "Soccer", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/ptaxx21515958866.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/fwmcl01758896784.png", + "strNationality": "Italy", + "dateBorn": "1994-02-16", + "strStatus": "Active", + "strGender": "Male", + "strPosition": "Winger", + "relevance": "28.932828903198242" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/05_v2_player_detail.json b/docs/api_samples/sportsdb/05_v2_player_detail.json new file mode 100644 index 0000000..24e33fb --- /dev/null +++ b/docs/api_samples/sportsdb/05_v2_player_detail.json @@ -0,0 +1,75 @@ +{ + "lookup": [ + { + "idPlayer": "34146036", + "idTeam": "134148", + "idTeam2": "0", + "idTeamNational": null, + "idAPIfootball": "18915", + "idPlayerManager": null, + "idWikidata": "Q6396794", + "idTransferMkt": "111114", + "idESPN": "140531", + "strNationality": "Ireland", + "strPlayer": "Kevin Long", + "strPlayerAlternate": "", + "strTeam": "Toronto FC", + "strTeam2": "", + "strSport": "Soccer", + "intSoccerXMLTeamID": "28", + "dateBorn": "1990-08-18", + "dateDied": null, + "strNumber": "5", + "dateSigned": "2010-07-01", + "strSigning": "", + "strWage": "", + "strOutfitter": "", + "strKit": "", + "strAgent": "", + "strBirthLocation": "Cork, Ireland", + "strDeathLocation": null, + "strEthnicity": "", + "strStatus": "Active", + "strDescriptionEN": "Kevin Finbarr Long (born 18 August 1990) is an Irish professional footballer who plays for Major League Soccer club Toronto FC and the Republic of Ireland national team.\r\nHe plays mainly as a centre back but can also fill in at full back.\r\n\r\nLong came through the Cork City youth structure, before signing on professional terms in January 2008. He captained Cork City Youths successful FAI Youth Cup and Munster Cup teams in 2009. Shortly after, the centre half made his senior City debut away to St Patricks Athletic coming on as a second half substitute. Long then made his first senior start on 19 July 2009 in a home friendly against Ipswich Town, partnering Dan Murray in defence.\r\n\r\nIt was reported that Long travelled over to Preston North End for a trial, but whilst there, there was interest from League 1 sides Leeds United and Charlton Athletic and Premier League side Burnley.\r\n\r\nHe scored his first goal for Burnley in a 4-3 FA Cup defeat at Southampton on 4 January 2014. On 1 January 2015, Long made his Premier League debut with Burnley in a 3\u20133 draw away to Newcastle United. He replaced the injured Jason Shackell in the 17th minute, but 20 minutes later was replaced by Steven Reid after suffering an injury of his own, becoming the third Burnley player to be taken off injured in the match at St James' Park.\r\n\r\nIn November 2015, after regaining full fitness following his cruciate knee injury, he joined League One side Barnsley on a one-month loan deal. He scored a late winner against Oldham Athletic on his debut to help his side to a 2-1 win. However in his second game he was sent off against Peterborough United.", + "strDescriptionDE": null, + "strDescriptionFR": null, + "strDescriptionCN": null, + "strDescriptionIT": null, + "strDescriptionJP": null, + "strDescriptionRU": null, + "strDescriptionES": null, + "strDescriptionPT": null, + "strDescriptionSE": null, + "strDescriptionNL": null, + "strDescriptionHU": null, + "strDescriptionNO": null, + "strDescriptionIL": null, + "strDescriptionPL": null, + "strGender": "Male", + "strSide": "", + "strPosition": "Centre-Back", + "strCollege": null, + "strFacebook": "t.co/fen2q0xYtf", + "strWebsite": "", + "strTwitter": "twitter.com/kevinlong28", + "strInstagram": "www.instagram.com/kevinlong28", + "strYoutube": "", + "strHeight": "188 cm", + "strWeight": "183 lbs", + "intLoved": "0", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/tq6f5h1557314699.jpg", + "strPoster": null, + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/qi34vk1766575443.png", + "strCartoon": null, + "strRender": "https://r2.thesportsdb.com/images/media/player/render/3idgla1575974022.png", + "strBanner": null, + "strFanart1": null, + "strFanart2": null, + "strFanart3": null, + "strFanart4": null, + "strCreativeCommons": "No", + "strLocked": "unlocked", + "strLastName": "Long" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/05_v2_squad_tfc.json b/docs/api_samples/sportsdb/05_v2_squad_tfc.json new file mode 100644 index 0000000..c44f22e --- /dev/null +++ b/docs/api_samples/sportsdb/05_v2_squad_tfc.json @@ -0,0 +1,235 @@ +{ + "list": [ + { + "idPlayer": "34146036", + "strPlayer": "Kevin Long", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/tq6f5h1557314699.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/qi34vk1766575443.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/3idgla1575974022.png", + "dateBorn": "1990-08-18", + "strPosition": "Centre-Back" + }, + { + "idPlayer": "34164645", + "strPlayer": "Djordje Mihailovi\u0107", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/iexxfp1662720581.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/kvtl3r1766575412.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/o48nh11620763928.png", + "dateBorn": "1998-11-10", + "strPosition": "Attacking Midfield" + }, + { + "idPlayer": "34165110", + "strPlayer": "Walker Zimmerman", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/ql13io1662731506.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/190oag1766741902.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/6oe28j1622016455.png", + "dateBorn": "1993-05-19", + "strPosition": "Centre-Back" + }, + { + "idPlayer": "34165262", + "strPlayer": "Derrick Etienne", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/yv4k1k1548617647.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/9kwou81766575620.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/81yr7p1608042138.png", + "dateBorn": "1996-11-25", + "strPosition": "Left Wing" + }, + { + "idPlayer": "34173658", + "strPlayer": "Sigurd Rosted", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/4eexde1610625953.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/22mdli1766575883.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/e1si7s1682678318.png", + "dateBorn": "1994-07-22", + "strPosition": "Defender" + }, + { + "idPlayer": "34176006", + "strPlayer": "Henry Wingo", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/w5u8is1610712583.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/83q9ln1766575157.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/hgv2lj1652986766.png", + "dateBorn": "1995-10-04", + "strPosition": "Right-Back" + }, + { + "idPlayer": "34180209", + "strPlayer": "Richie Laryea", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/owdl2g1621328018.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/milfrs1766575517.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/hxtaz01621328022.png", + "dateBorn": "1995-01-07", + "strPosition": "Midfielder" + }, + { + "idPlayer": "34180872", + "strPlayer": "Jos\u00e9 Cifuentes", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/2fqfxp1623150919.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/2eyl0h1766575746.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/gdgxvl1623150892.png", + "dateBorn": "1999-03-12", + "strPosition": "Central Midfield" + }, + { + "idPlayer": "34180980", + "strPlayer": "Jonathan Osorio", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/exyn7k1621866558.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/j30x9f1766575844.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/o57ift1621866654.png", + "dateBorn": "1992-06-12", + "strPosition": "Midfielder" + }, + { + "idPlayer": "34195803", + "strPlayer": "Robin Fraser", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/2b2a0u1641470637.jpg", + "strCutout": null, + "strRender": null, + "dateBorn": "1966-12-17", + "strPosition": "Manager" + }, + { + "idPlayer": "34197810", + "strPlayer": "Deandre Kerr", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/6294rp1652706567.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/udw9ui1766575474.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/7h068n1652706582.png", + "dateBorn": "2002-11-29", + "strPosition": "Forward" + }, + { + "idPlayer": "34199281", + "strPlayer": "Kosi Thompson", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/s9z1mq1654852335.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/o4e1kx1766575863.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/5mzpxf1654852394.png", + "dateBorn": "2003-01-27", + "strPosition": "Midfielder" + }, + { + "idPlayer": "34200759", + "strPlayer": "Theo Corbeanu", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/y0mbrj1696779390.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/grbcb41766575664.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/95xhoq1742905064.png", + "dateBorn": "2002-05-17", + "strPosition": "Right Winger" + }, + { + "idPlayer": "34217581", + "strPlayer": "Alonso Coello", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/gw9gw21682679020.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/tkn51q1766575773.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/35xp641682679116.png", + "dateBorn": "1999-10-12", + "strPosition": "Midfielder" + }, + { + "idPlayer": "34217935", + "strPlayer": "Kobe Franklin", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/s7e3n91683191394.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/uku81g1766575824.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/xsupuc1683191398.png", + "dateBorn": "2003-05-10", + "strPosition": "Defender" + }, + { + "idPlayer": "34220731", + "strPlayer": "Jules-Anthony Vilsaint", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/4xflwp1695202996.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/dsxu6f1766575229.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/f2j8su1695203031.png", + "dateBorn": "2003-01-06", + "strPosition": "Forward" + }, + { + "idPlayer": "34221018", + "strPlayer": "Luka Gavran", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/8h84ds1695640668.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/a3ghm91766575645.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/xx795j1695640681.png", + "dateBorn": "2000-05-09", + "strPosition": "Goalkeeper" + }, + { + "idPlayer": "34229521", + "strPlayer": "Nickseon Gomis", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/bhf5vs1709718526.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/7c4l8h1766575544.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/f5jvw71709718592.png", + "dateBorn": "2002-03-15", + "strPosition": "Defender" + }, + { + "idPlayer": "34334976", + "strPlayer": "Zane Monlouis", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/8fy1wf1742908301.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/lcbhkz1766575296.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/878kzg1742908697.png", + "dateBorn": "2003-10-16", + "strPosition": "Defender" + }, + { + "idPlayer": "34334977", + "strPlayer": "Markus Cimermancic", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": "https://r2.thesportsdb.com/images/media/player/thumb/y4196f1742908482.jpg", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/eynx1q1766575721.png", + "strRender": "https://r2.thesportsdb.com/images/media/player/render/tkfqvs1742908599.png", + "dateBorn": "2004-10-01", + "strPosition": "Central Midfield" + }, + { + "idPlayer": "34347948", + "strPlayer": "Malik Henry", + "idTeam": "134148", + "strTeam": "Toronto FC", + "strThumb": null, + "strCutout": null, + "strRender": null, + "dateBorn": "2002-07-23", + "strPosition": "Central Midfield" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/06_v1_standings_epl.json b/docs/api_samples/sportsdb/06_v1_standings_epl.json new file mode 100644 index 0000000..00b4dee --- /dev/null +++ b/docs/api_samples/sportsdb/06_v1_standings_epl.json @@ -0,0 +1,424 @@ +{ + "table": [ + { + "idStanding": "8825962", + "intRank": "1", + "idTeam": "133604", + "strTeam": "Arsenal", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/uyhbfe1612467038.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "WWWDD", + "strDescription": "Promotion - Champions League (League phase)", + "intPlayed": "30", + "intWin": "20", + "intLoss": "3", + "intDraw": "7", + "intGoalsFor": "59", + "intGoalsAgainst": "22", + "intGoalDifference": "37", + "intPoints": "67", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825963", + "intRank": "2", + "idTeam": "133613", + "strTeam": "Manchester City", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/vwpvry1467462651.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "DWWWW", + "strDescription": "Promotion - Champions League (League phase)", + "intPlayed": "29", + "intWin": "18", + "intLoss": "5", + "intDraw": "6", + "intGoalsFor": "59", + "intGoalsAgainst": "27", + "intGoalDifference": "32", + "intPoints": "60", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825964", + "intRank": "3", + "idTeam": "133612", + "strTeam": "Manchester United", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/xzqdr11517660252.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "LWWDW", + "strDescription": "Promotion - Champions League (League phase)", + "intPlayed": "29", + "intWin": "14", + "intLoss": "6", + "intDraw": "9", + "intGoalsFor": "51", + "intGoalsAgainst": "40", + "intGoalDifference": "11", + "intPoints": "51", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825965", + "intRank": "4", + "idTeam": "133601", + "strTeam": "Aston Villa", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/jykrpv1717309891.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "LLDWD", + "strDescription": "Promotion - Champions League (League phase)", + "intPlayed": "29", + "intWin": "15", + "intLoss": "8", + "intDraw": "6", + "intGoalsFor": "39", + "intGoalsAgainst": "34", + "intGoalDifference": "5", + "intPoints": "51", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825966", + "intRank": "5", + "idTeam": "133610", + "strTeam": "Chelsea", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/yvwvtu1448813215.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "WLDDW", + "strDescription": "Promotion - Europa League (League phase)", + "intPlayed": "29", + "intWin": "13", + "intLoss": "7", + "intDraw": "9", + "intGoalsFor": "53", + "intGoalsAgainst": "34", + "intGoalDifference": "19", + "intPoints": "48", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825967", + "intRank": "6", + "idTeam": "133602", + "strTeam": "Liverpool", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/kfaher1737969724.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "LWWWL", + "strDescription": "", + "intPlayed": "29", + "intWin": "14", + "intLoss": "9", + "intDraw": "6", + "intGoalsFor": "48", + "intGoalsAgainst": "39", + "intGoalDifference": "9", + "intPoints": "48", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825968", + "intRank": "7", + "idTeam": "134355", + "strTeam": "Brentford", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/grv1aw1546453779.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "DWLDW", + "strDescription": "", + "intPlayed": "29", + "intWin": "13", + "intLoss": "11", + "intDraw": "5", + "intGoalsFor": "44", + "intGoalsAgainst": "40", + "intGoalDifference": "4", + "intPoints": "44", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825969", + "intRank": "8", + "idTeam": "133615", + "strTeam": "Everton", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/eqayrf1523184794.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "WWLLW", + "strDescription": "", + "intPlayed": "29", + "intWin": "12", + "intLoss": "10", + "intDraw": "7", + "intGoalsFor": "34", + "intGoalsAgainst": "33", + "intGoalDifference": "1", + "intPoints": "43", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825970", + "intRank": "9", + "idTeam": "134301", + "strTeam": "Bournemouth", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/y08nak1534071116.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "DDDWD", + "strDescription": "", + "intPlayed": "29", + "intWin": "9", + "intLoss": "7", + "intDraw": "13", + "intGoalsFor": "44", + "intGoalsAgainst": "46", + "intGoalDifference": "-2", + "intPoints": "40", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825971", + "intRank": "10", + "idTeam": "133600", + "strTeam": "Fulham", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/xwwvyt1448811086.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "LWWLL", + "strDescription": "", + "intPlayed": "29", + "intWin": "12", + "intLoss": "13", + "intDraw": "4", + "intGoalsFor": "40", + "intGoalsAgainst": "43", + "intGoalDifference": "-3", + "intPoints": "40", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825972", + "intRank": "11", + "idTeam": "133603", + "strTeam": "Sunderland", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/tprtus1448813498.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "WDLLL", + "strDescription": "", + "intPlayed": "29", + "intWin": "10", + "intLoss": "9", + "intDraw": "10", + "intGoalsFor": "30", + "intGoalsAgainst": "34", + "intGoalDifference": "-4", + "intPoints": "40", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825973", + "intRank": "12", + "idTeam": "134777", + "strTeam": "Newcastle United", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/lhwuiz1621593302.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "WLLWL", + "strDescription": "", + "intPlayed": "29", + "intWin": "11", + "intLoss": "12", + "intDraw": "6", + "intGoalsFor": "42", + "intGoalsAgainst": "43", + "intGoalDifference": "-1", + "intPoints": "39", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825974", + "intRank": "13", + "idTeam": "133632", + "strTeam": "Crystal Palace", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ia6i3m1656014992.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "WLWLW", + "strDescription": "", + "intPlayed": "29", + "intWin": "10", + "intLoss": "11", + "intDraw": "8", + "intGoalsFor": "33", + "intGoalsAgainst": "35", + "intGoalDifference": "-2", + "intPoints": "38", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825975", + "intRank": "14", + "idTeam": "133619", + "strTeam": "Brighton and Hove Albion", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ywypts1448810904.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "LWWLL", + "strDescription": "", + "intPlayed": "29", + "intWin": "9", + "intLoss": "10", + "intDraw": "10", + "intGoalsFor": "38", + "intGoalsAgainst": "36", + "intGoalDifference": "2", + "intPoints": "37", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825976", + "intRank": "15", + "idTeam": "133635", + "strTeam": "Leeds United", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/jcgrml1756649030.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "LLDDW", + "strDescription": "", + "intPlayed": "29", + "intWin": "7", + "intLoss": "12", + "intDraw": "10", + "intGoalsFor": "37", + "intGoalsAgainst": "48", + "intGoalDifference": "-11", + "intPoints": "31", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825977", + "intRank": "16", + "idTeam": "133616", + "strTeam": "Tottenham Hotspur", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/dfyfhl1604094109.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "LLLLL", + "strDescription": "", + "intPlayed": "29", + "intWin": "7", + "intLoss": "14", + "intDraw": "8", + "intGoalsFor": "39", + "intGoalsAgainst": "46", + "intGoalDifference": "-7", + "intPoints": "29", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825978", + "intRank": "17", + "idTeam": "133720", + "strTeam": "Nottingham Forest", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/bk4qjs1546440351.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "DLLDL", + "strDescription": "", + "intPlayed": "29", + "intWin": "7", + "intLoss": "15", + "intDraw": "7", + "intGoalsFor": "28", + "intGoalsAgainst": "43", + "intGoalDifference": "-15", + "intPoints": "28", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825979", + "intRank": "18", + "idTeam": "133636", + "strTeam": "West Ham United", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/yutyxs1467459956.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "WLDDW", + "strDescription": "Relegation - Championship", + "intPlayed": "29", + "intWin": "7", + "intLoss": "15", + "intDraw": "7", + "intGoalsFor": "35", + "intGoalsAgainst": "54", + "intGoalDifference": "-19", + "intPoints": "28", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825980", + "intRank": "19", + "idTeam": "133623", + "strTeam": "Burnley", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ql7nl31686893820.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "LLDWL", + "strDescription": "Relegation - Championship", + "intPlayed": "29", + "intWin": "4", + "intLoss": "18", + "intDraw": "7", + "intGoalsFor": "32", + "intGoalsAgainst": "58", + "intGoalDifference": "-26", + "intPoints": "19", + "dateUpdated": "2026-03-10 07:00:37" + }, + { + "idStanding": "8825981", + "intRank": "20", + "idTeam": "133599", + "strTeam": "Wolverhampton Wanderers", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/u9qr031621593327.png/tiny", + "idLeague": "4328", + "strLeague": "English Premier League", + "strSeason": "2025-2026", + "strForm": "WWLDD", + "strDescription": "Relegation - Championship", + "intPlayed": "30", + "intWin": "3", + "intLoss": "20", + "intDraw": "7", + "intGoalsFor": "22", + "intGoalsAgainst": "52", + "intGoalDifference": "-30", + "intPoints": "16", + "dateUpdated": "2026-03-10 07:00:37" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/06_v1_standings_mls.json b/docs/api_samples/sportsdb/06_v1_standings_mls.json new file mode 100644 index 0000000..1995d21 --- /dev/null +++ b/docs/api_samples/sportsdb/06_v1_standings_mls.json @@ -0,0 +1,1264 @@ +{ + "table": [ + { + "idStanding": "8824439", + "intRank": "1", + "idTeam": "138868", + "strTeam": "New York Red Bulls II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/nc85q21580479838.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "7", + "intGoalsAgainst": "2", + "intGoalDifference": "5", + "intPoints": "6", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824462", + "intRank": "1", + "idTeam": "145856", + "strTeam": "St. Louis City SC 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ntufpz1690267770.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "7", + "intGoalsAgainst": "0", + "intGoalDifference": "7", + "intPoints": "6", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824469", + "intRank": "1", + "idTeam": "147305", + "strTeam": "Crown Legacy", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ft599y1679308389.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "11", + "intGoalsAgainst": "3", + "intGoalDifference": "8", + "intPoints": "6", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824447", + "intRank": "1", + "idTeam": "147305", + "strTeam": "Crown Legacy", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ft599y1679308389.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "11", + "intGoalsAgainst": "3", + "intGoalDifference": "8", + "intPoints": "6", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824455", + "intRank": "1", + "idTeam": "138890", + "strTeam": "Real Monarchs", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/32ox3k1580480506.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "7", + "intGoalsAgainst": "2", + "intGoalDifference": "5", + "intPoints": "5", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824485", + "intRank": "1", + "idTeam": "145856", + "strTeam": "St. Louis City SC 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ntufpz1690267770.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "7", + "intGoalsAgainst": "0", + "intGoalDifference": "7", + "intPoints": "6", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824440", + "intRank": "2", + "idTeam": "138894", + "strTeam": "Philadelphia Union II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ot9bvq1643712037.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "2", + "intGoalsAgainst": "0", + "intGoalDifference": "2", + "intPoints": "6", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824463", + "intRank": "2", + "idTeam": "145859", + "strTeam": "Houston Dynamo 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/jaxvb61648907185.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "6", + "intGoalsAgainst": "0", + "intGoalDifference": "6", + "intPoints": "6", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824456", + "intRank": "2", + "idTeam": "138887", + "strTeam": "Ventura County", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/xp9fev1725297436.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "6", + "intGoalsAgainst": "4", + "intGoalDifference": "2", + "intPoints": "5", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824470", + "intRank": "2", + "idTeam": "138868", + "strTeam": "New York Red Bulls II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/nc85q21580479838.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "7", + "intGoalsAgainst": "2", + "intGoalDifference": "5", + "intPoints": "6", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824486", + "intRank": "2", + "idTeam": "145859", + "strTeam": "Houston Dynamo 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/jaxvb61648907185.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "6", + "intGoalsAgainst": "0", + "intGoalDifference": "6", + "intPoints": "6", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824448", + "intRank": "2", + "idTeam": "138865", + "strTeam": "Atlanta United II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/6751ru1629299588.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WL", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "3", + "intGoalsAgainst": "2", + "intGoalDifference": "1", + "intPoints": "4", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824441", + "intRank": "3", + "idTeam": "142163", + "strTeam": "New England Revolution II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/4wndbk1690267845.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "1", + "intGoalsAgainst": "1", + "intGoalDifference": "0", + "intPoints": "4", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824457", + "intRank": "3", + "idTeam": "138879", + "strTeam": "Portland Timbers II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/1tzdgi1580480420.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "2", + "intGoalsAgainst": "1", + "intGoalDifference": "1", + "intPoints": "5", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824464", + "intRank": "3", + "idTeam": "142164", + "strTeam": "North Texas SC", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ipvbno1625369193.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WL", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "5", + "intGoalsAgainst": "3", + "intGoalDifference": "2", + "intPoints": "4", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824487", + "intRank": "3", + "idTeam": "138890", + "strTeam": "Real Monarchs", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/32ox3k1580480506.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "7", + "intGoalsAgainst": "2", + "intGoalDifference": "5", + "intPoints": "5", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824449", + "intRank": "3", + "idTeam": "143566", + "strTeam": "Chattanooga FC", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/d30qj01629233922.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WL", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "5", + "intGoalsAgainst": "6", + "intGoalDifference": "-1", + "intPoints": "3", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824471", + "intRank": "3", + "idTeam": "138894", + "strTeam": "Philadelphia Union II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ot9bvq1643712037.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "2", + "intGoalsAgainst": "0", + "intGoalDifference": "2", + "intPoints": "6", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824442", + "intRank": "4", + "idTeam": "154528", + "strTeam": "Connecticut United", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/06bmkf1769269251.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LW", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "5", + "intGoalsAgainst": "5", + "intGoalDifference": "0", + "intPoints": "3", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824458", + "intRank": "4", + "idTeam": "145862", + "strTeam": "San Jose Earthquakes II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/onpjpf1769273202.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WL", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "5", + "intGoalsAgainst": "3", + "intGoalDifference": "2", + "intPoints": "3", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824465", + "intRank": "4", + "idTeam": "145860", + "strTeam": "Minnesota United FC 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/4n8awo1648907194.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LW", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "4", + "intGoalsAgainst": "5", + "intGoalDifference": "-1", + "intPoints": "3", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824472", + "intRank": "4", + "idTeam": "138865", + "strTeam": "Atlanta United II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/6751ru1629299588.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WL", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "3", + "intGoalsAgainst": "2", + "intGoalDifference": "1", + "intPoints": "4", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824450", + "intRank": "4", + "idTeam": "145852", + "strTeam": "Orlando City B", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/5708bt1648907139.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WL", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "3", + "intGoalsAgainst": "4", + "intGoalDifference": "-1", + "intPoints": "3", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824488", + "intRank": "4", + "idTeam": "138887", + "strTeam": "Ventura County", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/xp9fev1725297436.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "6", + "intGoalsAgainst": "4", + "intGoalDifference": "2", + "intPoints": "5", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824443", + "intRank": "5", + "idTeam": "145857", + "strTeam": "Columbus Crew 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/2wm0d91648907172.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WL", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "2", + "intGoalsAgainst": "4", + "intGoalDifference": "-2", + "intPoints": "2", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824451", + "intRank": "5", + "idTeam": "147306", + "strTeam": "Huntsville City", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/d55qgf1679308391.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LW", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "5", + "intGoalsAgainst": "8", + "intGoalDifference": "-3", + "intPoints": "3", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824473", + "intRank": "5", + "idTeam": "142163", + "strTeam": "New England Revolution II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/4wndbk1690267845.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "1", + "intGoalsAgainst": "1", + "intGoalDifference": "0", + "intPoints": "4", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824466", + "intRank": "5", + "idTeam": "147304", + "strTeam": "Austin FC II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/9y5mkc1679308384.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "4", + "intGoalsAgainst": "6", + "intGoalDifference": "-2", + "intPoints": "1", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824459", + "intRank": "5", + "idTeam": "147307", + "strTeam": "Los Angeles FC II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/h9it561679308394.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LW", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "3", + "intGoalsAgainst": "6", + "intGoalDifference": "-3", + "intPoints": "2", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824489", + "intRank": "5", + "idTeam": "138879", + "strTeam": "Portland Timbers II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/1tzdgi1580480420.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WW", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "2", + "intLoss": "0", + "intDraw": "0", + "intGoalsFor": "2", + "intGoalsAgainst": "1", + "intGoalDifference": "1", + "intPoints": "5", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824444", + "intRank": "6", + "idTeam": "145861", + "strTeam": "New York City FC II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/9rwpj71738560198.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "L", + "strDescription": "", + "intPlayed": "1", + "intWin": "0", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "0", + "intGoalsAgainst": "0", + "intGoalDifference": "0", + "intPoints": "1", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824460", + "intRank": "6", + "idTeam": "145854", + "strTeam": "Whitecaps FC 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/n6oxsm1648907152.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "2", + "intGoalsAgainst": "4", + "intGoalDifference": "-2", + "intPoints": "1", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824467", + "intRank": "6", + "idTeam": "145855", + "strTeam": "Colorado Rapids 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/6ualhm1648907159.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "1", + "intGoalsAgainst": "5", + "intGoalDifference": "-4", + "intPoints": "0", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824452", + "intRank": "6", + "idTeam": "134154", + "strTeam": "Chicago Fire", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/8xuc781639493166.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LW", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "2", + "intGoalsAgainst": "3", + "intGoalDifference": "-1", + "intPoints": "2", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824474", + "intRank": "6", + "idTeam": "154528", + "strTeam": "Connecticut United", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/06bmkf1769269251.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LW", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "5", + "intGoalsAgainst": "5", + "intGoalDifference": "0", + "intPoints": "3", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824490", + "intRank": "6", + "idTeam": "142164", + "strTeam": "North Texas SC", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ipvbno1625369193.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WL", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "5", + "intGoalsAgainst": "3", + "intGoalDifference": "2", + "intPoints": "4", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824453", + "intRank": "7", + "idTeam": "142162", + "strTeam": "Inter Miami II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/meil391725297217.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "1", + "intGoalsAgainst": "4", + "intGoalDifference": "-3", + "intPoints": "1", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824445", + "intRank": "7", + "idTeam": "142156", + "strTeam": "Toronto FC II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/pocyap1625369299.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "0", + "intGoalsAgainst": "1", + "intGoalDifference": "-1", + "intPoints": "1", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824461", + "intRank": "7", + "idTeam": "138866", + "strTeam": "Tacoma Defiance", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/7em1q51580480820.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "2", + "intGoalsAgainst": "6", + "intGoalDifference": "-4", + "intPoints": "1", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824468", + "intRank": "7", + "idTeam": "138869", + "strTeam": "Sporting Kansas City II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/yi3g1k1580419612.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "0", + "intGoalsAgainst": "9", + "intGoalDifference": "-9", + "intPoints": "0", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824475", + "intRank": "7", + "idTeam": "143566", + "strTeam": "Chattanooga FC", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/d30qj01629233922.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WL", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "5", + "intGoalsAgainst": "6", + "intGoalDifference": "-1", + "intPoints": "3", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824491", + "intRank": "7", + "idTeam": "145862", + "strTeam": "San Jose Earthquakes II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/onpjpf1769273202.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WL", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "5", + "intGoalsAgainst": "3", + "intGoalDifference": "2", + "intPoints": "3", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824454", + "intRank": "8", + "idTeam": "148111", + "strTeam": "Carolina Core", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/3dgiwx1707991293.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "L", + "strDescription": "", + "intPlayed": "1", + "intWin": "0", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "1", + "intGoalsAgainst": "2", + "intGoalDifference": "-1", + "intPoints": "0", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824446", + "intRank": "8", + "idTeam": "145858", + "strTeam": "FC Cincinnati 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/lwbgar1648907178.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "1", + "intGoalsAgainst": "4", + "intGoalDifference": "-3", + "intPoints": "0", + "dateUpdated": "2026-03-10 07:00:21" + }, + { + "idStanding": "8824476", + "intRank": "8", + "idTeam": "145852", + "strTeam": "Orlando City B", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/5708bt1648907139.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WL", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "3", + "intGoalsAgainst": "4", + "intGoalDifference": "-1", + "intPoints": "3", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824492", + "intRank": "8", + "idTeam": "145860", + "strTeam": "Minnesota United FC 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/4n8awo1648907194.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LW", + "strDescription": "Promotion - MLS Next Pro (Play Offs: 1/8-finals)", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "4", + "intGoalsAgainst": "5", + "intGoalDifference": "-1", + "intPoints": "3", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824477", + "intRank": "9", + "idTeam": "147306", + "strTeam": "Huntsville City", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/d55qgf1679308391.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LW", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "5", + "intGoalsAgainst": "8", + "intGoalDifference": "-3", + "intPoints": "3", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824493", + "intRank": "9", + "idTeam": "147307", + "strTeam": "Los Angeles FC II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/h9it561679308394.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LW", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "3", + "intGoalsAgainst": "6", + "intGoalDifference": "-3", + "intPoints": "2", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824478", + "intRank": "10", + "idTeam": "134154", + "strTeam": "Chicago Fire", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/8xuc781639493166.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LW", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "2", + "intGoalsAgainst": "3", + "intGoalDifference": "-1", + "intPoints": "2", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824494", + "intRank": "10", + "idTeam": "147304", + "strTeam": "Austin FC II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/9y5mkc1679308384.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "4", + "intGoalsAgainst": "6", + "intGoalDifference": "-2", + "intPoints": "1", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824479", + "intRank": "11", + "idTeam": "145857", + "strTeam": "Columbus Crew 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/2wm0d91648907172.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "WL", + "strDescription": "", + "intPlayed": "2", + "intWin": "1", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "2", + "intGoalsAgainst": "4", + "intGoalDifference": "-2", + "intPoints": "2", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824495", + "intRank": "11", + "idTeam": "145854", + "strTeam": "Whitecaps FC 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/n6oxsm1648907152.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "2", + "intGoalsAgainst": "4", + "intGoalDifference": "-2", + "intPoints": "1", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824480", + "intRank": "12", + "idTeam": "145861", + "strTeam": "New York City FC II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/9rwpj71738560198.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "L", + "strDescription": "", + "intPlayed": "1", + "intWin": "0", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "0", + "intGoalsAgainst": "0", + "intGoalDifference": "0", + "intPoints": "1", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824496", + "intRank": "12", + "idTeam": "138866", + "strTeam": "Tacoma Defiance", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/7em1q51580480820.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "2", + "intGoalsAgainst": "6", + "intGoalDifference": "-4", + "intPoints": "1", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824481", + "intRank": "13", + "idTeam": "142156", + "strTeam": "Toronto FC II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/pocyap1625369299.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "0", + "intGoalsAgainst": "1", + "intGoalDifference": "-1", + "intPoints": "1", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824497", + "intRank": "13", + "idTeam": "145855", + "strTeam": "Colorado Rapids 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/6ualhm1648907159.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "1", + "intGoalsAgainst": "5", + "intGoalDifference": "-4", + "intPoints": "0", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824482", + "intRank": "14", + "idTeam": "142162", + "strTeam": "Inter Miami II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/meil391725297217.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "1", + "intGoalsAgainst": "4", + "intGoalDifference": "-3", + "intPoints": "1", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824498", + "intRank": "14", + "idTeam": "138869", + "strTeam": "Sporting Kansas City II", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/yi3g1k1580419612.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "0", + "intGoalsAgainst": "9", + "intGoalDifference": "-9", + "intPoints": "0", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824483", + "intRank": "15", + "idTeam": "148111", + "strTeam": "Carolina Core", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/3dgiwx1707991293.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "L", + "strDescription": "", + "intPlayed": "1", + "intWin": "0", + "intLoss": "1", + "intDraw": "0", + "intGoalsFor": "1", + "intGoalsAgainst": "2", + "intGoalDifference": "-1", + "intPoints": "0", + "dateUpdated": "2026-03-10 07:00:22" + }, + { + "idStanding": "8824484", + "intRank": "16", + "idTeam": "145858", + "strTeam": "FC Cincinnati 2", + "strBadge": "https://r2.thesportsdb.com/images/media/team/badge/lwbgar1648907178.png/tiny", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strSeason": "2026", + "strForm": "LL", + "strDescription": "", + "intPlayed": "2", + "intWin": "0", + "intLoss": "2", + "intDraw": "0", + "intGoalsFor": "1", + "intGoalsAgainst": "4", + "intGoalDifference": "-3", + "intPoints": "0", + "dateUpdated": "2026-03-10 07:00:22" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/07_v1_events_today.json b/docs/api_samples/sportsdb/07_v1_events_today.json new file mode 100644 index 0000000..7ecb723 --- /dev/null +++ b/docs/api_samples/sportsdb/07_v1_events_today.json @@ -0,0 +1,5476 @@ +{ + "events": [ + { + "idEvent": "2265312", + "idAPIfootball": "1378140", + "strTimestamp": "2026-03-09T19:45:00", + "strEvent": "Lazio vs Sassuolo", + "strEventAlternate": "Sassuolo @ Lazio", + "strFilename": "Italian Serie A 2026-03-09 Lazio vs Sassuolo", + "strSport": "Soccer", + "idLeague": "4332", + "strLeague": "Italian Serie A", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/67q3q21679951383.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Lazio", + "strAwayTeam": "Sassuolo", + "intHomeScore": "2", + "intRound": "28", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:45:00", + "strTimeLocal": "20:45:00", + "strGroup": "", + "idHomeTeam": "133668", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rwqyvs1448806608.png", + "idAwayTeam": "133701", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/xystvp1448806138.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17086", + "strVenue": "Stadio Olimpico", + "strCountry": "Italy", + "strCity": "", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/45ksq91755936447.jpg", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/9zk3rk1755934803.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=icZ8sUgHv9g", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2266728", + "idAPIfootball": "1380056", + "strTimestamp": "2026-03-09T18:00:00", + "strEvent": "AC Horsens vs Lyngby", + "strEventAlternate": "Lyngby @ AC Horsens", + "strFilename": "Danish 1st Division 2026-03-09 AC Horsens vs Lyngby", + "strSport": "Soccer", + "idLeague": "4683", + "strLeague": "Danish 1st Division", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/j4dxz21580135250.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "AC Horsens", + "strAwayTeam": "Lyngby", + "intHomeScore": "1", + "intRound": "20", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:00:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "133895", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/xqvssv1473535480.png", + "idAwayTeam": "133900", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/zq3o3j1718210605.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17862", + "strVenue": "CASA Arena Horsens", + "strCountry": "Denmark", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/z6brnh1750365222.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2267917", + "idAPIfootball": "1380599", + "strTimestamp": "2026-03-09T18:00:00", + "strEvent": "Wisla Plock vs Arka Gdynia", + "strEventAlternate": "Arka Gdynia @ Wisla Plock", + "strFilename": "Polish Ekstraklasa 2026-03-09 Wisla Plock vs Arka Gdynia", + "strSport": "Soccer", + "idLeague": "4422", + "strLeague": "Polish Ekstraklasa", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/l3jovw1516960585.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Wisla Plock", + "strAwayTeam": "Arka Gdynia", + "intHomeScore": "0", + "intRound": "24", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:00:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "135659", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/o1n52v1698554231.png", + "idAwayTeam": "135660", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/i6ls7n1698553767.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17912", + "strVenue": "Orlen Stadion", + "strCountry": "Poland", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/kv9e3v1750343907.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=12FfP_yxDT4", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2271717", + "idAPIfootball": "1382213", + "strTimestamp": "2026-03-09T19:00:00", + "strEvent": "Jong AZ vs FC Emmen", + "strEventAlternate": "FC Emmen @ Jong AZ", + "strFilename": "Dutch Eerste Divisie 2026-03-09 Jong AZ vs FC Emmen", + "strSport": "Soccer", + "idLeague": "4641", + "strLeague": "Dutch Eerste Divisie", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/yx2lbu1579463797.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Jong AZ", + "strAwayTeam": "FC Emmen", + "intHomeScore": "2", + "intRound": "30", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:00:00", + "strTimeLocal": "20:00:00", + "strGroup": "", + "idHomeTeam": "138000", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/jtfvp31579206794.png", + "idAwayTeam": "136191", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/knwhs41532855745.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "0", + "strVenue": "", + "strCountry": "The Netherlands", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/9y4tww1689170482.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2272099", + "idAPIfootball": "1381729", + "strTimestamp": "2026-03-09T17:00:00", + "strEvent": "Polonia Warsaw vs \u0141KS \u0141\u00f3d\u017a", + "strEventAlternate": "\u0141KS \u0141\u00f3d\u017a @ Polonia Warsaw", + "strFilename": "Polish I liga 2026-03-09 Polonia Warsaw vs \u0141KS \u0141\u00f3d\u017a", + "strSport": "Soccer", + "idLeague": "4661", + "strLeague": "Polish I liga", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/kf2y521760289353.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Polonia Warsaw", + "strAwayTeam": "\u0141KS \u0141\u00f3d\u017a", + "intHomeScore": "0", + "intRound": "24", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "17:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "140531", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ohxxeh1610395796.png", + "idAwayTeam": "137112", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/3y5ljt1681320660.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "0", + "strVenue": "", + "strCountry": "Poland", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/rzn6n71750749172.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2273845", + "idAPIfootball": "1385093", + "strTimestamp": "2026-03-09T17:00:00", + "strEvent": "Mladost Lu\u010dani vs Novi Pazar", + "strEventAlternate": "Novi Pazar @ Mladost Lu\u010dani", + "strFilename": "Serbian Super Liga 2026-03-09 Mladost Lu\u010dani vs Novi Pazar", + "strSport": "Soccer", + "idLeague": "4671", + "strLeague": "Serbian Super Liga", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/lu8cvs1578940052.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Mladost Lu\u010dani", + "strAwayTeam": "Novi Pazar", + "intHomeScore": "0", + "intRound": "26", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "17:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "137860", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/6ypddz1578920686.png", + "idAwayTeam": "140069", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/qc4e101595000305.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17576", + "strVenue": "SRC Mr Rado\u0161 Milovanovi\u0107", + "strCountry": "Serbia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/92bbvd1691158115.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2273846", + "idAPIfootball": "1385094", + "strTimestamp": "2026-03-09T17:00:00", + "strEvent": "OFK Beograd vs Radni\u010dki 1923", + "strEventAlternate": "Radni\u010dki 1923 @ OFK Beograd", + "strFilename": "Serbian Super Liga 2026-03-09 OFK Beograd vs Radni\u010dki 1923", + "strSport": "Soccer", + "idLeague": "4671", + "strLeague": "Serbian Super Liga", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/lu8cvs1578940052.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "OFK Beograd", + "strAwayTeam": "Radni\u010dki 1923", + "intHomeScore": "0", + "intRound": "26", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "17:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "140232", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/r25fik1691128690.png", + "idAwayTeam": "141776", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/30a8an1624623873.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "31457", + "strVenue": "Gradski Stadion pod Kraljevicom", + "strCountry": "Serbia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/87z8wd1753605212.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2274007", + "idAPIfootball": "1384355", + "strTimestamp": "2026-03-09T16:30:00", + "strEvent": "Radomlje vs Bravo", + "strEventAlternate": "Bravo @ Radomlje", + "strFilename": "Slovenian 1. SNL 2026-03-09 Radomlje vs Bravo", + "strSport": "Soccer", + "idLeague": "4692", + "strLeague": "Slovenian 1. SNL", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/t1v1s91635866998.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Radomlje", + "strAwayTeam": "Bravo", + "intHomeScore": "1", + "intRound": "25", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "16:30:00", + "strTimeLocal": "17:30:00", + "strGroup": "", + "idHomeTeam": "142322", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/gh0sjd1625755749.png", + "idAwayTeam": "138217", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/szjnx81579812986.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "26677", + "strVenue": "\u0160portni park Dom\u017eale", + "strCountry": "Slovenia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/pibssb1753686616.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2276394", + "idAPIfootball": "1385993", + "strTimestamp": "2026-03-09T18:00:00", + "strEvent": "CFR Cluj vs Dinamo Bucure\u0219ti", + "strEventAlternate": "Dinamo Bucure\u0219ti @ CFR Cluj", + "strFilename": "Romanian Liga I 2026-03-09 CFR Cluj vs Dinamo Bucure\u0219ti", + "strSport": "Soccer", + "idLeague": "4691", + "strLeague": "Romanian Liga I", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/x9ordh1662657856.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "CFR Cluj", + "strAwayTeam": "Dinamo Bucure\u0219ti", + "intHomeScore": "2", + "intRound": "30", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:00:00", + "strTimeLocal": "20:00:00", + "strGroup": "", + "idHomeTeam": "133955", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/81uzfv1507891573.png", + "idAwayTeam": "134121", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/3mjc5p1770089100.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18201", + "strVenue": "Stadionul Dr Constantin R\u0103dulescu", + "strCountry": "Romania", + "strCity": "", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/yde0pm1752395795.jpg", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/7lvb3m1752394516.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=3F8VYvsrOTE", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2278034", + "idAPIfootball": "1389336", + "strTimestamp": "2026-03-09T19:45:00", + "strEvent": "USL Dunkerque vs Stade de Reims", + "strEventAlternate": "Stade de Reims @ USL Dunkerque", + "strFilename": "French Ligue 2 2026-03-09 USL Dunkerque vs Stade de Reims", + "strSport": "Soccer", + "idLeague": "4401", + "strLeague": "French Ligue 2", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/aofb771742983333.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "USL Dunkerque", + "strAwayTeam": "Stade de Reims", + "intHomeScore": "1", + "intRound": "26", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:45:00", + "strTimeLocal": "20:45:00", + "strGroup": "", + "idHomeTeam": "138821", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/3s4ne51750879372.png", + "idAwayTeam": "133934", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/xcrw1b1592925946.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18559", + "strVenue": "Stade Marcel-Tribut", + "strCountry": "France", + "strCity": "", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/871mco1755938914.jpg", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/ijxj2w1754726400.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2278615", + "idAPIfootball": "1389970", + "strTimestamp": "2026-03-09T17:00:00", + "strEvent": "Hapoel Raanana vs Maccabi Petah Tikva", + "strEventAlternate": "Maccabi Petah Tikva @ Hapoel Raanana", + "strFilename": "Israeli Liga Leumit 2026-03-09 Hapoel Raanana vs Maccabi Petah Tikva", + "strSport": "Soccer", + "idLeague": "4966", + "strLeague": "Israeli Liga Leumit", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/54hu9p1664190019.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Hapoel Raanana", + "strAwayTeam": "Maccabi Petah Tikva", + "intHomeScore": null, + "intRound": "26", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "17:00:00", + "strTimeLocal": "20:00:00", + "strGroup": "", + "idHomeTeam": "135997", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/h7annf1513886063.png", + "idAwayTeam": "135998", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/3bvby91720417514.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "0", + "strVenue": "", + "strCountry": "Israel", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Postponed", + "strPostponed": "yes", + "strLocked": "unlocked" + }, + { + "idEvent": "2278617", + "idAPIfootball": "1389972", + "strTimestamp": "2026-03-09T17:00:00", + "strEvent": "Ironi Modi'in vs Hapoel Kfar Saba", + "strEventAlternate": "Hapoel Kfar Saba @ Ironi Modi'in", + "strFilename": "Israeli Liga Leumit 2026-03-09 Ironi Modi'in vs Hapoel Kfar Saba", + "strSport": "Soccer", + "idLeague": "4966", + "strLeague": "Israeli Liga Leumit", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/54hu9p1664190019.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Ironi Modi'in", + "strAwayTeam": "Hapoel Kfar Saba", + "intHomeScore": null, + "intRound": "26", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "17:00:00", + "strTimeLocal": "20:00:00", + "strGroup": "", + "idHomeTeam": "152495", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/8lsfra1751280876.png", + "idAwayTeam": "135996", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/emvu201513885986.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "0", + "strVenue": "", + "strCountry": "Israel", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Postponed", + "strPostponed": "yes", + "strLocked": "unlocked" + }, + { + "idEvent": "2278621", + "idAPIfootball": "1389976", + "strTimestamp": "2026-03-09T18:00:00", + "strEvent": "Hapoel Rishon LeZion vs Kafr Qasim", + "strEventAlternate": "Kafr Qasim @ Hapoel Rishon LeZion", + "strFilename": "Israeli Liga Leumit 2026-03-09 Hapoel Rishon LeZion vs Kafr Qasim", + "strSport": "Soccer", + "idLeague": "4966", + "strLeague": "Israeli Liga Leumit", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/54hu9p1664190019.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Hapoel Rishon LeZion", + "strAwayTeam": "Kafr Qasim", + "intHomeScore": null, + "intRound": "26", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:00:00", + "strTimeLocal": "21:00:00", + "strGroup": "", + "idHomeTeam": "141240", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/h6vwsm1617289250.png", + "idAwayTeam": "141242", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/4g7dis1617289263.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "21060", + "strVenue": "Haberfeld Stadium", + "strCountry": "Israel", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Postponed", + "strPostponed": "yes", + "strLocked": "unlocked" + }, + { + "idEvent": "2279657", + "idAPIfootball": "1391082", + "strTimestamp": "2026-03-09T20:00:00", + "strEvent": "Espanyol vs Real Oviedo", + "strEventAlternate": "Real Oviedo @ Espanyol", + "strFilename": "Spanish La Liga 2026-03-09 Espanyol vs Real Oviedo", + "strSport": "Soccer", + "idLeague": "4335", + "strLeague": "Spanish La Liga", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/ja4it51687628717.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Espanyol", + "strAwayTeam": "Real Oviedo", + "intHomeScore": "1", + "intRound": "27", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "20:00:00", + "strTimeLocal": "21:00:00", + "strGroup": "", + "idHomeTeam": "133734", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/867nzz1681703222.png", + "idAwayTeam": "135455", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/yuwqus1447590681.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "19361", + "strVenue": "RCDE Stadium", + "strCountry": "Spain", + "strCity": "", + "strPoster": "", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/i7qbuw1751452143.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/5bspqi1751450263.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=SNmbf_7XKc8", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2280306", + "idAPIfootball": "1392073", + "strTimestamp": "2026-03-09T19:30:00", + "strEvent": "Almer\u00eda vs Cultural Leonesa", + "strEventAlternate": "Cultural Leonesa @ Almer\u00eda", + "strFilename": "Spanish La Liga 2 2026-03-09 Almer\u00eda vs Cultural Leonesa", + "strSport": "Soccer", + "idLeague": "4400", + "strLeague": "Spanish La Liga 2", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/r7u6821688425700.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Almer\u00eda", + "strAwayTeam": "Cultural Leonesa", + "intHomeScore": "3", + "intRound": "29", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:30:00", + "strTimeLocal": "20:30:00", + "strGroup": "", + "idHomeTeam": "133817", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/yswsww1473503818.png", + "idAwayTeam": "135888", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/yk28a51677472494.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16231", + "strVenue": "UD Almer\u00eda Stadium", + "strCountry": "Spain", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/7dc75z1755421317.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=F9olDyXNPdw", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2282661", + "idAPIfootball": "1393977", + "strTimestamp": "2026-03-09T19:00:00", + "strEvent": "Budapest Honv\u00e9d vs Kecskem\u00e9t", + "strEventAlternate": "Kecskem\u00e9t @ Budapest Honv\u00e9d", + "strFilename": "Hungarian NB II 2026-03-09 Budapest Honv\u00e9d vs Kecskem\u00e9t", + "strSport": "Soccer", + "idLeague": "4965", + "strLeague": "Hungarian NB II", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/qjipik1617288269.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Budapest Honv\u00e9d", + "strAwayTeam": "Kecskem\u00e9t", + "intHomeScore": "0", + "intRound": "21", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:00:00", + "strTimeLocal": "20:00:00", + "strGroup": "", + "idHomeTeam": "134070", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/qs0xku1604523567.png", + "idAwayTeam": "142854", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/e9l8ep1626446998.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "20602", + "strVenue": "Bozsik Ar\u00e9na", + "strCountry": "Hungary", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2282993", + "idAPIfootball": "1394649", + "strTimestamp": "2026-03-09T17:00:00", + "strEvent": "Alanyaspor vs Gen\u00e7lerbirli\u011fi", + "strEventAlternate": "Gen\u00e7lerbirli\u011fi @ Alanyaspor", + "strFilename": "Turkish Super Lig 2026-03-09 Alanyaspor vs Gen\u00e7lerbirli\u011fi", + "strSport": "Soccer", + "idLeague": "4339", + "strLeague": "Turkish Super Lig", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/h7xx231601671132.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Alanyaspor", + "strAwayTeam": "Gen\u00e7lerbirli\u011fi", + "intHomeScore": "0", + "intRound": "25", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "17:00:00", + "strTimeLocal": "20:00:00", + "strGroup": "", + "idHomeTeam": "135676", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/9fr3071601667898.png", + "idAwayTeam": "133798", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/5hnd1c1639569938.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "31527", + "strVenue": "Gain Park Stadyumu", + "strCountry": "Turkey", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/zlbv821754645403.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2282996", + "idAPIfootball": "1394652", + "strTimestamp": "2026-03-09T13:00:00", + "strEvent": "Ey\u00fcpspor vs Kocaelispor", + "strEventAlternate": "Kocaelispor @ Ey\u00fcpspor", + "strFilename": "Turkish Super Lig 2026-03-09 Ey\u00fcpspor vs Kocaelispor", + "strSport": "Soccer", + "idLeague": "4339", + "strLeague": "Turkish Super Lig", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/h7xx231601671132.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Ey\u00fcpspor", + "strAwayTeam": "Kocaelispor", + "intHomeScore": "0", + "intRound": "25", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "13:00:00", + "strTimeLocal": "16:00:00", + "strGroup": "", + "idHomeTeam": "138977", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/7fb0ub1626445710.png", + "idAwayTeam": "133870", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/f6erki1626445224.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16496", + "strVenue": "Recep Tayyip Erdo\u011fan Stadyumu", + "strCountry": "Turkey", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/zv58rt1754645414.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2282999", + "idAPIfootball": "1394655", + "strTimestamp": "2026-03-09T17:00:00", + "strEvent": "Kayserispor vs Trabzonspor", + "strEventAlternate": "Trabzonspor @ Kayserispor", + "strFilename": "Turkish Super Lig 2026-03-09 Kayserispor vs Trabzonspor", + "strSport": "Soccer", + "idLeague": "4339", + "strLeague": "Turkish Super Lig", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/h7xx231601671132.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Kayserispor", + "strAwayTeam": "Trabzonspor", + "intHomeScore": "1", + "intRound": "25", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "17:00:00", + "strTimeLocal": "20:00:00", + "strGroup": "", + "idHomeTeam": "133802", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/bvskgi1601668985.png", + "idAwayTeam": "133796", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/43oobe1672951178.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "26369", + "strVenue": "RHG Enert\u00fcrk Enerji Stadyumu", + "strCountry": "Turkey", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/19904v1754645425.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2283286", + "idAPIfootball": "1395253", + "strTimestamp": "2026-03-09T13:00:00", + "strEvent": "Grafi\u010dar vs Dubo\u010dica", + "strEventAlternate": "Dubo\u010dica @ Grafi\u010dar", + "strFilename": "Serbian Prva Liga 2026-03-09 Grafi\u010dar vs Dubo\u010dica", + "strSport": "Soccer", + "idLeague": "5074", + "strLeague": "Serbian Prva Liga", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/ho35qh1625260718.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Grafi\u010dar", + "strAwayTeam": "Dubo\u010dica", + "intHomeScore": "2", + "intRound": "26", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "13:00:00", + "strTimeLocal": "14:00:00", + "strGroup": "", + "idHomeTeam": "141831", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/2lqns31624714261.png", + "idAwayTeam": "147654", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/mzl09a1691150392.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "0", + "strVenue": "", + "strCountry": "Serbia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/fjmczz1753606108.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "2H", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2283287", + "idAPIfootball": "1395254", + "strTimestamp": "2026-03-09T14:00:00", + "strEvent": "Jedinstvo Ub vs Smederevo 1924", + "strEventAlternate": "Smederevo 1924 @ Jedinstvo Ub", + "strFilename": "Serbian Prva Liga 2026-03-09 Jedinstvo Ub vs Smederevo 1924", + "strSport": "Soccer", + "idLeague": "5074", + "strLeague": "Serbian Prva Liga", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/ho35qh1625260718.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Jedinstvo Ub", + "strAwayTeam": "Smederevo 1924", + "intHomeScore": "0", + "intRound": "26", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "14:00:00", + "strTimeLocal": "15:00:00", + "strGroup": "", + "idHomeTeam": "147655", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/uh426g1691150395.png", + "idAwayTeam": "147657", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/8jdcbw1751912356.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "29537", + "strVenue": "Stadion Dragan Dzajic", + "strCountry": "Serbia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/t8kwhl1753606111.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "2H", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2283289", + "idAPIfootball": "1395256", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "Ma\u010dva \u0160abac vs FAP Priboj", + "strEventAlternate": "FAP Priboj @ Ma\u010dva \u0160abac", + "strFilename": "Serbian Prva Liga 2026-03-09 Ma\u010dva \u0160abac vs FAP Priboj", + "strSport": "Soccer", + "idLeague": "5074", + "strLeague": "Serbian Prva Liga", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/ho35qh1625260718.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Ma\u010dva \u0160abac", + "strAwayTeam": "FAP Priboj", + "intHomeScore": "1", + "intRound": "26", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "16:00:00", + "strTimeLocal": "17:00:00", + "strGroup": "", + "idHomeTeam": "137867", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/lk6w571578920696.png", + "idAwayTeam": "152531", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/n9q1ws1751911428.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "0", + "strVenue": "", + "strCountry": "Serbia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/em7o9h1753606118.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "2H", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2283290", + "idAPIfootball": "1395257", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "Tekstilac Od\u017eaci vs Mladost Novi Sad", + "strEventAlternate": "Mladost Novi Sad @ Tekstilac Od\u017eaci", + "strFilename": "Serbian Prva Liga 2026-03-09 Tekstilac Od\u017eaci vs Mladost Novi Sad", + "strSport": "Soccer", + "idLeague": "5074", + "strLeague": "Serbian Prva Liga", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/ho35qh1625260718.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Tekstilac Od\u017eaci", + "strAwayTeam": "Mladost Novi Sad", + "intHomeScore": null, + "intRound": "26", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "16:00:00", + "strTimeLocal": "17:00:00", + "strGroup": "", + "idHomeTeam": "147658", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/1uxioz1691150405.png", + "idAwayTeam": "141835", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/169y3y1624714447.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "0", + "strVenue": "", + "strCountry": "Serbia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/93gezm1753606122.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Not Started", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2283553", + "idAPIfootball": "1396461", + "strTimestamp": "2026-03-09T20:15:00", + "strEvent": "Tondela vs Rio Ave", + "strEventAlternate": "Rio Ave @ Tondela", + "strFilename": "Portuguese Primeira Liga 2026-03-09 Tondela vs Rio Ave", + "strSport": "Soccer", + "idLeague": "4344", + "strLeague": "Portuguese Primeira Liga", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/lkfko71751917970.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Tondela", + "strAwayTeam": "Rio Ave", + "intHomeScore": "0", + "intRound": "25", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "20:15:00", + "strTimeLocal": "20:15:00", + "strGroup": "", + "idHomeTeam": "135502", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/o7nqff1628856081.png", + "idAwayTeam": "134107", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ngbklq1628851239.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16145", + "strVenue": "Est\u00e1dio Jo\u00e3o Cardoso", + "strCountry": "Portugal", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/w0xfkb1770996433.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2284476", + "idAPIfootball": "1398185", + "strTimestamp": "2026-03-09T18:00:00", + "strEvent": "Benfica B vs Feirense", + "strEventAlternate": "Feirense @ Benfica B", + "strFilename": "Portuguese LigaPro 2026-03-09 Benfica B vs Feirense", + "strSport": "Soccer", + "idLeague": "4662", + "strLeague": "Portuguese LigaPro", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/li05691723186962.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Benfica B", + "strAwayTeam": "Feirense", + "intHomeScore": "3", + "intRound": "25", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "138860", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/11oc681662316687.png", + "idAwayTeam": "135675", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/4b27rw1628851130.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "22568", + "strVenue": "Benfica Campus", + "strCountry": "Portugal", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/d912cp1770999795.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2286818", + "idAPIfootball": "1400186", + "strTimestamp": "2026-03-09T13:30:00", + "strEvent": "Lokomotiv Moscow vs Akhmat Grozny", + "strEventAlternate": "Akhmat Grozny @ Lokomotiv Moscow", + "strFilename": "Russian Football Premier League 2026-03-09 Lokomotiv Moscow vs Akhmat Grozny", + "strSport": "Soccer", + "idLeague": "4355", + "strLeague": "Russian Football Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/d4yp7g1690178551.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Lokomotiv Moscow", + "strAwayTeam": "Akhmat Grozny", + "intHomeScore": "2", + "intRound": "20", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "13:30:00", + "strTimeLocal": "16:30:00", + "strGroup": "", + "idHomeTeam": "134440", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/tuyrur1473452310.png", + "idAwayTeam": "134434", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ake14u1579347653.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17639", + "strVenue": "RZD Arena", + "strCountry": "Russia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/fuxl8w1752950792.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2286821", + "idAPIfootball": "1400189", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "Spartak Moscow vs Akron Tolyatti", + "strEventAlternate": "Akron Tolyatti @ Spartak Moscow", + "strFilename": "Russian Football Premier League 2026-03-09 Spartak Moscow vs Akron Tolyatti", + "strSport": "Soccer", + "idLeague": "4355", + "strLeague": "Russian Football Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/d4yp7g1690178551.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Spartak Moscow", + "strAwayTeam": "Akron Tolyatti", + "intHomeScore": "4", + "intRound": "20", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "16:00:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "134097", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/zpj2el1754674286.png", + "idAwayTeam": "140083", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/bjwmoi1683738446.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16049", + "strVenue": "Lukoil Arena", + "strCountry": "Russia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/gl01b71752950803.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2287197", + "idAPIfootball": "1400905", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "Panetolikos vs Kifisia", + "strEventAlternate": "Kifisia @ Panetolikos", + "strFilename": "Greek Superleague Greece 2026-03-09 Panetolikos vs Kifisia", + "strSport": "Soccer", + "idLeague": "4336", + "strLeague": "Greek Superleague Greece", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/jm7ky01602788843.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Panetolikos", + "strAwayTeam": "Kifisia", + "intHomeScore": "2", + "intRound": "24", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "16:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "133751", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/3qtv8s1602773680.png", + "idAwayTeam": "144147", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/d64tyn1727198332.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "19602", + "strVenue": "Panetolikos Stadium", + "strCountry": "Greece", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/3bicwm1758957169.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2290845", + "idAPIfootball": "1403782", + "strTimestamp": "2026-03-09T13:30:00", + "strEvent": "Persib Bandung vs Persik Kediri", + "strEventAlternate": "Persik Kediri @ Persib Bandung", + "strFilename": "Indonesian Super League 2026-03-09 Persib Bandung vs Persik Kediri", + "strSport": "Soccer", + "idLeague": "4790", + "strLeague": "Indonesian Super League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/qoz13e1630265283.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Persib Bandung", + "strAwayTeam": "Persik Kediri", + "intHomeScore": "3", + "intRound": "25", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "13:30:00", + "strTimeLocal": "20:30:00", + "strGroup": "", + "idHomeTeam": "139356", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/yicyke1733590181.png", + "idAwayTeam": "139349", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/2pe3651583009591.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "19037", + "strVenue": "Stadion Gelora Bandung Lautan Api", + "strCountry": "Indonesia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/3lrs841757664352.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "2H", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2290846", + "idAPIfootball": "1403783", + "strTimestamp": "2026-03-09T13:30:00", + "strEvent": "PSBS Biak vs Semen Padang", + "strEventAlternate": "Semen Padang @ PSBS Biak", + "strFilename": "Indonesian Super League 2026-03-09 PSBS Biak vs Semen Padang", + "strSport": "Soccer", + "idLeague": "4790", + "strLeague": "Indonesian Super League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/qoz13e1630265283.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "PSBS Biak", + "strAwayTeam": "Semen Padang", + "intHomeScore": "0", + "intRound": "25", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "13:30:00", + "strTimeLocal": "22:30:00", + "strGroup": "", + "idHomeTeam": "150102", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/liocpp1733589650.png", + "idAwayTeam": "150103", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/n7g2m41733589825.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17021", + "strVenue": "Stadion Maguwoharjo", + "strCountry": "Indonesia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/xzwer81757664355.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "2H", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2296251", + "idAPIfootball": "1415532", + "strTimestamp": "2026-03-09T18:00:00", + "strEvent": "Egnatia vs Teuta Durr\u00ebs", + "strEventAlternate": "Teuta Durr\u00ebs @ Egnatia", + "strFilename": "Albanian Superliga 2026-03-09 Egnatia vs Teuta Durr\u00ebs", + "strSport": "Soccer", + "idLeague": "4617", + "strLeague": "Albanian Superliga", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/torbg81711693424.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Egnatia", + "strAwayTeam": "Teuta Durr\u00ebs", + "intHomeScore": "4", + "intRound": "27", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:00:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "140667", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/4tufos1639086825.png", + "idAwayTeam": "134055", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/6gnk601753811901.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "22912", + "strVenue": "Arena Egnatia", + "strCountry": "Albania", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2296252", + "idAPIfootball": "1415533", + "strTimestamp": "2026-03-09T18:00:00", + "strEvent": "Dinamo City vs Partizani Tirana", + "strEventAlternate": "Partizani Tirana @ Dinamo City", + "strFilename": "Albanian Superliga 2026-03-09 Dinamo City vs Partizani Tirana", + "strSport": "Soccer", + "idLeague": "4617", + "strLeague": "Albanian Superliga", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/torbg81711693424.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Dinamo City", + "strAwayTeam": "Partizani Tirana", + "intHomeScore": "0", + "intRound": "27", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:00:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "140666", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/mdqmna1743410388.png", + "idAwayTeam": "137799", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/shg04y1578828329.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16938", + "strVenue": "Elbasan Arena", + "strCountry": "Albania", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2297507", + "idAPIfootball": "1418893", + "strTimestamp": "2026-03-09T19:30:00", + "strEvent": "Tala'ea El Gaish vs Al Ahly", + "strEventAlternate": "Al Ahly @ Tala'ea El Gaish", + "strFilename": "Egyptian Premier League 2026-03-09 Tala'ea El Gaish vs Al Ahly", + "strSport": "Soccer", + "idLeague": "4829", + "strLeague": "Egyptian Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/air7qk1715766146.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Tala'ea El Gaish", + "strAwayTeam": "Al Ahly", + "intHomeScore": "2", + "intRound": "15", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:30:00", + "strTimeLocal": "21:30:00", + "strGroup": "", + "idHomeTeam": "139848", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/a4scm31589807423.png", + "idAwayTeam": "138995", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/x8753q1751421890.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "19210", + "strVenue": "Gehaz El Reyada Stadium", + "strCountry": "Egypt", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2297508", + "idAPIfootball": "1418894", + "strTimestamp": "2026-03-09T19:30:00", + "strEvent": "National Bank of Egypt vs Pyramids", + "strEventAlternate": "Pyramids @ National Bank of Egypt", + "strFilename": "Egyptian Premier League 2026-03-09 National Bank of Egypt vs Pyramids", + "strSport": "Soccer", + "idLeague": "4829", + "strLeague": "Egyptian Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/air7qk1715766146.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "National Bank of Egypt", + "strAwayTeam": "Pyramids", + "intHomeScore": "0", + "intRound": "15", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:30:00", + "strTimeLocal": "21:30:00", + "strGroup": "", + "idHomeTeam": "140796", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/p0j65z1614891546.png", + "idAwayTeam": "139838", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/8liy611607352549.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16526", + "strVenue": "Cairo International Stadium", + "strCountry": "Egypt", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2299691", + "idAPIfootball": "1418398", + "strTimestamp": "2026-03-09T15:00:00", + "strEvent": "ASA T\u00e2rgu Mure\u0219 vs Chindia T\u00e2rgovi\u0219te", + "strEventAlternate": "Chindia T\u00e2rgovi\u0219te @ ASA T\u00e2rgu Mure\u0219", + "strFilename": "Romanian Liga II 2026-03-09 ASA T\u00e2rgu Mure\u0219 vs Chindia T\u00e2rgovi\u0219te", + "strSport": "Soccer", + "idLeague": "4665", + "strLeague": "Romanian Liga II", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/m7b7xt1580764061.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "ASA T\u00e2rgu Mure\u0219", + "strAwayTeam": "Chindia T\u00e2rgovi\u0219te", + "intHomeScore": "0", + "intRound": "20", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "15:00:00", + "strTimeLocal": "17:00:00", + "strGroup": "", + "idHomeTeam": "152632", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/62kbi01754093461.png", + "idAwayTeam": "138195", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/zfym7d1638479420.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18103", + "strVenue": "Stadionul Trans-Sil", + "strCountry": "Romania", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2300462", + "idAPIfootball": "1421848", + "strTimestamp": "2026-03-09T12:30:00", + "strEvent": "Hougang United vs Balestier Khalsa", + "strEventAlternate": "Balestier Khalsa @ Hougang United", + "strFilename": "Singapore Premier League 2026-03-09 Hougang United vs Balestier Khalsa", + "strSport": "Soccer", + "idLeague": "4795", + "strLeague": "Singapore Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/9fjt9l1583167616.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Hougang United", + "strAwayTeam": "Balestier Khalsa", + "intHomeScore": "1", + "intRound": "14", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "12:30:00", + "strTimeLocal": "20:30:00", + "strGroup": "", + "idHomeTeam": "139392", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/s7nvz91583166996.png", + "idAwayTeam": "139389", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/qb7hew1583166486.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18515", + "strVenue": "Jalan Besar Stadium", + "strCountry": "Singapore", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/64n3vo1649158968.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2301555", + "idAPIfootball": "1423389", + "strTimestamp": "2026-03-09T13:00:00", + "strEvent": "Shk\u00ebndija vs Brera Strumica", + "strEventAlternate": "Brera Strumica @ Shk\u00ebndija", + "strFilename": "Macedonian First League 2026-03-09 Shk\u00ebndija vs Brera Strumica", + "strSport": "Soccer", + "idLeague": "4652", + "strLeague": "Macedonian First League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dzwfeu1579450712.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Shk\u00ebndija", + "strAwayTeam": "Brera Strumica", + "intHomeScore": "1", + "intRound": "22", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "13:00:00", + "strTimeLocal": "14:00:00", + "strGroup": "", + "idHomeTeam": "134024", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/4wv7i21717397649.png", + "idAwayTeam": "138068", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/kv7wwq1725172301.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17645", + "strVenue": "Ecolog Arena", + "strCountry": "Macedonia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2301556", + "idAPIfootball": "1423390", + "strTimestamp": "2026-03-09T13:00:00", + "strEvent": "Sileks vs Vardar", + "strEventAlternate": "Vardar @ Sileks", + "strFilename": "Macedonian First League 2026-03-09 Sileks vs Vardar", + "strSport": "Soccer", + "idLeague": "4652", + "strLeague": "Macedonian First League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dzwfeu1579450712.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Sileks", + "strAwayTeam": "Vardar", + "intHomeScore": "0", + "intRound": "22", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "13:00:00", + "strTimeLocal": "14:00:00", + "strGroup": "", + "idHomeTeam": "138073", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ixjlou1579439194.png", + "idAwayTeam": "133979", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/8vj1d11738559246.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17972", + "strVenue": "Gradski stadion Kratovo", + "strCountry": "Macedonia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2308802", + "idAPIfootball": "1391562", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "Veres Rivne vs LNZ Cherkasy", + "strEventAlternate": "LNZ Cherkasy @ Veres Rivne", + "strFilename": "Ukrainian Premier League 2026-03-09 Veres Rivne vs LNZ Cherkasy", + "strSport": "Soccer", + "idLeague": "4354", + "strLeague": "Ukrainian Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/qprvpy1471773025.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Veres Rivne", + "strAwayTeam": "LNZ Cherkasy", + "intHomeScore": "0", + "intRound": "19", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "16:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "135911", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/dmu50s1681107591.png", + "idAwayTeam": "146860", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/599dyl1660849995.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17413", + "strVenue": "Stadion Avanhard Rivne", + "strCountry": "Ukraine", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2308806", + "idAPIfootball": "1391566", + "strTimestamp": "2026-03-09T13:30:00", + "strEvent": "Rukh Lviv vs Metalist 1925 Kharkiv", + "strEventAlternate": "Metalist 1925 Kharkiv @ Rukh Lviv", + "strFilename": "Ukrainian Premier League 2026-03-09 Rukh Lviv vs Metalist 1925 Kharkiv", + "strSport": "Soccer", + "idLeague": "4354", + "strLeague": "Ukrainian Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/qprvpy1471773025.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Rukh Lviv", + "strAwayTeam": "Metalist 1925 Kharkiv", + "intHomeScore": "0", + "intRound": "19", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "13:30:00", + "strTimeLocal": "15:30:00", + "strGroup": "", + "idHomeTeam": "138449", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/0erwxi1597533225.png", + "idAwayTeam": "134122", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/btkpku1598282940.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "22952", + "strVenue": "Arena Lviv", + "strCountry": "Ukraine", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2316870", + "idAPIfootball": "1440038", + "strTimestamp": "2026-03-09T19:30:00", + "strEvent": "Monopoli vs Casarano", + "strEventAlternate": "Casarano @ Monopoli", + "strFilename": "Italian Serie C Girone C 2026-03-09 Monopoli vs Casarano", + "strSport": "Soccer", + "idLeague": "4398", + "strLeague": "Italian Serie C Girone C", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/m450je1753593640.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Monopoli", + "strAwayTeam": "Casarano", + "intHomeScore": "2", + "intRound": "31", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:30:00", + "strTimeLocal": "20:30:00", + "strGroup": "", + "idHomeTeam": "135956", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/8kcxl01657734517.png", + "idAwayTeam": "140300", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/t6kljv1724132992.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18628", + "strVenue": "Stadio Vito Simone Veneziani", + "strCountry": "Italy", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/6jbz331761161518.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2316871", + "idAPIfootball": "1440039", + "strTimestamp": "2026-03-09T19:30:00", + "strEvent": "Catania vs Casertana", + "strEventAlternate": "Casertana @ Catania", + "strFilename": "Italian Serie C Girone C 2026-03-09 Catania vs Casertana", + "strSport": "Soccer", + "idLeague": "4398", + "strLeague": "Italian Serie C Girone C", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/m450je1753593640.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Catania", + "strAwayTeam": "Casertana", + "intHomeScore": "0", + "intRound": "31", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:30:00", + "strTimeLocal": "20:30:00", + "strGroup": "", + "idHomeTeam": "133671", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/mov8wk1677499346.png", + "idAwayTeam": "134680", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ihj7531748363933.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "19542", + "strVenue": "Stadio Angelo Massimino", + "strCountry": "Italy", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/z4l88p1761161520.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2316875", + "idAPIfootball": "1440043", + "strTimestamp": "2026-03-09T19:30:00", + "strEvent": "Atalanta U23 vs Audace Cerignola", + "strEventAlternate": "Audace Cerignola @ Atalanta U23", + "strFilename": "Italian Serie C Girone C 2026-03-09 Atalanta U23 vs Audace Cerignola", + "strSport": "Soccer", + "idLeague": "4398", + "strLeague": "Italian Serie C Girone C", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/m450je1753593640.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Atalanta U23", + "strAwayTeam": "Audace Cerignola", + "intHomeScore": "3", + "intRound": "31", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:30:00", + "strTimeLocal": "20:30:00", + "strGroup": "", + "idHomeTeam": "147679", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/tr9erv1691575321.png", + "idAwayTeam": "143032", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/uue7a91675356456.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "31741", + "strVenue": "Stadio Comunale di Caravaggio", + "strCountry": "Italy", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/zkh2w71761161525.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2317250", + "idAPIfootball": "1439658", + "strTimestamp": "2026-03-09T19:30:00", + "strEvent": "Campobasso vs Arezzo", + "strEventAlternate": "Arezzo @ Campobasso", + "strFilename": "Italian Serie C Girone B 2026-03-09 Campobasso vs Arezzo", + "strSport": "Soccer", + "idLeague": "5339", + "strLeague": "Italian Serie C Girone B", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/eerhwz1753593645.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Campobasso", + "strAwayTeam": "Arezzo", + "intHomeScore": "0", + "intRound": "31", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:30:00", + "strTimeLocal": "20:30:00", + "strGroup": "", + "idHomeTeam": "143005", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ymdk361720197998.png", + "idAwayTeam": "134212", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/sb6qgh1579724928.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "22819", + "strVenue": "Stadio Antonio Molinari", + "strCountry": "Italy", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/6yl1pa1761160917.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2317253", + "idAPIfootball": "1439661", + "strTimestamp": "2026-03-09T19:30:00", + "strEvent": "Perugia vs Pontedera", + "strEventAlternate": "Pontedera @ Perugia", + "strFilename": "Italian Serie C Girone B 2026-03-09 Perugia vs Pontedera", + "strSport": "Soccer", + "idLeague": "5339", + "strLeague": "Italian Serie C Girone B", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/eerhwz1753593645.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Perugia", + "strAwayTeam": "Pontedera", + "intHomeScore": "2", + "intRound": "31", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:30:00", + "strTimeLocal": "20:30:00", + "strGroup": "", + "idHomeTeam": "134233", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/7e4l2k1603811720.png", + "idAwayTeam": "134675", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/emkgc41651779179.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18622", + "strVenue": "Stadio Renato Curi", + "strCountry": "Italy", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/ap7lgn1761160921.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2317257", + "idAPIfootball": "1439665", + "strTimestamp": "2026-03-09T19:30:00", + "strEvent": "Ascoli vs Ravenna", + "strEventAlternate": "Ravenna @ Ascoli", + "strFilename": "Italian Serie C Girone B 2026-03-09 Ascoli vs Ravenna", + "strSport": "Soccer", + "idLeague": "5339", + "strLeague": "Italian Serie C Girone B", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/eerhwz1753593645.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Ascoli", + "strAwayTeam": "Ravenna", + "intHomeScore": "2", + "intRound": "31", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:30:00", + "strTimeLocal": "20:30:00", + "strGroup": "", + "idHomeTeam": "133686", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/mi2bsf1579708272.png", + "idAwayTeam": "133880", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/l80c6j1724118398.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18617", + "strVenue": "Stadio Cino e Lillo Del Duca", + "strCountry": "Italy", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/pw8too1761160925.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2321737", + "idAPIfootball": "1445902", + "strTimestamp": "2026-03-09T16:30:00", + "strEvent": "Neft\u00e7i PFK vs Turan Tovuz", + "strEventAlternate": "Turan Tovuz @ Neft\u00e7i PFK", + "strFilename": "Azerbaijani Premier League 2026-03-09 Neft\u00e7i PFK vs Turan Tovuz", + "strSport": "Soccer", + "idLeague": "4693", + "strLeague": "Azerbaijani Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/urt6hw1614346226.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Neft\u00e7i PFK", + "strAwayTeam": "Turan Tovuz", + "intHomeScore": "0", + "intRound": "23", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "16:30:00", + "strTimeLocal": "20:30:00", + "strGroup": "", + "idHomeTeam": "138337", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/e22lhu1725001718.png", + "idAwayTeam": "140704", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/dmv36j1661517903.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18207", + "strVenue": "Bakcell Arena", + "strCountry": "Azerbaijan", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/5u63ns1758271669.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2321738", + "idAPIfootball": "1445903", + "strTimestamp": "2026-03-09T14:30:00", + "strEvent": "Zira vs K\u0259p\u0259z", + "strEventAlternate": "K\u0259p\u0259z @ Zira", + "strFilename": "Azerbaijani Premier League 2026-03-09 Zira vs K\u0259p\u0259z", + "strSport": "Soccer", + "idLeague": "4693", + "strLeague": "Azerbaijani Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/urt6hw1614346226.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Zira", + "strAwayTeam": "K\u0259p\u0259z", + "intHomeScore": "2", + "intRound": "23", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "14:30:00", + "strTimeLocal": "18:30:00", + "strGroup": "", + "idHomeTeam": "138340", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/db1o7v1580055971.png", + "idAwayTeam": "140696", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/6sqg021661517894.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "31499", + "strVenue": "Zira Stadium", + "strCountry": "Azerbaijan", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/2cteju1758271673.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2328427", + "idAPIfootball": "1451578", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "Levski Sofia vs Lokomotiv Plovdiv", + "strEventAlternate": "Lokomotiv Plovdiv @ Levski Sofia", + "strFilename": "Bulgarian First League 2026-03-09 Levski Sofia vs Lokomotiv Plovdiv", + "strSport": "Soccer", + "idLeague": "4626", + "strLeague": "Bulgarian First League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/nujbma1730047938.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Levski Sofia", + "strAwayTeam": "Lokomotiv Plovdiv", + "intHomeScore": "1", + "intRound": "25", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "16:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "134085", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/5optwv1535283022.png", + "idAwayTeam": "134092", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/6gblh81639568003.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17617", + "strVenue": "Stadion Georgi Asparuhov", + "strCountry": "Bulgaria", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/cs8qx41758272222.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2328432", + "idAPIfootball": "1451583", + "strTimestamp": "2026-03-09T13:30:00", + "strEvent": "Montana vs Ludogorets Razgrad", + "strEventAlternate": "Ludogorets Razgrad @ Montana", + "strFilename": "Bulgarian First League 2026-03-09 Montana vs Ludogorets Razgrad", + "strSport": "Soccer", + "idLeague": "4626", + "strLeague": "Bulgarian First League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/nujbma1730047938.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Montana", + "strAwayTeam": "Ludogorets Razgrad", + "intHomeScore": "0", + "intRound": "25", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "13:30:00", + "strTimeLocal": "15:30:00", + "strGroup": "", + "idHomeTeam": "140035", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/9f5gez1594300541.png", + "idAwayTeam": "133981", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/35cw6l1752946925.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17614", + "strVenue": "Stadion Ogosta", + "strCountry": "Bulgaria", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/37coli1758272233.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2328659", + "idAPIfootball": "1451854", + "strTimestamp": "2026-03-09T13:30:00", + "strEvent": "CSKA Sofia II vs Pirin Blagoevgrad", + "strEventAlternate": "Pirin Blagoevgrad @ CSKA Sofia II", + "strFilename": "Bulgarian Second League 2026-03-09 CSKA Sofia II vs Pirin Blagoevgrad", + "strSport": "Soccer", + "idLeague": "4913", + "strLeague": "Bulgarian Second League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/5j6cd21614355250.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "CSKA Sofia II", + "strAwayTeam": "Pirin Blagoevgrad", + "intHomeScore": "2", + "intRound": "23", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "13:30:00", + "strTimeLocal": "15:30:00", + "strGroup": "", + "idHomeTeam": "148492", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ke8dmf1752947052.png", + "idAwayTeam": "140773", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rc3r2r1614288041.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "20722", + "strVenue": "Stadion Dragalevtsi", + "strCountry": "Bulgaria", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2353678", + "idAPIfootball": "1469465", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "SONABEL vs Rahimo", + "strEventAlternate": "SONABEL @ Rahimo", + "strFilename": "Burkina Faso 1ere Division 2026-03-09 SONABEL vs Rahimo", + "strSport": "Soccer", + "idLeague": "5234", + "strLeague": "Burkina Faso 1ere Division", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/72e7a61645210253.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Rahimo", + "strAwayTeam": "SONABEL", + "intHomeScore": "1", + "intRound": "22", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "16:00:00", + "strTimeLocal": "16:00:00", + "strGroup": "", + "idHomeTeam": "139771", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/wefxqn1653068131.png", + "idAwayTeam": "143539", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rq3u891665425204.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "0", + "strVenue": "", + "strCountry": "Burkina Faso", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2353679", + "idAPIfootball": "1469466", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "R\u00e9al du Faso vs US des Forces Arm\u00e9es", + "strEventAlternate": "R\u00e9al du Faso @ US des Forces Arm\u00e9es", + "strFilename": "Burkina Faso 1ere Division 2026-03-09 R\u00e9al du Faso vs US des Forces Arm\u00e9es", + "strSport": "Soccer", + "idLeague": "5234", + "strLeague": "Burkina Faso 1ere Division", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/72e7a61645210253.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "US des Forces Arm\u00e9es", + "strAwayTeam": "R\u00e9al du Faso", + "intHomeScore": "0", + "intRound": "22", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "16:00:00", + "strTimeLocal": "16:00:00", + "strGroup": "", + "idHomeTeam": "145475", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/zqg5zc1665425262.png", + "idAwayTeam": "146911", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/9zqx7h1762210392.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "24416", + "strVenue": "Stade de l'USFA", + "strCountry": "Burkina Faso", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2353682", + "idAPIfootball": "1469470", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "ASF Bobo Dioulasso vs Vitesse Burkina Faso", + "strEventAlternate": "Vitesse Burkina Faso @ ASF Bobo Dioulasso", + "strFilename": "Burkina Faso 1ere Division 2026-03-09 ASF Bobo Dioulasso vs Vitesse Burkina Faso", + "strSport": "Soccer", + "idLeague": "5234", + "strLeague": "Burkina Faso 1ere Division", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/72e7a61645210253.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "ASF Bobo Dioulasso", + "strAwayTeam": "Vitesse Burkina Faso", + "intHomeScore": "0", + "intRound": "22", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "16:00:00", + "strTimeLocal": "16:00:00", + "strGroup": "", + "idHomeTeam": "145466", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/62d2kh1653068858.png", + "idAwayTeam": "145476", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/8mzouw1653067830.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18303", + "strVenue": "Stade Municipal", + "strCountry": "Burkina Faso", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2353934", + "idAPIfootball": "1395612", + "strTimestamp": "2026-03-09T19:45:00", + "strEvent": "Trethomas Bluebirds vs Newport City", + "strEventAlternate": "Newport City @ Trethomas Bluebirds", + "strFilename": "Welsh Cymru North-South 2026-03-09 Trethomas Bluebirds vs Newport City", + "strSport": "Soccer", + "idLeague": "5315", + "strLeague": "Welsh Cymru North-South", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/r39wvn1757952513.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Trethomas Bluebirds", + "strAwayTeam": "Newport City", + "intHomeScore": "1", + "intRound": "18", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:45:00", + "strTimeLocal": "19:45:00", + "strGroup": "", + "idHomeTeam": "148507", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/qt1fw11719236316.png", + "idAwayTeam": "148509", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/kr7c2o1719236322.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "0", + "strVenue": "", + "strCountry": "Wales", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2360752", + "idAPIfootball": "1477328", + "strTimestamp": "2026-03-09T18:30:00", + "strEvent": "Maccabi Tel Aviv vs Hapoel Be'er Sheva", + "strEventAlternate": "Hapoel Be'er Sheva @ Maccabi Tel Aviv", + "strFilename": "Israeli Premier League 2026-03-09 Maccabi Tel Aviv vs Hapoel Be'er Sheva", + "strSport": "Soccer", + "idLeague": "4644", + "strLeague": "Israeli Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/glvhg51664190048.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Maccabi Tel Aviv", + "strAwayTeam": "Hapoel Be'er Sheva", + "intHomeScore": null, + "intRound": "26", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:30:00", + "strTimeLocal": "21:30:00", + "strGroup": "", + "idHomeTeam": "134315", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/lh08ob1625167121.png", + "idAwayTeam": "134799", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/978vgx1579019997.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18008", + "strVenue": "Bloomfield Stadium", + "strCountry": "Israel", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Postponed", + "strPostponed": "yes", + "strLocked": "unlocked" + }, + { + "idEvent": "2361642", + "idAPIfootball": "1469464", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "Majestic vs AJEB", + "strEventAlternate": "AJEB @ Majestic", + "strFilename": "Burkina Faso 1ere Division 2026-03-09 Majestic vs AJEB", + "strSport": "Soccer", + "idLeague": "5234", + "strLeague": "Burkina Faso 1ere Division", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/72e7a61645210253.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Majestic", + "strAwayTeam": "AJEB", + "intHomeScore": "1", + "intRound": "22", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "16:00:00", + "strTimeLocal": "16:00:00", + "strGroup": "", + "idHomeTeam": "145471", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/4y6xak1728072513.png", + "idAwayTeam": "153369", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/43vzkm1759037445.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18303", + "strVenue": "Stade Municipal", + "strCountry": "Burkina Faso", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2382176", + "idAPIfootball": "1486358", + "strTimestamp": "2026-03-09T18:00:00", + "strEvent": "Egersund vs Aalesund", + "strEventAlternate": "Egersund @ Aalesund", + "strFilename": "Norwegian Cupen 2026-03-09 Egersund vs Aalesund", + "strSport": "Soccer", + "idLeague": "5634", + "strLeague": "Norwegian Cupen", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/ixj3ri1750442515.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Aalesund", + "strAwayTeam": "Egersund", + "intHomeScore": "2", + "intRound": "16", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:00:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "133998", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ngm7rk1702980722.png", + "idAwayTeam": "147882", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/s1br7q1602448285.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17292", + "strVenue": "Color Line Stadion", + "strCountry": "Norway", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2396203", + "idAPIfootball": "1492552", + "strTimestamp": "2026-03-09T03:06:00", + "strEvent": "Tijuana vs Santos Laguna", + "strEventAlternate": "Santos Laguna @ Tijuana", + "strFilename": "Mexican Primera League 2026-03-09 Tijuana vs Santos Laguna", + "strSport": "Soccer", + "idLeague": "4350", + "strLeague": "Mexican Primera League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/mav5rx1686157960.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Tijuana", + "strAwayTeam": "Santos Laguna", + "intHomeScore": "1", + "intRound": "10", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "03:06:00", + "strTimeLocal": "19:06:00", + "strGroup": "", + "idHomeTeam": "134202", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/uwxpwp1473541917.png", + "idAwayTeam": "134192", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/nq32gy1557078230.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17550", + "strVenue": "Estadio Caliente", + "strCountry": "Mexico", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/pl1mwz1771795936.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=wt5GXl-NF0g", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2398578", + "idAPIfootball": "1492623", + "strTimestamp": "2026-03-09T19:45:00", + "strEvent": "Shelbourne vs Shamrock Rovers", + "strEventAlternate": "Shamrock Rovers @ Shelbourne", + "strFilename": "Irish Premier Division 2026-03-09 Shelbourne vs Shamrock Rovers", + "strSport": "Soccer", + "idLeague": "4643", + "strLeague": "Irish Premier Division", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/m3tu3x1738686046.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Shelbourne", + "strAwayTeam": "Shamrock Rovers", + "intHomeScore": "2", + "intRound": "2", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:45:00", + "strTimeLocal": "19:45:00", + "strGroup": "", + "idHomeTeam": "138033", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/brh8t91579281545.png", + "idAwayTeam": "133978", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/u1zowj1491504381.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17506", + "strVenue": "Tolka Park", + "strCountry": "Ireland", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/jfjf3u1766438828.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2400658", + "idAPIfootball": "1497782", + "strTimestamp": "2026-03-09T13:00:00", + "strEvent": "Podgorica vs Iskra Danilovgrad", + "strEventAlternate": "Iskra Danilovgrad @ Podgorica", + "strFilename": "Montenegrin Second League 2026-03-09 Podgorica vs Iskra Danilovgrad", + "strSport": "Soccer", + "idLeague": "5385", + "strLeague": "Montenegrin Second League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/0aybvg1692687574.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Podgorica", + "strAwayTeam": "Iskra Danilovgrad", + "intHomeScore": "0", + "intRound": "22", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "13:00:00", + "strTimeLocal": "14:00:00", + "strGroup": "", + "idHomeTeam": "138076", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/iy1sn51579467152.png", + "idAwayTeam": "138075", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rccv8x1579467171.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18122", + "strVenue": "DG Arena", + "strCountry": "Montenegro", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2402007", + "idAPIfootball": "1499186", + "strTimestamp": "2026-03-09T00:00:00", + "strEvent": "Antigua vs Cob\u00e1n Imperial", + "strEventAlternate": "Cob\u00e1n Imperial @ Antigua", + "strFilename": "Guatemala Liga Nacional 2026-03-09 Antigua vs Cob\u00e1n Imperial", + "strSport": "Soccer", + "idLeague": "4817", + "strLeague": "Guatemala Liga Nacional", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/wtr5801717759494.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Antigua", + "strAwayTeam": "Cob\u00e1n Imperial", + "intHomeScore": "2", + "intRound": "12", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "00:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "139113", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/nciyxk1582144585.png", + "idAwayTeam": "139723", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/0odhyh1751391017.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18556", + "strVenue": "Estadio Pensativo", + "strCountry": "Guatemala", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2402009", + "idAPIfootball": "1499188", + "strTimestamp": "2026-03-09T02:00:00", + "strEvent": "Comunicaciones vs Achuapa", + "strEventAlternate": "Achuapa @ Comunicaciones", + "strFilename": "Guatemala Liga Nacional 2026-03-09 Comunicaciones vs Achuapa", + "strSport": "Soccer", + "idLeague": "4817", + "strLeague": "Guatemala Liga Nacional", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/wtr5801717759494.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Comunicaciones", + "strAwayTeam": "Achuapa", + "intHomeScore": "4", + "intRound": "12", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "02:00:00", + "strTimeLocal": "20:00:00", + "strGroup": "", + "idHomeTeam": "139006", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/svx7ji1580931084.png", + "idAwayTeam": "140371", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/9bsx2w1690492669.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "0", + "strVenue": "", + "strCountry": "Guatemala", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2404552", + "idAPIfootball": "1501583", + "strTimestamp": "2026-03-09T00:00:00", + "strEvent": "Arnett Gardens vs Molynes United", + "strEventAlternate": "Molynes United @ Arnett Gardens", + "strFilename": "Jamaican Premier League 2026-03-09 Arnett Gardens vs Molynes United", + "strSport": "Soccer", + "idLeague": "5075", + "strLeague": "Jamaican Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/7l3yfu1696459375.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Arnett Gardens", + "strAwayTeam": "Molynes United", + "intHomeScore": "0", + "intRound": "26", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "00:00:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "141863", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/3dnp6t1624889061.png", + "idAwayTeam": "141867", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/bf6jsb1624889079.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "23603", + "strVenue": "Anthony Spaulding Sports Complex", + "strCountry": "Jamaica", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2404553", + "idAPIfootball": "1501584", + "strTimestamp": "2026-03-09T20:30:00", + "strEvent": "Harbour View vs Racing United", + "strEventAlternate": "Racing United @ Harbour View", + "strFilename": "Jamaican Premier League 2026-03-09 Harbour View vs Racing United", + "strSport": "Soccer", + "idLeague": "5075", + "strLeague": "Jamaican Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/7l3yfu1696459375.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Harbour View", + "strAwayTeam": "Racing United", + "intHomeScore": "0", + "intRound": "26", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "20:30:00", + "strTimeLocal": "15:30:00", + "strGroup": "", + "idHomeTeam": "140038", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/x1aenf1594324197.png", + "idAwayTeam": "149293", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/7t3pxc1726257381.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "31801", + "strVenue": "Harbour View Stadium", + "strCountry": "Jamaica", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2407328", + "idAPIfootball": "1501169", + "strTimestamp": "2026-03-09T23:00:00", + "strEvent": "Macap\u00e1 vs Independente-AP", + "strEventAlternate": "Independente-AP @ Macap\u00e1", + "strFilename": "Brazilian Campeonato Amapaense 2026-03-09 Macap\u00e1 vs Independente-AP", + "strSport": "Soccer", + "idLeague": "5678", + "strLeague": "Brazilian Campeonato Amapaense", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/6sy3xd1754493984.png", + "strSeason": "2026", + "strDescriptionEN": null, + "strHomeTeam": "Macap\u00e1", + "strAwayTeam": "Independente-AP", + "intHomeScore": "1", + "intRound": "6", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": null, + "strTime": "23:00:00", + "strTimeLocal": null, + "strGroup": null, + "idHomeTeam": "154107", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/p5bxxd1766941473.png", + "idAwayTeam": "152600", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/5i8ske1754031322.png", + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": null, + "strVenue": "", + "strCountry": "Brazil", + "strCity": null, + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2408240", + "idAPIfootball": "1500162", + "strTimestamp": "2026-03-09T20:00:00", + "strEvent": "Leones de Rosario vs El Porvenir", + "strEventAlternate": "El Porvenir @ Leones de Rosario", + "strFilename": "Argentinian Primera C 2026-03-09 Leones de Rosario vs El Porvenir", + "strSport": "Soccer", + "idLeague": "5524", + "strLeague": "Argentinian Primera C", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/6j0rlo1734111674.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Leones de Rosario", + "strAwayTeam": "El Porvenir", + "intHomeScore": "0", + "intRound": "1", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-02-21", + "strTime": "20:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "154105", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/xvzflc1766767024.png", + "idAwayTeam": "149539", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/jo366y1730784006.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "20650", + "strVenue": "Estadio \u00danico de San Nicol\u00e1s", + "strCountry": "Argentina", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2409780", + "idAPIfootball": "1503473", + "strTimestamp": "2026-03-09T09:30:00", + "strEvent": "Thitsar Arman vs Dagon Star United", + "strEventAlternate": "Dagon Star United @ Thitsar Arman", + "strFilename": "Myanmar National League 2026-03-09 Thitsar Arman vs Dagon Star United", + "strSport": "Soccer", + "idLeague": "5630", + "strLeague": "Myanmar National League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/8spgd81746325102.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Thitsar Arman", + "strAwayTeam": "Dagon Star United", + "intHomeScore": "2", + "intRound": "21", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "09:30:00", + "strTimeLocal": "16:00:00", + "strGroup": "", + "idHomeTeam": "151095", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/f45wrl1739766658.png", + "idAwayTeam": "151091", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/p31y6a1739764963.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18772", + "strVenue": "Yangon United Sports Complex", + "strCountry": "Myanmar", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2412213", + "idAPIfootball": "1505010", + "strTimestamp": "2026-03-09T23:30:00", + "strEvent": "Recoleta vs Sportivo Ameliano", + "strEventAlternate": "Sportivo Ameliano @ Recoleta", + "strFilename": "Paraguayan Primera Division 2026-03-09 Recoleta vs Sportivo Ameliano", + "strSport": "Soccer", + "idLeague": "4687", + "strLeague": "Paraguayan Primera Division", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/k1sbmx1652126723.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Recoleta", + "strAwayTeam": "Sportivo Ameliano", + "intHomeScore": "1", + "intRound": "9", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "23:30:00", + "strTimeLocal": "20:30:00", + "strGroup": "", + "idHomeTeam": "147065", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/v68cg01735661603.png", + "idAwayTeam": "140626", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/g16ua11611773197.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "20999", + "strVenue": "Estadio Roque Battilana", + "strCountry": "Paraguay", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/1gqj781758626316.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=sgnnfV8syzg", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2412215", + "idAPIfootball": "1505012", + "strTimestamp": "2026-03-09T21:30:00", + "strEvent": "Sportivo Trinidense vs Club Nacional", + "strEventAlternate": "Club Nacional @ Sportivo Trinidense", + "strFilename": "Paraguayan Primera Division 2026-03-09 Sportivo Trinidense vs Club Nacional", + "strSport": "Soccer", + "idLeague": "4687", + "strLeague": "Paraguayan Primera Division", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/k1sbmx1652126723.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Sportivo Trinidense", + "strAwayTeam": "Club Nacional", + "intHomeScore": "1", + "intRound": "9", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "21:30:00", + "strTimeLocal": "18:30:00", + "strGroup": "", + "idHomeTeam": "140628", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/oi8bxo1766423607.png", + "idAwayTeam": "138295", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/uv7z921579989369.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "20526", + "strVenue": "Estadio Mart\u00edn Torres", + "strCountry": "Paraguay", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/0fqh5b1758626460.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=vMXGKPcdcx0", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2412957", + "idAPIfootball": "1505394", + "strTimestamp": "2026-03-09T23:00:00", + "strEvent": "Universidad de Chile vs Universidad de Concepci\u00f3n", + "strEventAlternate": "Universidad de Concepci\u00f3n @ Universidad de Chile", + "strFilename": "Chile Primera Division 2026-03-09 Universidad de Chile vs Universidad de Concepci\u00f3n", + "strSport": "Soccer", + "idLeague": "4627", + "strLeague": "Chile Primera Division", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/x9m78e1768232019.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Universidad de Chile", + "strAwayTeam": "Universidad de Concepci\u00f3n", + "intHomeScore": "1", + "intRound": "6", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "23:00:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "137736", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/po0o3c1578347873.png", + "idAwayTeam": "137737", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/fyj9u51602187758.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16453", + "strVenue": "Estadio Nacional Julio Mart\u00ednez Pr\u00e1danos", + "strCountry": "Chile", + "strCity": "", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/vrkbgc1772337072.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/iaz76h1772337097.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/hau9kd1772337074.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2414959", + "idAPIfootball": "1506026", + "strTimestamp": "2026-03-09T23:20:00", + "strEvent": "Millonarios vs C\u00facuta Deportivo", + "strEventAlternate": "C\u00facuta Deportivo @ Millonarios", + "strFilename": "Colombia Categor\u00eda Primera A 2026-03-09 Millonarios vs C\u00facuta Deportivo", + "strSport": "Soccer", + "idLeague": "4497", + "strLeague": "Colombia Categor\u00eda Primera A", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/sdz1351580833297.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Millonarios", + "strAwayTeam": "C\u00facuta Deportivo", + "intHomeScore": "2", + "intRound": "10", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "23:20:00", + "strTimeLocal": "18:20:00", + "strGroup": "", + "idHomeTeam": "137617", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/mc73ix1629122587.png", + "idAwayTeam": "137608", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/f2in7k1678411016.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18704", + "strVenue": "Estadio El Camp\u00edn", + "strCountry": "Colombia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/ni6i9a1769692012.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=ugD8kD8p2S4", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2415012", + "idAPIfootball": "1506078", + "strTimestamp": "2026-03-09T23:00:00", + "strEvent": "Llaneros vs Jaguares de C\u00f3rdoba", + "strEventAlternate": "Jaguares de C\u00f3rdoba @ Llaneros", + "strFilename": "Colombia Categor\u00eda Primera A 2026-03-09 Llaneros vs Jaguares de C\u00f3rdoba", + "strSport": "Soccer", + "idLeague": "4497", + "strLeague": "Colombia Categor\u00eda Primera A", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/sdz1351580833297.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Llaneros", + "strAwayTeam": "Jaguares de C\u00f3rdoba", + "intHomeScore": "2", + "intRound": "16", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "23:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "141067", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/q1w56m1615832197.png", + "idAwayTeam": "137614", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/7ypl1y1629122579.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "20930", + "strVenue": "Estadio Bello Horizonte", + "strCountry": "Colombia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/w70q391769692167.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2416831", + "idAPIfootball": "1507860", + "strTimestamp": "2026-03-09T18:30:00", + "strEvent": "Rwanda Police vs Al-Merrikh", + "strEventAlternate": "Al-Merrikh @ Rwanda Police", + "strFilename": "Rwandan National Soccer League 2026-03-09 Rwanda Police vs Al-Merrikh", + "strSport": "Soccer", + "idLeague": "5253", + "strLeague": "Rwandan National Soccer League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/7ho5ji1645369157.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Rwanda Police", + "strAwayTeam": "Al-Merrikh", + "intHomeScore": "0", + "intRound": "0", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:30:00", + "strTimeLocal": "20:30:00", + "strGroup": "", + "idHomeTeam": "145584", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/y4l8jd1764193894.png", + "idAwayTeam": "139750", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ys6n6s1736436881.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "26071", + "strVenue": "Kigali Pel\u00e9 Stadium", + "strCountry": "Rwanda", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2421814", + "idAPIfootball": "1511506", + "strTimestamp": "2026-03-09T23:30:00", + "strEvent": "Deportes Copiap\u00f3 vs Deportes Temuco", + "strEventAlternate": "Deportes Temuco @ Deportes Copiap\u00f3", + "strFilename": "Chile Primera B 2026-03-09 Deportes Copiap\u00f3 vs Deportes Temuco", + "strSport": "Soccer", + "idLeague": "4899", + "strLeague": "Chile Primera B", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/t1vndf1738858796.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Deportes Copiap\u00f3", + "strAwayTeam": "Deportes Temuco", + "intHomeScore": "1", + "intRound": "3", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "23:30:00", + "strTimeLocal": "19:30:00", + "strGroup": "", + "idHomeTeam": "140555", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/lzii2a1611771823.png", + "idAwayTeam": "140546", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/gzz5os1677471036.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "20491", + "strVenue": "Estadio Luis Valenzuela Hermosilla", + "strCountry": "Chile", + "strCity": "", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/pg9whg1759808190.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/ydl5l81759808190.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/np553k1759808190.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2421819", + "idAPIfootball": "1511511", + "strTimestamp": "2026-03-09T21:00:00", + "strEvent": "Santiago Wanderers vs Deportes Santa Cruz", + "strEventAlternate": "Deportes Santa Cruz @ Santiago Wanderers", + "strFilename": "Chile Primera B 2026-03-09 Santiago Wanderers vs Deportes Santa Cruz", + "strSport": "Soccer", + "idLeague": "4899", + "strLeague": "Chile Primera B", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/t1vndf1738858796.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Santiago Wanderers", + "strAwayTeam": "Deportes Santa Cruz", + "intHomeScore": "3", + "intRound": "3", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "21:00:00", + "strTimeLocal": "17:00:00", + "strGroup": "", + "idHomeTeam": "137738", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ablr721757220570.png", + "idAwayTeam": "140545", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/15m53x1610649871.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16933", + "strVenue": "Estadio El\u00edas Figueroa Brander", + "strCountry": "Chile", + "strCity": "", + "strPoster": "https://r2.thesportsdb.com/images/media/event/poster/5hf7et1760320826.jpg", + "strSquare": "https://r2.thesportsdb.com/images/media/event/square/oumznc1760320829.jpg", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/22hzzf1760320831.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2422432", + "idAPIfootball": "1512527", + "strTimestamp": "2026-03-09T22:30:00", + "strEvent": "Cienciano vs Sport Boys", + "strEventAlternate": "Sport Boys @ Cienciano", + "strFilename": "Peruvian Primera Division 2026-03-09 Cienciano vs Sport Boys", + "strSport": "Soccer", + "idLeague": "4688", + "strLeague": "Peruvian Primera Division", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/1ujpwc1580040216.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Cienciano", + "strAwayTeam": "Sport Boys", + "intHomeScore": "3", + "intRound": "6", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "22:30:00", + "strTimeLocal": "17:30:00", + "strGroup": "", + "idHomeTeam": "138319", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/yla9k51734242161.png", + "idAwayTeam": "138324", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/uybvv01580040173.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16860", + "strVenue": "Estadio Inca Garcilaso de la Vega", + "strCountry": "Peru", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/53gy771771925125.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2423041", + "idAPIfootball": "1512974", + "strTimestamp": "2026-03-09T00:00:00", + "strEvent": "New York Red Bulls II vs Inter Miami II", + "strEventAlternate": "Inter Miami II @ New York Red Bulls II", + "strFilename": "MLS Next Pro 2026-03-09 New York Red Bulls II vs Inter Miami II", + "strSport": "Soccer", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/vokzs71650475719.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "New York Red Bulls II", + "strAwayTeam": "Inter Miami II", + "intHomeScore": "3", + "intRound": "0", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "00:00:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "138868", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/nc85q21580479838.png", + "idAwayTeam": "142162", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/meil391725297217.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "19026", + "strVenue": "MSU Soccer Park at Pittser Field", + "strCountry": "United States", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2423048", + "idAPIfootball": "1512981", + "strTimestamp": "2026-03-09T02:00:00", + "strEvent": "San Jose Earthquakes II vs Los Angeles FC II", + "strEventAlternate": "Los Angeles FC II @ San Jose Earthquakes II", + "strFilename": "MLS Next Pro 2026-03-09 San Jose Earthquakes II vs Los Angeles FC II", + "strSport": "Soccer", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/vokzs71650475719.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "San Jose Earthquakes II", + "strAwayTeam": "Los Angeles FC II", + "intHomeScore": "4", + "intRound": "0", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "02:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "145862", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/onpjpf1769273202.png", + "idAwayTeam": "147307", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/h9it561679308394.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "32783", + "strVenue": "Saint Mary's Stadium", + "strCountry": "United States", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/vidziz1708415551.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2423053", + "idAPIfootball": "1512986", + "strTimestamp": "2026-03-09T00:00:00", + "strEvent": "Sporting Kansas City II vs Real Monarchs", + "strEventAlternate": "Real Monarchs @ Sporting Kansas City II", + "strFilename": "MLS Next Pro 2026-03-09 Sporting Kansas City II vs Real Monarchs", + "strSport": "Soccer", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/vokzs71650475719.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Sporting Kansas City II", + "strAwayTeam": "Real Monarchs", + "intHomeScore": "0", + "intRound": "0", + "intAwayScore": "5", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "00:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "138869", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/yi3g1k1580419612.png", + "idAwayTeam": "138890", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/32ox3k1580480506.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18276", + "strVenue": "Children's Mercy Park", + "strCountry": "United States", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2423054", + "idAPIfootball": "1512987", + "strTimestamp": "2026-03-09T00:30:00", + "strEvent": "Austin FC II vs Ventura County", + "strEventAlternate": "Ventura County @ Austin FC II", + "strFilename": "MLS Next Pro 2026-03-09 Austin FC II vs Ventura County", + "strSport": "Soccer", + "idLeague": "5279", + "strLeague": "MLS Next Pro", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/vokzs71650475719.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Austin FC II", + "strAwayTeam": "Ventura County", + "intHomeScore": "2", + "intRound": "0", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "00:30:00", + "strTimeLocal": "18:30:00", + "strGroup": "", + "idHomeTeam": "147304", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/9y5mkc1679308384.png", + "idAwayTeam": "138887", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/xp9fev1725297436.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "28541", + "strVenue": "Parmer Field", + "strCountry": "United States", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2424685", + "idAPIfootball": "1514510", + "strTimestamp": "2026-03-09T23:30:00", + "strEvent": "Guapor\u00e9 vs Ji-Paran\u00e1", + "strEventAlternate": "Ji-Paran\u00e1 @ Guapor\u00e9", + "strFilename": "Brazilian Campeonato Rondoniense 2026-03-09 Guapor\u00e9 vs Ji-Paran\u00e1", + "strSport": "Soccer", + "idLeague": "5771", + "strLeague": "Brazilian Campeonato Rondoniense", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/vnv80t1766578247.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Guapor\u00e9", + "strAwayTeam": "Ji-Paran\u00e1", + "intHomeScore": "1", + "intRound": "8", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "23:30:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "152668", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/8n8kvr1754151742.png", + "idAwayTeam": "152667", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/1w4no41754151541.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "0", + "strVenue": "", + "strCountry": "Brazil", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2427093", + "idAPIfootball": "1516374", + "strTimestamp": "2026-03-09T09:00:00", + "strEvent": "Bangladesh Women vs Uzbekistan Women", + "strEventAlternate": "Uzbekistan Women @ Bangladesh Women", + "strFilename": "Asian Cup Women 2026-03-09 Bangladesh Women vs Uzbekistan Women", + "strSport": "Soccer", + "idLeague": "5179", + "strLeague": "Asian Cup Women", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/m0scwf1726416187.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Bangladesh Women", + "strAwayTeam": "Uzbekistan Women", + "intHomeScore": "0", + "intRound": "3", + "intAwayScore": "4", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "09:00:00", + "strTimeLocal": "17:00:00", + "strGroup": "B", + "idHomeTeam": "153589", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/yjlyco1760930248.png", + "idAwayTeam": "153588", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/zgswwv1760929972.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16356", + "strVenue": "HBF Park", + "strCountry": "Australia", + "strCity": "Perth, WA", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=cNgIn_hxAkQ", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2427094", + "idAPIfootball": "1516375", + "strTimestamp": "2026-03-09T09:00:00", + "strEvent": "North Korea Women vs China Women", + "strEventAlternate": "China Women @ North Korea Women", + "strFilename": "Asian Cup Women 2026-03-09 North Korea Women vs China Women", + "strSport": "Soccer", + "idLeague": "5179", + "strLeague": "Asian Cup Women", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/m0scwf1726416187.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "North Korea Women", + "strAwayTeam": "China Women", + "intHomeScore": "1", + "intRound": "3", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "09:00:00", + "strTimeLocal": "20:00:00", + "strGroup": "B", + "idHomeTeam": "153587", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ql2dvs1760926111.png", + "idAwayTeam": "136806", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/kr1ljw1760926837.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "23196", + "strVenue": "CommBank Stadium", + "strCountry": "Australia", + "strCity": "Sydney, NSW", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=W1G8JwpLtXE", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2430411", + "idAPIfootball": "1521003", + "strTimestamp": "2026-03-09T11:00:00", + "strEvent": "Pyunik Yerevan vs Shirak Gyumri", + "strEventAlternate": "Shirak Gyumri @ Pyunik Yerevan", + "strFilename": "Armenian Premier League 2026-03-09 Pyunik Yerevan vs Shirak Gyumri", + "strSport": "Soccer", + "idLeague": "4619", + "strLeague": "Armenian Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/h4o8zq1687710680.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Pyunik Yerevan", + "strAwayTeam": "Shirak Gyumri", + "intHomeScore": "3", + "intRound": "17", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "11:00:00", + "strTimeLocal": "15:00:00", + "strGroup": "", + "idHomeTeam": "137896", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/h8jwvd1579003944.png", + "idAwayTeam": "137894", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/cwlm541579003278.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "22682", + "strVenue": "Junior Sport Stadium", + "strCountry": "Armenia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2432905", + "idAPIfootball": "1521301", + "strTimestamp": "2026-03-09T14:00:00", + "strEvent": "Punjab vs NorthEast United", + "strEventAlternate": "NorthEast United @ Punjab", + "strFilename": "Indian Super League 2026-03-09 Punjab vs NorthEast United", + "strSport": "Soccer", + "idLeague": "4791", + "strLeague": "Indian Super League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/33eq631583257659.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Punjab", + "strAwayTeam": "NorthEast United", + "intHomeScore": "1", + "intRound": "4", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "14:00:00", + "strTimeLocal": "19:30:00", + "strGroup": "", + "idHomeTeam": "139436", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/qwet071770822967.png", + "idAwayTeam": "139368", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/h86ghn1583254754.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17131", + "strVenue": "Guru Nanak Stadium", + "strCountry": "India", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2433149", + "idAPIfootball": "1522269", + "strTimestamp": "2026-03-09T12:00:00", + "strEvent": "Bahir Dar Kenema vs Negelle Arsi", + "strEventAlternate": "Negelle Arsi @ Bahir Dar Kenema", + "strFilename": "Ethiopian Premier League 2026-03-09 Bahir Dar Kenema vs Negelle Arsi", + "strSport": "Soccer", + "idLeague": "4959", + "strLeague": "Ethiopian Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/h7n8mg1727714240.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Bahir Dar Kenema", + "strAwayTeam": "Negelle Arsi", + "intHomeScore": "0", + "intRound": "23", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "12:00:00", + "strTimeLocal": "15:00:00", + "strGroup": "", + "idHomeTeam": "141026", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/cemn2l1615830048.png", + "idAwayTeam": "153585", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/3vj7z31760913824.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "20842", + "strVenue": "Hawassa University Stadium", + "strCountry": "Ethiopia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2433150", + "idAPIfootball": "1522270", + "strTimestamp": "2026-03-09T12:00:00", + "strEvent": "Shire Endaselassie vs Fasil Kenema", + "strEventAlternate": "Fasil Kenema @ Shire Endaselassie", + "strFilename": "Ethiopian Premier League 2026-03-09 Shire Endaselassie vs Fasil Kenema", + "strSport": "Soccer", + "idLeague": "4959", + "strLeague": "Ethiopian Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/h7n8mg1727714240.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Shire Endaselassie", + "strAwayTeam": "Fasil Kenema", + "intHomeScore": "1", + "intRound": "23", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "12:00:00", + "strTimeLocal": "15:00:00", + "strGroup": "", + "idHomeTeam": "149379", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/edlaxs1727368853.png", + "idAwayTeam": "141029", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/a0nmxq1615830062.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "23222", + "strVenue": "Adama Science and Technology University Stadium", + "strCountry": "Ethiopia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2433151", + "idAPIfootball": "1522271", + "strTimestamp": "2026-03-09T15:00:00", + "strEvent": "Dire Dawa Kenema vs CBE SA", + "strEventAlternate": "CBE SA @ Dire Dawa Kenema", + "strFilename": "Ethiopian Premier League 2026-03-09 Dire Dawa Kenema vs CBE SA", + "strSport": "Soccer", + "idLeague": "4959", + "strLeague": "Ethiopian Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/h7n8mg1727714240.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Dire Dawa Kenema", + "strAwayTeam": "CBE SA", + "intHomeScore": "1", + "intRound": "23", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "15:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "141027", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/70017i1615830053.png", + "idAwayTeam": "149377", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/fn7am21727368578.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "23222", + "strVenue": "Adama Science and Technology University Stadium", + "strCountry": "Ethiopia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2433152", + "idAPIfootball": "1522272", + "strTimestamp": "2026-03-09T15:00:00", + "strEvent": "Ethiopian Medhin vs Hadiya Hossana", + "strEventAlternate": "Hadiya Hossana @ Ethiopian Medhin", + "strFilename": "Ethiopian Premier League 2026-03-09 Ethiopian Medhin vs Hadiya Hossana", + "strSport": "Soccer", + "idLeague": "4959", + "strLeague": "Ethiopian Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/h7n8mg1727714240.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Ethiopian Medhin", + "strAwayTeam": "Hadiya Hossana", + "intHomeScore": "1", + "intRound": "23", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "15:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "146921", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/977pjl1661720073.png", + "idAwayTeam": "141033", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/dd6ric1615830080.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "23222", + "strVenue": "Adama Science and Technology University Stadium", + "strCountry": "Ethiopia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2433600", + "idAPIfootball": "1522573", + "strTimestamp": "2026-03-09T01:30:00", + "strEvent": "Lobos UPNFM vs Juticalpa", + "strEventAlternate": "Juticalpa @ Lobos UPNFM", + "strFilename": "Honduras Liga Nacional de Futbol 2026-03-09 Lobos UPNFM vs Juticalpa", + "strSport": "Soccer", + "idLeague": "4818", + "strLeague": "Honduras Liga Nacional de Futbol", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/94pogz1646830106.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Lobos UPNFM", + "strAwayTeam": "Juticalpa", + "intHomeScore": "3", + "intRound": "10", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "01:30:00", + "strTimeLocal": "19:30:00", + "strGroup": "", + "idHomeTeam": "139701", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/0ovtva1589120226.png", + "idAwayTeam": "149030", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/7m4hd91721032690.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "19992", + "strVenue": "Estadio Emilio Williams Agasse", + "strCountry": "Honduras", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2433691", + "idAPIfootball": "1522647", + "strTimestamp": "2026-03-09T18:00:00", + "strEvent": "AIK vs Hacken", + "strEventAlternate": "Hacken @ AIK", + "strFilename": "Svenska Cupen 2026-03-09 AIK vs Hacken", + "strSport": "Soccer", + "idLeague": "4756", + "strLeague": "Svenska Cupen", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/p37u1n1694211430.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "AIK", + "strAwayTeam": "Hacken", + "intHomeScore": "4", + "intRound": "3", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:00:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "134011", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rwsrxq1420769503.png", + "idAwayTeam": "134160", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/zyl9m01523905866.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "15906", + "strVenue": "Strawberry Arena", + "strCountry": "Sweden", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2433692", + "idAPIfootball": "1522648", + "strTimestamp": "2026-03-09T18:00:00", + "strEvent": "V\u00e4ster\u00e5s vs Oddevold", + "strEventAlternate": "Oddevold @ V\u00e4ster\u00e5s", + "strFilename": "Svenska Cupen 2026-03-09 V\u00e4ster\u00e5s vs Oddevold", + "strSport": "Soccer", + "idLeague": "4756", + "strLeague": "Svenska Cupen", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/p37u1n1694211430.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "V\u00e4ster\u00e5s", + "strAwayTeam": "Oddevold", + "intHomeScore": "0", + "intRound": "3", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:00:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "136832", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/mscha61644586515.png", + "idAwayTeam": "138270", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/gxj75t1579903800.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "27787", + "strVenue": "Hitachi Energy Arena", + "strCountry": "Sweden", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2433704", + "idAPIfootball": "1522566", + "strTimestamp": "2026-03-09T11:00:00", + "strEvent": "Rotor Volgograd vs Ural Yekaterinburg", + "strEventAlternate": "Ural Yekaterinburg @ Rotor Volgograd", + "strFilename": "Russian Football National League 2026-03-09 Rotor Volgograd vs Ural Yekaterinburg", + "strSport": "Soccer", + "idLeague": "4666", + "strLeague": "Russian Football National League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/tbbx911752735233.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Rotor Volgograd", + "strAwayTeam": "Ural Yekaterinburg", + "intHomeScore": "1", + "intRound": "23", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "11:00:00", + "strTimeLocal": "14:00:00", + "strGroup": "", + "idHomeTeam": "138155", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ajk3g01655822912.png", + "idAwayTeam": "134439", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/xsqrww1473452331.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17635", + "strVenue": "Volgograd Arena", + "strCountry": "Russia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2433705", + "idAPIfootball": "1522567", + "strTimestamp": "2026-03-09T14:00:00", + "strEvent": "Arsenal Tula vs Volga Ulyanovsk", + "strEventAlternate": "Volga Ulyanovsk @ Arsenal Tula", + "strFilename": "Russian Football National League 2026-03-09 Arsenal Tula vs Volga Ulyanovsk", + "strSport": "Soccer", + "idLeague": "4666", + "strLeague": "Russian Football National League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/tbbx911752735233.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Arsenal Tula", + "strAwayTeam": "Volga Ulyanovsk", + "intHomeScore": "0", + "intRound": "23", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "14:00:00", + "strTimeLocal": "17:00:00", + "strGroup": "", + "idHomeTeam": "134553", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ttvquq1473347331.png", + "idAwayTeam": "143124", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/pnuobi1626642061.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17632", + "strVenue": "Arsenal Stadium", + "strCountry": "Russia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2433706", + "idAPIfootball": "1522568", + "strTimestamp": "2026-03-09T12:00:00", + "strEvent": "Shinnik Yaroslavl vs Ufa", + "strEventAlternate": "Ufa @ Shinnik Yaroslavl", + "strFilename": "Russian Football National League 2026-03-09 Shinnik Yaroslavl vs Ufa", + "strSport": "Soccer", + "idLeague": "4666", + "strLeague": "Russian Football National League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/tbbx911752735233.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Shinnik Yaroslavl", + "strAwayTeam": "Ufa", + "intHomeScore": "1", + "intRound": "23", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "12:00:00", + "strTimeLocal": "15:00:00", + "strGroup": "", + "idHomeTeam": "138156", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/tt7ekb1677525835.png", + "idAwayTeam": "134556", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/aoeg8t1607368707.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17573", + "strVenue": "Shinnik Stadium", + "strCountry": "Russia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2434726", + "idAPIfootball": "1523414", + "strTimestamp": "2026-03-09T19:30:00", + "strEvent": "West Ham United vs Brentford", + "strEventAlternate": "Brentford @ West Ham United", + "strFilename": "FA Cup 2026-03-09 West Ham United vs Brentford", + "strSport": "Soccer", + "idLeague": "4482", + "strLeague": "FA Cup", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/vk7isd1598802862.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "West Ham United", + "strAwayTeam": "Brentford", + "intHomeScore": "2", + "intRound": "5", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "19:30:00", + "strTimeLocal": "19:30:00", + "strGroup": "", + "idHomeTeam": "133636", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/yutyxs1467459956.png", + "idAwayTeam": "134355", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/grv1aw1546453779.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16112", + "strVenue": "London Stadium", + "strCountry": "England", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/pov2co1772798211.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "https://www.youtube.com/watch?v=Lkm8FIhSXiA", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2435321", + "idAPIfootball": "1524401", + "strTimestamp": "2026-03-09T20:30:00", + "strEvent": "Al-Ahli vs Al-Duhail", + "strEventAlternate": "Al-Duhail @ Al-Ahli", + "strFilename": "AFC Champions League Elite 2026-03-09 Al-Ahli vs Al-Duhail", + "strSport": "Soccer", + "idLeague": "4719", + "strLeague": "AFC Champions League Elite", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/gsbq4k1719686780.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Al-Ahli", + "strAwayTeam": "Al-Duhail", + "intHomeScore": null, + "intRound": "16", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "20:30:00", + "strTimeLocal": "23:30:00", + "strGroup": "", + "idHomeTeam": "137721", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/1bbtgb1755192301.png", + "idAwayTeam": "137679", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/n1vtjm1577985347.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "16052", + "strVenue": "King Abdullah Sports City", + "strCountry": "Saudi Arabia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/rpf8k51772524905.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Postponed", + "strPostponed": "yes", + "strLocked": "unlocked" + }, + { + "idEvent": "2435324", + "idAPIfootball": "1524404", + "strTimestamp": "2026-03-09T18:15:00", + "strEvent": "Tractor vs Shabab Al-Ahli Dubai", + "strEventAlternate": "Shabab Al-Ahli Dubai @ Tractor", + "strFilename": "AFC Champions League Elite 2026-03-09 Tractor vs Shabab Al-Ahli Dubai", + "strSport": "Soccer", + "idLeague": "4719", + "strLeague": "AFC Champions League Elite", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/gsbq4k1719686780.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Tractor", + "strAwayTeam": "Shabab Al-Ahli Dubai", + "intHomeScore": null, + "intRound": "16", + "intAwayScore": null, + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:15:00", + "strTimeLocal": "21:45:00", + "strGroup": "", + "idHomeTeam": "139162", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/url13x1722468959.png", + "idAwayTeam": "137828", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/k21gkm1617893374.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17382", + "strVenue": "Yadegar-e-Emam Stadium", + "strCountry": "Iran", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "https://r2.thesportsdb.com/images/media/event/thumb/jrt9r91772524907.jpg", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Postponed", + "strPostponed": "yes", + "strLocked": "unlocked" + }, + { + "idEvent": "2436080", + "idAPIfootball": "1525650", + "strTimestamp": "2026-03-09T13:00:00", + "strEvent": "BKMA-2 vs Pyunik Academy", + "strEventAlternate": "Pyunik Academy @ BKMA-2", + "strFilename": "Armenian First League 2026-03-09 BKMA-2 vs Pyunik Academy", + "strSport": "Soccer", + "idLeague": "4908", + "strLeague": "Armenian First League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/ner4ml1727712958.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "BKMA-2", + "strAwayTeam": "Pyunik Academy", + "intHomeScore": "3", + "intRound": "19", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "13:00:00", + "strTimeLocal": "17:00:00", + "strGroup": "", + "idHomeTeam": "143344", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/8f5ncb1658598923.png", + "idAwayTeam": "140691", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/sq6ipu1658598945.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17860", + "strVenue": "Yerevan Football Academy", + "strCountry": "Armenia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2436082", + "idAPIfootball": "1525652", + "strTimestamp": "2026-03-09T11:00:00", + "strEvent": "Van-2 vs Hayq", + "strEventAlternate": "Hayq @ Van-2", + "strFilename": "Armenian First League 2026-03-09 Van-2 vs Hayq", + "strSport": "Soccer", + "idLeague": "4908", + "strLeague": "Armenian First League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/ner4ml1727712958.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Van-2", + "strAwayTeam": "Hayq", + "intHomeScore": "0", + "intRound": "19", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "11:00:00", + "strTimeLocal": "15:00:00", + "strGroup": "", + "idHomeTeam": "152592", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/dne0zn1753940734.png", + "idAwayTeam": "152594", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/70eym41753942560.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17858", + "strVenue": "Charentsavan City Stadium", + "strCountry": "Armenia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2436083", + "idAPIfootball": "1525653", + "strTimestamp": "2026-03-09T14:00:00", + "strEvent": "Noah-2 vs Sardarapat", + "strEventAlternate": "Sardarapat @ Noah-2", + "strFilename": "Armenian First League 2026-03-09 Noah-2 vs Sardarapat", + "strSport": "Soccer", + "idLeague": "4908", + "strLeague": "Armenian First League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/ner4ml1727712958.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Noah-2", + "strAwayTeam": "Sardarapat", + "intHomeScore": "0", + "intRound": "19", + "intAwayScore": "4", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "14:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "147559", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/m5n8rr1720503661.png", + "idAwayTeam": "152593", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/50rtio1753941682.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "20697", + "strVenue": "Fut Akademia", + "strCountry": "Armenia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2436084", + "idAPIfootball": "1525654", + "strTimestamp": "2026-03-09T14:00:00", + "strEvent": "Urartu-2 vs Araks Ararat", + "strEventAlternate": "Araks Ararat @ Urartu-2", + "strFilename": "Armenian First League 2026-03-09 Urartu-2 vs Araks Ararat", + "strSport": "Soccer", + "idLeague": "4908", + "strLeague": "Armenian First League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/ner4ml1727712958.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Urartu-2", + "strAwayTeam": "Araks Ararat", + "intHomeScore": "2", + "intRound": "19", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "14:00:00", + "strTimeLocal": "18:00:00", + "strGroup": "", + "idHomeTeam": "140694", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/mqram91658598953.png", + "idAwayTeam": "146199", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/ihs1mn1753942168.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "18175", + "strVenue": "Banants-3", + "strCountry": "Armenia", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2436155", + "idAPIfootball": "1525806", + "strTimestamp": "2026-03-09T01:00:00", + "strEvent": "Rancho Santana vs Real Estel\u00ed", + "strEventAlternate": "Real Estel\u00ed @ Rancho Santana", + "strFilename": "Nicaragua Primera Division 2026-03-09 Rancho Santana vs Real Estel\u00ed", + "strSport": "Soccer", + "idLeague": "4806", + "strLeague": "Nicaragua Primera Division", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/ah6qbr1596464815.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Rancho Santana", + "strAwayTeam": "Real Estel\u00ed", + "intHomeScore": "0", + "intRound": "13", + "intAwayScore": "4", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-08", + "strTime": "01:00:00", + "strTimeLocal": "19:00:00", + "strGroup": "", + "idHomeTeam": "149043", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/2cog2y1721372089.png", + "idAwayTeam": "139114", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/fy0c4d1596464263.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "31599", + "strVenue": "Estadio Nacional de Nicaragua", + "strCountry": "Nicaragua", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2438108", + "idAPIfootball": "1526464", + "strTimestamp": "2026-03-09T21:30:00", + "strEvent": "Cerro Largo vs Montevideo City Torque", + "strEventAlternate": "Montevideo City Torque @ Cerro Largo", + "strFilename": "Uruguayan Primera Division 2026-03-09 Cerro Largo vs Montevideo City Torque", + "strSport": "Soccer", + "idLeague": "4432", + "strLeague": "Uruguayan Primera Division", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/3p98xv1740672448.png", + "strSeason": "2026", + "strDescriptionEN": "", + "strHomeTeam": "Cerro Largo", + "strAwayTeam": "Montevideo City Torque", + "intHomeScore": "0", + "intRound": "5", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "21:30:00", + "strTimeLocal": "18:30:00", + "strGroup": "", + "idHomeTeam": "138817", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/f2lnua1580234598.png", + "idAwayTeam": "138818", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/v7urjn1580234584.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17040", + "strVenue": "Estadio Municipal Arquitecto Antonio Eleuterio Ubilla", + "strCountry": "Uruguay", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2438194", + "idAPIfootball": "1526637", + "strTimestamp": "2026-03-09T12:00:00", + "strEvent": "Ferizaj vs Gjilani", + "strEventAlternate": "Gjilani @ Ferizaj", + "strFilename": "Kosovan Superleague 2026-03-09 Ferizaj vs Gjilani", + "strSport": "Soccer", + "idLeague": "4968", + "strLeague": "Kosovan Superleague", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/6h55zm1725173803.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Ferizaj", + "strAwayTeam": "Gjilani", + "intHomeScore": "1", + "intRound": "23", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "12:00:00", + "strTimeLocal": "13:00:00", + "strGroup": "", + "idHomeTeam": "146787", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/63r6o91660475252.png", + "idAwayTeam": "140102", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/giv3yc1753896542.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "26962", + "strVenue": "Stadiumi me bar sintetik Ferizaj", + "strCountry": "Kosovo", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2438195", + "idAPIfootball": "1526638", + "strTimestamp": "2026-03-09T12:00:00", + "strEvent": "Llapi vs Ballkani", + "strEventAlternate": "Ballkani @ Llapi", + "strFilename": "Kosovan Superleague 2026-03-09 Llapi vs Ballkani", + "strSport": "Soccer", + "idLeague": "4968", + "strLeague": "Kosovan Superleague", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/6h55zm1725173803.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Llapi", + "strAwayTeam": "Ballkani", + "intHomeScore": "2", + "intRound": "23", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "12:00:00", + "strTimeLocal": "13:00:00", + "strGroup": "", + "idHomeTeam": "141261", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/d8ezd51753896223.png", + "idAwayTeam": "141258", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/y7p62a1617290077.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "21055", + "strVenue": "Stadiumi Zahir Pajaziti", + "strCountry": "Kosovo", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2438196", + "idAPIfootball": "1526639", + "strTimestamp": "2026-03-09T12:00:00", + "strEvent": "Malisheva vs Prishtina", + "strEventAlternate": "Prishtina @ Malisheva", + "strFilename": "Kosovan Superleague 2026-03-09 Malisheva vs Prishtina", + "strSport": "Soccer", + "idLeague": "4968", + "strLeague": "Kosovan Superleague", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/6h55zm1725173803.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Malisheva", + "strAwayTeam": "Prishtina", + "intHomeScore": "3", + "intRound": "23", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "12:00:00", + "strTimeLocal": "13:00:00", + "strGroup": "", + "idHomeTeam": "143606", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/cjeu8v1717396344.png", + "idAwayTeam": "140101", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/34hhvh1753897677.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "22876", + "strVenue": "Stadiumi Liman Gegaj", + "strCountry": "Kosovo", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2443842", + "idAPIfootball": "1529466", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "SOL vs SOA", + "strEventAlternate": "SOA @ SOL", + "strFilename": "Ivory Coast Ligue 1 2026-03-09 SOL vs SOA", + "strSport": "Soccer", + "idLeague": "5241", + "strLeague": "Ivory Coast Ligue 1", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/fhrsyb1645300539.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "SOL", + "strAwayTeam": "SOA", + "intHomeScore": "2", + "intRound": "21", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "16:00:00", + "strTimeLocal": "16:00:00", + "strGroup": "", + "idHomeTeam": "145384", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/vym5db1645296039.png", + "idAwayTeam": "139743", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/0903d41589311738.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "22847", + "strVenue": "Stade Robert Champroux", + "strCountry": "Ivory Coast", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2443856", + "idAPIfootball": "1529473", + "strTimestamp": "2026-03-09T22:30:00", + "strEvent": "Gendrim vs Chemal", + "strEventAlternate": "Chemal @ Gendrim", + "strFilename": "Mauritania Premier League 2026-03-09 Gendrim vs Chemal", + "strSport": "Soccer", + "idLeague": "5247", + "strLeague": "Mauritania Premier League", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/dvjsq21645297426.png", + "strSeason": "2025-2026", + "strDescriptionEN": "", + "strHomeTeam": "Gendrim", + "strAwayTeam": "Chemal", + "intHomeScore": "2", + "intRound": "19", + "intAwayScore": "1", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "22:30:00", + "strTimeLocal": "22:30:00", + "strGroup": "", + "idHomeTeam": "147410", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/wf4rpm1687180550.png", + "idAwayTeam": "145452", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/6ok5cm1687175247.png", + "intScore": null, + "intScoreVotes": null, + "strResult": "", + "idVenue": "17174", + "strVenue": "Stade Cheikha Ould Bo\u00efdiya", + "strCountry": "Mauritania", + "strCity": "", + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": "", + "strVideo": "", + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2445097", + "idAPIfootball": "1530493", + "strTimestamp": "2026-03-09T00:00:00", + "strEvent": "Bubali vs Sporting Aruba", + "strEventAlternate": "Sporting Aruba @ Bubali", + "strFilename": "Aruban Division di Honor 2026-03-09 Bubali vs Sporting Aruba", + "strSport": "Soccer", + "idLeague": "5230", + "strLeague": "Aruban Division di Honor", + "strLeagueBadge": "https://r2.thesportsdb.com/images/media/league/badge/65ra8b1645196203.png", + "strSeason": "2025-2026", + "strDescriptionEN": null, + "strHomeTeam": "Bubali", + "strAwayTeam": "Sporting Aruba", + "intHomeScore": "2", + "intRound": "1", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": "", + "dateEvent": "2026-03-09", + "dateEventLocal": null, + "strTime": "00:00:00", + "strTimeLocal": null, + "strGroup": null, + "idHomeTeam": "145312", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/1w5umv1645225573.png", + "idAwayTeam": "153642", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/qu63k81761185855.png", + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": "28363", + "strVenue": "Compleho Deportivo Frans Figaroa", + "strCountry": "Aruba", + "strCity": null, + "strPoster": "", + "strSquare": "", + "strFanart": null, + "strThumb": "", + "strBanner": "", + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "Match Finished", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2445975", + "idAPIfootball": "1469465", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "SONABEL vs Rahimo", + "strEventAlternate": "Rahimo @ SONABEL", + "strFilename": "Burkina Faso 1ere Division 2026-03-09 SONABEL vs Rahimo", + "strSport": "Soccer", + "idLeague": "5234", + "strLeague": "Burkina Faso 1ere Division", + "strLeagueBadge": null, + "strSeason": "2025-2026", + "strDescriptionEN": null, + "strHomeTeam": "SONABEL", + "strAwayTeam": "Rahimo", + "intHomeScore": "1", + "intRound": "22", + "intAwayScore": "2", + "intSpectators": null, + "strOfficial": null, + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "16:00", + "strTimeLocal": "16:00", + "strGroup": null, + "idHomeTeam": "143539", + "strHomeTeamBadge": null, + "idAwayTeam": "139771", + "strAwayTeamBadge": null, + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": null, + "strVenue": null, + "strCountry": null, + "strCity": null, + "strPoster": null, + "strSquare": null, + "strFanart": null, + "strThumb": null, + "strBanner": null, + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "2H", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2445976", + "idAPIfootball": "1469466", + "strTimestamp": "2026-03-09T16:00:00", + "strEvent": "R\u00e9al du Faso vs US des Forces Arm\u00e9es", + "strEventAlternate": "US des Forces Arm\u00e9es @ R\u00e9al du Faso", + "strFilename": "Burkina Faso 1ere Division 2026-03-09 R\u00e9al du Faso vs US des Forces Arm\u00e9es", + "strSport": "Soccer", + "idLeague": "5234", + "strLeague": "Burkina Faso 1ere Division", + "strLeagueBadge": null, + "strSeason": "2025-2026", + "strDescriptionEN": null, + "strHomeTeam": "R\u00e9al du Faso", + "strAwayTeam": "US des Forces Arm\u00e9es", + "intHomeScore": "0", + "intRound": "22", + "intAwayScore": "0", + "intSpectators": null, + "strOfficial": null, + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "16:00", + "strTimeLocal": "16:00", + "strGroup": null, + "idHomeTeam": "146911", + "strHomeTeamBadge": null, + "idAwayTeam": "145475", + "strAwayTeamBadge": null, + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": null, + "strVenue": null, + "strCountry": null, + "strCity": null, + "strPoster": null, + "strSquare": null, + "strFanart": null, + "strThumb": null, + "strBanner": null, + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "2H", + "strPostponed": "no", + "strLocked": "unlocked" + }, + { + "idEvent": "2446259", + "idAPIfootball": "1486358", + "strTimestamp": null, + "strEvent": "Egersund vs Aalesund", + "strEventAlternate": "Aalesund @ Egersund", + "strFilename": "Norwegian Cupen 2026-03-09 Egersund vs Aalesund", + "strSport": "Soccer", + "idLeague": "5634", + "strLeague": "Norwegian Cupen", + "strLeagueBadge": null, + "strSeason": "2025-2026", + "strDescriptionEN": null, + "strHomeTeam": "Egersund", + "strAwayTeam": "Aalesund", + "intHomeScore": "2", + "intRound": "16", + "intAwayScore": "3", + "intSpectators": null, + "strOfficial": null, + "dateEvent": "2026-03-09", + "dateEventLocal": "2026-03-09", + "strTime": "18:00", + "strTimeLocal": "18:00", + "strGroup": null, + "idHomeTeam": "147882", + "strHomeTeamBadge": null, + "idAwayTeam": "133998", + "strAwayTeamBadge": null, + "intScore": null, + "intScoreVotes": null, + "strResult": null, + "idVenue": null, + "strVenue": null, + "strCountry": null, + "strCity": null, + "strPoster": null, + "strSquare": null, + "strFanart": null, + "strThumb": null, + "strBanner": null, + "strMap": null, + "strTweet1": null, + "strVideo": null, + "strStatus": "2H", + "strPostponed": "no", + "strLocked": "unlocked" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/07_v1_events_today_mls.json b/docs/api_samples/sportsdb/07_v1_events_today_mls.json new file mode 100644 index 0000000..1d300f6 --- /dev/null +++ b/docs/api_samples/sportsdb/07_v1_events_today_mls.json @@ -0,0 +1,3 @@ +{ + "events": null +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/08_v2_livescores.json b/docs/api_samples/sportsdb/08_v2_livescores.json new file mode 100644 index 0000000..e895625 --- /dev/null +++ b/docs/api_samples/sportsdb/08_v2_livescores.json @@ -0,0 +1,290 @@ +{ + "livescore": [ + { + "idLiveScore": "29571878", + "idEvent": "2438107", + "strSport": "Soccer", + "idLeague": "4432", + "strLeague": "Uruguayan Primera Division", + "idHomeTeam": "136051", + "idAwayTeam": "136052", + "strHomeTeam": "Boston River", + "strAwayTeam": "Liverpool Montevideo", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/8zq9n91736218442.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/0xat6f1678717839.png", + "intHomeScore": "0", + "intAwayScore": "1", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "FT", + "strProgress": "90", + "strEventTime": "00:30", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 02:22:23" + }, + { + "idLiveScore": "29573091", + "idEvent": "2404558", + "strSport": "Soccer", + "idLeague": "5075", + "strLeague": "Jamaican Premier League", + "idHomeTeam": "139116", + "idAwayTeam": "144757", + "strHomeTeam": "Waterhouse", + "strAwayTeam": "Montego Bay United", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/a3feu21582145219.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/xmp5y51726276300.png", + "intHomeScore": "1", + "intAwayScore": "0", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "FT", + "strProgress": "90", + "strEventTime": "00:30", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 02:31:23" + }, + { + "idLiveScore": "29573226", + "idEvent": "2429251", + "strSport": "Soccer", + "idLeague": "4686", + "strLeague": "Ecuadorian Serie A", + "idHomeTeam": "138231", + "idAwayTeam": "140792", + "strHomeTeam": "Orense", + "strAwayTeam": "Manta", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/0pishb1734023740.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/mwnqej1614891525.png", + "intHomeScore": "1", + "intAwayScore": "1", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "FT", + "strProgress": "90", + "strEventTime": "00:30", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 02:32:23" + }, + { + "idLiveScore": "29577082", + "idEvent": "2390578", + "strSport": "Soccer", + "idLeague": "4815", + "strLeague": "Costa-Rica Liga FPD", + "idHomeTeam": "140122", + "idAwayTeam": "139707", + "strHomeTeam": "Sporting San Jose", + "strAwayTeam": "P\u00e9rez Zeled\u00f3n", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/7wzxlo1606770023.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/rbsepr1589122379.png", + "intHomeScore": "3", + "intAwayScore": "2", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "FT", + "strProgress": "90", + "strEventTime": "01:00", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 03:01:24" + }, + { + "idLiveScore": "29580120", + "idEvent": "2421648", + "strSport": "Soccer", + "idLeague": "4819", + "strLeague": "Panama Liga Panamena de Futbol", + "idHomeTeam": "139738", + "idAwayTeam": "145086", + "strHomeTeam": "Deportivo \u00c1rabe Unido", + "strAwayTeam": "Veraguas United", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/lkhkf11589297941.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/zwx9x51649354013.png", + "intHomeScore": "2", + "intAwayScore": "3", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "FT", + "strProgress": "90", + "strEventTime": "01:30", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 03:24:23" + }, + { + "idLiveScore": "29580513", + "idEvent": "2414954", + "strSport": "Soccer", + "idLeague": "4497", + "strLeague": "Colombia Categor\u00eda Primera A", + "idHomeTeam": "137611", + "idAwayTeam": "137604", + "strHomeTeam": "Deportivo Pasto", + "strAwayTeam": "Am\u00e9rica de Cali", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/zlmyh31576159327.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/lwxcn71576156105.png", + "intHomeScore": "2", + "intAwayScore": "0", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "FT", + "strProgress": "90", + "strEventTime": "01:30", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 03:27:23" + }, + { + "idLiveScore": "29580904", + "idEvent": "2422431", + "strSport": "Soccer", + "idLeague": "4688", + "strLeague": "Peruvian Primera Division", + "idHomeTeam": "138311", + "idAwayTeam": "138323", + "strHomeTeam": "Alianza Lima", + "strAwayTeam": "Melgar", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/y5wov41580040189.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/0puqm41765861529.png", + "intHomeScore": "3", + "intAwayScore": "1", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "FT", + "strProgress": "90", + "strEventTime": "01:30", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 03:30:23" + }, + { + "idLiveScore": "29584000", + "idEvent": "2390575", + "strSport": "Soccer", + "idLeague": "4815", + "strLeague": "Costa-Rica Liga FPD", + "idHomeTeam": "147407", + "idAwayTeam": "139706", + "strHomeTeam": "Municipal Liberia", + "strAwayTeam": "Guadalupe", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/l26ju61687165399.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/vkt01e1606771982.png", + "intHomeScore": "1", + "intAwayScore": "0", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "FT", + "strProgress": "90", + "strEventTime": "02:00", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 03:54:23" + }, + { + "idLiveScore": "29637910", + "idEvent": "2427095", + "strSport": "Soccer", + "idLeague": "5179", + "strLeague": "Asian Cup Women", + "idHomeTeam": "136814", + "idAwayTeam": "144951", + "strHomeTeam": "Japan Women", + "strAwayTeam": "Vietnam Women", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/jlrg6s1760929323.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/81kjun1642445873.png", + "intHomeScore": "4", + "intAwayScore": "0", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "FT", + "strProgress": "90", + "strEventTime": "09:00", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 10:52:23" + }, + { + "idLiveScore": "29638966", + "idEvent": "2409781", + "strSport": "Soccer", + "idLeague": "5630", + "strLeague": "Myanmar National League", + "idHomeTeam": "151094", + "idAwayTeam": "139512", + "strHomeTeam": "Yadanarbon", + "strAwayTeam": "Yangon United", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/00bqi61739766200.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/4acusz1739764445.png", + "intHomeScore": "2", + "intAwayScore": "3", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "FT", + "strProgress": "90", + "strEventTime": "09:00", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 11:00:24" + }, + { + "idLiveScore": "29638967", + "idEvent": "2427096", + "strSport": "Soccer", + "idLeague": "5179", + "strLeague": "Asian Cup Women", + "idHomeTeam": "144946", + "idAwayTeam": "144948", + "strHomeTeam": "India Women", + "strAwayTeam": "Chinese Taipei Women", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/outmnn1760929034.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/zhisgs1760929236.png", + "intHomeScore": "1", + "intAwayScore": "3", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "FT", + "strProgress": "90", + "strEventTime": "09:00", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 11:00:24" + }, + { + "idLiveScore": "29645207", + "idEvent": "2285438", + "strSport": "Soccer", + "idLeague": "4676", + "strLeague": "Turkish 1 Lig", + "idHomeTeam": "138969", + "idAwayTeam": "138982", + "strHomeTeam": "Vanspor FK", + "strAwayTeam": "Adana Demirspor", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/imwcrs1679510336.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/hewt221626264325.png", + "intHomeScore": "1", + "intAwayScore": "0", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "2H", + "strProgress": "59", + "strEventTime": "10:30", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 11:48:23" + }, + { + "idLiveScore": "29645208", + "idEvent": "2435699", + "strSport": "Soccer", + "idLeague": "4719", + "strLeague": "AFC Champions League Elite", + "idHomeTeam": "139889", + "idAwayTeam": "138108", + "strHomeTeam": "Machida Zelvia", + "strAwayTeam": "Gangwon FC", + "strHomeTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/99zl6k1590070905.png", + "strAwayTeamBadge": "https://r2.thesportsdb.com/images/media/team/badge/c4igx71579729617.png", + "intHomeScore": "1", + "intAwayScore": "0", + "intEventScore": null, + "intEventScoreTotal": null, + "strStatus": "2H", + "strProgress": "89", + "strEventTime": "10:00", + "dateEvent": "2026-03-10", + "updated": "2026-03-10 11:48:23" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/09_v2_event_lineup_real.json b/docs/api_samples/sportsdb/09_v2_event_lineup_real.json new file mode 100644 index 0000000..53e5632 --- /dev/null +++ b/docs/api_samples/sportsdb/09_v2_event_lineup_real.json @@ -0,0 +1,403 @@ +{ + "lookup": [ + { + "idLineup": "864558", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Defender", + "strPositionShort": "D", + "strFormation": null, + "strHome": "Yes", + "strSubstitute": "No", + "intSquadNumber": "23", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/yv1fuq1766222423.png", + "idPlayer": "34145366", + "strPlayer": "Adedeji Oshilaja", + "idTeam": "134381", + "strTeam": "Mansfield", + "strCountry": "England", + "strSeason": "2025-2026" + }, + { + "idLineup": "864564", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Midfielder", + "strPositionShort": "M", + "strFormation": null, + "strHome": "Yes", + "strSubstitute": "No", + "intSquadNumber": "3", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/wigvjk1766222238.png", + "idPlayer": "34148796", + "strPlayer": "Stephen McLaughlin", + "idTeam": "134381", + "strTeam": "Mansfield", + "strCountry": "Ireland", + "strSeason": "2025-2026" + }, + { + "idLineup": "864573", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Left Wing", + "strPositionShort": "M", + "strFormation": null, + "strHome": "No", + "strSubstitute": "No", + "intSquadNumber": "19", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/07fzpg1769331977.png", + "idPlayer": "34153358", + "strPlayer": "Leandro Trossard", + "idTeam": "133604", + "strTeam": "Arsenal", + "strCountry": "Belgium", + "strSeason": "2025-2026" + }, + { + "idLineup": "864562", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Midfielder", + "strPositionShort": "M", + "strFormation": null, + "strHome": "Yes", + "strSubstitute": "No", + "intSquadNumber": "25", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/ethhbe1766223156.png", + "idPlayer": "34159025", + "strPlayer": "Louis Reed", + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strCountry": "England", + "strSeason": "2025-2026" + }, + { + "idLineup": "864567", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Goalkeeper", + "strPositionShort": "G", + "strFormation": null, + "strHome": "No", + "strSubstitute": "No", + "intSquadNumber": "13", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/mad9wz1768229982.png", + "idPlayer": "34160650", + "strPlayer": "Kepa Arrizabalaga", + "idTeam": "133604", + "strTeam": "Arsenal", + "strCountry": "Spain", + "strSeason": "2025-2026" + }, + { + "idLineup": "864576", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Centre-Forward", + "strPositionShort": "F", + "strFormation": null, + "strHome": "No", + "strSubstitute": "No", + "intSquadNumber": "9", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/rwsqi51769330458.png", + "idPlayer": "34160962", + "strPlayer": "Gabriel Jesus", + "idTeam": "133604", + "strTeam": "Arsenal", + "strCountry": "Brazil", + "strSeason": "2025-2026" + }, + { + "idLineup": "864560", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Centre-Forward", + "strPositionShort": "M", + "strFormation": null, + "strHome": "Yes", + "strSubstitute": "No", + "intSquadNumber": "7", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/04lwea1766222596.png", + "idPlayer": "34161076", + "strPlayer": "Lucas Akins", + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strCountry": "Grenada", + "strSeason": "2025-2026" + }, + { + "idLineup": "864566", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Centre-Forward", + "strPositionShort": "F", + "strFormation": null, + "strHome": "Yes", + "strSubstitute": "No", + "intSquadNumber": "29", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/2qalar1766222815.png", + "idPlayer": "34161977", + "strPlayer": "Tyler Roberts", + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strCountry": "Wales", + "strSeason": "2025-2026" + }, + { + "idLineup": "864557", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Defender", + "strPositionShort": "D", + "strFormation": null, + "strHome": "Yes", + "strSubstitute": "No", + "intSquadNumber": "2", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/u6shyg1766222184.png", + "idPlayer": "34161986", + "strPlayer": "Kyle Knoyle", + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strCountry": "England", + "strSeason": "2025-2026" + }, + { + "idLineup": "864556", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Goalkeeper", + "strPositionShort": "G", + "strFormation": null, + "strHome": "Yes", + "strSubstitute": "No", + "intSquadNumber": "1", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/s39b3t1766222085.png", + "idPlayer": "34162006", + "strPlayer": "Liam Roberts", + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strCountry": "England", + "strSeason": "2025-2026" + }, + { + "idLineup": "864565", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Forward", + "strPositionShort": "F", + "strFormation": null, + "strHome": "Yes", + "strSubstitute": "No", + "intSquadNumber": "18", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/rgjbgn1766222737.png", + "idPlayer": "34163692", + "strPlayer": "Rhys Oates", + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strCountry": "England", + "strSeason": "2025-2026" + }, + { + "idLineup": "864570", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Defensive Midfield", + "strPositionShort": "M", + "strFormation": null, + "strHome": "No", + "strSubstitute": "No", + "intSquadNumber": "16", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/ia9o8w1769331494.png", + "idPlayer": "34164499", + "strPlayer": "Christian N\u00f8rgaard", + "idTeam": "133604", + "strTeam": "Arsenal", + "strCountry": "Denmark", + "strSeason": "2025-2026" + }, + { + "idLineup": "864575", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Centre-Forward", + "strPositionShort": "F", + "strFormation": null, + "strHome": "No", + "strSubstitute": "No", + "intSquadNumber": "29", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/hem4r91694204364.png", + "idPlayer": "34169226", + "strPlayer": "Kai Havertz", + "idTeam": "133604", + "strTeam": "Arsenal", + "strCountry": "Germany", + "strSeason": "2025-2026" + }, + { + "idLineup": "864574", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Left Wing", + "strPositionShort": "M", + "strFormation": null, + "strHome": "No", + "strSubstitute": "No", + "intSquadNumber": "11", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/pnwfls1769331152.png", + "idPlayer": "34169883", + "strPlayer": "Gabriel Martinelli", + "idTeam": "133604", + "strTeam": "Arsenal", + "strCountry": "Brazil", + "strSeason": "2025-2026" + }, + { + "idLineup": "864571", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Right Winger", + "strPositionShort": "M", + "strFormation": null, + "strHome": "No", + "strSubstitute": "No", + "intSquadNumber": "20", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/0x05ou1769330933.png", + "idPlayer": "34170520", + "strPlayer": "Noni Madueke", + "idTeam": "133604", + "strTeam": "Arsenal", + "strCountry": "England", + "strSeason": "2025-2026" + }, + { + "idLineup": "864569", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Centre-Back", + "strPositionShort": "D", + "strFormation": null, + "strHome": "No", + "strSubstitute": "No", + "intSquadNumber": "33", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/e6icgz1769330125.png", + "idPlayer": "34175834", + "strPlayer": "Riccardo Calafiori", + "idTeam": "133604", + "strTeam": "Arsenal", + "strCountry": "Italy", + "strSeason": "2025-2026" + }, + { + "idLineup": "864561", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Midfielder", + "strPositionShort": "M", + "strFormation": null, + "strHome": "Yes", + "strSubstitute": "No", + "intSquadNumber": "13", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/f6h02p1759864169.png", + "idPlayer": "34177947", + "strPlayer": "Jonathan Russell", + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strCountry": "England", + "strSeason": "2025-2026" + }, + { + "idLineup": "864568", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Centre-Back", + "strPositionShort": "D", + "strFormation": null, + "strHome": "No", + "strSubstitute": "No", + "intSquadNumber": "3", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/mzik4g1769331540.png", + "idPlayer": "34194118", + "strPlayer": "Cristhian Mosquera", + "idTeam": "133604", + "strTeam": "Arsenal", + "strCountry": "Spain", + "strSeason": "2025-2026" + }, + { + "idLineup": "864563", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Defensive Midfield", + "strPositionShort": "M", + "strFormation": null, + "strHome": "Yes", + "strSubstitute": "No", + "intSquadNumber": "40", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/f7bh071766405710.png", + "idPlayer": "34219277", + "strPlayer": "George Abbott", + "idTeam": "134382", + "strTeam": "Wycombe Wanderers", + "strCountry": "England", + "strSeason": "2025-2026" + }, + { + "idLineup": "864559", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Defender", + "strPositionShort": "D", + "strFormation": null, + "strHome": "Yes", + "strSubstitute": "No", + "intSquadNumber": "20", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/m84oa11766222366.png", + "idPlayer": "34222234", + "strPlayer": "Frazer Blake-Tracy", + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strCountry": "England", + "strSeason": "2025-2026" + }, + { + "idLineup": "864572", + "idEvent": "2434724", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "strPosition": "Midfielder", + "strPositionShort": "M", + "strFormation": null, + "strHome": "No", + "strSubstitute": "No", + "intSquadNumber": "56", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/jzgrge1766827300.png", + "idPlayer": "34432407", + "strPlayer": "Max Dowman", + "idTeam": "133604", + "strTeam": "Arsenal", + "strCountry": "England", + "strSeason": "2025-2026" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/09_v2_event_stats_real.json b/docs/api_samples/sportsdb/09_v2_event_stats_real.json new file mode 100644 index 0000000..a397535 --- /dev/null +++ b/docs/api_samples/sportsdb/09_v2_event_stats_real.json @@ -0,0 +1,166 @@ +{ + "lookup": [ + { + "idStatistic": "526548", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Shots on Goal", + "intHome": "5", + "intAway": "8" + }, + { + "idStatistic": "526549", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Shots off Goal", + "intHome": "9", + "intAway": "6" + }, + { + "idStatistic": "526550", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Total Shots", + "intHome": "18", + "intAway": "19" + }, + { + "idStatistic": "526551", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Blocked Shots", + "intHome": "4", + "intAway": "5" + }, + { + "idStatistic": "526552", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Shots insidebox", + "intHome": "11", + "intAway": "17" + }, + { + "idStatistic": "526553", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Shots outsidebox", + "intHome": "7", + "intAway": "2" + }, + { + "idStatistic": "526554", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Fouls", + "intHome": "16", + "intAway": "6" + }, + { + "idStatistic": "526555", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Corner Kicks", + "intHome": "4", + "intAway": "8" + }, + { + "idStatistic": "526556", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Offsides", + "intHome": "1", + "intAway": "1" + }, + { + "idStatistic": "526557", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Ball Possession", + "intHome": "33", + "intAway": "67" + }, + { + "idStatistic": "526558", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Yellow Cards", + "intHome": "4", + "intAway": "2" + }, + { + "idStatistic": "526559", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Red Cards", + "intHome": "0", + "intAway": "0" + }, + { + "idStatistic": "526560", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Goalkeeper Saves", + "intHome": "5", + "intAway": "4" + }, + { + "idStatistic": "526561", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Total passes", + "intHome": "260", + "intAway": "544" + }, + { + "idStatistic": "526562", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Passes accurate", + "intHome": "191", + "intAway": "459" + }, + { + "idStatistic": "526563", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "Passes %", + "intHome": "73", + "intAway": "84" + }, + { + "idStatistic": "526564", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "expected_goals", + "intHome": "0", + "intAway": "0" + }, + { + "idStatistic": "526565", + "idEvent": "2434724", + "idApiFootball": "1523412", + "strEvent": "Mansfield Town vs Arsenal", + "strStat": "goals_prevented", + "intHome": "0", + "intAway": "0" + } + ] +} \ No newline at end of file diff --git a/docs/api_samples/sportsdb/09_v2_event_timeline_real.json b/docs/api_samples/sportsdb/09_v2_event_timeline_real.json new file mode 100644 index 0000000..cbde1ec --- /dev/null +++ b/docs/api_samples/sportsdb/09_v2_event_timeline_real.json @@ -0,0 +1,382 @@ +{ + "lookup": [ + { + "idTimeline": "1628218", + "idEvent": "2434724", + "strTimeline": "subst", + "strTimelineDetail": "Substitution 1", + "strHome": "No", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34153358", + "strPlayer": "Leandro Trossard", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/07fzpg1769331977.png", + "idAssist": "34182526", + "strAssist": "Piero Hincapi\u00e9", + "intTime": "38", + "strPeriod": null, + "idTeam": "133604", + "strTeam": "Arsenal", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628219", + "idEvent": "2434724", + "strTimeline": "Goal", + "strTimelineDetail": "Normal Goal", + "strHome": "No", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34170520", + "strPlayer": "Noni Madueke", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/0x05ou1769330933.png", + "idAssist": "34169883", + "strAssist": "Gabriel Martinelli", + "intTime": "41", + "strPeriod": null, + "idTeam": "133604", + "strTeam": "Arsenal", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628220", + "idEvent": "2434724", + "strTimeline": "subst", + "strTimelineDetail": "Substitution 1", + "strHome": "Yes", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34161977", + "strPlayer": "Tyler Roberts", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/2qalar1766222815.png", + "idAssist": "34217628", + "strAssist": "Will Evans", + "intTime": "46", + "strPeriod": null, + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628221", + "idEvent": "2434724", + "strTimeline": "Goal", + "strTimelineDetail": "Normal Goal", + "strHome": "Yes", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34217628", + "strPlayer": "Will Evans", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/cf9nlh1766222631.png", + "idAssist": "0", + "strAssist": "", + "intTime": "50", + "strPeriod": null, + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628222", + "idEvent": "2434724", + "strTimeline": "Card", + "strTimelineDetail": "Yellow Card", + "strHome": "Yes", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34159025", + "strPlayer": "Louis Reed", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/ethhbe1766223156.png", + "idAssist": "0", + "strAssist": "", + "intTime": "60", + "strPeriod": null, + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strComment": "Persistent fouling", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628223", + "idEvent": "2434724", + "strTimeline": "subst", + "strTimelineDetail": "Substitution 2", + "strHome": "Yes", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34219277", + "strPlayer": "George Abbott", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/f7bh071766405710.png", + "idAssist": "34217722", + "strAssist": "Aaron Lewis", + "intTime": "62", + "strPeriod": null, + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628224", + "idEvent": "2434724", + "strTimeline": "subst", + "strTimelineDetail": "Substitution 3", + "strHome": "No", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34169226", + "strPlayer": "Kai Havertz", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/hem4r91694204364.png", + "idAssist": "34172278", + "strAssist": "Eberechi Eze", + "intTime": "62", + "strPeriod": null, + "idTeam": "133604", + "strTeam": "Arsenal", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628225", + "idEvent": "2434724", + "strTimeline": "Goal", + "strTimelineDetail": "Normal Goal", + "strHome": "No", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34172278", + "strPlayer": "Eberechi Eze", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/jcabmd1769330240.png", + "idAssist": "34164499", + "strAssist": "Christian N\u00f8rgaard", + "intTime": "66", + "strPeriod": null, + "idTeam": "133604", + "strTeam": "Arsenal", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628226", + "idEvent": "2434724", + "strTimeline": "Card", + "strTimelineDetail": "Yellow Card", + "strHome": "No", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34175834", + "strPlayer": "Riccardo Calafiori", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/e6icgz1769330125.png", + "idAssist": "0", + "strAssist": "", + "intTime": "70", + "strPeriod": null, + "idTeam": "133604", + "strTeam": "Arsenal", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628227", + "idEvent": "2434724", + "strTimeline": "Card", + "strTimelineDetail": "Yellow Card", + "strHome": "No", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34172278", + "strPlayer": "Eberechi Eze", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/jcabmd1769330240.png", + "idAssist": "0", + "strAssist": "", + "intTime": "74", + "strPeriod": null, + "idTeam": "133604", + "strTeam": "Arsenal", + "strComment": "Argument", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628228", + "idEvent": "2434724", + "strTimeline": "subst", + "strTimelineDetail": "Substitution 4", + "strHome": "No", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34175834", + "strPlayer": "Riccardo Calafiori", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/e6icgz1769330125.png", + "idAssist": "34252280", + "strAssist": "Jaden Dixon", + "intTime": "76", + "strPeriod": null, + "idTeam": "133604", + "strTeam": "Arsenal", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628229", + "idEvent": "2434724", + "strTimeline": "Card", + "strTimelineDetail": "Yellow Card", + "strHome": "Yes", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34161076", + "strPlayer": "Lucas Akins", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/04lwea1766222596.png", + "idAssist": "0", + "strAssist": "", + "intTime": "77", + "strPeriod": null, + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strComment": "Foul", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628230", + "idEvent": "2434724", + "strTimeline": "subst", + "strTimelineDetail": "Substitution 5", + "strHome": "No", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34432407", + "strPlayer": "Max Dowman", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/jzgrge1766827300.png", + "idAssist": "34169884", + "strAssist": "Bukayo Saka", + "intTime": "77", + "strPeriod": null, + "idTeam": "133604", + "strTeam": "Arsenal", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628231", + "idEvent": "2434724", + "strTimeline": "Card", + "strTimelineDetail": "Yellow Card", + "strHome": "Yes", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34148796", + "strPlayer": "Stephen McLaughlin", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/wigvjk1766222238.png", + "idAssist": "0", + "strAssist": "", + "intTime": "80", + "strPeriod": null, + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strComment": "Simulation", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628232", + "idEvent": "2434724", + "strTimeline": "subst", + "strTimelineDetail": "Substitution 3", + "strHome": "Yes", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34163692", + "strPlayer": "Rhys Oates", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/rgjbgn1766222737.png", + "idAssist": "34158800", + "strAssist": "Victor Adeboyejo", + "intTime": "81", + "strPeriod": null, + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628233", + "idEvent": "2434724", + "strTimeline": "subst", + "strTimelineDetail": "Substitution 4", + "strHome": "Yes", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34148796", + "strPlayer": "Stephen McLaughlin", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/wigvjk1766222238.png", + "idAssist": "34301205", + "strAssist": "Oliver Irow", + "intTime": "81", + "strPeriod": null, + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628234", + "idEvent": "2434724", + "strTimeline": "subst", + "strTimelineDetail": "Substitution 5", + "strHome": "Yes", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34161986", + "strPlayer": "Kyle Knoyle", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/u6shyg1766222184.png", + "idAssist": "34147620", + "strAssist": "Elliott Hewitt", + "intTime": "87", + "strPeriod": null, + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strComment": "NULL", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + }, + { + "idTimeline": "1628235", + "idEvent": "2434724", + "strTimeline": "Card", + "strTimelineDetail": "Yellow Card", + "strHome": "Yes", + "strEvent": "Mansfield Town vs Arsenal", + "idAPIfootball": "1523412", + "idPlayer": "34217722", + "strPlayer": "Aaron Lewis", + "strCutout": "https://r2.thesportsdb.com/images/media/player/cutout/wwn1la1766222448.png", + "idAssist": "0", + "strAssist": "", + "intTime": "90", + "strPeriod": null, + "idTeam": "134381", + "strTeam": "Mansfield Town", + "strComment": "Foul", + "dateEvent": "2026-03-07", + "strSeason": "2025-2026" + } + ] +} \ No newline at end of file diff --git a/docs/rapidapi-football-api-reference.md b/docs/rapidapi-football-api-reference.md new file mode 100644 index 0000000..773cd17 --- /dev/null +++ b/docs/rapidapi-football-api-reference.md @@ -0,0 +1,260 @@ +# Free API Live Football Data — API Reference + +**Provider:** Sby Smart API (Creativesdev) on RapidAPI +**Base URL:** `https://free-api-live-football-data.p.rapidapi.com` + +## Authentication + +All requests require two headers: + +``` +x-rapidapi-host: free-api-live-football-data.p.rapidapi.com +x-rapidapi-key: YOUR_API_KEY +``` + +## Pricing + +| Plan | Price | Requests/Month | +|------|-------|----------------| +| Basic (Free) | $0 | 100 | +| Pro | $9.99/mo | 20,000 | +| Ultra | $19.99/mo | 200,000 | +| Mega | $49.99/mo | 500,000 | + +All plans include the same features/endpoints — only volume differs. + +--- + +## Key IDs + +- **leagueid** — League identifier (e.g., `42` for Premier League, `47` for another league). Use search or league list to find MLS ID. +- **teamid** — Team identifier (e.g., `8650`). Use team search or team list to find. +- **playerid** — Player identifier (e.g., `671529`). Use player search or squad list to find. +- **eventid** — Match/event identifier (e.g., `4621624`). Use fixtures or livescores to find. + +--- + +## Endpoints + +### Popular Leagues + +``` +GET /football-popular-leagues +``` + +### Countries + +``` +GET /football-get-all-countries +``` + +### Seasons + +``` +GET /football-league-all-seasons +``` + +--- + +### Livescores + +``` +GET /football-current-live +``` + +Returns all currently live matches worldwide with scores, status, and timing info. + +--- + +### Fixtures + +``` +GET /football-get-matches-by-date?date={YYYYMMDD} +GET /football-get-matches-by-date-and-league?date={YYYYMMDD} +GET /football-get-all-matches-by-league?leagueid={leagueid} +``` + +--- + +### Leagues + +``` +GET /football-get-all-leagues +GET /football-get-all-leagues-with-countries +GET /football-get-league-detail?leagueid={leagueid} +GET /football-get-league-logo?leagueid={leagueid} +``` + +--- + +### Teams + +``` +GET /football-get-list-all-team?leagueid={leagueid} +GET /football-get-list-home-team?leagueid={leagueid} +GET /football-get-list-away-team?leagueid={leagueid} +GET /football-league-team?teamid={teamid} +GET /football-team-logo?teamid={teamid} +``` + +--- + +### Players / Athletes / Squad + +``` +GET /football-get-list-player?teamid={teamid} +GET /football-get-player-detail?playerid={playerid} +GET /football-get-player-logo?playerid={playerid} +``` + +--- + +### Events / Matches + +``` +GET /football-get-match-detail?eventid={eventid} +GET /football-get-match-score?eventid={eventid} +GET /football-get-match-status?eventid={eventid} +GET /football-get-match-highlights?eventid={eventid} +GET /football-get-match-location?eventid={eventid} +GET /football-get-match-all-stats?eventid={eventid} +GET /football-get-match-firstHalf-stats?eventid={eventid} +GET /football-get-match-secondhalf-stats?eventid={eventid} +GET /football-get-match-referee?eventid={eventid} +``` + +--- + +### Odds + +``` +GET /football-event-odds?eventid={eventid}&countrycode={CC} +GET /football-get-match-oddspoll?eventid={eventid} +GET /football-get-match-odds-voteresult?eventid={eventid} +``` + +--- + +### Statistics + +``` +GET /football-get-match-event-all-stats?eventid={eventid} +GET /football-get-match-event-firstHalf-stats?eventid={eventid} +GET /football-get-match-event-secondhalf-stats?eventid={eventid} +``` + +--- + +### Lineups + +``` +GET /football-get-hometeam-lineup?eventid={eventid} +GET /football-get-awayteam-lineup?eventid={eventid} +``` + +--- + +### Head to Head + +``` +GET /football-get-head-to-head?eventid={eventid} +``` + +--- + +### Standings + +``` +GET /football-get-standing-all?leagueid={leagueid} +GET /football-get-standing-home?leagueid={leagueid} +GET /football-get-standing-away?leagueid={leagueid} +``` + +--- + +### Rounds + +``` +GET /football-get-all-rounds?leagueid={leagueid} +GET /football-get-rounds-detail?roundid={roundid} +GET /football-get-rounds-players?leagueid={leagueid} +``` + +--- + +### Trophies + +``` +GET /football-get-trophies-all-seasons?leagueid={leagueid} +GET /football-get-trophies-detail?leagueid={leagueid}&season={season} +``` + +Season format example: `2023/2024` (URL-encoded as `2023%2F2024`) + +--- + +### Top Players + +``` +GET /football-get-top-players-by-assists?leagueid={leagueid} +GET /football-get-top-players-by-goals?leagueid={leagueid} +GET /football-get-top-players-by-rating?leagueid={leagueid} +``` + +--- + +### Transfers + +``` +GET /football-get-all-transfers?page={page} +GET /football-get-top-transfers?page={page} +GET /football-get-market-value-transfers?page={page} +GET /football-get-league-transfers?leagueid={leagueid} +GET /football-get-team-contract-extension-transfers?teamid={teamid} +GET /football-get-team-players-in-transfers?teamid={teamid} +GET /football-get-team-players-out-transfers?teamid={teamid} +``` + +--- + +### News + +``` +GET /football-get-trendingnews +GET /football-get-league-news?leagueid={leagueid}&page={page} +GET /football-get-team-news?teamid={teamid}&page={page} +``` + +--- + +### Search + +``` +GET /football-all-search?search={query} +GET /football-teams-search?search={query} +GET /football-players-search?search={query} +GET /football-leagues-search?search={query} +GET /football-matches-search?search={query} +``` + +--- + +## Typical Workflow for MLS + +1. **Find MLS league ID:** `GET /football-leagues-search?search=mls` +2. **Get Toronto FC team ID:** `GET /football-teams-search?search=toronto` +3. **Get upcoming fixtures:** `GET /football-get-all-matches-by-league?leagueid={MLS_ID}` +4. **Get live scores:** `GET /football-current-live` (filter for MLS matches) +5. **Get match details:** `GET /football-get-match-detail?eventid={eventid}` +6. **Get lineups:** `GET /football-get-hometeam-lineup?eventid={eventid}` +7. **Get match stats:** `GET /football-get-match-all-stats?eventid={eventid}` +8. **Get standings:** `GET /football-get-standing-all?leagueid={MLS_ID}` + +--- + +## Notes + +- Data appears to be sourced from FotMob based on field naming conventions and ID patterns. +- No external documentation exists — this reference was compiled from the RapidAPI playground. +- Date format for fixtures: `YYYYMMDD` (e.g., `20241107`) +- The "Statistics" category endpoints overlap with the match stats endpoints under "Events/Matches" — they may return the same or differently structured data. Test both. diff --git a/docs/sportsdb_api_v1_reference.md b/docs/sportsdb_api_v1_reference.md new file mode 100644 index 0000000..456f27c --- /dev/null +++ b/docs/sportsdb_api_v1_reference.md @@ -0,0 +1,385 @@ +# TheSportsDB API V1 — Validated Reference + +**Validated on:** 2026-03-09 using free test key `3` +**Base URL:** `https://www.thesportsdb.com/api/v1/json/{key}` +**Auth:** Key embedded in URL path (free test key: `3`, premium: same Patreon key as V2) +**Source samples:** `docs/api_samples/sportsdb/` + +> **This document covers ONLY what was tested and confirmed with real API calls.** +> V2 endpoints are NOT covered — they require a premium key and have not been tested. + +--- + +## Free Key Limitations + +The free key (`3`) returns **limited results** (typically 5 rows for standings, returns wrong/random events for some lookups). The response **structure and field names** are valid regardless — only row count and relevance are affected. + +--- + +## Validated IDs + +| Entity | TheSportsDB ID | Notes | +|--------|----------------|-------| +| MLS | `4346` | Listed as "American Major League Soccer" | +| English Premier League | `4328` | "English Premier League" | +| Toronto FC | `134148` | Short: `TOR`, league: 4346 | +| Arsenal | `133604` | Short: `ARS`, league: 4328 | +| Federico Bernardeschi | `34148472` | Position: Winger | + +--- + +## Endpoints + +### 1. Search Teams + +``` +GET /searchteams.php?t={team_name} +``` + +**Tested with:** `Toronto FC`, `Arsenal` +**Response wrapper:** `{"teams": [...]}` +**Returns:** Array of matching team objects (1 exact match each) + +#### Validated fields (all values are strings or null): + +| Field | Example (TFC) | Example (Arsenal) | Notes | +|-------|---------------|-------------------|-------| +| `idTeam` | `"134148"` | `"133604"` | String, not int | +| `idESPN` | `null` | `"359"` | Nullable | +| `idAPIfootball` | `"1601"` | `"42"` | Cross-ref to API-Football | +| `intLoved` | `"2"` | `"9"` | String of int | +| `strTeam` | `"Toronto FC"` | `"Arsenal"` | Full name | +| `strTeamAlternate` | `""` | `"Arsenal Football Club, AFC, Arsenal FC"` | Comma-separated aliases | +| `strTeamShort` | `"TOR"` | `"ARS"` | 3-letter code | +| `intFormedYear` | `"2006"` | `"1892"` | String of int | +| `strSport` | `"Soccer"` | `"Soccer"` | | +| `strLeague` | `"American Major League Soccer"` | `"English Premier League"` | Primary league | +| `idLeague` | `"4346"` | `"4328"` | String of int | +| `strLeague2`..`strLeague7` | `"Leagues Cup"` | `"FA Cup"`, `"EFL Cup"`, etc. | Additional leagues/cups | +| `idLeague2`..`idLeague7` | `"5281"` | `"4482"`, `"4570"`, etc. | IDs for above | +| `strDivision` | `null` | `null` | | +| `idVenue` | `"16782"` | `"15528"` | String of int | +| `strStadium` | `"BMO Field"` | `"Emirates Stadium"` | | +| `strKeywords` | `""` | `"Gunners, Gooners"` | Nicknames | +| `strRSS` | `""` | `""` | | +| `strLocation` | `"Toronto, Ontario"` | `"Holloway, London, England"` | | +| `intStadiumCapacity` | `"30991"` | `"60338"` | String of int | +| `strWebsite` | `"www.torontofc.ca"` | `"www.arsenal.com"` | No protocol | +| `strFacebook` | `"www.facebook.com/torontofc"` | `"www.facebook.com/Arsenal"` | | +| `strTwitter` | `"twitter.com/torontofc"` | `"twitter.com/arsenal"` | | +| `strInstagram` | `"www.instagram.com/torontofc"` | `"instagram.com/arsenal"` | | +| `strDescriptionEN` | Full paragraph | Full paragraph | English bio, `\r\n` separated | +| `strDescriptionDE`..`strDescriptionPL` | `null` or text | `null` or text | 14 language variants | +| `strColour1` | `"#B81137"` | `"#EF0107"` | Hex color | +| `strColour2` | `"#455560"` | `"#023474"` | | +| `strColour3` | `""` | `"#9C824A"` | May be empty | +| `strGender` | `"Male"` | `"Male"` | | +| `strCountry` | `"Canada"` | `"England"` | | +| `strBadge` | URL | URL | PNG badge | +| `strLogo` | URL | URL | PNG logo | +| `strFanart1`..`strFanart4` | URL or null | URL or null | Fan art images | +| `strBanner` | URL | URL | Banner image | +| `strEquipment` | URL | URL | Kit/equipment image | +| `strYoutube` | `"www.youtube.com/torontofc"` | `"www.youtube.com/ArsenalTour"` | | +| `strLocked` | `"unlocked"` | `"unlocked"` | | + +**Key observations:** +- ALL numeric values are returned as **strings** (e.g., `"134148"` not `134148`) +- Team can belong to up to 7 leagues/cups +- `idAPIfootball` provides cross-reference to API-Football IDs + +--- + +### 2. Lookup Team by ID + +``` +GET /lookupteam.php?id={idTeam} +``` + +**Tested with:** `134148` (Toronto FC) — but free key returned Arsenal instead (known free-key bug) +**Response wrapper:** `{"teams": [...]}` +**Fields:** Identical to search response above. + +**⚠ Free key pitfall:** Lookup by ID returned the wrong team (Arsenal instead of TFC). This is a free-key limitation, not a field-structure issue. The response shape is the same as search. + +--- + +### 3. Previous Team Events (Last Results) + +``` +GET /eventslast.php?id={idTeam} +``` + +**Tested with:** `134148` (Toronto FC) +**Response wrapper:** `{"results": [...]}` ← Note: key is `results`, NOT `events` +**Returns:** Last 5 results for the team (free key returned 1) + +#### Validated event fields: + +| Field | Example | Notes | +|-------|---------|-------| +| `idEvent` | `"2425216"` | String | +| `idAPIfootball` | `"1514800"` | Cross-ref, nullable | +| `strEvent` | `"Toronto FC vs Polissya Zhytomyr"` | Match title | +| `strEventAlternate` | `"Polissya Zhytomyr @ Toronto FC"` | Away @ Home format | +| `strFilename` | `"Club Friendlies 2026-02-14 Toronto FC vs Polissya Zhytomyr"` | League + date + teams | +| `strSport` | `"Soccer"` | | +| `idLeague` | `"4569"` | String — league of this match | +| `strLeague` | `"Club Friendlies"` | | +| `strLeagueBadge` | URL | League badge | +| `strSeason` | `"2026"` | or `"2025-2026"` for Euro leagues | +| `strDescriptionEN` | `""` | Match description (usually empty) | +| `strHomeTeam` | `"Toronto FC"` | | +| `strAwayTeam` | `"Polissya Zhytomyr"` | | +| `intHomeScore` | `"2"` | String of int, null if not played | +| `intAwayScore` | `"1"` | String of int, null if not played | +| `intRound` | `"0"` | String, `"0"` for friendlies | +| `intSpectators` | `null` | Nullable | +| `strOfficial` | `""` | Referee, often empty | +| `strTimestamp` | `"2026-02-14T09:45:00"` | ISO-ish, no timezone | +| `dateEvent` | `"2026-02-14"` | YYYY-MM-DD | +| `dateEventLocal` | `"2026-02-14"` | Local date | +| `strTime` | `"09:45:00"` | UTC time | +| `strTimeLocal` | `"04:45:00"` | Local time | +| `strGroup` | `""` | Group stage name, nullable | +| `idHomeTeam` | `"134148"` | String | +| `strHomeTeamBadge` | URL | Team badge | +| `idAwayTeam` | `"140180"` | String | +| `strAwayTeamBadge` | URL | Team badge | +| `intScore` | `null` | Aggregate/extra score? Always null in sample | +| `intScoreVotes` | `null` | Always null | +| `strResult` | `""` | Text result summary, empty | +| `idVenue` | `"16782"` | String | +| `strVenue` | `"BMO Field"` | | +| `strCountry` | `"Canada"` | | +| `strCity` | `""` | Often empty | +| `strPoster` | `""` | Image URLs, often empty | +| `strSquare` | `""` | | +| `strFanart` | `null` | | +| `strThumb` | `""` | | +| `strBanner` | `""` | | +| `strMap` | `null` | | +| `strTweet1` | `""` | | +| `strVideo` | `""` | Highlight video URL | +| `strStatus` | `"Match Finished"` | See status values below | +| `strPostponed` | `"no"` | `"no"` or `"yes"` | +| `strLocked` | `"unlocked"` | | + +**Known `strStatus` values:** `"Match Finished"`, `"Not Started"`, `null` (old events) + +--- + +### 4. Next Team Events (Upcoming) + +``` +GET /eventsnext.php?id={idTeam} +``` + +**Tested with:** `134148` (Toronto FC) +**Response wrapper:** `{"events": [...]}` ← Note: key is `events` (different from `eventslast`) +**Returns:** Next 5–15 upcoming events + +**Fields:** Identical to the event structure in section 3 above, except: +- `intHomeScore` / `intAwayScore` = `null` (not yet played) +- `strStatus` = `"Not Started"` +- `dateEventLocal` / `strTimeLocal` may be `null` +- `strThumb` may have a URL (match preview image) + +**⚠ Free key pitfall:** Free key returned Bolton Wanderers fixtures instead of Toronto FC fixtures. The event field structure is still valid. + +--- + +### 5. Event Lookup by ID + +``` +GET /lookupevent.php?id={idEvent} +``` + +**Tested with:** `2425216` +**Response wrapper:** `{"events": [...]}` +**Returns:** Single event in array + +**Fields:** Same event structure as section 3. All fields present. + +**⚠ Free key pitfall:** Free key returned a completely different event (Liverpool vs Swansea 2014 instead of TFC vs Polissya 2026). The field structure is still valid — the values are just wrong. + +--- + +### 6. Search Players + +``` +GET /searchplayers.php?p={player_name} +``` + +**Tested with:** `Bernardeschi` +**Response wrapper:** `{"player": [...]}` ← Note: key is `player`, singular +**Returns:** Array of matching players + +#### Validated fields: + +| Field | Example | Notes | +|-------|---------|-------| +| `idPlayer` | `"34148472"` | String | +| `idTeam` | `"134781"` | String | +| `strPlayer` | `"Federico Bernardeschi"` | Full name | +| `strTeam` | `"Bologna"` | Current team (may not match Toronto FC if transferred) | +| `strSport` | `"Soccer"` | | +| `strThumb` | URL | Player thumbnail | +| `strCutout` | URL | Player cutout image | +| `strNationality` | `"Italy"` | | +| `dateBorn` | `"1994-02-16"` | YYYY-MM-DD | +| `strStatus` | `"Active"` | `"Active"` or `"Retired"` | +| `strGender` | `"Male"` | | +| `strPosition` | `"Winger"` | | +| `relevance` | `"28.93..."` | Float as string, search relevance score | + +**Note:** V1 player search returns a **minimal** field set (13 fields). V2 `lookup/player/{id}` is expected to return full bio, height, weight, description, etc. — **not yet tested**. + +--- + +### 7. Standings / League Table + +``` +GET /lookuptable.php?l={idLeague}&s={season} +``` + +**Tested with:** `l=4328&s=2025-2026` (EPL), `l=4346&s=2026` (MLS) +**Response wrapper:** `{"table": [...]}` +**Returns:** Standings rows (free key: 5 rows; premium: full table) + +#### Validated fields: + +| Field | Example (EPL) | Example (MLS) | Notes | +|-------|---------------|---------------|-------| +| `idStanding` | `"8793837"` | `"8790287"` | String | +| `intRank` | `"1"` | `"1"` | String of int | +| `idTeam` | `"133604"` | `"150261"` | String | +| `strTeam` | `"Arsenal"` | `"San Diego FC"` | | +| `strBadge` | URL `/tiny` | URL `/tiny` | Tiny badge variant | +| `idLeague` | `"4328"` | `"4346"` | String | +| `strLeague` | `"English Premier League"` | `"American Major League Soccer"` | | +| `strSeason` | `"2025-2026"` | `"2026"` | Euro vs US format | +| `strForm` | `"WWWDD"` | `"WWW"` | Recent results W/D/L | +| `strDescription` | `"Promotion - Champions League..."` | `"Promotion - MLS (Play Offs...)"` | Qualification zone | +| `intPlayed` | `"30"` | `"3"` | String of int | +| `intWin` | `"20"` | `"3"` | | +| `intLoss` | `"3"` | `"0"` | | +| `intDraw` | `"7"` | `"0"` | | +| `intGoalsFor` | `"59"` | `"8"` | | +| `intGoalsAgainst` | `"22"` | `"0"` | | +| `intGoalDifference` | `"37"` | `"8"` | | +| `intPoints` | `"67"` | `"9"` | | +| `dateUpdated` | `"2026-03-09 06:01:21"` | `"2026-03-09 06:00:50"` | Last update timestamp | + +**Season format:** +- European leagues: `"2025-2026"` +- MLS / calendar-year leagues: `"2026"` + +**MLS standings note:** MLS has two conferences (East & West). The API returns **both mixed together** — ranks restart at `1` for each conference. There is no explicit conference field. You must use the rank patterns or `strDescription` to infer conference grouping. + +--- + +### 8. Events by Date + +``` +GET /eventsday.php?d={YYYY-MM-DD}&s=Soccer # all soccer events +GET /eventsday.php?d={YYYY-MM-DD}&l={idLeague} # filtered by league +``` + +**Tested with:** `d=2026-03-09&s=Soccer`, `d=2026-03-09&l=4346` +**Response wrapper:** `{"events": [...]}` or `{"events": null}` + +**Fields:** Same event structure as section 3. + +**Results:** +- Global soccer on 2026-03-09: Returned **1 event** (Melbourne Victory vs Western Sydney, from 2014) — free key returns stale/random data +- MLS on 2026-03-09: Returned `{"events": null}` — no matches or free key limitation + +**⚠ Free key:** Events-by-date is unreliable on free key. The field structure matches section 3 but the actual events returned are wrong/old. Premium key should return correct current-day events. + +--- + +## Response Patterns Summary + +| Endpoint | Wrapper Key | Null when empty | +|----------|-------------|-----------------| +| `searchteams.php` | `teams` | Unknown (always had results) | +| `lookupteam.php` | `teams` | Unknown | +| `eventslast.php` | `results` | Unknown | +| `eventsnext.php` | `events` | Unknown | +| `lookupevent.php` | `events` | Unknown | +| `searchplayers.php` | `player` | Unknown | +| `lookuptable.php` | `table` | Unknown | +| `eventsday.php` | `events` | **Yes** — returns `{"events": null}` | + +--- + +## Data Type Warning + +**All numeric fields are returned as strings.** Every `id*`, `int*`, and numeric value must be cast to `int` before use: + +```python +team_id = int(team["idTeam"]) # "134148" → 134148 +capacity = int(team["intStadiumCapacity"]) # "30991" → 30991 +``` + +--- + +## V1 Endpoints NOT Tested + +These V1 endpoints exist in the API but were not called during discovery: + +| Endpoint | Purpose | +|----------|---------| +| `searchevents.php` | Search events by name | +| `eventsnextleague.php` | Next events for a league | +| `eventspastleague.php` | Previous events for a league | +| `eventsseason.php` | All events in a season | +| `lookup_all_players.php` | Full squad (V1 version) | +| `lookupplayer.php` | Detailed player profile | +| `all_sports.php` | All sports (used only for health check) | +| `all_leagues.php` | All leagues | +| `search_all_leagues.php` | Search leagues | + +--- + +## V2 Endpoints — NOT TESTED (Premium Key Required) + +These are the V2 endpoints built into `nike/sportsdb.py` but **entirely untested**. All field names in the code are guessed from TheSportsDB OpenAPI docs and have NOT been validated against real responses. + +| Endpoint | Guessed wrapper key | What we don't know | +|----------|--------------------|--------------------| +| `GET /search/league/{name}` | `search` | Actual field names | +| `GET /search/team/{name}` | `search` | May differ from V1 | +| `GET /search/player/{name}` | `search` | May differ from V1 | +| `GET /lookup/event/{id}` | `lookup` or `events` | May have extra fields vs V1 | +| `GET /lookup/event_stats/{id}` | `lookup` | Field names like `strStat`, `intHome`, `intAway` are **guesses** | +| `GET /lookup/event_timeline/{id}` | `lookup` | Field names like `intTime`, `strTimeline`, `strPlayer` are **guesses** | +| `GET /lookup/event_lineup/{id}` | `lookup` | Fields like `intSquadNumber`, `strSubstitute`, `strHome` are **guesses** | +| `GET /lookup/player/{id}` | `lookup` or `players` | May have `strHeight`, `strWeight`, `strDescriptionEN` | +| `GET /lookup/player_contracts/{id}` | Unknown | Unknown | +| `GET /lookup/player_honours/{id}` | Unknown | Unknown | +| `GET /lookup/event_tv/{id}` | Unknown | Unknown | +| `GET /lookup/venue/{id}` | Unknown | Unknown | +| `GET /list/teams/{leagueId}` | `list` | Unknown | +| `GET /list/seasons/{leagueId}` | `list` | Unknown | +| `GET /list/players/{teamId}` | `list` | Field names for squad members unknown | +| `GET /schedule/next/league/{id}` | Unknown | Unknown | +| `GET /schedule/previous/league/{id}` | Unknown | Unknown | +| `GET /schedule/next/team/{id}` | Unknown | Unknown | +| `GET /schedule/previous/team/{id}` | Unknown | May match V1 `eventsnext` or differ | +| `GET /schedule/full/team/{id}` | Unknown | Unknown | +| `GET /schedule/league/{id}/{season}` | Unknown | Unknown | +| `GET /livescore/soccer` | `livescore` | All field names **guessed** | + +--- + +## Next Steps (After Getting Premium Key) + +1. Set `SPORTSDB_KEY=your_key` in `.env` +2. Run `python scripts/discover_sportsdb.py` — it auto-detects premium and tests all V2 endpoints +3. Review saved JSON files in `docs/api_samples/sportsdb/` +4. Update this document with V2 validated fields +5. Fix `sportsdb.py` client if any URL paths or wrapper keys are wrong +6. Design `schema.sql` from real field names (current schema is drafted from guesses) +7. Fix `server.py` tool formatters to use actual field names diff --git a/docs/sportsdb_api_v2_reference.md b/docs/sportsdb_api_v2_reference.md new file mode 100644 index 0000000..0d4a4ab --- /dev/null +++ b/docs/sportsdb_api_v2_reference.md @@ -0,0 +1,308 @@ +# TheSportsDB API V2 — Validated Field Reference + +> **All fields below are validated against real API responses** from discovery +> runs with a premium key ($9/mo Patreon). Last validated: 2026-03-10. + +## Authentication + +- **V2**: `X-API-KEY` header +- **V1**: Key in URL path: `/api/v1/json/{key}/...` +- Same premium key works for both + +## V2 Base URL + +``` +https://www.thesportsdb.com/api/v2/json +``` + +--- + +## Endpoints & Response Schemas + +### Search Leagues — `/search/league/{name}` +Wrapper key: `search` + +| Field | Type | Example | +|-------|------|---------| +| `idLeague` | string | `"5279"` | +| `strLeague` | string | `"MLS Next Pro"` | +| `strSport` | string | `"Soccer"` | +| `strBadge` | string/null | URL | +| `strCountry` | string | `"United States"` | +| `strCurrentSeason` | string | `"2026"` | +| `strGender` | string | `"Male"` | + +> ⚠️ V2 league search is unreliable — "MLS" returns "MLS Next Pro" (ID 5279), +> not "American Major League Soccer" (ID 4346). Use V1 team search + `idLeague` +> field as the authoritative source for league IDs. + +--- + +### Schedule (Next/Previous) — `/schedule/{next|previous}/team/{teamId}` +Wrapper key: `schedule` + +| Field | Type | Example | +|-------|------|---------| +| `idEvent` | string | `"2406751"` | +| `strEvent` | string | `"FC Cincinnati vs Toronto FC"` | +| `idLeague` | string | `"4346"` | +| `strLeague` | string | `"American Major League Soccer"` | +| `strSport` | string | `"Soccer"` | +| `strHomeTeam` | string | `"FC Cincinnati"` | +| `strAwayTeam` | string | `"Toronto FC"` | +| `idHomeTeam` | string | `"136688"` | +| `idAwayTeam` | string | `"134148"` | +| `intRound` | string | `"3"` | +| `intHomeScore` | string/null | `"0"` | +| `intAwayScore` | string/null | `"1"` | +| `strTimestamp` | string | `"2026-03-08T23:00:00"` | +| `dateEvent` | string | `"2026-03-08"` | +| `dateEventLocal` | string | `"2026-03-08"` | +| `strTime` | string | `"23:00:00"` | +| `strTimeLocal` | string | `"18:00:00"` | +| `strHomeTeamBadge` | string | URL | +| `strAwayTeamBadge` | string | URL | +| `strVenue` | string | `"TQL Stadium"` | +| `strCountry` | string | `"United States"` | +| `strThumb` | string/null | URL | +| `strPoster` | string/null | URL | +| `strVideo` | string/null | YouTube URL | +| `strPostponed` | string | `"no"` | +| `strFilename` | string | descriptive filename | +| `strStatus` | string | `"Match Finished"` / `"Not Started"` | + +--- + +### Event Lookup — `/lookup/event/{eventId}` +Wrapper key: `lookup` + +All schedule fields plus: + +| Field | Type | Example | +|-------|------|---------| +| `idAPIfootball` | string | `"1490149"` | +| `strEventAlternate` | string | `"Toronto FC @ FC Cincinnati"` | +| `strFilename` | string | descriptive | +| `strLeagueBadge` | string | URL | +| `strSeason` | string | `"2026"` | +| `strDescriptionEN` | string | `""` | +| `intSpectators` | null/string | `null` | +| `strOfficial` | string | referee name | +| `strGroup` | string | `""` | +| `intScore` | null | | +| `intScoreVotes` | null | | +| `strResult` | string | `""` | +| `idVenue` | string | `"20820"` | +| `strCity` | string | `""` | +| `strSquare` | string/null | URL | +| `strFanart` | string/null | URL | +| `strBanner` | string/null | URL | +| `strMap` | string/null | | +| `strTweet1` | string | `""` | +| `strLocked` | string | `"unlocked"` | + +--- + +### Event Stats — `/lookup/event_stats/{eventId}` +Wrapper key: `lookup` + +| Field | Type | Example | +|-------|------|---------| +| `idStatistic` | string | `"526548"` | +| `idEvent` | string | `"2434724"` | +| `idApiFootball` | string | `"1523412"` | +| `strEvent` | string | `"Mansfield Town vs Arsenal"` | +| `strStat` | string | `"Shots on Goal"` | +| `intHome` | string | `"5"` | +| `intAway` | string | `"8"` | + +Known `strStat` values: `Shots on Goal`, `Shots off Goal`, `Total Shots`, +`Blocked Shots`, `Shots insidebox`, `Shots outsidebox`, `Fouls`, +`Corner Kicks`, `Offsides`, `Ball Possession`, `Yellow Cards`, `Red Cards`, +`Goalkeeper Saves`, `Total passes`, `Passes accurate`, `Passes %`, +`expected_goals`, `goals_prevented`. + +> ⚠️ Not all matches have stats. MLS and smaller leagues may return +> `{"Message": "No data found"}`. + +--- + +### Event Timeline — `/lookup/event_timeline/{eventId}` +Wrapper key: `lookup` + +| Field | Type | Example | +|-------|------|---------| +| `idTimeline` | string | `"1628218"` | +| `idEvent` | string | `"2434724"` | +| `strTimeline` | string | `"subst"` / `"Goal"` / `"Yellow Card"` | +| `strTimelineDetail` | string | `"Substitution 1"` / `"Normal Goal"` | +| `strHome` | string | `"Yes"` / `"No"` | +| `strEvent` | string | `"Mansfield Town vs Arsenal"` | +| `idAPIfootball` | string | `"1523412"` | +| `idPlayer` | string | `"34153358"` | +| `strPlayer` | string | `"Leandro Trossard"` | +| `strCutout` | string/null | URL | +| `idAssist` | string/null | `"34182526"` | +| `strAssist` | string/null | `"Piero Hincapié"` | +| `intTime` | string | `"38"` | +| `strPeriod` | string/null | | +| `idTeam` | string | `"133604"` | +| `strTeam` | string | `"Arsenal"` | +| `strComment` | string | `"NULL"` (literal string, not null) | +| `dateEvent` | string | `"2026-03-07"` | +| `strSeason` | string | `"2025-2026"` | + +> ⚠️ `strComment` can be the literal string `"NULL"` — treat it as null. + +--- + +### Event Lineup — `/lookup/event_lineup/{eventId}` +Wrapper key: `lookup` + +| Field | Type | Example | +|-------|------|---------| +| `idLineup` | string | `"864558"` | +| `idEvent` | string | `"2434724"` | +| `strEvent` | string | `"Mansfield Town vs Arsenal"` | +| `idAPIfootball` | string | `"1523412"` | +| `strPosition` | string | `"Defender"` | +| `strPositionShort` | string | `"D"` / `"G"` / `"M"` / `"F"` | +| `strFormation` | string/null | | +| `strHome` | string | `"Yes"` / `"No"` | +| `strSubstitute` | string | `"Yes"` / `"No"` | +| `intSquadNumber` | string | `"23"` | +| `strCutout` | string/null | URL | +| `idPlayer` | string | `"34145366"` | +| `strPlayer` | string | `"Adedeji Oshilaja"` | +| `idTeam` | string | `"134381"` | +| `strTeam` | string | `"Mansfield"` | +| `strCountry` | string | `"England"` | +| `strSeason` | string | `"2025-2026"` | + +--- + +### Squad (Roster) — `/list/players/{teamId}` +Wrapper key: `list` + +| Field | Type | Example | +|-------|------|---------| +| `idPlayer` | string | `"34146036"` | +| `strPlayer` | string | `"Kevin Long"` | +| `idTeam` | string | `"134148"` | +| `strTeam` | string | `"Toronto FC"` | +| `strThumb` | string/null | URL | +| `strCutout` | string/null | URL | +| `strRender` | string/null | URL | +| `dateBorn` | string | `"1990-08-18"` | +| `strPosition` | string | `"Centre-Back"` | + +> ⚠️ Squad list does NOT include `strNumber`, `strNationality`, `strHeight`, +> `strWeight`. Use `/lookup/player/{id}` for the full profile. + +--- + +### Player Detail — `/lookup/player/{playerId}` +Wrapper key: `lookup` + +| Field | Type | Example | +|-------|------|---------| +| `idPlayer` | string | `"34146036"` | +| `idTeam` | string | `"134148"` | +| `idTeam2` | string | `"0"` | +| `idTeamNational` | string/null | | +| `idAPIfootball` | string | `"18915"` | +| `idPlayerManager` | string/null | | +| `idWikidata` | string | `"Q6396794"` | +| `idTransferMkt` | string | `"111114"` | +| `idESPN` | string | `"140531"` | +| `strNationality` | string | `"Ireland"` | +| `strPlayer` | string | `"Kevin Long"` | +| `strPlayerAlternate` | string | `""` | +| `strTeam` | string | `"Toronto FC"` | +| `strTeam2` | string | `""` | +| `strSport` | string | `"Soccer"` | +| `dateBorn` | string | `"1990-08-18"` | +| `dateDied` | null/string | | +| `strNumber` | string | `"5"` | +| `dateSigned` | string | `"2010-07-01"` | +| `strSigning` | string | | +| `strWage` | string | | +| `strBirthLocation` | string | `"Cork, Ireland"` | +| `strStatus` | string | `"Active"` | +| `strDescriptionEN` | string | biography | +| `strGender` | string | `"Male"` | +| `strSide` | string | `""` | +| `strPosition` | string | `"Centre-Back"` | +| `strHeight` | string | `"188 cm"` | +| `strWeight` | string | `"183 lbs"` | +| `intLoved` | string | `"0"` | +| `strThumb` | string/null | URL | +| `strCutout` | string/null | URL | +| `strRender` | string/null | URL | +| `strBanner` | string/null | URL | +| `strLastName` | string | `"Long"` | + +--- + +### Livescores — `/livescore/soccer` +Wrapper key: `livescore` + +| Field | Type | Example | +|-------|------|---------| +| `idLiveScore` | string | `"29571878"` | +| `idEvent` | string | `"2438107"` | +| `strSport` | string | `"Soccer"` | +| `idLeague` | string | `"4432"` | +| `strLeague` | string | `"Uruguayan Primera Division"` | +| `idHomeTeam` | string | `"136051"` | +| `idAwayTeam` | string | `"136052"` | +| `strHomeTeam` | string | `"Boston River"` | +| `strAwayTeam` | string | `"Liverpool Montevideo"` | +| `strHomeTeamBadge` | string | URL | +| `strAwayTeamBadge` | string | URL | +| `intHomeScore` | string | `"0"` | +| `intAwayScore` | string | `"1"` | +| `intEventScore` | null | | +| `intEventScoreTotal` | null | | +| `strStatus` | string | `"FT"` / `"1H"` / `"2H"` / `"HT"` | +| `strProgress` | string | `"90"` | +| `strEventTime` | string | `"00:30"` | +| `dateEvent` | string | `"2026-03-10"` | +| `updated` | string | `"2026-03-10 02:22:23"` | + +--- + +## V1 Endpoints (Supplementary) + +See [sportsdb_api_v1_reference.md](sportsdb_api_v1_reference.md) for full V1 +validated fields. Key V1-only endpoints: + +| Endpoint | Wrapper Key | Purpose | +|----------|-------------|---------| +| `/lookuptable.php?l=&s=` | `table` | League standings | +| `/eventsday.php?d=&s=` | `events` | Events by date | +| `/eventslast.php?id=` | `results` | Team's last 5 results | +| `/eventsnext.php?id=` | `events` | Team's next 5 fixtures | +| `/searchteams.php?t=` | `teams` | Team search | +| `/searchplayers.php?p=` | `player` | Player search | + +--- + +## Important Notes + +1. **All numeric values are strings** — always cast with `int()` or handle `None` +2. **All IDs are strings** — e.g. `"134148"` not `134148` +3. **`strComment` can be literal `"NULL"`** — not JSON null +4. **`strHome`/`strSubstitute` are `"Yes"`/`"No"`** — not booleans +5. **Wrapper keys differ by endpoint** — `search`, `lookup`, `list`, `schedule`, `livescore`, `table` +6. **Not all matches have stats/lineup/timeline** — smaller leagues return `{"Message": "No data found"}` +7. **League search is unreliable on V2** — use V1 team search to discover league IDs + +## Verified IDs + +| Entity | Name | TheSportsDB ID | +|--------|------|----------------| +| League | American Major League Soccer | 4346 | +| League | English Premier League | 4328 | +| Team | Toronto FC | 134148 | +| Team | Arsenal | 133604 | diff --git a/nike.service b/nike.service new file mode 100644 index 0000000..a8ec8a7 --- /dev/null +++ b/nike.service @@ -0,0 +1,17 @@ +[Unit] +Description=Nike Football Data Platform (MCP + Dashboard) +After=network.target + +[Service] +Type=simple +User=robert +WorkingDirectory=/home/robert/gitea/nike +ExecStart=/home/robert/gitea/nike/venv/bin/python run.py +Restart=on-failure +RestartSec=5 +StandardOutput=journal +StandardError=journal +SyslogIdentifier=nike + +[Install] +WantedBy=multi-user.target diff --git a/nike/.DS_Store b/nike/.DS_Store new file mode 100644 index 0000000..8d6a5d0 Binary files /dev/null and b/nike/.DS_Store differ diff --git a/nike/__init__.py b/nike/__init__.py new file mode 100644 index 0000000..4f8a136 --- /dev/null +++ b/nike/__init__.py @@ -0,0 +1 @@ +"""Nike football data platform.""" diff --git a/nike/api_football.py b/nike/api_football.py new file mode 100644 index 0000000..7fc8a8c --- /dev/null +++ b/nike/api_football.py @@ -0,0 +1,199 @@ +""" +API-Football v3 client (api-sports.io). + +Docs: https://www.api-football.com/documentation-v3 +Base: https://v3.football.api-sports.io +Auth: x-apisports-key header + +All v3 responses follow: {"response": [...], "results": N, "paging": {...}} +""" +import time + +import requests + +from nike import config + +_HEADERS = { + "x-apisports-key": config.API_FOOTBALL_KEY, +} + +_last_remaining: int | None = None + + +# ── Internal HTTP helper ────────────────────────────────── + +def _get(endpoint: str, params: dict | None = None, timeout: int = 15) -> dict: + """GET {BASE}/{endpoint}?{params}. Raises on non-2xx.""" + global _last_remaining + url = f"{config.API_FOOTBALL_BASE}/{endpoint}" + resp = requests.get(url, headers=_HEADERS, params=params, timeout=timeout) + resp.raise_for_status() + _last_remaining = resp.headers.get("x-ratelimit-requests-remaining") + data = resp.json() + # v3 reports errors in the body, not via HTTP status + errors = data.get("errors") + if errors and isinstance(errors, dict) and errors: + raise RuntimeError(f"API-Football error: {errors}") + return data + + +def _response(data: dict) -> list: + """Extract the 'response' list from a v3 envelope.""" + r = data.get("response", []) + return r if isinstance(r, list) else [] + + +# ── Connectivity ────────────────────────────────────────── + +def check_connection() -> dict: + """Quick connectivity + quota probe via /status.""" + try: + t0 = time.time() + data = _get("status", timeout=8) + latency_ms = round((time.time() - t0) * 1000, 1) + acct = data.get("response", {}).get("requests", {}) + remaining = acct.get("limit_day", 100) - acct.get("current", 0) + return { + "connected": True, + "latency_ms": latency_ms, + "quota_remaining": remaining, + "quota_limit": acct.get("limit_day", 100), + } + except Exception as e: + return {"connected": False, "latency_ms": None, + "quota_remaining": None, "quota_limit": 100, "error": str(e)} + + +# ── Teams ───────────────────────────────────────────────── + +def search_teams(name: str) -> list[dict]: + """ + GET /teams?search= + Response items: {"team": {...}, "venue": {...}} + """ + data = _get("teams", {"search": name}) + return _response(data) + + +def get_teams_by_league(league_id: int, season: int = 2025) -> list[dict]: + """ + GET /teams?league=&season= + """ + data = _get("teams", {"league": league_id, "season": season}) + return _response(data) + + +# ── Squad / Players ─────────────────────────────────────── + +def get_squad(team_id: int) -> list[dict]: + """ + GET /players/squads?team= + Response: [{"team": {...}, "players": [{id, name, number, position, photo}, ...]}] + + Returns flat list of player dicts. + """ + data = _get("players/squads", {"team": team_id}) + rows = _response(data) + if not rows: + return [] + # First item contains the squad + return rows[0].get("players", []) + + +def get_player_detail(player_id: int, season: int = 2025) -> dict: + """ + GET /players?id=&season= + """ + data = _get("players", {"id": player_id, "season": season}) + rows = _response(data) + return rows[0] if rows else {} + + +# ── Fixtures ────────────────────────────────────────────── + +def get_fixtures(team_id: int, season: int, league_id: int) -> list[dict]: + """ + GET /fixtures?team=&season=&league= + Response items: + {"fixture": {...}, "league": {...}, "teams": {...}, "goals": {...}, ...} + """ + data = _get("fixtures", { + "team": team_id, + "season": season, + "league": league_id, + }) + return _response(data) + + +# ── Standings ───────────────────────────────────────────── + +def get_standings(league_id: int, season: int) -> list[dict]: + """ + GET /standings?league=&season= + Response: [{"league": {"standings": [[{...}, ...]]}}] + + Returns flat list of standing rows. + """ + data = _get("standings", {"league": league_id, "season": season}) + rows = _response(data) + if not rows: + return [] + # Nested: response[0].league.standings is a list-of-lists (conference groups) + league_data = rows[0].get("league", {}) + standings = league_data.get("standings", []) + # Flatten groups + flat: list[dict] = [] + for group in standings: + if isinstance(group, list): + flat.extend(group) + elif isinstance(group, dict): + flat.append(group) + return flat + + +# ── Player season stats ─────────────────────────────────── + +def get_player_stats(player_id: int, season: int, league_id: int) -> list[dict]: + """ + GET /players?id=&season=&league= + """ + data = _get("players", { + "id": player_id, + "season": season, + "league": league_id, + }) + return _response(data) + + +# ── Live fixtures ───────────────────────────────────────── + +def get_live_fixtures(team_id: int) -> list[dict]: + """ + GET /fixtures?live=all&team= + """ + try: + data = _get("fixtures", {"live": "all", "team": team_id}, timeout=10) + return _response(data) + except Exception: + return [] + + +# ── Match score ─────────────────────────────────────────── + +def get_match_score(fixture_id: int) -> dict: + """ + GET /fixtures?id= + """ + data = _get("fixtures", {"id": fixture_id}) + rows = _response(data) + return rows[0] if rows else {} + + +# ── Utility ─────────────────────────────────────────────── + +def last_quota_remaining() -> int | None: + """Last known remaining daily quota from response headers.""" + try: + return int(_last_remaining) if _last_remaining is not None else None + except (ValueError, TypeError): + return None diff --git a/nike/config.py b/nike/config.py new file mode 100644 index 0000000..df859b5 --- /dev/null +++ b/nike/config.py @@ -0,0 +1,38 @@ +"""Centralised configuration loaded from .env.""" +import os +from pathlib import Path + +from dotenv import load_dotenv + +# Always load from project root regardless of working directory +_ENV_PATH = Path(__file__).resolve().parent.parent / '.env' +load_dotenv(_ENV_PATH) + +# ── Database ────────────────────────────────────────────── +DB_HOST = os.getenv('DB_HOST', 'portia.incus') +DB_PORT = int(os.getenv('DB_PORT', 5432)) +DB_USER = os.getenv('DB_USER', 'nike') +DB_PASSWORD = os.getenv('DB_PASSWORD', '') +DB_NAME = os.getenv('DB_NAME', 'nike') + +# ── TheSportsDB ─────────────────────────────────────────── +SPORTSDB_KEY = os.getenv('SPORTSDB_KEY', '3') # '3' = free test key +SPORTSDB_V2 = "https://www.thesportsdb.com/api/v2/json" +SPORTSDB_V1 = f"https://www.thesportsdb.com/api/v1/json/{SPORTSDB_KEY}" + +# ── Followed teams (team_name:league_name, ...) ────────── +_raw_teams = os.getenv('NIKE_TEAMS', 'Toronto FC:MLS, Arsenal:Premier League') +FOLLOWED_TEAMS = [ + tuple(pair.strip().split(':', 1)) + for pair in _raw_teams.split(',') + if ':' in pair +] + +# ── Legacy API keys (preserved, not active) ─────────────── +RAPIDAPI_KEY = os.getenv('RAPIDAPI_KEY', '') +API_FOOTBALL_KEY = os.getenv('API_FOOTBALL_KEY', '') + +# ── Server ──────────────────────────────────────────────── +SERVER_HOST = os.getenv('NIKE_HOST', '0.0.0.0') +SERVER_PORT = int(os.getenv('NIKE_PORT', 8000)) +SERVER_NAME = "Nike — Football Data Platform" diff --git a/nike/db.py b/nike/db.py new file mode 100644 index 0000000..9b31892 --- /dev/null +++ b/nike/db.py @@ -0,0 +1,686 @@ +""" +Database connection pool and cache helpers for the TheSportsDB cache layer. + +Pool lifecycle (create_pool/close_pool/get_conn) is unchanged. +Query helpers are rewritten for the new schema (schema.sql). + +Caching strategy: + - cache_team/cache_league/cache_event/cache_players: upsert into DB + - query_* helpers: read from cache + - cache_meta: TTL-aware freshness checks for volatile data +""" +import json +import time +from contextlib import contextmanager +from datetime import datetime, timezone +from typing import Any + +import psycopg2 +import psycopg2.pool +import psycopg2.extras + +from nike import config + +_pool: psycopg2.pool.ThreadedConnectionPool | None = None + + +# ══════════════════════════════════════════════════════════ +# Pool lifecycle +# ══════════════════════════════════════════════════════════ + +def create_pool(minconn: int = 2, maxconn: int = 10) -> None: + """Initialise the global connection pool.""" + global _pool + _pool = psycopg2.pool.ThreadedConnectionPool( + minconn, maxconn, + host=config.DB_HOST, + port=config.DB_PORT, + user=config.DB_USER, + password=config.DB_PASSWORD, + dbname=config.DB_NAME, + connect_timeout=5, + ) + + +def close_pool() -> None: + """Close all connections in the pool.""" + global _pool + if _pool: + _pool.closeall() + _pool = None + + +@contextmanager +def get_conn(): + """Context-manager that checks out / returns a pooled connection.""" + if _pool is None: + raise RuntimeError("DB pool not initialised — call create_pool() first") + conn = _pool.getconn() + try: + yield conn + conn.commit() + except Exception: + conn.rollback() + raise + finally: + _pool.putconn(conn) + + +# ══════════════════════════════════════════════════════════ +# Health & diagnostics +# ══════════════════════════════════════════════════════════ + +def check_connection() -> dict: + """Return dict with connected bool, latency_ms, and pg_version.""" + try: + t0 = time.time() + conn = psycopg2.connect( + host=config.DB_HOST, port=config.DB_PORT, + user=config.DB_USER, password=config.DB_PASSWORD, + dbname=config.DB_NAME, connect_timeout=5, + ) + latency_ms = round((time.time() - t0) * 1000, 1) + cur = conn.cursor() + cur.execute("SELECT version();") + version = cur.fetchone()[0].split(',')[0] + cur.close() + conn.close() + return {"connected": True, "latency_ms": latency_ms, "version": version} + except Exception as e: + return {"connected": False, "latency_ms": None, "version": None, "error": str(e)} + + +def get_table_counts() -> dict[str, int]: + """Return row counts for all cache tables.""" + tables = [ + 'leagues', 'teams', 'players', 'events', + 'event_stats', 'event_lineup', 'event_timeline', 'cache_meta', + ] + counts = {} + try: + with get_conn() as conn: + cur = conn.cursor() + for t in tables: + try: + cur.execute(f"SELECT COUNT(*) FROM {t}") + counts[t] = cur.fetchone()[0] + except psycopg2.errors.UndefinedTable: + conn.rollback() + counts[t] = -1 + cur.close() + except Exception: + counts = {t: -1 for t in tables} + return counts + + +def get_last_cache_time() -> str | None: + """Return the most recent updated_at across cached tables.""" + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute(""" + SELECT MAX(latest) FROM ( + SELECT MAX(updated_at) AS latest FROM teams + UNION ALL + SELECT MAX(updated_at) FROM events + UNION ALL + SELECT MAX(updated_at) FROM players + ) sub + """) + row = cur.fetchone() + cur.close() + return row[0].isoformat() if row and row[0] else None + except Exception: + return None + + +# ══════════════════════════════════════════════════════════ +# Row helpers +# ══════════════════════════════════════════════════════════ + +def _rows_as_dicts(cur) -> list[dict]: + cols = [d[0] for d in cur.description] + return [dict(zip(cols, row)) for row in cur.fetchall()] + + +def _safe_int(val) -> int | None: + """Convert string/int to int, return None on failure.""" + if val is None: + return None + try: + return int(val) + except (ValueError, TypeError): + return None + + +# ══════════════════════════════════════════════════════════ +# Cache meta (TTL-aware freshness for volatile data) +# ══════════════════════════════════════════════════════════ + +def is_cache_fresh(cache_key: str) -> bool: + """Check if a cache entry exists and hasn't expired.""" + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute(""" + SELECT fetched_at, ttl_seconds FROM cache_meta + WHERE cache_key = %s + """, (cache_key,)) + row = cur.fetchone() + cur.close() + if not row: + return False + fetched_at, ttl = row + if fetched_at.tzinfo is None: + fetched_at = fetched_at.replace(tzinfo=timezone.utc) + age_s = (datetime.now(timezone.utc) - fetched_at).total_seconds() + return age_s < ttl + except Exception: + return False + + +def get_cached_json(cache_key: str) -> Any | None: + """Return cached JSON data if fresh, else None.""" + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute(""" + SELECT fetched_at, ttl_seconds, data_json FROM cache_meta + WHERE cache_key = %s + """, (cache_key,)) + row = cur.fetchone() + cur.close() + if not row: + return None + fetched_at, ttl, data = row + if fetched_at.tzinfo is None: + fetched_at = fetched_at.replace(tzinfo=timezone.utc) + age_s = (datetime.now(timezone.utc) - fetched_at).total_seconds() + if age_s >= ttl: + return None + return data + except Exception: + return None + + +def set_cache_meta(cache_key: str, ttl_seconds: int = 3600, + data: Any = None) -> None: + """Insert or update a cache freshness marker.""" + try: + with get_conn() as conn: + cur = conn.cursor() + data_json = json.dumps(data, default=str) if data is not None else None + cur.execute(""" + INSERT INTO cache_meta (cache_key, fetched_at, ttl_seconds, data_json) + VALUES (%s, NOW(), %s, %s) + ON CONFLICT (cache_key) DO UPDATE + SET fetched_at = NOW(), ttl_seconds = %s, data_json = %s + """, (cache_key, ttl_seconds, data_json, ttl_seconds, data_json)) + cur.close() + except Exception: + pass + + +def invalidate_cache(pattern: str = "%") -> int: + """Delete cache_meta entries matching a LIKE pattern. Returns count.""" + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute("DELETE FROM cache_meta WHERE cache_key LIKE %s", (pattern,)) + count = cur.rowcount + cur.close() + return count + except Exception: + return 0 + + +# ══════════════════════════════════════════════════════════ +# Cache writers (upsert from API responses) +# ══════════════════════════════════════════════════════════ + +def cache_league(league: dict) -> None: + """Upsert a league from TheSportsDB search/lookup response.""" + lid = _safe_int(league.get("idLeague")) + if not lid: + return + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute(""" + INSERT INTO leagues (id, name, sport, country, badge_url, + banner_url, description) + VALUES (%s, %s, %s, %s, %s, %s, %s) + ON CONFLICT (id) DO UPDATE SET + name = EXCLUDED.name, + sport = EXCLUDED.sport, + country = EXCLUDED.country, + badge_url = EXCLUDED.badge_url, + banner_url = EXCLUDED.banner_url, + description = EXCLUDED.description, + updated_at = NOW() + """, ( + lid, + league.get("strLeague"), + league.get("strSport", "Soccer"), + league.get("strCountry"), + league.get("strBadge"), + league.get("strBanner"), + league.get("strDescriptionEN"), + )) + cur.close() + except Exception: + pass + + +def cache_team(team: dict) -> None: + """Upsert a team from TheSportsDB search/lookup response.""" + tid = _safe_int(team.get("idTeam")) + if not tid: + return + lid = _safe_int(team.get("idLeague")) + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute(""" + INSERT INTO teams (id, name, short_name, alternate_name, league_id, + league_name, formed_year, sport, country, stadium, + stadium_capacity, location, venue_id, badge_url, logo_url, + banner_url, equipment_url, colour1, colour2, colour3, + website, description) + VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON CONFLICT (id) DO UPDATE SET + name = EXCLUDED.name, + short_name = EXCLUDED.short_name, + alternate_name = EXCLUDED.alternate_name, + league_id = EXCLUDED.league_id, + league_name = EXCLUDED.league_name, + formed_year = EXCLUDED.formed_year, + country = EXCLUDED.country, + stadium = EXCLUDED.stadium, + stadium_capacity = EXCLUDED.stadium_capacity, + location = EXCLUDED.location, + venue_id = EXCLUDED.venue_id, + badge_url = EXCLUDED.badge_url, + logo_url = EXCLUDED.logo_url, + banner_url = EXCLUDED.banner_url, + equipment_url = EXCLUDED.equipment_url, + colour1 = EXCLUDED.colour1, + colour2 = EXCLUDED.colour2, + colour3 = EXCLUDED.colour3, + website = EXCLUDED.website, + description = EXCLUDED.description, + updated_at = NOW() + """, ( + tid, + team.get("strTeam"), + team.get("strTeamShort"), + team.get("strTeamAlternate"), + lid, + team.get("strLeague"), + _safe_int(team.get("intFormedYear")), + team.get("strSport", "Soccer"), + team.get("strCountry"), + team.get("strStadium"), + _safe_int(team.get("intStadiumCapacity")), + team.get("strLocation"), + _safe_int(team.get("idVenue")), + team.get("strBadge"), + team.get("strLogo"), + team.get("strBanner"), + team.get("strEquipment"), + team.get("strColour1"), + team.get("strColour2"), + team.get("strColour3"), + team.get("strWebsite"), + team.get("strDescriptionEN"), + )) + cur.close() + except Exception: + pass + + +def cache_player(player: dict) -> None: + """Upsert a player from TheSportsDB list/search/lookup response.""" + pid = _safe_int(player.get("idPlayer")) + if not pid: + return + tid = _safe_int(player.get("idTeam")) + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute(""" + INSERT INTO players (id, team_id, team_name, name, nationality, + date_of_birth, position, squad_number, height, weight, + gender, status, thumb_url, cutout_url, description) + VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON CONFLICT (id) DO UPDATE SET + team_id = EXCLUDED.team_id, + team_name = EXCLUDED.team_name, + name = EXCLUDED.name, + nationality = EXCLUDED.nationality, + date_of_birth = EXCLUDED.date_of_birth, + position = EXCLUDED.position, + squad_number = EXCLUDED.squad_number, + height = EXCLUDED.height, + weight = EXCLUDED.weight, + gender = EXCLUDED.gender, + status = EXCLUDED.status, + thumb_url = EXCLUDED.thumb_url, + cutout_url = EXCLUDED.cutout_url, + description = EXCLUDED.description, + updated_at = NOW() + """, ( + pid, + tid, + player.get("strTeam"), + player.get("strPlayer"), + player.get("strNationality"), + player.get("dateBorn"), + player.get("strPosition"), + player.get("strNumber"), + player.get("strHeight"), + player.get("strWeight"), + player.get("strGender"), + player.get("strStatus"), + player.get("strThumb"), + player.get("strCutout"), + player.get("strDescriptionEN"), + )) + cur.close() + except Exception: + pass + + +def cache_event(event: dict) -> None: + """Upsert a match/event from TheSportsDB response.""" + eid = _safe_int(event.get("idEvent")) + if not eid: + return + lid = _safe_int(event.get("idLeague")) + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute(""" + INSERT INTO events (id, name, league_id, league_name, season, + round, home_team_id, away_team_id, home_team, away_team, + home_score, away_score, event_date, event_time, + event_timestamp, venue, venue_id, city, country, + referee, spectators, status, postponed, + poster_url, thumb_url, video_url) + VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s, + %s::time,%s::timestamptz,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON CONFLICT (id) DO UPDATE SET + name = EXCLUDED.name, + league_id = EXCLUDED.league_id, + league_name = EXCLUDED.league_name, + season = EXCLUDED.season, + round = EXCLUDED.round, + home_team_id = EXCLUDED.home_team_id, + away_team_id = EXCLUDED.away_team_id, + home_team = EXCLUDED.home_team, + away_team = EXCLUDED.away_team, + home_score = EXCLUDED.home_score, + away_score = EXCLUDED.away_score, + event_date = EXCLUDED.event_date, + event_time = EXCLUDED.event_time, + event_timestamp = EXCLUDED.event_timestamp, + venue = EXCLUDED.venue, + venue_id = EXCLUDED.venue_id, + city = EXCLUDED.city, + country = EXCLUDED.country, + referee = EXCLUDED.referee, + spectators = EXCLUDED.spectators, + status = EXCLUDED.status, + postponed = EXCLUDED.postponed, + poster_url = EXCLUDED.poster_url, + thumb_url = EXCLUDED.thumb_url, + video_url = EXCLUDED.video_url, + updated_at = NOW() + """, ( + eid, + event.get("strEvent"), + lid, + event.get("strLeague"), + event.get("strSeason"), + str(event.get("intRound", "")) or None, + _safe_int(event.get("idHomeTeam")), + _safe_int(event.get("idAwayTeam")), + event.get("strHomeTeam"), + event.get("strAwayTeam"), + _safe_int(event.get("intHomeScore")), + _safe_int(event.get("intAwayScore")), + event.get("dateEvent"), + event.get("strTime"), + event.get("strTimestamp"), + event.get("strVenue"), + _safe_int(event.get("idVenue")), + event.get("strCity"), + event.get("strCountry"), + event.get("strOfficial"), + _safe_int(event.get("intSpectators")), + event.get("strStatus"), + event.get("strPostponed", "no"), + event.get("strPoster"), + event.get("strThumb"), + event.get("strVideo"), + )) + cur.close() + except Exception: + pass + + +def cache_event_stats(event_id: int, stats: list[dict]) -> None: + """Upsert event statistics from V2 lookup_event_stats response.""" + if not stats: + return + try: + with get_conn() as conn: + cur = conn.cursor() + for s in stats: + sid = _safe_int(s.get("idStatistic")) + if not sid: + continue + cur.execute(""" + INSERT INTO event_stats (id, event_id, id_api_football, + event_name, stat_name, home_value, away_value) + VALUES (%s, %s, %s, %s, %s, %s, %s) + ON CONFLICT (id) DO UPDATE SET + home_value = EXCLUDED.home_value, + away_value = EXCLUDED.away_value + """, ( + sid, event_id, s.get("idApiFootball"), + s.get("strEvent"), s.get("strStat"), + s.get("intHome"), s.get("intAway"), + )) + cur.close() + except Exception: + pass + + +def cache_event_timeline(event_id: int, timeline: list[dict]) -> None: + """Upsert event timeline from V2 lookup_event_timeline response.""" + if not timeline: + return + try: + with get_conn() as conn: + cur = conn.cursor() + for t in timeline: + tid = _safe_int(t.get("idTimeline")) + if not tid: + continue + cur.execute(""" + INSERT INTO event_timeline (id, event_id, id_api_football, + event_name, event_type, event_detail, is_home, minute, + period, player_id, player_name, cutout_url, + assist_id, assist_name, team_id, team_name, comment, + event_date, season) + VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON CONFLICT (id) DO UPDATE SET + event_type = EXCLUDED.event_type, + event_detail = EXCLUDED.event_detail, + minute = EXCLUDED.minute, + player_name = EXCLUDED.player_name, + assist_name = EXCLUDED.assist_name, + comment = EXCLUDED.comment + """, ( + tid, event_id, t.get("idAPIfootball"), + t.get("strEvent"), t.get("strTimeline"), + t.get("strTimelineDetail"), t.get("strHome"), + _safe_int(t.get("intTime")), t.get("strPeriod"), + _safe_int(t.get("idPlayer")), t.get("strPlayer"), + t.get("strCutout"), _safe_int(t.get("idAssist")), + t.get("strAssist"), _safe_int(t.get("idTeam")), + t.get("strTeam"), + t.get("strComment") if t.get("strComment") != "NULL" else None, + t.get("dateEvent"), t.get("strSeason"), + )) + cur.close() + except Exception: + pass + + +def cache_event_lineup(event_id: int, lineup: list[dict]) -> None: + """Upsert event lineup from V2 lookup_event_lineup response.""" + if not lineup: + return + try: + with get_conn() as conn: + cur = conn.cursor() + for p in lineup: + lid = _safe_int(p.get("idLineup")) + if not lid: + continue + cur.execute(""" + INSERT INTO event_lineup (id, event_id, id_api_football, + event_name, player_id, player_name, team_id, team_name, + is_home, position, position_short, formation, + squad_number, is_substitute, cutout_url, country, season) + VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON CONFLICT (id) DO UPDATE SET + position = EXCLUDED.position, + squad_number = EXCLUDED.squad_number, + is_substitute = EXCLUDED.is_substitute + """, ( + lid, event_id, p.get("idAPIfootball"), + p.get("strEvent"), _safe_int(p.get("idPlayer")), + p.get("strPlayer"), _safe_int(p.get("idTeam")), + p.get("strTeam"), p.get("strHome"), + p.get("strPosition"), p.get("strPositionShort"), + p.get("strFormation"), + _safe_int(p.get("intSquadNumber")), + p.get("strSubstitute", "No"), + p.get("strCutout"), p.get("strCountry"), + p.get("strSeason"), + )) + cur.close() + except Exception: + pass + + +# ══════════════════════════════════════════════════════════ +# Cache readers +# ══════════════════════════════════════════════════════════ + +def query_team(team_name: str) -> dict | None: + """Lookup a cached team by name (ILIKE).""" + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute(""" + SELECT id, name, short_name, league_name, stadium, + stadium_capacity, location, country, badge_url, + colour1, colour2, description + FROM teams + WHERE name ILIKE %s OR short_name ILIKE %s + OR alternate_name ILIKE %s + LIMIT 1 + """, (f'%{team_name}%', f'%{team_name}%', f'%{team_name}%')) + rows = _rows_as_dicts(cur) + cur.close() + return rows[0] if rows else None + except Exception: + return None + + +def query_roster(team_id: int) -> list[dict]: + """Return cached players for a team.""" + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute(""" + SELECT id, name, position, squad_number, nationality, + date_of_birth, height, weight, status + FROM players + WHERE team_id = %s + ORDER BY position, squad_number NULLS LAST + """, (team_id,)) + rows = _rows_as_dicts(cur) + cur.close() + return rows + except Exception: + return [] + + +def query_player_by_id(player_id: int) -> dict | None: + """Return a cached player by TheSportsDB idPlayer.""" + if not player_id: + return None + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute(""" + SELECT id, name, position, squad_number, nationality, + date_of_birth, height, weight, status, team_name + FROM players + WHERE id = %s + """, (player_id,)) + rows = _rows_as_dicts(cur) + cur.close() + return rows[0] if rows else None + except Exception: + return None + + +def query_events_for_team(team_id: int, status: str = 'all') -> list[dict]: + """Return cached events for a team.""" + status_filter = "" + if status == 'finished': + status_filter = "AND status = 'Match Finished'" + elif status == 'upcoming': + status_filter = "AND status = 'Not Started'" + elif status == 'today': + status_filter = "AND event_date = CURRENT_DATE" + + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute(f""" + SELECT id, name, league_name, season, round, + home_team, away_team, home_score, away_score, + event_date, event_time, venue, referee, + spectators, status + FROM events + WHERE (home_team_id = %s OR away_team_id = %s) + {status_filter} + ORDER BY event_date DESC, event_time DESC + """, (team_id, team_id)) + rows = _rows_as_dicts(cur) + cur.close() + return rows + except Exception: + return [] + + +def query_event(event_id: int) -> dict | None: + """Return a single cached event.""" + try: + with get_conn() as conn: + cur = conn.cursor() + cur.execute(""" + SELECT * FROM events WHERE id = %s + """, (event_id,)) + rows = _rows_as_dicts(cur) + cur.close() + return rows[0] if rows else None + except Exception: + return None diff --git a/nike/rapidapi.py b/nike/rapidapi.py new file mode 100644 index 0000000..0e1dd70 --- /dev/null +++ b/nike/rapidapi.py @@ -0,0 +1,356 @@ +""" +RapidAPI client for free-api-live-football-data. + +Provider : Sby Smart API (Creativesdev) on RapidAPI +Base URL : https://free-api-live-football-data.p.rapidapi.com +Auth : x-rapidapi-key + x-rapidapi-host headers + +All functions return parsed Python dicts/lists (or raise on error). +A lightweight TTL cache prevents duplicate API calls within a conversation. +""" +from __future__ import annotations + +import time +from typing import Any + +import requests + +from nike import config + +# ── HTTP plumbing ──────────────────────────────────────── + +_HEADERS = { + "x-rapidapi-key": config.RAPIDAPI_KEY, + "x-rapidapi-host": config.RAPIDAPI_HOST, +} + + +def _get(path: str, params: dict | None = None, timeout: int = 15) -> Any: + """GET {BASE}{path}?{params} with TTL cache. Returns parsed JSON body.""" + url = f"{config.RAPIDAPI_BASE}{path}" + cache_key = f"{path}|{sorted(params.items()) if params else ''}" + + # Check cache + hit = _CACHE.get(cache_key) + if hit: + ts, data = hit + if time.time() - ts < _CACHE_TTL: + return data + + resp = requests.get(url, headers=_HEADERS, params=params, timeout=timeout) + resp.raise_for_status() + data = resp.json() + + # Cache the response + _CACHE[cache_key] = (time.time(), data) + return data + + +# ── TTL cache ──────────────────────────────────────────── +_CACHE: dict[str, tuple[float, Any]] = {} +_CACHE_TTL = 300 # 5 minutes + + +def clear_cache() -> None: + """Flush the in-memory response cache.""" + _CACHE.clear() + + +# ── Connectivity check ────────────────────────────────── + +def check_connection() -> dict: + """Quick probe — hit a lightweight endpoint and measure latency.""" + try: + t0 = time.time() + _get("/football-popular-leagues", timeout=8) + latency_ms = round((time.time() - t0) * 1000, 1) + return {"connected": True, "latency_ms": latency_ms, "backend": "RapidAPI"} + except Exception as e: + return {"connected": False, "latency_ms": None, "backend": "RapidAPI", + "error": str(e)} + + +# ── Search ─────────────────────────────────────────────── + +def search_all(query: str) -> Any: + """Universal search across teams, players, leagues, matches.""" + return _get("/football-all-search", {"search": query}) + + +def search_teams(query: str) -> Any: + """Search for teams by name.""" + return _get("/football-teams-search", {"search": query}) + + +def search_players(query: str) -> Any: + """Search for players by name.""" + return _get("/football-players-search", {"search": query}) + + +def search_leagues(query: str) -> Any: + """Search for leagues by name.""" + return _get("/football-leagues-search", {"search": query}) + + +def search_matches(query: str) -> Any: + """Search for matches by team/event name.""" + return _get("/football-matches-search", {"search": query}) + + +# ── Leagues & countries ────────────────────────────────── + +def get_popular_leagues() -> Any: + """List popular leagues.""" + return _get("/football-popular-leagues") + + +def get_all_leagues() -> Any: + """List all available leagues.""" + return _get("/football-get-all-leagues") + + +def get_league_detail(league_id: int) -> Any: + """Get detailed info for a specific league.""" + return _get("/football-get-league-detail", {"leagueid": league_id}) + + +def get_all_countries() -> Any: + """List all countries with leagues.""" + return _get("/football-get-all-countries") + + +# ── Live scores ────────────────────────────────────────── + +def get_live_matches() -> Any: + """All currently live matches worldwide.""" + return _get("/football-current-live") + + +# ── Fixtures ───────────────────────────────────────────── + +def get_matches_by_date(date: str) -> Any: + """ + Matches on a given date. + date format: YYYYMMDD (e.g. '20260308') + """ + return _get("/football-get-matches-by-date", {"date": date}) + + +def get_matches_by_date_and_league(date: str, league_id: int) -> Any: + """Matches on a given date filtered by league.""" + return _get("/football-get-matches-by-date-and-league", + {"date": date, "leagueid": league_id}) + + +def get_league_matches(league_id: int) -> Any: + """All matches for a league (current season).""" + return _get("/football-get-all-matches-by-league", {"leagueid": league_id}) + + +# ── Teams ──────────────────────────────────────────────── + +def get_league_teams(league_id: int) -> Any: + """All teams in a league.""" + return _get("/football-get-list-all-team", {"leagueid": league_id}) + + +def get_team_detail(team_id: int) -> Any: + """Detailed info for a specific team.""" + return _get("/football-league-team", {"teamid": team_id}) + + +# ── Players / Squad ────────────────────────────────────── + +def get_squad(team_id: int) -> Any: + """Full squad roster for a team.""" + return _get("/football-get-list-player", {"teamid": team_id}) + + +def get_player_detail(player_id: int) -> Any: + """Detailed player profile.""" + return _get("/football-get-player-detail", {"playerid": player_id}) + + +# ── Match detail & stats ──────────────────────────────── + +def get_match_detail(event_id: int) -> Any: + """Full match overview (teams, score, status, timing).""" + return _get("/football-get-match-detail", {"eventid": event_id}) + + +def get_match_score(event_id: int) -> Any: + """Current/final score for a match.""" + return _get("/football-get-match-score", {"eventid": event_id}) + + +def get_match_status(event_id: int) -> Any: + """Match status (scheduled, live, finished, etc.).""" + return _get("/football-get-match-status", {"eventid": event_id}) + + +def get_match_stats(event_id: int) -> Any: + """Full-match statistics (possession, shots, passes, etc.).""" + return _get("/football-get-match-all-stats", {"eventid": event_id}) + + +def get_match_first_half_stats(event_id: int) -> Any: + """First-half statistics.""" + return _get("/football-get-match-firstHalf-stats", {"eventid": event_id}) + + +def get_match_second_half_stats(event_id: int) -> Any: + """Second-half statistics.""" + return _get("/football-get-match-secondhalf-stats", {"eventid": event_id}) + + +def get_match_highlights(event_id: int) -> Any: + """Match highlights / key events.""" + return _get("/football-get-match-highlights", {"eventid": event_id}) + + +def get_match_location(event_id: int) -> Any: + """Match venue info.""" + return _get("/football-get-match-location", {"eventid": event_id}) + + +def get_match_referee(event_id: int) -> Any: + """Match referee info.""" + return _get("/football-get-match-referee", {"eventid": event_id}) + + +# ── Lineups ────────────────────────────────────────────── + +def get_home_lineup(event_id: int) -> Any: + """Home team lineup and formation.""" + return _get("/football-get-hometeam-lineup", {"eventid": event_id}) + + +def get_away_lineup(event_id: int) -> Any: + """Away team lineup and formation.""" + return _get("/football-get-awayteam-lineup", {"eventid": event_id}) + + +def get_lineups(event_id: int) -> dict: + """Both lineups combined into a single dict.""" + return { + "home": get_home_lineup(event_id), + "away": get_away_lineup(event_id), + } + + +# ── Head to head ───────────────────────────────────────── + +def get_head_to_head(event_id: int) -> Any: + """Head-to-head history for the teams in a match.""" + return _get("/football-get-head-to-head", {"eventid": event_id}) + + +# ── Standings ──────────────────────────────────────────── + +def get_standings(league_id: int) -> Any: + """Full league table (overall).""" + return _get("/football-get-standing-all", {"leagueid": league_id}) + + +def get_home_standings(league_id: int) -> Any: + """Home-only standings.""" + return _get("/football-get-standing-home", {"leagueid": league_id}) + + +def get_away_standings(league_id: int) -> Any: + """Away-only standings.""" + return _get("/football-get-standing-away", {"leagueid": league_id}) + + +# ── Top players ────────────────────────────────────────── + +def get_top_scorers(league_id: int) -> Any: + """Top goal scorers in the league.""" + return _get("/football-get-top-players-by-goals", {"leagueid": league_id}) + + +def get_top_assists(league_id: int) -> Any: + """Top assist providers in the league.""" + return _get("/football-get-top-players-by-assists", {"leagueid": league_id}) + + +def get_top_rated(league_id: int) -> Any: + """Highest-rated players in the league.""" + return _get("/football-get-top-players-by-rating", {"leagueid": league_id}) + + +# ── Transfers ──────────────────────────────────────────── + +def get_league_transfers(league_id: int) -> Any: + """Transfer activity for a league.""" + return _get("/football-get-league-transfers", {"leagueid": league_id}) + + +def get_team_transfers_in(team_id: int) -> Any: + """Players signed by a team.""" + return _get("/football-get-team-players-in-transfers", {"teamid": team_id}) + + +def get_team_transfers_out(team_id: int) -> Any: + """Players who left a team.""" + return _get("/football-get-team-players-out-transfers", {"teamid": team_id}) + + +def get_all_transfers(page: int = 1) -> Any: + """All recent transfers (paginated).""" + return _get("/football-get-all-transfers", {"page": page}) + + +def get_top_transfers(page: int = 1) -> Any: + """Top transfers by value (paginated).""" + return _get("/football-get-top-transfers", {"page": page}) + + +# ── News ───────────────────────────────────────────────── + +def get_trending_news() -> Any: + """Trending football news worldwide.""" + return _get("/football-get-trendingnews") + + +def get_league_news(league_id: int, page: int = 1) -> Any: + """News for a specific league.""" + return _get("/football-get-league-news", {"leagueid": league_id, "page": page}) + + +def get_team_news(team_id: int, page: int = 1) -> Any: + """News for a specific team.""" + return _get("/football-get-team-news", {"teamid": team_id, "page": page}) + + +# ── Rounds ─────────────────────────────────────────────── + +def get_all_rounds(league_id: int) -> Any: + """All rounds/matchdays for a league.""" + return _get("/football-get-all-rounds", {"leagueid": league_id}) + + +def get_round_detail(round_id: int) -> Any: + """Detail for a specific round.""" + return _get("/football-get-rounds-detail", {"roundid": round_id}) + + +# ── Trophies ───────────────────────────────────────────── + +def get_trophies_all_seasons(league_id: int) -> Any: + """Trophy/title winners across all seasons.""" + return _get("/football-get-trophies-all-seasons", {"leagueid": league_id}) + + +def get_trophies_detail(league_id: int, season: str) -> Any: + """Trophy detail for a specific season (e.g. '2023/2024').""" + return _get("/football-get-trophies-detail", + {"leagueid": league_id, "season": season}) + + +# ── Odds ───────────────────────────────────────────────── + +def get_event_odds(event_id: int, country_code: str = "US") -> Any: + """Betting odds for a match.""" + return _get("/football-event-odds", + {"eventid": event_id, "countrycode": country_code}) diff --git a/nike/server.py b/nike/server.py new file mode 100644 index 0000000..039733a --- /dev/null +++ b/nike/server.py @@ -0,0 +1,790 @@ +""" +Nike MCP Server + Bootstrap Dashboard +====================================== +Single process on 0.0.0.0:8000 + + / → Bootstrap status dashboard + /api/* → Dashboard JSON API + /mcp → FastMCP HTTP endpoint (streamable-HTTP) + +Data flow: + MCP tool → sportsdb.py (live API) → format for LLM + ↕ (cache permanent data) + db.py (PostgreSQL) +""" +from __future__ import annotations + +import time +from collections import deque +from contextlib import asynccontextmanager +from datetime import datetime, timezone +from pathlib import Path +from typing import Any + +import uvicorn +from fastapi import FastAPI, Request +from fastapi.responses import HTMLResponse, JSONResponse +from fastapi.templating import Jinja2Templates + +from fastmcp import FastMCP +from mcp.types import ToolAnnotations + +import nike.db as db +import nike.sportsdb as api +from nike import config + +# ── Request log ────────────────────────────────────────── +_REQUEST_LOG: deque[dict] = deque(maxlen=500) +_SERVER_START = datetime.now(timezone.utc) + + +def _log(tool: str, args: dict, duration_ms: float, caller: str = "unknown") -> None: + _REQUEST_LOG.appendleft({ + "tool": tool, + "args": args, + "duration_ms": round(duration_ms, 1), + "caller": caller, + "timestamp": datetime.now(timezone.utc).isoformat(), + }) + + +# ── Helpers ────────────────────────────────────────────── + +def _resolve_team(name: str) -> dict | None: + """ + Search for a team by name, cache it, return the first match. + Returns the raw TheSportsDB team dict or None. + """ + # Check DB cache first + cached = db.query_team(name) + if cached: + return cached + + # Hit the API + result = api.v1_search_teams(name) + teams = result.get("teams") if result else None + if not teams: + return None + + team = teams[0] + db.cache_team(team) + # Also cache the league if present + if team.get("idLeague"): + db.cache_league({ + "idLeague": team["idLeague"], + "strLeague": team.get("strLeague"), + "strSport": team.get("strSport", "Soccer"), + "strCountry": team.get("strCountry"), + }) + return team + + +def _normalize_team_name(name: str) -> str: + """Map common abbreviations to full names.""" + aliases = { + "tfc": "Toronto FC", + "toronto": "Toronto FC", + } + return aliases.get(name.strip().lower(), name) + + +def _format_score(home_score, away_score) -> str: + """Format a score pair, handling None.""" + if home_score is not None and away_score is not None: + return f"{home_score}-{away_score}" + return "vs" + + +# ── FastMCP instance ────────────────────────────────────── +mcp = FastMCP( + name=config.SERVER_NAME, + instructions=( + "You have access to Nike, a football (soccer) data platform " + "powered by TheSportsDB. It covers major leagues worldwide " + "including MLS and the Premier League.\n\n" + "Available tools:\n" + " • get_roster(team_name) — current squad grouped by position\n" + " • get_player_info(player_name) — profile: position, nationality, DOB\n" + " • get_fixtures(team_name, status) — recent results + upcoming matches\n" + " • get_standings(league, season) — full league table with points, GD, form\n" + " • get_match_result(team_name, date) — specific match score & details\n" + " • get_match_detail(event_id) — deep stats, lineup, timeline for a match\n" + " • get_livescores() — current live soccer scores\n" + " • get_team_info(team_name) — team profile with stadium, colors, description\n\n" + "Interpret 'TFC' as 'Toronto FC'. " + f"Followed teams: {', '.join(t[0] for t in config.FOLLOWED_TEAMS)}." + ), +) + + +# ══════════════════════════════════════════════════════════ +# MCP Tools +# ══════════════════════════════════════════════════════════ + +@mcp.tool(annotations=ToolAnnotations(readOnlyHint=True)) +def get_team_info(team_name: str = "Toronto FC") -> str: + """ + Get team profile: stadium, capacity, location, founded year, colors. + Use team_name like 'Toronto FC', 'Arsenal', 'TFC'. + """ + t0 = time.time() + team_name = _normalize_team_name(team_name) + team = _resolve_team(team_name) + duration = (time.time() - t0) * 1000 + _log("get_team_info", {"team_name": team_name}, duration) + + if not team: + return f"Team '{team_name}' not found." + + # Handle both raw API dicts and cached DB dicts + name = team.get("strTeam") or team.get("name", "") + lines = [ + f"=== {name} ===", + f"League : {team.get('strLeague') or team.get('league_name', 'N/A')}", + f"Country : {team.get('strCountry') or team.get('country', 'N/A')}", + f"Stadium : {team.get('strStadium') or team.get('stadium', 'N/A')}", + f"Capacity : {team.get('intStadiumCapacity') or team.get('stadium_capacity', 'N/A')}", + f"Location : {team.get('strLocation') or team.get('location', 'N/A')}", + f"Founded : {team.get('intFormedYear') or team.get('formed_year', 'N/A')}", + ] + desc = team.get("strDescriptionEN") or team.get("description") + if desc: + # First paragraph only + first_para = desc.split('\r\n')[0].split('\n')[0] + if len(first_para) > 300: + first_para = first_para[:297] + "..." + lines.append(f"\n{first_para}") + return "\n".join(lines) + + +@mcp.tool(annotations=ToolAnnotations(readOnlyHint=True)) +def get_roster(team_name: str = "Toronto FC") -> str: + """ + Get the current squad for a team, grouped by position. + Requires a premium TheSportsDB key for V2 squad data. + Falls back to cached roster if available. + """ + t0 = time.time() + team_name = _normalize_team_name(team_name) + + # Resolve team to get ID + team = _resolve_team(team_name) + if not team: + duration = (time.time() - t0) * 1000 + _log("get_roster", {"team_name": team_name}, duration) + return f"Team '{team_name}' not found." + + team_id = int(team.get("idTeam") or team.get("id")) + display_name = team.get("strTeam") or team.get("name", team_name) + + # Try V2 squad list (premium) + # Note: V2 /list/players only returns idPlayer, strPlayer, idTeam, + # strTeam, strThumb, strCutout, strRender, dateBorn, strPosition. + # It does NOT include strNumber or strNationality — those come from + # the full player detail (lookup_player), which we skip to avoid N+1. + players = [] + is_premium = config.SPORTSDB_KEY not in ('3', '') + if is_premium: + try: + result = api.list_players(team_id) + raw_players = result.get("list") or result.get("player") or [] + for p in raw_players: + db.cache_player(p) + # Check DB for enriched data (number, nationality) + cached = db.query_player_by_id(int(p.get("idPlayer", 0))) + players.append({ + "name": p.get("strPlayer"), + "position": p.get("strPosition", "Unknown"), + "number": (cached or {}).get("squad_number") or "-", + "nationality": (cached or {}).get("nationality") or "", + "dob": p.get("dateBorn", ""), + }) + except Exception: + pass + + # Fallback: cached roster from DB + if not players: + cached = db.query_roster(team_id) + for p in cached: + players.append({ + "name": p["name"], + "position": p.get("position", "Unknown"), + "number": p.get("squad_number", "-"), + "nationality": p.get("nationality", ""), + }) + + duration = (time.time() - t0) * 1000 + _log("get_roster", {"team_name": team_name}, duration) + + if not players: + return (f"No squad data for '{display_name}'. " + "A premium TheSportsDB key is needed for squad lists.") + + # Group by position + by_pos: dict[str, list] = {} + for p in players: + pos = p.get("position") or "Unknown" + by_pos.setdefault(pos, []).append(p) + + lines = [f"=== {display_name} — Squad ==="] + order = ['Goalkeeper', 'Defender', 'Midfielder', 'Attacker', 'Coach'] + for pos in order + [k for k in by_pos if k not in order]: + if pos not in by_pos: + continue + lines.append(f"\n{pos.upper()}S:") + for p in by_pos[pos]: + num = str(p.get('number') or '-').rjust(2) + lines.append(f" #{num} {p['name']} ({p.get('nationality', '')})") + lines.append(f"\nTotal: {len(players)} players") + return "\n".join(lines) + + +@mcp.tool(annotations=ToolAnnotations(readOnlyHint=True)) +def get_player_info(player_name: str) -> str: + """ + Get profile info for a player: position, nationality, DOB, team, status. + """ + t0 = time.time() + # V1 search + result = api.v1_search_players(player_name) + players = result.get("player") if result else None + + duration = (time.time() - t0) * 1000 + _log("get_player_info", {"player_name": player_name}, duration) + + if not players: + return f"Player '{player_name}' not found." + + p = players[0] + db.cache_player(p) + + lines = [ + f"=== {p.get('strPlayer', player_name)} ===", + f"Team : {p.get('strTeam', 'N/A')}", + f"Position : {p.get('strPosition', 'N/A')}", + f"Nationality: {p.get('strNationality', 'N/A')}", + f"DOB : {p.get('dateBorn', 'N/A')}", + f"Status : {p.get('strStatus', 'N/A')}", + f"Gender : {p.get('strGender', 'N/A')}", + ] + + # If premium, get full detail + pid = p.get("idPlayer") + if pid and config.SPORTSDB_KEY not in ('3', ''): + try: + detail = api.lookup_player(int(pid)) + pdata = (detail.get("lookup") or detail.get("players") or [None])[0] + if pdata: + if pdata.get("strHeight"): + lines.append(f"Height : {pdata['strHeight']}") + if pdata.get("strWeight"): + lines.append(f"Weight : {pdata['strWeight']}") + if pdata.get("strNumber"): + lines.append(f"Number : {pdata['strNumber']}") + desc = pdata.get("strDescriptionEN") + if desc: + first_para = desc.split('\r\n')[0].split('\n')[0] + if len(first_para) > 300: + first_para = first_para[:297] + "..." + lines.append(f"\n{first_para}") + except Exception: + pass + + return "\n".join(lines) + + +@mcp.tool(annotations=ToolAnnotations(readOnlyHint=True)) +def get_fixtures(team_name: str = "Toronto FC", + status: str = "all") -> str: + """ + Get recent results and upcoming matches for a team. + status: 'all' (default), 'upcoming', 'past'. + """ + t0 = time.time() + team_name = _normalize_team_name(team_name) + + team = _resolve_team(team_name) + if not team: + duration = (time.time() - t0) * 1000 + _log("get_fixtures", {"team_name": team_name, "status": status}, duration) + return f"Team '{team_name}' not found." + + team_id = int(team.get("idTeam") or team.get("id")) + display_name = team.get("strTeam") or team.get("name", team_name) + + events = [] + + # Previous results + if status in ('all', 'past'): + try: + prev = api.v1_previous_team(team_id) + for e in (prev.get("results") or []): + db.cache_event(e) + events.append(e) + except Exception: + pass + + # Upcoming fixtures + if status in ('all', 'upcoming'): + try: + nxt = api.v1_next_team(team_id) + for e in (nxt.get("events") or []): + events.append(e) + except Exception: + pass + + duration = (time.time() - t0) * 1000 + _log("get_fixtures", {"team_name": team_name, "status": status}, duration) + + if not events: + return f"No fixtures found for '{display_name}'." + + lines = [f"=== {display_name} — Fixtures ({status}) ==="] + for e in events: + date = e.get("dateEvent", "?") + home = e.get("strHomeTeam", "?") + away = e.get("strAwayTeam", "?") + score = _format_score(e.get("intHomeScore"), e.get("intAwayScore")) + st = e.get("strStatus") or "" + league = e.get("strLeague", "") + lines.append(f" {date} {home} {score} {away} ({st}) [{league}]") + + return "\n".join(lines) + + +@mcp.tool(annotations=ToolAnnotations(readOnlyHint=True)) +def get_standings(league: str = "American Major League Soccer", + season: str = "2026") -> str: + """ + Get the league table / standings. + league: 'American Major League Soccer', 'English Premier League', etc. + season: '2025-2026' for Euro leagues, '2026' for MLS. + """ + t0 = time.time() + + # Map common names to TheSportsDB league IDs + league_ids = { + "mls": 4346, + "major league soccer": 4346, + "american major league soccer": 4346, + "epl": 4328, + "premier league": 4328, + "english premier league": 4328, + } + + league_id = league_ids.get(league.strip().lower()) + + # If not in map, try searching + if not league_id: + try: + team_search = api.v1_search_teams(league) + teams = team_search.get("teams") or [] + if teams: + league_id = int(teams[0].get("idLeague", 0)) + except Exception: + pass + + if not league_id: + duration = (time.time() - t0) * 1000 + _log("get_standings", {"league": league, "season": season}, duration) + return f"League '{league}' not found. Try the full name like 'English Premier League'." + + # Always fetch live from API (volatile data) + try: + result = api.v1_standings(league_id, season) + except Exception as ex: + duration = (time.time() - t0) * 1000 + _log("get_standings", {"league": league, "season": season}, duration) + return f"Error fetching standings: {ex}" + + table = result.get("table") or [] + + duration = (time.time() - t0) * 1000 + _log("get_standings", {"league": league, "season": season}, duration) + + if not table: + return f"No standings for '{league}' season {season}." + + league_name = table[0].get("strLeague", league) + lines = [ + f"=== {league_name} {season} Standings ===", + f"{'Rk':>2} {'Team':<28} {'Pts':>4} {'P':>3} {'W':>3} {'D':>3} " + f"{'L':>3} {'GF':>4} {'GA':>4} {'GD':>4} Form", + ] + for r in table: + lines.append( + f"{r.get('intRank','?'):>2} {r.get('strTeam','?'):<28} " + f"{r.get('intPoints','?'):>4} " + f"{r.get('intPlayed','?'):>3} {r.get('intWin','?'):>3} " + f"{r.get('intDraw','?'):>3} {r.get('intLoss','?'):>3} " + f"{r.get('intGoalsFor','?'):>4} {r.get('intGoalsAgainst','?'):>4} " + f"{r.get('intGoalDifference','?'):>4} " + f"{r.get('strForm', '')}" + ) + return "\n".join(lines) + + +@mcp.tool(annotations=ToolAnnotations(readOnlyHint=True)) +def get_match_result(team_name: str, match_date: str) -> str: + """ + Get match results for a team on a specific date. + match_date format: YYYY-MM-DD. + Example: get_match_result('Toronto FC', '2026-03-09') + """ + t0 = time.time() + team_name = _normalize_team_name(team_name) + + # Resolve team for league info + team = _resolve_team(team_name) + league_id = None + if team: + league_id = int(team.get("idLeague") or team.get("league_id") or 0) or None + + # Try events-by-date filtered by league + events = [] + try: + if league_id: + result = api.v1_events_by_date_league(match_date, league_id) + else: + result = api.v1_events_by_date(match_date) + for e in (result.get("events") or []): + # Filter for matching team + home = (e.get("strHomeTeam") or "").lower() + away = (e.get("strAwayTeam") or "").lower() + search = team_name.lower() + if search in home or search in away: + db.cache_event(e) + events.append(e) + except Exception: + pass + + # Also check previous results (in case events-by-date misses it) + if not events and team: + team_id = int(team.get("idTeam") or team.get("id")) + try: + prev = api.v1_previous_team(team_id) + for e in (prev.get("results") or []): + if e.get("dateEvent") == match_date: + db.cache_event(e) + events.append(e) + except Exception: + pass + + duration = (time.time() - t0) * 1000 + _log("get_match_result", {"team_name": team_name, "match_date": match_date}, duration) + + if not events: + return f"No match found for '{team_name}' on {match_date}." + + lines = [] + for e in events: + score = _format_score(e.get("intHomeScore"), e.get("intAwayScore")) + lines += [ + f"=== {e.get('strEvent', 'Match')} ===", + f"{e.get('strHomeTeam')} {score} {e.get('strAwayTeam')}", + f"Date : {e.get('dateEvent')} {e.get('strTime', '')}", + f"League : {e.get('strLeague', 'N/A')} (Round {e.get('intRound', '?')})", + f"Venue : {e.get('strVenue', 'N/A')}", + f"Referee: {e.get('strOfficial') or 'N/A'}", + f"Status : {e.get('strStatus', 'N/A')}", + ] + if e.get("intSpectators"): + lines.append(f"Attend.: {e['intSpectators']}") + lines.append("") + return "\n".join(lines) + + +@mcp.tool(annotations=ToolAnnotations(readOnlyHint=True)) +def get_match_detail(event_id: int) -> str: + """ + Get deep match detail: stats, lineup, and timeline for a specific match. + Requires a premium TheSportsDB key. + Get the event_id from get_fixtures or get_match_result first. + """ + t0 = time.time() + + if config.SPORTSDB_KEY in ('3', ''): + duration = (time.time() - t0) * 1000 + _log("get_match_detail", {"event_id": event_id}, duration) + return "Match detail requires a premium TheSportsDB key." + + lines = [f"=== Match Detail (Event {event_id}) ==="] + + # V2 event lookup + try: + ev = api.lookup_event(event_id) + events = ev.get("lookup") or ev.get("events") or [] + if events: + e = events[0] + # Cache the event itself (parent row for sub-tables) + db.cache_event(e) + score = _format_score(e.get("intHomeScore"), e.get("intAwayScore")) + lines += [ + f"{e.get('strHomeTeam')} {score} {e.get('strAwayTeam')}", + f"Date : {e.get('dateEvent')} {e.get('strTime', '')}", + f"League : {e.get('strLeague', 'N/A')}", + f"Venue : {e.get('strVenue', 'N/A')}", + f"Status : {e.get('strStatus', 'N/A')}", + ] + except Exception as ex: + lines.append(f"Event lookup failed: {ex}") + + # Stats + try: + stats_resp = api.lookup_event_stats(event_id) + stats = stats_resp.get("lookup") or [] + if stats: + db.cache_event_stats(event_id, stats) + lines.append("\nSTATISTICS:") + for s in stats: + lines.append( + f" {s.get('strStat', '?'):<25} " + f"{s.get('intHome', '?'):>6} - {s.get('intAway', '?')}" + ) + except Exception: + pass + + # Timeline + try: + tl_resp = api.lookup_event_timeline(event_id) + timeline = tl_resp.get("lookup") or [] + if timeline: + db.cache_event_timeline(event_id, timeline) + lines.append("\nTIMELINE:") + for t in timeline: + minute = t.get("intTime", "?") + event_type = t.get("strTimeline", "?") + detail = t.get("strTimelineDetail", "") + player = t.get("strPlayer", "") + team = t.get("strTeam", "") + assist = t.get("strAssist", "") + line = f"{minute}' {event_type}: {player} ({team})" + if detail: + line += f" — {detail}" + if assist: + line += f" [assist: {assist}]" + lines.append(f" {line}") + except Exception: + pass + + # Lineup + try: + lu_resp = api.lookup_event_lineup(event_id) + lineup = lu_resp.get("lookup") or [] + if lineup: + db.cache_event_lineup(event_id, lineup) + # strHome is "Yes"/"No", strSubstitute is "Yes"/"No" + home_xi = [p for p in lineup if p.get("strSubstitute") != "Yes" + and p.get("strHome") == "Yes"] + away_xi = [p for p in lineup if p.get("strSubstitute") != "Yes" + and p.get("strHome") != "Yes"] + subs = [p for p in lineup if p.get("strSubstitute") == "Yes"] + + if home_xi: + lines.append(f"\nHOME XI:") + for p in home_xi: + num = str(p.get('intSquadNumber') or '').rjust(2) + pos = p.get('strPositionShort') or p.get('strPosition', '?') + lines.append(f" #{num} {p.get('strPlayer', '?')} ({pos})") + if away_xi: + lines.append(f"\nAWAY XI:") + for p in away_xi: + num = str(p.get('intSquadNumber') or '').rjust(2) + pos = p.get('strPositionShort') or p.get('strPosition', '?') + lines.append(f" #{num} {p.get('strPlayer', '?')} ({pos})") + if subs: + lines.append(f"\nSUBSTITUTES ({len(subs)}):") + for p in subs[:10]: + num = str(p.get('intSquadNumber') or '').rjust(2) + pos = p.get('strPositionShort') or p.get('strPosition', '?') + lines.append(f" #{num} {p.get('strPlayer', '?')} ({pos})") + except Exception: + pass + + duration = (time.time() - t0) * 1000 + _log("get_match_detail", {"event_id": event_id}, duration) + return "\n".join(lines) + + +@mcp.tool(annotations=ToolAnnotations(readOnlyHint=True)) +def get_livescores() -> str: + """ + Get current live soccer scores worldwide. + Requires a premium TheSportsDB key. + """ + t0 = time.time() + + if config.SPORTSDB_KEY in ('3', ''): + duration = (time.time() - t0) * 1000 + _log("get_livescores", {}, duration) + return "Live scores require a premium TheSportsDB key." + + try: + result = api.livescores_soccer() + except Exception as ex: + duration = (time.time() - t0) * 1000 + _log("get_livescores", {}, duration) + return f"Error fetching live scores: {ex}" + + games = result.get("livescore") or [] + + duration = (time.time() - t0) * 1000 + _log("get_livescores", {}, duration) + + if not games: + return "No live soccer matches at the moment." + + # Group by league + by_league: dict[str, list] = {} + for g in games: + league = g.get("strLeague", "Unknown") + by_league.setdefault(league, []).append(g) + + lines = ["=== Live Soccer Scores ==="] + for league, matches in by_league.items(): + lines.append(f"\n{league}:") + for g in matches: + score = _format_score(g.get("intHomeScore"), g.get("intAwayScore")) + progress = g.get("strProgress", "") + status = g.get("strStatus", "") + time_str = f"{progress}'" if progress else status + lines.append( + f" {g.get('strHomeTeam', '?')} {score} " + f"{g.get('strAwayTeam', '?')} ({time_str})" + ) + lines.append(f"\n{len(games)} matches live") + return "\n".join(lines) + + +# ── MCP Prompt ──────────────────────────────────────────── + +@mcp.prompt() +def football_analyst() -> str: + """Prime the assistant with football analyst context.""" + teams_str = ", ".join(t[0] for t in config.FOLLOWED_TEAMS) + return ( + "You are a football data analyst with access to the Nike platform. " + "Nike provides live football (soccer) data from TheSportsDB covering " + "major leagues worldwide, including MLS and the Premier League.\n\n" + f"Followed teams: {teams_str}\n\n" + "Tools available:\n" + " • get_team_info(team_name) — team profile with stadium, colors\n" + " • get_roster(team_name) — squad grouped by position\n" + " • get_player_info(player_name) — player profile\n" + " • get_fixtures(team_name, status) — recent results + upcoming\n" + " • get_standings(league, season) — league table\n" + " • get_match_result(team_name, date) — specific match result\n" + " • get_match_detail(event_id) — deep stats, lineup, timeline\n" + " • get_livescores() — live scores worldwide\n\n" + "Interpret fuzzy references: 'TFC' → 'Toronto FC'. " + "For match detail (stats/lineup/timeline), first use get_fixtures " + "or get_match_result to find the event_id, then call get_match_detail." + ) + + +# ── Build MCP ASGI app (needed before lifespan) ────────── +_mcp_app = mcp.http_app(path="/") + +# ── FastAPI dashboard app ───────────────────────────────── +_TEMPLATES = Jinja2Templates( + directory=str(Path(__file__).parent / "templates") +) + + +@asynccontextmanager +async def _lifespan(app: FastAPI): + """Start DB pool + MCP session manager on startup, close on shutdown.""" + db.create_pool(minconn=2, maxconn=10) + async with _mcp_app.router.lifespan_context(app): + yield + db.close_pool() + + +dashboard = FastAPI(title="Nike Dashboard", lifespan=_lifespan) + +# ── Dashboard routes ────────────────────────────────────── + +@dashboard.get("/", response_class=HTMLResponse) +async def index(request: Request): + return _TEMPLATES.TemplateResponse("dashboard.html", {"request": request}) + + +@dashboard.get("/api/status") +async def api_status(): + db_status = db.check_connection() + api_conn = api.check_connection() + counts = db.get_table_counts() + last_cache = db.get_last_cache_time() + uptime_s = int((datetime.now(timezone.utc) - _SERVER_START).total_seconds()) + uptime_str = f"{uptime_s // 3600}h {(uptime_s % 3600) // 60}m {uptime_s % 60}s" + is_premium = config.SPORTSDB_KEY not in ('3', '') + + tools = [ + {"name": "get_team_info", "description": "Team profile", "readonly": True}, + {"name": "get_roster", "description": "Squad by position", "readonly": True}, + {"name": "get_player_info", "description": "Player profile", "readonly": True}, + {"name": "get_fixtures", "description": "Results & upcoming", "readonly": True}, + {"name": "get_standings", "description": "League table", "readonly": True}, + {"name": "get_match_result", "description": "Match on a date", "readonly": True}, + {"name": "get_match_detail", "description": "Stats/lineup/timeline", "readonly": True, + "premium": True}, + {"name": "get_livescores", "description": "Live scores", "readonly": True, + "premium": True}, + ] + return JSONResponse({ + "database": db_status, + "api": api_conn, + "mcp": { + "running": True, + "transport": "HTTP (Streamable)", + "endpoint": f"http://{config.SERVER_HOST}:{config.SERVER_PORT}/mcp", + "port": config.SERVER_PORT, + "uptime": uptime_str, + "tool_count": len(tools), + "premium": is_premium, + }, + "data": { + "table_counts": counts, + "last_cache": last_cache, + "followed": [{"team": t[0], "league": t[1]} + for t in config.FOLLOWED_TEAMS], + }, + "tools": tools, + }) + + +@dashboard.get("/api/logs") +async def api_logs(limit: int = 50): + return JSONResponse({"logs": list(_REQUEST_LOG)[:limit]}) + + +@dashboard.post("/api/cache/invalidate") +async def api_cache_invalidate(): + """Clear all cache_meta entries and the sportsdb in-memory cache.""" + count = db.invalidate_cache("%") + api.clear_cache() + return JSONResponse({ + "ok": True, + "cache_meta_cleared": count, + "memory_cache_cleared": True, + }) + + +# ── Mount MCP onto dashboard ────────────────────────────── +dashboard.mount("/mcp", _mcp_app) + + +# ── Entry point ─────────────────────────────────────────── +def main(): + uvicorn.run( + "nike.server:dashboard", + host=config.SERVER_HOST, + port=config.SERVER_PORT, + reload=False, + log_level="info", + ws="wsproto", + ) + + +if __name__ == "__main__": + main() diff --git a/nike/sportsdb.py b/nike/sportsdb.py new file mode 100644 index 0000000..ae9c64b --- /dev/null +++ b/nike/sportsdb.py @@ -0,0 +1,311 @@ +""" +TheSportsDB API client — V2 (primary) + V1 (standings, H2H, events-by-date). + +V2: https://www.thesportsdb.com/api/v2/json (X-API-KEY header) +V1: https://www.thesportsdb.com/api/v1/json/{key} (key in URL path) + +Both use the same premium key ($9/mo Patreon). +Free test key for V1 is '3' (limited results, no V2 access). + +All functions return parsed Python dicts/lists (or raise on error). +A lightweight TTL cache prevents duplicate API calls within a conversation. +""" +from __future__ import annotations + +import time +from typing import Any + +import requests + +from nike import config + +# ── HTTP plumbing ──────────────────────────────────────── + +_V2_HEADERS = { + "X-API-KEY": config.SPORTSDB_KEY, +} + +# TTL cache +_CACHE: dict[str, tuple[float, Any]] = {} +_CACHE_TTL = 300 # 5 minutes + + +def clear_cache() -> None: + """Flush the in-memory response cache.""" + _CACHE.clear() + + +def _get_v2(path: str, timeout: int = 15) -> Any: + """GET V2 endpoint. Path should start with /.""" + url = f"{config.SPORTSDB_V2}{path}" + cache_key = f"v2|{path}" + + hit = _CACHE.get(cache_key) + if hit: + ts, data = hit + if time.time() - ts < _CACHE_TTL: + return data + + resp = requests.get(url, headers=_V2_HEADERS, timeout=timeout) + resp.raise_for_status() + data = resp.json() + _CACHE[cache_key] = (time.time(), data) + return data + + +def _get_v1(path: str, params: dict | None = None, timeout: int = 15) -> Any: + """GET V1 endpoint. Path should start with /.""" + url = f"{config.SPORTSDB_V1}{path}" + cache_key = f"v1|{path}|{sorted(params.items()) if params else ''}" + + hit = _CACHE.get(cache_key) + if hit: + ts, data = hit + if time.time() - ts < _CACHE_TTL: + return data + + resp = requests.get(url, params=params, timeout=timeout) + resp.raise_for_status() + data = resp.json() + _CACHE[cache_key] = (time.time(), data) + return data + + +# ── Connectivity check ────────────────────────────────── + +def check_connection() -> dict: + """Quick probe — hit a lightweight V1 endpoint.""" + try: + t0 = time.time() + _get_v1("/searchteams.php", {"t": "Arsenal"}, timeout=8) + latency_ms = round((time.time() - t0) * 1000, 1) + return {"connected": True, "latency_ms": latency_ms, "backend": "TheSportsDB"} + except Exception as e: + return {"connected": False, "latency_ms": None, "backend": "TheSportsDB", + "error": str(e)} + + +# ══════════════════════════════════════════════════════════ +# V2 ENDPOINTS (premium key required) +# ══════════════════════════════════════════════════════════ + +# ── Search ─────────────────────────────────────────────── + +def search_leagues(name: str) -> Any: + """Search leagues by name. Returns {'search': [...]}.""" + return _get_v2(f"/search/league/{name}") + + +def search_teams(name: str) -> Any: + """Search teams by name. Returns {'search': [...]}.""" + return _get_v2(f"/search/team/{name}") + + +def search_players(name: str) -> Any: + """Search players by name. Returns {'search': [...]}.""" + return _get_v2(f"/search/player/{name}") + + +def search_events(name: str) -> Any: + """Search events/matches by name. Returns {'search': [...]}.""" + return _get_v2(f"/search/event/{name}") + + +# ── Lookup ─────────────────────────────────────────────── + +def lookup_league(league_id: int) -> Any: + """Full league details.""" + return _get_v2(f"/lookup/league/{league_id}") + + +def lookup_team(team_id: int) -> Any: + """Full team details (description, stadium, social, colours).""" + return _get_v2(f"/lookup/team/{team_id}") + + +def lookup_player(player_id: int) -> Any: + """Full player bio, stats, images.""" + return _get_v2(f"/lookup/player/{player_id}") + + +def lookup_player_contracts(player_id: int) -> Any: + """Player career history (teams, years, wages).""" + return _get_v2(f"/lookup/player_contracts/{player_id}") + + +def lookup_player_honours(player_id: int) -> Any: + """Trophies / honours won.""" + return _get_v2(f"/lookup/player_honours/{player_id}") + + +def lookup_event(event_id: int) -> Any: + """Match details: teams, score, venue, referee, status.""" + return _get_v2(f"/lookup/event/{event_id}") + + +def lookup_event_lineup(event_id: int) -> Any: + """Both teams' lineups: positions, squad numbers, sub status.""" + return _get_v2(f"/lookup/event_lineup/{event_id}") + + +def lookup_event_stats(event_id: int) -> Any: + """Full match statistics: shots, possession, passes, cards, xG.""" + return _get_v2(f"/lookup/event_stats/{event_id}") + + +def lookup_event_timeline(event_id: int) -> Any: + """Match events timeline: goals, subs, cards with minute + player.""" + return _get_v2(f"/lookup/event_timeline/{event_id}") + + +def lookup_event_tv(event_id: int) -> Any: + """TV broadcast details for a match.""" + return _get_v2(f"/lookup/event_tv/{event_id}") + + +def lookup_venue(venue_id: int) -> Any: + """Venue details: capacity, location, images.""" + return _get_v2(f"/lookup/venue/{venue_id}") + + +# ── List ───────────────────────────────────────────────── + +def list_teams(league_id: int) -> Any: + """All teams in a league.""" + return _get_v2(f"/list/teams/{league_id}") + + +def list_seasons(league_id: int) -> Any: + """All seasons for a league.""" + return _get_v2(f"/list/seasons/{league_id}") + + +def list_players(team_id: int) -> Any: + """All players on a team (squad roster).""" + return _get_v2(f"/list/players/{team_id}") + + +# ── Schedule ───────────────────────────────────────────── + +def schedule_next_league(league_id: int) -> Any: + """Next 10 events in a league.""" + return _get_v2(f"/schedule/next/league/{league_id}") + + +def schedule_previous_league(league_id: int) -> Any: + """Previous 10 events in a league.""" + return _get_v2(f"/schedule/previous/league/{league_id}") + + +def schedule_next_team(team_id: int) -> Any: + """Next 10 events for a team.""" + return _get_v2(f"/schedule/next/team/{team_id}") + + +def schedule_previous_team(team_id: int) -> Any: + """Previous 10 events for a team.""" + return _get_v2(f"/schedule/previous/team/{team_id}") + + +def schedule_full_team(team_id: int) -> Any: + """Full season schedule for a team.""" + return _get_v2(f"/schedule/full/team/{team_id}") + + +def schedule_league_season(league_id: int, season: str) -> Any: + """Full season schedule for a league. Season format: '2025-2026' or '2026'.""" + return _get_v2(f"/schedule/league/{league_id}/{season}") + + +# ── Livescores ─────────────────────────────────────────── + +def livescores_soccer() -> Any: + """All live soccer scores (2-min delay on premium).""" + return _get_v2("/livescore/soccer") + + +def livescores_league(league_id: int) -> Any: + """Live scores for a specific league.""" + return _get_v2(f"/livescore/{league_id}") + + +# ── All (reference data) ──────────────────────────────── + +def all_countries() -> Any: + """All supported countries.""" + return _get_v2("/all/countries") + + +def all_sports() -> Any: + """All supported sports.""" + return _get_v2("/all/sports") + + +def all_leagues() -> Any: + """All supported leagues.""" + return _get_v2("/all/leagues") + + +# ══════════════════════════════════════════════════════════ +# V1 ENDPOINTS (fills V2 gaps: standings, H2H, events-by-date) +# ══════════════════════════════════════════════════════════ + +def v1_standings(league_id: int, season: str) -> Any: + """ + League table / standings. + Season format: '2025-2026' or '2026'. + Returns {'table': [...]}. + """ + return _get_v1("/lookuptable.php", {"l": league_id, "s": season}) + + +def v1_events_by_date(date: str, sport: str = "Soccer") -> Any: + """ + All events on a date. + Date format: YYYY-MM-DD. + Returns {'events': [...]}. + """ + return _get_v1("/eventsday.php", {"d": date, "s": sport}) + + +def v1_events_by_date_league(date: str, league_id: int) -> Any: + """ + Events on a date filtered by league. + Date format: YYYY-MM-DD. + """ + return _get_v1("/eventsday.php", {"d": date, "l": league_id}) + + +def v1_event_results(event_id: int) -> Any: + """Lookup a single event by ID.""" + return _get_v1("/lookupevent.php", {"id": event_id}) + + +def v1_search_teams(name: str) -> Any: + """Search teams by name (V1). Returns {'teams': [...]}.""" + return _get_v1("/searchteams.php", {"t": name}) + + +def v1_search_players(name: str) -> Any: + """Search players by name (V1). Returns {'player': [...]}.""" + return _get_v1("/searchplayers.php", {"p": name}) + + +def v1_lookup_team(team_id: int) -> Any: + """Team detail by ID (V1). Returns {'teams': [...]}.""" + return _get_v1("/lookupteam.php", {"id": team_id}) + + +def v1_next_team(team_id: int) -> Any: + """Next 5 events for a team (V1). Returns {'events': [...]}.""" + return _get_v1("/eventsnext.php", {"id": team_id}) + + +def v1_previous_team(team_id: int) -> Any: + """Last 5 results for a team (V1). Returns {'results': [...]}.""" + return _get_v1("/eventslast.php", {"id": team_id}) + + +def v1_season_events(league_id: int, season: str) -> Any: + """All events in a league season (V1). Returns {'events': [...]}.""" + return _get_v1("/eventsseason.php", {"id": league_id, "s": season}) diff --git a/nike/sync.py b/nike/sync.py new file mode 100644 index 0000000..b873190 --- /dev/null +++ b/nike/sync.py @@ -0,0 +1,250 @@ +""" +Data synchronisation logic. +Reusable by both scripts/ and the MCP sync_data tool. +""" +from __future__ import annotations + +from nike import api_football, config +from nike.db import get_conn + + +def _upsert_league(cur, league_id: int, season: int) -> int: + cur.execute(""" + INSERT INTO leagues (api_football_id, name, country, current_season, is_followed) + VALUES (%s, 'Major League Soccer', 'USA', %s, TRUE) + ON CONFLICT (api_football_id) DO UPDATE SET + current_season = EXCLUDED.current_season, + updated_at = NOW() + RETURNING id + """, (league_id, season)) + return cur.fetchone()[0] + + +def _upsert_team(cur, t: dict, v: dict | None, *, followed: bool = False) -> int: + cur.execute(""" + INSERT INTO teams (api_football_id, name, country, logo_url, + venue_name, venue_city, venue_capacity, is_followed) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s) + ON CONFLICT (api_football_id) DO UPDATE SET + name = EXCLUDED.name, + logo_url = EXCLUDED.logo_url, + venue_name = EXCLUDED.venue_name, + is_followed = CASE WHEN EXCLUDED.is_followed THEN TRUE + ELSE teams.is_followed END, + updated_at = NOW() + RETURNING id + """, ( + t['id'], t['name'], t.get('country'), t.get('logo'), + v.get('name') if v else None, + v.get('city') if v else None, + v.get('capacity') if v else None, + followed, + )) + return cur.fetchone()[0] + + +def sync_team_data(team_search: str = config.TFC_SEARCH, + seasons: list[int] = config.SEASONS) -> dict: + """ + Find a team by name, then upsert league / team / squad / fixtures. + Returns a result dict with counts of records stored. + """ + results: dict = { + "team": None, "seasons": {}, "players": 0, + "squad": [], "all_fixtures": [], + "errors": [], "api_calls": 0, + } + + # 1. Find team + teams = api_football.search_teams(team_search) + results["api_calls"] += 1 + tfc = None + for item in teams: + t = item['team'] + if 'Toronto' in t['name']: + tfc = item + break + if not tfc: + # fallback: fetch all teams in MLS and scan for Toronto + teams2 = api_football.get_teams_by_league(config.MLS_LEAGUE_ID) + results["api_calls"] += 1 + for item in teams2: + if 'Toronto' in item['team']['name']: + tfc = item + break + if not tfc: + results["errors"].append("Toronto FC not found in API") + return results + + tfc_team = tfc['team'] + tfc_venue = tfc.get('venue', {}) + results["team"] = tfc_team['name'] + + with get_conn() as conn: + cur = conn.cursor() + league_db_id = _upsert_league(cur, config.MLS_LEAGUE_ID, max(seasons)) + tfc_db_id = _upsert_team(cur, tfc_team, tfc_venue, followed=True) + + # 2. Squad + squad = api_football.get_squad(tfc_team['id']) + results["api_calls"] += 1 + for p in squad: + cur.execute(""" + INSERT INTO players (api_football_id, name, position, + shirt_number, current_team_id, photo_url) + VALUES (%s, %s, %s, %s, %s, %s) + ON CONFLICT (api_football_id) DO UPDATE SET + name = EXCLUDED.name, + position = EXCLUDED.position, + shirt_number = EXCLUDED.shirt_number, + current_team_id = EXCLUDED.current_team_id, + photo_url = EXCLUDED.photo_url, + updated_at = NOW() + """, (p['id'], p['name'], p.get('position'), + p.get('number'), tfc_db_id, p.get('photo'))) + results["players"] = len(squad) + results["squad"] = squad + + # 3. Fixtures per season + for season in seasons: + fixtures = [] + try: + fixtures = api_football.get_fixtures( + tfc_team['id'], season, config.MLS_LEAGUE_ID) + results["api_calls"] += 1 + except Exception as e: + results["errors"].append(f"Fixtures {season}: {e}") + results["seasons"][season] = 0 + continue + + count = 0 + for f in fixtures: + fix = f['fixture'] + teams = f['teams'] + goals = f['goals'] + lg = f['league'] + home, away = teams['home'], teams['away'] + + for team_data in [home, away]: + cur.execute(""" + INSERT INTO teams (api_football_id, name, country, logo_url) + VALUES (%s, %s, 'USA', %s) + ON CONFLICT (api_football_id) DO NOTHING + """, (team_data['id'], team_data['name'], team_data.get('logo'))) + + cur.execute("SELECT id FROM teams WHERE api_football_id = %s", (home['id'],)) + home_db = cur.fetchone()[0] + cur.execute("SELECT id FROM teams WHERE api_football_id = %s", (away['id'],)) + away_db = cur.fetchone()[0] + + cur.execute(""" + INSERT INTO fixtures + (api_football_id, league_id, season, round, match_date, + venue_name, venue_city, status, elapsed_minutes, + home_team_id, away_team_id, home_goals, away_goals) + VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON CONFLICT (api_football_id) DO UPDATE SET + status = EXCLUDED.status, + home_goals = EXCLUDED.home_goals, + away_goals = EXCLUDED.away_goals, + elapsed_minutes = EXCLUDED.elapsed_minutes, + updated_at = NOW() + """, ( + fix['id'], league_db_id, season, lg.get('round'), fix['date'], + fix['venue'].get('name') if fix.get('venue') else None, + fix['venue'].get('city') if fix.get('venue') else None, + fix['status']['short'], fix['status'].get('elapsed'), + home_db, away_db, goals.get('home'), goals.get('away'), + )) + count += 1 + hg = goals.get('home') + ag = goals.get('away') + score = f"{hg}-{ag}" if hg is not None and ag is not None else "" + results["all_fixtures"].append({ + "date": fix["date"], + "home": home["name"], + "away": away["name"], + "status": fix["status"]["short"], + "score": score, + "venue": (fix.get("venue") or {}).get("name") or "TBD", + "round": lg.get("round", ""), + }) + results["seasons"][season] = count + + # 4. Followed entity + cur.execute(""" + INSERT INTO followed_entities + (entity_type, entity_id, api_football_id, priority) + VALUES ('team', %s, %s, 'high') + ON CONFLICT DO NOTHING + """, (tfc_db_id, tfc_team['id'])) + cur.close() + + return results + + +def sync_standings(league_id: int, season: int) -> dict: + """Sync current MLS standings into the DB.""" + rows = api_football.get_standings(league_id, season) + inserted = 0 + with get_conn() as conn: + cur = conn.cursor() + for entry in rows: + # Field names vary by API — try common variants + team_data = (entry.get('team') or + {'id': entry.get('teamid') or entry.get('team_id'), + 'name': entry.get('teamname') or entry.get('name', ''), + 'logo': entry.get('logo')}) + # Nested stats may live under 'all', 'overall', or at top level + stats = entry.get('all') or entry.get('overall') or entry + + team_api_id = team_data.get('id') or team_data.get('teamid') + if not team_api_id: + continue + + # Ensure team exists + cur.execute(""" + INSERT INTO teams (api_football_id, name, country, logo_url) + VALUES (%s, %s, 'USA', %s) + ON CONFLICT (api_football_id) DO NOTHING + """, (team_api_id, team_data.get('name', ''), team_data.get('logo'))) + + cur.execute("SELECT id FROM leagues WHERE api_football_id = %s", (league_id,)) + league_row = cur.fetchone() + if not league_row: + continue + league_db_id = league_row[0] + + cur.execute("SELECT id FROM teams WHERE api_football_id = %s", (team_api_id,)) + team_row = cur.fetchone() + if not team_row: + continue + team_db_id = team_row[0] + + played = (stats.get('played') or stats.get('gp') or + stats.get('games_played') or 0) + wins = (stats.get('win') or stats.get('wins') or stats.get('w') or 0) + draws = (stats.get('draw') or stats.get('draws') or stats.get('d') or 0) + losses = (stats.get('lose') or stats.get('losses') or stats.get('l') or 0) + goals = stats.get('goals') or {} + gf = goals.get('for') or stats.get('goals_for') or 0 + ga = goals.get('against') or stats.get('goals_against') or 0 + + cur.execute(""" + INSERT INTO standings + (league_id, season, team_id, rank, points, played, + wins, draws, losses, goals_for, goals_against, + goal_difference, form) + VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON CONFLICT DO NOTHING + """, ( + league_db_id, season, team_db_id, + entry.get('rank') or entry.get('position'), + entry.get('points') or entry.get('pts'), + played, wins, draws, losses, gf, ga, + entry.get('goalsDiff') or entry.get('goal_difference') or (gf - ga), + entry.get('form', ''), + )) + inserted += 1 + cur.close() + return {"standings_inserted": inserted} diff --git a/nike/templates/dashboard.html b/nike/templates/dashboard.html new file mode 100644 index 0000000..56103d9 --- /dev/null +++ b/nike/templates/dashboard.html @@ -0,0 +1,472 @@ + + + + + + Nike — Football Data Platform + + + + + + + + + + + + + + +
+ +
+ +
+ + +
+ + +
+
+
+
+
+
+ Database +
+
+ + Checking… +
+
+ +
+
+
+
Host
+
Latency
+
Version
+
Status
+
+
+
+
+ + +
+
+
+
+
+
+ API-Football +
+
+ + Checking… +
+
+ +
+
+
+
Latency
+
Quota used
+
+
Daily quota
+
+
+
+
+
+
+ + +
+
+
+
+
+
+ MCP Server +
+
+ Running +
+
+ +
+
+
+
Transport
+
Endpoint
+
Uptime
+
Tools
+
+
+
+
+
+ + +
+ + +
+
+
+ Database Contents + Last sync: — +
+
+ + + + + + + + + + + +
TableRowsStatus
Loading…
+
+
+
+ + +
+
+
+ Data Sync +
+
+
+

+ Triggers a fresh pull from API-Football for Toronto FC — + both 2025 and 2026 seasons. Uses approx. 4 of your 100 daily quota calls. +

+
    +
  • Squad (players/squads)
  • +
  • Fixtures 2025 (fixtures)
  • +
  • Fixtures 2026 (fixtures)
  • +
  • Team & league upsert
  • +
+
+
+ +
+
+
+
+
+ +
+ + +
+ + +
+
+
+ MCP Tools +
+
+ + + + + + + + + + + +
ToolDescriptionType
Loading…
+
+ +
+
+ + +
+
+
+ Request Log + 0 entries +
+
+ + + + + + + + + + + + +
TimeToolArgsms
No requests yet
+
+
+
+ +
+ +
+ + + + + + + diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..7884229 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,30 @@ +[build-system] +requires = ["setuptools>=61"] +build-backend = "setuptools.build_meta" + +[project] +name = "nike" +version = "0.1.0" +description = "Football data platform with MCP server" +requires-python = ">=3.11" + +dependencies = [ + "fastapi>=0.115", + "uvicorn[standard]>=0.30", + "fastmcp>=2.0", + "psycopg2-binary>=2.9", + "python-dotenv>=1.0", + "requests>=2.32", + "jinja2>=3.1", +] + +[project.optional-dependencies] +dev = [ + "httpx>=0.27", # for FastAPI test client + "pytest>=8", + "pytest-asyncio>=0.24", +] + +[tool.setuptools.packages.find] +where = ["."] +include = ["nike*"] diff --git a/run.py b/run.py new file mode 100644 index 0000000..0d61612 --- /dev/null +++ b/run.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python3 +""" +Nike — Football Data Platform +Launch with: python run.py +""" +import sys +import os + +# Ensure the project root is on sys.path +sys.path.insert(0, os.path.dirname(__file__)) + +from nike.server import main + +if __name__ == "__main__": + main() diff --git a/schema.sql b/schema.sql new file mode 100644 index 0000000..881cf9f --- /dev/null +++ b/schema.sql @@ -0,0 +1,194 @@ +-- Nike Football Database Schema — TheSportsDB cache layer +-- +-- Caching strategy: +-- PERMANENT: leagues, teams, players (change rarely, cache aggressively) +-- SEMI-PERMANENT: finished match results, lineups, stats, timeline +-- VOLATILE (NOT cached): standings, live scores, upcoming fixtures +-- +-- All IDs come from TheSportsDB (idLeague, idTeam, idEvent, idPlayer). +-- No surrogate keys — TheSportsDB IDs are the primary keys. + +-- ══════════════════════════════════════════════════════════ +-- Core reference tables (permanent cache) +-- ══════════════════════════════════════════════════════════ + +CREATE TABLE IF NOT EXISTS leagues ( + id INTEGER PRIMARY KEY, -- TheSportsDB idLeague + name VARCHAR(255) NOT NULL, -- strLeague + sport VARCHAR(50) DEFAULT 'Soccer', -- strSport + country VARCHAR(100), -- strCountry + badge_url VARCHAR(500), -- strBadge + banner_url VARCHAR(500), -- strBanner + description TEXT, -- strDescriptionEN + is_followed BOOLEAN DEFAULT FALSE, + cached_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS teams ( + id INTEGER PRIMARY KEY, -- TheSportsDB idTeam + name VARCHAR(255) NOT NULL, -- strTeam + short_name VARCHAR(10), -- strTeamShort + alternate_name VARCHAR(255), -- strTeamAlternate + league_id INTEGER, -- idLeague (primary), no FK — cached opportunistically + league_name VARCHAR(255), -- strLeague + formed_year INTEGER, -- intFormedYear + sport VARCHAR(50) DEFAULT 'Soccer', + country VARCHAR(100), -- strCountry + stadium VARCHAR(255), -- strStadium + stadium_capacity INTEGER, -- intStadiumCapacity + location VARCHAR(255), -- strLocation + venue_id INTEGER, -- idVenue + badge_url VARCHAR(500), -- strBadge + logo_url VARCHAR(500), -- strLogo + banner_url VARCHAR(500), -- strBanner + equipment_url VARCHAR(500), -- strEquipment + colour1 VARCHAR(20), -- strColour1 + colour2 VARCHAR(20), -- strColour2 + colour3 VARCHAR(20), -- strColour3 + website VARCHAR(255), -- strWebsite + description TEXT, -- strDescriptionEN + is_followed BOOLEAN DEFAULT FALSE, + cached_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS players ( + id INTEGER PRIMARY KEY, -- TheSportsDB idPlayer + team_id INTEGER, -- idTeam, no FK — cached opportunistically + team_name VARCHAR(255), -- strTeam + name VARCHAR(255) NOT NULL, -- strPlayer + nationality VARCHAR(100), -- strNationality + date_of_birth DATE, -- dateBorn + position VARCHAR(50), -- strPosition + squad_number VARCHAR(10), -- strNumber + height VARCHAR(20), -- strHeight + weight VARCHAR(20), -- strWeight + gender VARCHAR(10), -- strGender + status VARCHAR(30), -- strStatus (Active/Retired) + thumb_url VARCHAR(500), -- strThumb + cutout_url VARCHAR(500), -- strCutout + description TEXT, -- strDescriptionEN + cached_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW() +); + +-- ══════════════════════════════════════════════════════════ +-- Match results (cached when strStatus = 'Match Finished') +-- ══════════════════════════════════════════════════════════ + +CREATE TABLE IF NOT EXISTS events ( + id INTEGER PRIMARY KEY, -- TheSportsDB idEvent + name VARCHAR(255), -- strEvent + league_id INTEGER, -- idLeague, no FK — cached opportunistically + league_name VARCHAR(255), -- strLeague + season VARCHAR(20), -- strSeason + round VARCHAR(20), -- intRound + home_team_id INTEGER, -- idHomeTeam, no FK — cached opportunistically + away_team_id INTEGER, -- idAwayTeam, no FK — cached opportunistically + home_team VARCHAR(255), -- strHomeTeam + away_team VARCHAR(255), -- strAwayTeam + home_score INTEGER, -- intHomeScore + away_score INTEGER, -- intAwayScore + event_date DATE, -- dateEvent + event_time TIME, -- strTime + event_timestamp TIMESTAMPTZ, -- strTimestamp + venue VARCHAR(255), -- strVenue + venue_id INTEGER, -- idVenue + city VARCHAR(100), -- strCity + country VARCHAR(100), -- strCountry + referee VARCHAR(255), -- strOfficial + spectators INTEGER, -- intSpectators + status VARCHAR(50), -- strStatus + postponed VARCHAR(5) DEFAULT 'no', -- strPostponed + poster_url VARCHAR(500), -- strPoster + thumb_url VARCHAR(500), -- strThumb + video_url VARCHAR(500), -- strVideo + cached_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW() +); + +-- ── Match detail sub-tables (V2, cached for finished matches) ── + +CREATE TABLE IF NOT EXISTS event_stats ( + id INTEGER PRIMARY KEY, -- TheSportsDB idStatistic + event_id INTEGER NOT NULL REFERENCES events(id) ON DELETE CASCADE, + id_api_football VARCHAR(20), -- idApiFootball + event_name VARCHAR(255), -- strEvent + stat_name VARCHAR(100) NOT NULL, -- strStat (e.g. "Shots on Goal") + home_value VARCHAR(50), -- intHome + away_value VARCHAR(50), -- intAway + UNIQUE(event_id, stat_name) +); + +CREATE TABLE IF NOT EXISTS event_lineup ( + id INTEGER PRIMARY KEY, -- TheSportsDB idLineup + event_id INTEGER NOT NULL REFERENCES events(id) ON DELETE CASCADE, + id_api_football VARCHAR(20), -- idAPIfootball + event_name VARCHAR(255), -- strEvent + player_id INTEGER, -- idPlayer + player_name VARCHAR(255), -- strPlayer + team_id INTEGER, -- idTeam + team_name VARCHAR(255), -- strTeam + is_home VARCHAR(5), -- strHome ("Yes"/"No") + position VARCHAR(50), -- strPosition + position_short VARCHAR(5), -- strPositionShort (G/D/M/F) + formation VARCHAR(20), -- strFormation + squad_number INTEGER, -- intSquadNumber + is_substitute VARCHAR(5) DEFAULT 'No', -- strSubstitute ("Yes"/"No") + cutout_url VARCHAR(500), -- strCutout + country VARCHAR(100), -- strCountry + season VARCHAR(20), -- strSeason + UNIQUE(event_id, player_id) +); + +CREATE TABLE IF NOT EXISTS event_timeline ( + id INTEGER PRIMARY KEY, -- TheSportsDB idTimeline + event_id INTEGER NOT NULL REFERENCES events(id) ON DELETE CASCADE, + id_api_football VARCHAR(20), -- idAPIfootball + event_name VARCHAR(255), -- strEvent + event_type VARCHAR(100), -- strTimeline ("Goal", "subst", "Yellow Card") + event_detail VARCHAR(255), -- strTimelineDetail ("Substitution 1") + is_home VARCHAR(5), -- strHome ("Yes"/"No") + minute INTEGER, -- intTime + period VARCHAR(20), -- strPeriod + player_id INTEGER, -- idPlayer + player_name VARCHAR(255), -- strPlayer + cutout_url VARCHAR(500), -- strCutout + assist_id INTEGER, -- idAssist + assist_name VARCHAR(255), -- strAssist + team_id INTEGER, -- idTeam + team_name VARCHAR(255), -- strTeam + comment TEXT, -- strComment + event_date DATE, -- dateEvent + season VARCHAR(20), -- strSeason + UNIQUE(event_id, minute, player_id, event_type) +); + +-- ══════════════════════════════════════════════════════════ +-- Cache management +-- ══════════════════════════════════════════════════════════ + +CREATE TABLE IF NOT EXISTS cache_meta ( + cache_key VARCHAR(255) PRIMARY KEY, -- e.g. "standings:4346:2026" + fetched_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + ttl_seconds INTEGER NOT NULL DEFAULT 3600, + data_json JSONB -- optional: store raw response +); + +-- ══════════════════════════════════════════════════════════ +-- Indexes +-- ══════════════════════════════════════════════════════════ + +CREATE INDEX IF NOT EXISTS idx_teams_league ON teams(league_id); +CREATE INDEX IF NOT EXISTS idx_teams_followed ON teams(is_followed) WHERE is_followed; +CREATE INDEX IF NOT EXISTS idx_players_team ON players(team_id); +CREATE INDEX IF NOT EXISTS idx_events_date ON events(event_date); +CREATE INDEX IF NOT EXISTS idx_events_home_team ON events(home_team_id); +CREATE INDEX IF NOT EXISTS idx_events_away_team ON events(away_team_id); +CREATE INDEX IF NOT EXISTS idx_events_league ON events(league_id); +CREATE INDEX IF NOT EXISTS idx_events_status ON events(status); +CREATE INDEX IF NOT EXISTS idx_event_stats_event ON event_stats(event_id); +CREATE INDEX IF NOT EXISTS idx_event_lineup_event ON event_lineup(event_id); +CREATE INDEX IF NOT EXISTS idx_event_tl_event ON event_timeline(event_id); +CREATE INDEX IF NOT EXISTS idx_cache_meta_fetched ON cache_meta(fetched_at); diff --git a/scripts/apply_schema.py b/scripts/apply_schema.py new file mode 100644 index 0000000..4965052 --- /dev/null +++ b/scripts/apply_schema.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 +"""Apply Nike schema to Portia PostgreSQL.""" +import os +import sys + +from dotenv import load_dotenv +import psycopg2 + +load_dotenv('/home/robert/gitea/nike/.env') + +try: + conn = psycopg2.connect( + host=os.getenv('DB_HOST'), + port=int(os.getenv('DB_PORT', 5432)), + user=os.getenv('DB_USER'), + password=os.getenv('DB_PASSWORD'), + dbname='nike', + ) +except Exception as e: + print(f"❌ Cannot connect to DB: {e}") + sys.exit(1) + +conn.autocommit = True +cur = conn.cursor() + +schema_path = os.path.join(os.path.dirname(__file__), '..', 'schema.sql') +with open(schema_path, 'r') as f: + sql = f.read() + +try: + cur.execute(sql) + print("✅ Schema applied successfully.") +except Exception as e: + print(f"❌ Schema error: {e}") + cur.close() + conn.close() + sys.exit(1) + +cur.execute(""" + SELECT table_name FROM information_schema.tables + WHERE table_schema = 'public' ORDER BY table_name; +""") +tables = cur.fetchall() +print(f" {len(tables)} tables in public schema:") +for t in tables: + print(f" • {t[0]}") + +cur.close() +conn.close() diff --git a/scripts/discover_api.py b/scripts/discover_api.py new file mode 100644 index 0000000..01c1fd6 --- /dev/null +++ b/scripts/discover_api.py @@ -0,0 +1,327 @@ +#!/usr/bin/env python3 +""" +API Discovery Script — walk the RapidAPI top-down, save raw responses. + +Workflow: + 1. Search for leagues (MLS, Premier League) → get league IDs + 2. Search for teams (Toronto FC, Arsenal) → get team IDs + 3. Get league matches → find recent past + upcoming event IDs + 4. Get match detail, score, stats, location for a finished match + 5. Get match highlights (goals, cards, events) + 6. Get lineups for a finished match + 7. Get squad roster + sample player detail + 8. Get standings + +Saves every response to docs/api_samples/{step}_{endpoint}.json +Cost: ~18 API calls +""" +import sys +import json +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) + +from nike import rapidapi as rapi + +SAMPLES_DIR = Path(__file__).resolve().parent.parent / "docs" / "api_samples" +SAMPLES_DIR.mkdir(parents=True, exist_ok=True) + + +def save(name: str, data) -> None: + """Save raw API response to a JSON file.""" + path = SAMPLES_DIR / f"{name}.json" + with open(path, "w") as f: + json.dump(data, f, indent=2, default=str) + size_kb = path.stat().st_size / 1024 + print(f" ✓ Saved {path.name} ({size_kb:.1f} KB)") + + +def extract_id(data, label="item") -> int | None: + """Try to pull an ID from the first search result.""" + resp = data.get("response") if isinstance(data, dict) else None + + # Handle nested response structures + items = [] + if isinstance(resp, dict): + for key in ("suggestions", "teams", "leagues", "players", "matches"): + if key in resp and isinstance(resp[key], list) and resp[key]: + items = resp[key] + break + if not items: + items = [resp] + elif isinstance(resp, list): + items = resp + else: + # Try alternate envelope keys + for key in ("data", "result"): + val = data.get(key) + if isinstance(val, list) and val: + items = val + break + + for item in items: + if isinstance(item, dict): + eid = item.get("id") or item.get("primaryId") + if eid: + name = item.get("name") or item.get("title") or "?" + print(f" → {label}: {name} (ID: {eid})") + return int(eid) + + print(f" ⚠ Could not extract ID from {label} response") + # Dump top-level keys for debugging + if isinstance(data, dict): + print(f" Top-level keys: {list(data.keys())}") + if isinstance(resp, dict): + print(f" response keys: {list(resp.keys())}") + return None + + +def find_event_ids(data, limit=2): + """Extract event IDs from a matches/fixtures response.""" + resp = data.get("response") if isinstance(data, dict) else None + events = {"past": [], "upcoming": []} + + items = [] + if isinstance(resp, dict): + for key in ("matches", "events", "fixtures", "allMatches"): + if key in resp and isinstance(resp[key], list): + items = resp[key] + break + if not items: + # Flatten if resp itself contains sub-lists + for key, val in resp.items(): + if isinstance(val, list) and val and isinstance(val[0], dict): + items = val + break + elif isinstance(resp, list): + items = resp + else: + for key in ("data", "result"): + val = data.get(key) + if isinstance(val, list): + items = val + break + + for item in items: + if not isinstance(item, dict): + continue + eid = item.get("id") or item.get("eventId") or item.get("primaryId") + if not eid: + continue + + # Detect finished vs upcoming + status = item.get("status", {}) + if isinstance(status, dict): + finished = (status.get("finished", False) or + status.get("short") == "FT" or + status.get("type") == "finished") + elif isinstance(status, str): + finished = status.lower() in ("ft", "aet", "pen", "finished") + else: + finished = False + + bucket = "past" if finished else "upcoming" + events[bucket].append(int(eid)) + + return {k: v[:limit] for k, v in events.items()} + + +def main(): + print("=" * 60) + print(" Nike API Discovery — Mapping Response Structures") + print("=" * 60) + + # ══════════════════════════════════════════════════════ + # STEP 1: League discovery + # ══════════════════════════════════════════════════════ + print("\n[1/8] Searching for leagues...") + + mls = rapi.search_leagues("MLS") + save("01_search_leagues_mls", mls) + mls_id = extract_id(mls, "MLS") + + epl = rapi.search_leagues("Premier League") + save("01_search_leagues_epl", epl) + epl_id = extract_id(epl, "Premier League") + + popular = rapi.get_popular_leagues() + save("01_popular_leagues", popular) + + # ══════════════════════════════════════════════════════ + # STEP 2: Team discovery + # ══════════════════════════════════════════════════════ + print("\n[2/8] Searching for teams...") + + tfc = rapi.search_teams("Toronto FC") + save("02_search_teams_tfc", tfc) + tfc_id = extract_id(tfc, "Toronto FC") + + ars = rapi.search_teams("Arsenal") + save("02_search_teams_arsenal", ars) + ars_id = extract_id(ars, "Arsenal") + + # ══════════════════════════════════════════════════════ + # STEP 3: League matches (fixtures) + # ══════════════════════════════════════════════════════ + print("\n[3/8] Fetching league matches...") + + mls_events = {"past": [], "upcoming": []} + if mls_id: + mls_matches = rapi.get_league_matches(mls_id) + save("03_league_matches_mls", mls_matches) + mls_events = find_event_ids(mls_matches) + print(f" → Events found: {len(mls_events['past'])} past, " + f"{len(mls_events['upcoming'])} upcoming") + if not mls_events["past"] and not mls_events["upcoming"]: + # Dump structure hints to help debug + resp = mls_matches.get("response") + if isinstance(resp, dict): + print(f" response keys: {list(resp.keys())}") + for k, v in resp.items(): + if isinstance(v, list) and v: + print(f" response.{k}[0] keys: " + f"{list(v[0].keys()) if isinstance(v[0], dict) else type(v[0])}") + elif isinstance(resp, list) and resp: + print(f" response[0] keys: " + f"{list(resp[0].keys()) if isinstance(resp[0], dict) else type(resp[0])}") + else: + print(" ⚠ No MLS ID, skipping") + + # ══════════════════════════════════════════════════════ + # STEP 4: Match detail (finished match) + # ══════════════════════════════════════════════════════ + print("\n[4/8] Fetching match detail...") + + event_id = None + if mls_events["past"]: + event_id = mls_events["past"][0] + elif mls_events["upcoming"]: + event_id = mls_events["upcoming"][0] + + if event_id: + print(f" Using event ID: {event_id}") + + detail = rapi.get_match_detail(event_id) + save("04_match_detail", detail) + + score = rapi.get_match_score(event_id) + save("04_match_score", score) + + status = rapi.get_match_status(event_id) + save("04_match_status", status) + + location = rapi.get_match_location(event_id) + save("04_match_location", location) + else: + print(" ⚠ No event ID found — skipping match detail") + + # ══════════════════════════════════════════════════════ + # STEP 5: Match stats + highlights (goals, cards, events) + # ══════════════════════════════════════════════════════ + print("\n[5/8] Fetching match stats & highlights...") + + if event_id: + stats = rapi.get_match_stats(event_id) + save("05_match_stats", stats) + + highlights = rapi.get_match_highlights(event_id) + save("05_match_highlights", highlights) + + referee = rapi.get_match_referee(event_id) + save("05_match_referee", referee) + else: + print(" ⚠ Skipping (no event ID)") + + # ══════════════════════════════════════════════════════ + # STEP 6: Lineups + # ══════════════════════════════════════════════════════ + print("\n[6/8] Fetching lineups...") + + if event_id: + home_lineup = rapi.get_home_lineup(event_id) + save("06_lineup_home", home_lineup) + + away_lineup = rapi.get_away_lineup(event_id) + save("06_lineup_away", away_lineup) + else: + print(" ⚠ Skipping (no event ID)") + + # ══════════════════════════════════════════════════════ + # STEP 7: Squad & player detail + # ══════════════════════════════════════════════════════ + print("\n[7/8] Fetching squad & player detail...") + + player_id = None + if tfc_id: + squad = rapi.get_squad(tfc_id) + save("07_squad_tfc", squad) + + # Extract a player ID from the squad response + resp = squad.get("response") if isinstance(squad, dict) else None + + if isinstance(resp, list) and resp: + for p in resp: + if isinstance(p, dict): + pid = p.get("id") or p.get("primaryId") + if pid: + player_id = int(pid) + print(f" → Sample player: {p.get('name', '?')} (ID: {player_id})") + break + elif isinstance(resp, dict): + # May be nested under squad/players/roster + for key in ("squad", "players", "roster", "members"): + if key in resp and isinstance(resp[key], list): + for p in resp[key]: + if isinstance(p, dict): + pid = p.get("id") or p.get("primaryId") + if pid: + player_id = int(pid) + print(f" → Sample player: {p.get('name', '?')} " + f"(ID: {player_id})") + break + break + if not player_id: + print(f" response keys: {list(resp.keys())}") + + if player_id: + player = rapi.get_player_detail(player_id) + save("07_player_detail", player) + else: + print(" ⚠ Could not find a player ID in squad response") + else: + print(" ⚠ No TFC ID, skipping") + + # ══════════════════════════════════════════════════════ + # STEP 8: Standings + # ══════════════════════════════════════════════════════ + print("\n[8/8] Fetching standings...") + + if mls_id: + standings = rapi.get_standings(mls_id) + save("08_standings_mls", standings) + + # ══════════════════════════════════════════════════════ + # Summary + # ══════════════════════════════════════════════════════ + print("\n" + "=" * 60) + files = sorted(SAMPLES_DIR.glob("*.json")) + print(f" Saved {len(files)} response samples to docs/api_samples/") + for f in files: + size_kb = f.stat().st_size / 1024 + print(f" {f.name:.<50} {size_kb:.1f} KB") + print("=" * 60) + + print("\n Discovered IDs:") + print(f" MLS league ID : {mls_id}") + print(f" EPL league ID : {epl_id}") + print(f" Toronto FC team ID : {tfc_id}") + print(f" Arsenal team ID : {ars_id}") + if event_id: + print(f" Sample event ID : {event_id}") + if player_id: + print(f" Sample player ID : {player_id}") + print() + + +if __name__ == "__main__": + main() diff --git a/scripts/discover_sportsdb.py b/scripts/discover_sportsdb.py new file mode 100644 index 0000000..273732d --- /dev/null +++ b/scripts/discover_sportsdb.py @@ -0,0 +1,383 @@ +#!/usr/bin/env python3 +""" +TheSportsDB API Discovery — walk the API top-down, save raw responses. + +Uses V1 free key ('3') for basic structure validation. +With a premium key, also tests V2 endpoints. + +Workflow: + 1. Search for leagues (MLS, Premier League) → IDs + 2. Search for teams (Toronto FC, Arsenal) → IDs + 3. Get team schedules (next + previous matches) → event IDs + 4. Get match detail, stats, lineup, timeline for a finished match + 5. Get squad roster + sample player detail + 6. Get standings (V1) + 7. Get events by date (V1) + 8. Get livescores + +Saves every response to docs/api_samples/sportsdb/{step}_{endpoint}.json +""" +import sys +import json +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) + +from nike import config +from nike import sportsdb as api + +SAMPLES_DIR = Path(__file__).resolve().parent.parent / "docs" / "api_samples" / "sportsdb" +SAMPLES_DIR.mkdir(parents=True, exist_ok=True) + +# Track API calls +_call_count = 0 + + +def save(name: str, data) -> None: + """Save raw API response to a JSON file.""" + global _call_count + _call_count += 1 + path = SAMPLES_DIR / f"{name}.json" + with open(path, "w") as f: + json.dump(data, f, indent=2, default=str) + size_kb = path.stat().st_size / 1024 + print(f" ✓ Saved {path.name} ({size_kb:.1f} KB)") + + +def show_keys(data, label="response"): + """Print top-level structure of a response.""" + if isinstance(data, dict): + for k, v in data.items(): + if isinstance(v, list): + print(f" {label}.{k}: list ({len(v)} items)") + if v and isinstance(v[0], dict): + print(f" [0] keys: {list(v[0].keys())}") + elif isinstance(v, dict): + print(f" {label}.{k}: dict ({len(v)} keys)") + elif v is None: + print(f" {label}.{k}: null") + else: + print(f" {label}.{k}: {str(v)[:80]}") + elif isinstance(data, list): + print(f" {label}: list ({len(data)} items)") + if data and isinstance(data[0], dict): + print(f" [0] keys: {list(data[0].keys())}") + elif data is None: + print(f" {label}: null") + + +def extract_items(data: dict, key: str) -> list: + """Safely extract a list from a response dict.""" + items = data.get(key) + return items if isinstance(items, list) else [] + + +def main(): + is_premium = config.SPORTSDB_KEY not in ('3', '') + print("=" * 60) + print(" TheSportsDB API Discovery") + print(f" Key: {'Premium' if is_premium else 'Free (V1 only)'}") + print("=" * 60) + + # ══════════════════════════════════════════════════════ + # STEP 1: Search for leagues (V1 free works for search) + # ══════════════════════════════════════════════════════ + print("\n[1/8] Searching for leagues...") + + mls_id = None + epl_id = None + + if is_premium: + # V2 search + mls = api.search_leagues("MLS") + save("01_v2_search_leagues_mls", mls) + show_keys(mls) + items = extract_items(mls, "search") + if items: + mls_id = items[0].get("idLeague") + print(f" → MLS: {items[0].get('strLeague')} (ID: {mls_id})") + + epl = api.search_leagues("Premier League") + save("01_v2_search_leagues_epl", epl) + items = extract_items(epl, "search") + if items: + epl_id = items[0].get("idLeague") + print(f" → EPL: {items[0].get('strLeague')} (ID: {epl_id})") + else: + print(" (V2 search requires premium — using V1 search)") + + # Also try V1 search (works on free key) + mls_v1 = api.v1_search_teams("Toronto FC") + save("01_v1_search_teams_tfc", mls_v1) + show_keys(mls_v1) + teams = extract_items(mls_v1, "teams") + tfc_id = None + if teams: + tfc_id = teams[0].get("idTeam") + mls_id = mls_id or teams[0].get("idLeague") + print(f" → Toronto FC: ID={tfc_id}, league={teams[0].get('strLeague')} " + f"(leagueID={teams[0].get('idLeague')})") + + ars_v1 = api.v1_search_teams("Arsenal") + save("01_v1_search_teams_arsenal", ars_v1) + teams = extract_items(ars_v1, "teams") + ars_id = None + if teams: + ars_id = teams[0].get("idTeam") + epl_id = epl_id or teams[0].get("idLeague") + print(f" → Arsenal: ID={ars_id}, league={teams[0].get('strLeague')} " + f"(leagueID={teams[0].get('idLeague')})") + + # ══════════════════════════════════════════════════════ + # STEP 2: Team detail + # ══════════════════════════════════════════════════════ + print("\n[2/8] Fetching team details...") + + if tfc_id: + tfc_detail = api.v1_lookup_team(int(tfc_id)) + save("02_v1_team_detail_tfc", tfc_detail) + teams = extract_items(tfc_detail, "teams") + if teams: + t = teams[0] + print(f" → {t.get('strTeam')}: {t.get('strStadium')}, " + f"{t.get('strStadiumLocation')}") + print(f" Keys: {list(t.keys())[:15]}...") + + # ══════════════════════════════════════════════════════ + # STEP 3: Schedule — next + previous matches + # ══════════════════════════════════════════════════════ + print("\n[3/8] Fetching team schedules...") + + event_id = None + + if tfc_id: + # V1 previous (last 5) + prev = api.v1_previous_team(int(tfc_id)) + save("03_v1_previous_tfc", prev) + results = extract_items(prev, "results") + print(f" Previous matches: {len(results)}") + for m in results[:3]: + eid = m.get("idEvent") + home = m.get("strHomeTeam", "?") + away = m.get("strAwayTeam", "?") + hscore = m.get("intHomeScore", "?") + ascore = m.get("intAwayScore", "?") + date = m.get("dateEvent", "?") + print(f" {date} {home} {hscore}-{ascore} {away} (eventID: {eid})") + if not event_id and hscore is not None: + event_id = int(eid) + + # V1 next (next 5) + nxt = api.v1_next_team(int(tfc_id)) + save("03_v1_next_tfc", nxt) + events = extract_items(nxt, "events") + print(f" Upcoming matches: {len(events)}") + for m in events[:3]: + home = m.get("strHomeTeam", "?") + away = m.get("strAwayTeam", "?") + date = m.get("dateEvent", "?") + print(f" {date} {home} vs {away}") + + if is_premium and tfc_id: + # V2 schedule endpoints + prev_v2 = api.schedule_previous_team(int(tfc_id)) + save("03_v2_previous_tfc", prev_v2) + show_keys(prev_v2) + + next_v2 = api.schedule_next_team(int(tfc_id)) + save("03_v2_next_tfc", next_v2) + show_keys(next_v2) + + # ══════════════════════════════════════════════════════ + # STEP 4: Match detail (V2 lookup for a finished match) + # ══════════════════════════════════════════════════════ + print("\n[4/8] Fetching match detail...") + + if event_id: + print(f" Using event ID: {event_id}") + + # V1 event lookup (works on free) + ev1 = api.v1_event_results(event_id) + save("04_v1_event_detail", ev1) + events = extract_items(ev1, "events") + if events: + e = events[0] + print(f" V1 event keys: {list(e.keys())[:15]}...") + print(f" → {e.get('strHomeTeam')} {e.get('intHomeScore')}-" + f"{e.get('intAwayScore')} {e.get('strAwayTeam')}") + print(f" Venue: {e.get('strVenue')}, Referee: {e.get('strOfficial')}") + + if is_premium: + # V2 event detail + ev2 = api.lookup_event(event_id) + save("04_v2_event_detail", ev2) + show_keys(ev2) + + # V2 stats + stats = api.lookup_event_stats(event_id) + save("04_v2_event_stats", stats) + show_keys(stats) + stat_items = extract_items(stats, "lookup") + if stat_items: + print(f" Stats sample:") + for s in stat_items[:5]: + print(f" {s.get('strStat')}: " + f"Home={s.get('intHome')} Away={s.get('intAway')}") + + # V2 timeline + timeline = api.lookup_event_timeline(event_id) + save("04_v2_event_timeline", timeline) + show_keys(timeline) + tl_items = extract_items(timeline, "lookup") + if tl_items: + print(f" Timeline events: {len(tl_items)}") + for t in tl_items[:5]: + print(f" {t.get('intTime')}' {t.get('strTimeline')}: " + f"{t.get('strPlayer')} ({t.get('strTeam')})") + + # V2 lineup + lineup = api.lookup_event_lineup(event_id) + save("04_v2_event_lineup", lineup) + show_keys(lineup) + lineup_items = extract_items(lineup, "lookup") + if lineup_items: + print(f" Lineup entries: {len(lineup_items)}") + for p in lineup_items[:3]: + print(f" #{p.get('intSquadNumber')} {p.get('strPlayer')} " + f"({p.get('strPosition')}) " + f"home={p.get('strHome')} sub={p.get('strSubstitute')}") + else: + print(" ⚠ No event ID found — skipping") + + # ══════════════════════════════════════════════════════ + # STEP 5: Squad roster + player detail + # ══════════════════════════════════════════════════════ + print("\n[5/8] Fetching squad & player detail...") + + player_id = None + if is_premium and tfc_id: + squad = api.list_players(int(tfc_id)) + save("05_v2_squad_tfc", squad) + show_keys(squad) + players = extract_items(squad, "list") + if players: + p = players[0] + player_id = p.get("idPlayer") + print(f" Squad size: {len(players)}") + print(f" Sample player: {p.get('strPlayer')} " + f"(#{p.get('strNumber')}, {p.get('strPosition')})") + print(f" Player keys: {list(p.keys())[:15]}...") + + if player_id: + pdetail = api.lookup_player(int(player_id)) + save("05_v2_player_detail", pdetail) + show_keys(pdetail) + else: + # V1 player search + players_v1 = api.v1_search_players("Bernardeschi") + save("05_v1_search_player", players_v1) + show_keys(players_v1) + items = extract_items(players_v1, "player") + if items: + player_id = items[0].get("idPlayer") + print(f" → {items[0].get('strPlayer')} (ID: {player_id})") + print(f" Keys: {list(items[0].keys())[:15]}...") + + # ══════════════════════════════════════════════════════ + # STEP 6: Standings (V1) + # ══════════════════════════════════════════════════════ + print("\n[6/8] Fetching standings...") + + if epl_id: + # EPL should have current season data + standings = api.v1_standings(int(epl_id), "2025-2026") + save("06_v1_standings_epl", standings) + table = extract_items(standings, "table") + print(f" EPL standings: {len(table)} teams") + if table: + print(f" [0] keys: {list(table[0].keys())}") + for row in table[:3]: + print(f" #{row.get('intRank')} {row.get('strTeam')} " + f"P:{row.get('intPlayed')} W:{row.get('intWin')} " + f"D:{row.get('intDraw')} L:{row.get('intLoss')} " + f"Pts:{row.get('intPoints')}") + + if mls_id: + standings_mls = api.v1_standings(int(mls_id), "2026") + save("06_v1_standings_mls", standings_mls) + table = extract_items(standings_mls, "table") + print(f" MLS standings: {len(table)} teams") + if table: + for row in table[:3]: + print(f" #{row.get('intRank')} {row.get('strTeam')} " + f"Pts:{row.get('intPoints')}") + + # ══════════════════════════════════════════════════════ + # STEP 7: Events by date (V1) + # ══════════════════════════════════════════════════════ + print("\n[7/8] Fetching events by date...") + + events_today = api.v1_events_by_date("2026-03-09") + save("07_v1_events_today", events_today) + ev_list = extract_items(events_today, "events") + print(f" Soccer events today: {len(ev_list)}") + if ev_list: + print(f" [0] keys: {list(ev_list[0].keys())[:15]}...") + for e in ev_list[:3]: + print(f" {e.get('strLeague')}: {e.get('strHomeTeam')} vs " + f"{e.get('strAwayTeam')} ({e.get('strStatus')})") + + if mls_id: + mls_events = api.v1_events_by_date_league("2026-03-09", int(mls_id)) + save("07_v1_events_today_mls", mls_events) + ev_list = extract_items(mls_events, "events") + print(f" MLS events today: {len(ev_list)}") + for e in ev_list[:5]: + print(f" {e.get('strHomeTeam')} vs {e.get('strAwayTeam')} " + f"({e.get('strStatus')})") + + # ══════════════════════════════════════════════════════ + # STEP 8: Livescores (V2 premium only) + # ══════════════════════════════════════════════════════ + print("\n[8/8] Fetching livescores...") + + if is_premium: + live = api.livescores_soccer() + save("08_v2_livescores", live) + show_keys(live) + games = extract_items(live, "livescore") + print(f" Live soccer matches: {len(games)}") + for g in games[:3]: + print(f" {g.get('strHomeTeam')} {g.get('intHomeScore')}-" + f"{g.get('intAwayScore')} {g.get('strAwayTeam')} " + f"({g.get('strStatus')} {g.get('strProgress')}')") + else: + print(" (Livescores require premium key)") + + # ══════════════════════════════════════════════════════ + # Summary + # ══════════════════════════════════════════════════════ + print("\n" + "=" * 60) + files = sorted(SAMPLES_DIR.glob("*.json")) + print(f" Saved {len(files)} response samples to docs/api_samples/sportsdb/") + for f in files: + size_kb = f.stat().st_size / 1024 + print(f" {f.name:.<55} {size_kb:.1f} KB") + print("=" * 60) + + print(f"\n API calls made: {_call_count}") + print(f" Key type: {'Premium (V1+V2)' if is_premium else 'Free (V1 only)'}") + print(f"\n Discovered IDs:") + print(f" MLS league ID : {mls_id}") + print(f" EPL league ID : {epl_id}") + print(f" Toronto FC team ID : {tfc_id}") + print(f" Arsenal team ID : {ars_id}") + if event_id: + print(f" Sample event ID : {event_id}") + if player_id: + print(f" Sample player ID : {player_id}") + print() + + +if __name__ == "__main__": + main() diff --git a/scripts/pull_tfc.py b/scripts/pull_tfc.py new file mode 100644 index 0000000..e122629 --- /dev/null +++ b/scripts/pull_tfc.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python3 +""" +Pull Toronto FC squad and fixtures and store in Portia DB. + +Delegates all API calls and DB writes to nike.sync.sync_team_data() +so this script stays thin and the real logic lives in one place. +""" +import sys +from pathlib import Path + +# Make sure the project root is on the path when run directly +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) + +from datetime import date + +from nike import config, db +from nike.sync import sync_team_data + + +def main() -> None: + if not config.API_FOOTBALL_KEY: + print("❌ API_FOOTBALL_KEY not set in .env") + sys.exit(1) + + print("=" * 60) + print(" NIKE — Toronto FC Data Pull") + print(f" API: {config.API_FOOTBALL_BASE}") + print("=" * 60) + + db.create_pool() + + try: + results = sync_team_data( + team_search=config.TFC_SEARCH, + seasons=config.SEASONS, + ) + finally: + db.close_pool() + + # ── Summary ────────────────────────────────────────── + if results["errors"]: + print("\n⚠️ Errors encountered:") + for e in results["errors"]: + print(f" • {e}") + + print(f"\n✅ Team: {results.get('team', 'unknown')}") + print(f" Players: {results['players']}") + print(f" API calls: {results['api_calls']}") + for season, count in results.get("seasons", {}).items(): + print(f" Fixtures {season}: {count}") + + if results.get("squad"): + _print_squad(results["squad"]) + + if results.get("all_fixtures"): + _print_fixtures(results["all_fixtures"]) + + +def _print_squad(squad: list[dict]) -> None: + print("\n" + "=" * 60) + print(" SQUAD") + print("=" * 60) + pos_order = ["Goalkeeper", "Defender", "Midfielder", "Attacker"] + by_pos: dict = {} + for p in squad: + by_pos.setdefault(p.get("position") or "Unknown", []).append(p) + + for pos in pos_order + [k for k in by_pos if k not in pos_order]: + if pos not in by_pos: + continue + print(f"\n {pos.upper()}S:") + for p in sorted(by_pos[pos], + key=lambda x: x["number"] if isinstance(x.get("number"), int) else 99): + print(f" #{str(p.get('number', '-')).rjust(2)} {p['name']}") + + +def _print_fixtures(fixtures: list[dict]) -> None: + print("\n" + "=" * 60) + print(" FIXTURES") + print("=" * 60) + today = date.today().isoformat() + + today_f = [f for f in fixtures if f["date"][:10] == today] + completed = [f for f in fixtures if f["status"] in ("FT", "AET", "PEN")] + upcoming = [f for f in fixtures if f["status"] in ("NS", "TBD", "PST")] + + if today_f: + print("\n 🔴 TODAY:") + for f in today_f: + score = f" {f['score']}" if f.get("score") else "" + print(f" {f['home']}{score} {f['away']} @ {f['venue']} [{f['status']}]") + if completed: + print("\n RECENT RESULTS (last 5):") + for f in completed[-5:]: + print(f" {f['date'][:10]} {f['home']} {f['score']} {f['away']}") + if upcoming: + print("\n UPCOMING (next 5):") + for f in sorted(upcoming, key=lambda x: x["date"])[:5]: + print(f" {f['date'][:10]} {f['home']} vs {f['away']} [{f.get('round', '')}]") + + +if __name__ == "__main__": + main() diff --git a/scripts/test_api.py b/scripts/test_api.py new file mode 100644 index 0000000..daf72bd --- /dev/null +++ b/scripts/test_api.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python3 +""" +Test API connectivity, find Toronto FC, and list popular leagues +so we can confirm the correct MLS league ID for this API. + +Uses 2 API quota calls. +""" +import json +import sys +import time +from pathlib import Path +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) + +from nike import config, api_football + + +def main() -> None: + if not config.API_FOOTBALL_KEY: + print("❌ API_FOOTBALL_KEY not set in .env") + sys.exit(1) + + print(f"API: {config.API_FOOTBALL_BASE}\n") + + # ── 1. Popular leagues (connectivity probe + league ID discovery) ── + print("── Popular Leagues ──────────────────────────") + try: + t0 = time.time() + data = api_football._get("football-popular-leagues", timeout=8) + latency_ms = round((time.time() - t0) * 1000, 1) + except Exception as e: + print(f"❌ Not connected: {e}") + sys.exit(1) + + print(f"✅ Connected latency={latency_ms}ms " + f"quota_remaining={api_football.last_quota_remaining()}") + + leagues = (data.get('response', {}).get('popular') or + data.get('response', {}).get('leagues') or []) + if not isinstance(leagues, list): + print(f" Raw response structure:\n{json.dumps(data, indent=2)[:1000]}") + else: + print(f" {len(leagues)} league(s) returned:") + for lg in leagues: + lg_id = lg.get('id', '?') + lg_name = lg.get('name', str(lg)) + ccode = lg.get('ccode', '') + print(f" [{str(lg_id):>5}] {lg_name} ({ccode})") + print(f"\n ↳ Current config.MLS_LEAGUE_ID = {config.MLS_LEAGUE_ID}") + print(" Update nike/config.py if the ID above doesn't match MLS.\n") + + # ── 2. Search for Toronto FC ─────────────────────────────────── + print("── Search: Toronto ──────────────────────────") + raw_search = api_football._get("football-teams-search", {"search": "Toronto"}) + print(f" quota_remaining={api_football.last_quota_remaining()}") + + # Try all common envelope keys; fall back to full raw dump + raw_list = (raw_search.get('response', {}).get('suggestions') or + raw_search.get('response', {}).get('teams') or + raw_search.get('data') or raw_search.get('result')) + if not isinstance(raw_list, list) or not raw_list: + print(f" 0 results — raw response:\n{json.dumps(raw_search, indent=2)[:1500]}") + else: + teams = [api_football._normalise_team_item(t) + for t in raw_list if t.get('type', 'team') == 'team'] + print(f" {len(teams)} team result(s):") + for item in teams: + t = item['team'] + v = item.get('venue') or {} + print(f" [{str(t.get('id')):>6}] {t.get('name')} ({t.get('country')})") + if v.get('name'): + print(f" Venue: {v.get('name')}, {v.get('city')} cap={v.get('capacity')}") + + +if __name__ == "__main__": + main() diff --git a/scripts/test_db.py b/scripts/test_db.py new file mode 100644 index 0000000..a2c0513 --- /dev/null +++ b/scripts/test_db.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 +"""Test connection to Portia PostgreSQL.""" +import os +import sys +import time + +from dotenv import load_dotenv +import psycopg2 + +load_dotenv('/home/robert/gitea/nike/.env') + +try: + t0 = time.time() + conn = psycopg2.connect( + host=os.getenv('DB_HOST'), + port=int(os.getenv('DB_PORT', 5432)), + user=os.getenv('DB_USER'), + password=os.getenv('DB_PASSWORD'), + dbname='nike', + connect_timeout=5, + ) + latency_ms = round((time.time() - t0) * 1000, 1) + cur = conn.cursor() + cur.execute('SELECT version();') + version = cur.fetchone()[0] + cur.execute("SELECT current_database(), current_user;") + db, user = cur.fetchone() + cur.close() + conn.close() + print(f"✅ Connected in {latency_ms}ms") + print(f" Database : {db}") + print(f" User : {user}") + print(f" Version : {version.split(',')[0]}") +except Exception as e: + print(f"❌ Connection failed: {e}") + sys.exit(1) diff --git a/scripts/test_rapidapi.py b/scripts/test_rapidapi.py new file mode 100644 index 0000000..86dd256 --- /dev/null +++ b/scripts/test_rapidapi.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python3 +""" +Smoke test for the RapidAPI (free-api-live-football-data) backend. + +Verifies connectivity, finds MLS, fetches standings and TFC squad. +Run: python scripts/test_rapidapi.py +""" +import sys +import json +from pathlib import Path + +# Ensure project root is on the path +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) + +from nike import config +from nike import rapidapi as rapi + + +def _pp(label: str, data) -> None: + """Pretty-print a section.""" + print(f"\n{'='*60}") + print(f" {label}") + print(f"{'='*60}") + print(json.dumps(data, indent=2, default=str)[:3000]) # trim for readability + + +def main(): + if not config.RAPIDAPI_KEY: + print("ERROR: RAPIDAPI_KEY is not set in .env") + sys.exit(1) + + print(f"RapidAPI key: {config.RAPIDAPI_KEY[:8]}...{config.RAPIDAPI_KEY[-4:]}") + print(f"Base URL: {config.RAPIDAPI_BASE}") + + # 1. Connectivity + print("\n1) Checking connectivity...") + status = rapi.check_connection() + print(f" Connected: {status['connected']}") + if not status["connected"]: + print(f" Error: {status.get('error')}") + sys.exit(1) + print(f" Latency: {status['latency_ms']} ms") + + # 2. Search for MLS + print("\n2) Searching for 'MLS'...") + mls_data = rapi.search_leagues("MLS") + _pp("MLS search results", mls_data) + + # Try to extract league ID + mls_id = None + resp = mls_data.get("response") if isinstance(mls_data, dict) else None + if isinstance(resp, list): + for item in resp: + if isinstance(item, dict): + mls_id = item.get("id") or item.get("primaryId") + if mls_id: + mls_id = int(mls_id) + break + print(f"\n MLS League ID: {mls_id}") + + # 3. Standings + if mls_id: + print("\n3) Fetching MLS standings...") + standings = rapi.get_standings(mls_id) + _pp("MLS Standings", standings) + + # 4. Search for Toronto FC + print("\n4) Searching for 'Toronto FC'...") + tfc_data = rapi.search_teams("Toronto FC") + _pp("TFC search results", tfc_data) + + tfc_id = None + resp = tfc_data.get("response") if isinstance(tfc_data, dict) else None + if isinstance(resp, list): + for item in resp: + if isinstance(item, dict): + tfc_id = item.get("id") or item.get("primaryId") + if tfc_id: + tfc_id = int(tfc_id) + break + print(f"\n TFC Team ID: {tfc_id}") + + # 5. Squad + if tfc_id: + print("\n5) Fetching TFC squad...") + squad = rapi.get_squad(tfc_id) + _pp("TFC Squad", squad) + + # 6. Live matches (just check it works) + print("\n6) Checking live matches endpoint...") + live = rapi.get_live_matches() + resp = live.get("response") if isinstance(live, dict) else None + count = len(resp) if isinstance(resp, list) else 0 + print(f" Live matches right now: {count}") + + # 7. Trending news + print("\n7) Fetching trending news...") + news_data = rapi.get_trending_news() + _pp("Trending News", news_data) + + print("\n" + "="*60) + print(" ALL CHECKS PASSED") + print("="*60) + + +if __name__ == "__main__": + main() diff --git a/scripts/verify_db.py b/scripts/verify_db.py new file mode 100644 index 0000000..e5c7891 --- /dev/null +++ b/scripts/verify_db.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +"""Quick verification of Nike DB contents.""" +import os + +from dotenv import load_dotenv +import psycopg2 + +load_dotenv('/home/robert/gitea/nike/.env') + +conn = psycopg2.connect( + host=os.getenv('DB_HOST'), + port=int(os.getenv('DB_PORT', 5432)), + user=os.getenv('DB_USER'), + password=os.getenv('DB_PASSWORD'), + dbname='nike', +) +cur = conn.cursor() + +tables = [ + 'leagues', 'teams', 'players', 'fixtures', 'standings', + 'match_stats', 'match_events', 'player_season_stats', + 'player_match_stats', 'followed_entities', +] + +print("Nike DB Contents") +print("-" * 40) +for table in tables: + cur.execute(f"SELECT COUNT(*) FROM {table}") + count = cur.fetchone()[0] + status = "✅" if count > 0 else "•" + print(f" {status} {table:<28} {count:>6} rows") + +# TFC summary +print() +cur.execute(""" + SELECT t.name, COUNT(p.id) AS players + FROM teams t + LEFT JOIN players p ON p.current_team_id = t.id + WHERE t.is_followed = TRUE + GROUP BY t.name +""") +for row in cur.fetchall(): + print(f" ⚽ {row[0]}: {row[1]} players in roster") + +cur.execute(""" + SELECT COUNT(*) FROM fixtures f + JOIN teams t ON (t.id = f.home_team_id OR t.id = f.away_team_id) + WHERE t.is_followed = TRUE +""") +fix_count = cur.fetchone()[0] +print(f" 📅 Followed team fixtures: {fix_count}") + +cur.execute(""" + SELECT match_date::date, home.name, away.name, home_goals, away_goals, status + FROM fixtures f + JOIN teams home ON home.id = f.home_team_id + JOIN teams away ON away.id = f.away_team_id + JOIN teams ft ON (ft.id = f.home_team_id OR ft.id = f.away_team_id) + WHERE ft.is_followed = TRUE AND f.match_date >= NOW() + ORDER BY f.match_date ASC + LIMIT 3 +""") +upcoming = cur.fetchall() +if upcoming: + print() + print(" Next fixtures:") + for row in upcoming: + print(f" {row[0]} {row[1]} vs {row[2]} ({row[5]})") + +cur.close() +conn.close()