{
  "meta": {
    "generated": "2026-10-19",
    "reverified": "2026-10-19",
    "method": "public pages only; no accounts; unknown = not found on public pages",
    "count": 17,
    "adjacent_competitors": [
      "https://www.apisports.net/ (100+ sports APIs compared, multi-sport, has benchmarks)",
      "https://11.football/tools/data (90 football data tools, static directory)",
      "https://highlightly.net/blogs/best-football-apis-in-2026 (vendor-written)",
      "https://www.sportmonks.com/football-api/alternatives/api-football/ (vendor-written)"
    ]
  },
  "providers": [
    {
      "name": "API-Football (API-Sports)",
      "website": "https://www.api-football.com",
      "pricing": [
        {
          "plan": "Free",
          "price": "$0/mo",
          "limits": "100 requests/day; free plans limited in available seasons"
        },
        {
          "plan": "Pro",
          "price": "$19/mo",
          "limits": "7,500 requests/day"
        },
        {
          "plan": "Ultra",
          "price": "$29/mo",
          "limits": "75,000 requests/day"
        },
        {
          "plan": "Mega",
          "price": "$39/mo",
          "limits": "150,000 requests/day"
        },
        {
          "plan": "Custom",
          "price": "contact",
          "limits": "up to 1,500,000 requests/day; all plans prepaid, no auto-renewal, never overcharged"
        }
      ],
      "free_plan": true,
      "league_count": "1,249 leagues & cups (coverage page, list updated 2026-10-18); all competitions on all plans",
      "leagues": {
        "premier_league": true,
        "championship": true,
        "laliga": true,
        "serie_a": true,
        "bundesliga": true,
        "ligue_1": true,
        "primeira_liga": true,
        "mls": true,
        "champions_league": true
      },
      "leagues_note": "All 9 tracked leagues are listed on the coverage page (updated 2026-10-18). How much data each league has (events, lineups, stats) is not confirmed.",
      "data_types": {
        "fixtures": true,
        "live_scores": true,
        "lineups": true,
        "events": true,
        "player_stats": true,
        "xg": "unknown",
        "odds": "pre-match + in-play",
        "injuries": true,
        "transfers": true,
        "predictions": true,
        "historical_depth": "unknown"
      },
      "api_style": "REST (also distributed via RapidAPI)",
      "docs_url": "https://www.api-football.com/documentation-v3",
      "status_page": "unknown",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://www.api-football.com/pricing"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Matches the official pricing page. Plans are prepaid, with no auto-renewal, and you are never overcharged."
        },
        "free_tier": {
          "sources": [
            "https://www.api-football.com/pricing"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "100 requests/day; free plans are limited in available seasons."
        },
        "coverage": {
          "sources": [
            "https://www.api-football.com/coverage"
          ],
          "lastVerified": "2026-10-19",
          "status": "partial",
          "note": "All 9 tracked leagues are listed on the coverage page (updated 2026-10-18). Per-league depth (events/lineups/stats icons) could not be read automatically."
        },
        "data_types": {
          "sources": [
            "https://www.api-football.com/coverage"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://www.api-football.com/pricing",
        "https://www.api-football.com/coverage"
      ]
    },
    {
      "name": "Sportmonks",
      "website": "https://www.sportmonks.com",
      "pricing": [
        {
          "plan": "Free",
          "price": "€0",
          "limits": "free tier, no card (limits not stated on pricing page); paid plans also have a 14-day free trial, no card"
        },
        {
          "plan": "Starter",
          "price": "€29/mo (€24/mo yearly)",
          "limits": "any 5 leagues; 2,000 calls/entity/hour"
        },
        {
          "plan": "Growth",
          "price": "€99/mo (€79/mo yearly)",
          "limits": "any 30 leagues; 2,500 calls/entity/hour"
        },
        {
          "plan": "Pro",
          "price": "€249/mo (€199/mo yearly)",
          "limits": "any 120 leagues; 3,000 calls/entity/hour"
        },
        {
          "plan": "Enterprise",
          "price": "contact",
          "limits": "all 2,300+ leagues; 5,000 calls/entity/hour"
        }
      ],
      "free_plan": true,
      "league_count": "2,200+ (pricing page also says 2,300+ on Enterprise)",
      "leagues": {
        "premier_league": true,
        "championship": "unknown",
        "laliga": true,
        "serie_a": true,
        "bundesliga": true,
        "ligue_1": true,
        "primeira_liga": "unknown",
        "mls": "unknown",
        "champions_league": "unknown"
      },
      "leagues_note": "Top-5 have dedicated coverage pages; others pick-your-leagues, not individually verified.",
      "data_types": {
        "fixtures": true,
        "live_scores": true,
        "lineups": true,
        "events": true,
        "player_stats": true,
        "xg": "add-on (xG, xGOT, xPTS, npxG)",
        "odds": "pre-match + in-play; premium odds add-on",
        "injuries": true,
        "transfers": "transfers + transfer rumours add-on",
        "predictions": "add-on",
        "historical_depth": "historical data included (depth not stated)"
      },
      "api_style": "REST",
      "docs_url": "https://docs.sportmonks.com/football",
      "status_page": "https://status.sportmonks.com",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://www.sportmonks.com/football-api/plans-pricing/"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Prices and league allowances match the official pricing page. New: a 14-day free trial on paid plans, no card needed."
        },
        "free_tier": {
          "sources": [
            "https://www.sportmonks.com/football-api/plans-pricing/"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Page says 'A free tier you can start on right now'. Limits are not stated."
        },
        "coverage": {
          "sources": [
            "https://www.sportmonks.com/football-api/coverage/"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "data_types": {
          "sources": [
            "https://www.sportmonks.com/football-api/plans-pricing/",
            "https://www.sportmonks.com/football-api/coverage/"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://www.sportmonks.com/football-api/plans-pricing/",
        "https://www.sportmonks.com/football-api/coverage/",
        "https://status.sportmonks.com"
      ]
    },
    {
      "name": "football-data.org",
      "website": "https://www.football-data.org",
      "pricing": [
        {
          "plan": "Free",
          "price": "€0/mo",
          "limits": "12 competitions; scores delayed; 10 calls/min"
        },
        {
          "plan": "Free w/ Livescores",
          "price": "€12/mo",
          "limits": "12 competitions; live scores; 20 calls/min"
        },
        {
          "plan": "ML Pack Light",
          "price": "€29/mo",
          "limits": "12 competitions; live scores; advanced trend/form data; 10 seasons of history; 20 calls/min"
        },
        {
          "plan": "Free + Deep Data",
          "price": "€29/mo",
          "limits": "12 competitions; live scores; line-ups & subs, goal scorers, bookings/cards, squads; 30 calls/min"
        },
        {
          "plan": "Standard",
          "price": "€49/mo",
          "limits": "30 competitions; deep data; 60 calls/min"
        },
        {
          "plan": "Advanced",
          "price": "€99/mo",
          "limits": "50 competitions; deep data; 100 calls/min"
        },
        {
          "plan": "Pro",
          "price": "€199/mo",
          "limits": "100 competitions; deep data; 120 calls/min"
        },
        {
          "plan": "Odds Add-On",
          "price": "€15/mo",
          "limits": "pre-match 1X2 odds for 40 competitions (needs a regular plan)"
        },
        {
          "plan": "Statistic Add-On",
          "price": "€15/mo",
          "limits": "corners, fouls, possession, shots, saves etc. (needs a regular plan)"
        }
      ],
      "free_plan": true,
      "league_count": "~100 competitions in full list; 12 on free tier",
      "leagues": {
        "premier_league": true,
        "championship": true,
        "laliga": true,
        "serie_a": true,
        "bundesliga": true,
        "ligue_1": true,
        "primeira_liga": true,
        "mls": true,
        "champions_league": true
      },
      "leagues_note": "Free tier includes PL, Championship, Primeira Liga, LaLiga, Serie A, Bundesliga, Ligue 1, CL; MLS on paid tiers.",
      "data_types": {
        "fixtures": true,
        "live_scores": "paid (free is delayed)",
        "lineups": "paid tiers",
        "events": "goals/cards/subs on paid tiers",
        "player_stats": "limited (scorers, squads)",
        "xg": "unknown",
        "odds": "add-on",
        "injuries": "unknown",
        "transfers": "unknown",
        "historical_depth": "10 seasons on ML Pack Light"
      },
      "api_style": "REST",
      "docs_url": "https://docs.football-data.org",
      "status_page": "unknown",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://www.football-data.org/pricing"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Corrected on 2026-10-19 from the official pricing page: every plan and add-on now has its own price. The page says VAT charges may apply."
        },
        "free_tier": {
          "sources": [
            "https://www.football-data.org/pricing"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "12 competitions, scores delayed, 10 calls/min."
        },
        "coverage": {
          "sources": [
            "https://www.football-data.org/coverage"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Per-league flags not re-checked on 2026-10-19; figures from initial research."
        },
        "data_types": {
          "sources": [
            "https://www.football-data.org/pricing",
            "https://www.football-data.org/coverage"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://www.football-data.org/pricing",
        "https://www.football-data.org/coverage"
      ]
    },
    {
      "name": "TheSportsDB",
      "website": "https://www.thesportsdb.com",
      "pricing": [
        {
          "plan": "Free",
          "price": "$0",
          "limits": "30 requests/min; most queries limited"
        },
        {
          "plan": "Single Developer",
          "price": "$9/mo",
          "limits": "100 requests/min; 2-min livescore; highlights links"
        },
        {
          "plan": "Small Business",
          "price": "$20/mo",
          "limits": "120 requests/min; no data limit; private key"
        }
      ],
      "free_plan": true,
      "league_count": "unknown",
      "leagues": {
        "premier_league": "unknown",
        "championship": "unknown",
        "laliga": "unknown",
        "serie_a": "unknown",
        "bundesliga": "unknown",
        "ligue_1": "unknown",
        "primeira_liga": "unknown",
        "mls": "unknown",
        "champions_league": "unknown"
      },
      "leagues_note": "Multi-sport, community-edited database.",
      "data_types": {
        "fixtures": true,
        "live_scores": "paid (2-min)",
        "lineups": "unknown",
        "events": "unknown",
        "player_stats": "unknown",
        "xg": "unknown",
        "odds": "unknown",
        "injuries": "unknown",
        "transfers": "site lists latest transfers",
        "historical_depth": "unknown",
        "media": "artwork + YouTube highlight links"
      },
      "api_style": "REST (JSON)",
      "docs_url": "https://www.thesportsdb.com/documentation",
      "status_page": "https://status.thesportsdb.com (responds 200; content not verified)",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://www.thesportsdb.com/pricing"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Matches the official pricing page."
        },
        "free_tier": {
          "sources": [
            "https://www.thesportsdb.com/pricing"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Free plan confirmed on the pricing page."
        },
        "coverage": {
          "sources": [],
          "lastVerified": null,
          "status": "unverified",
          "note": "No coverage source recorded; league count unknown."
        },
        "data_types": {
          "sources": [
            "https://www.thesportsdb.com/pricing"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://www.thesportsdb.com/pricing"
      ]
    },
    {
      "name": "SportDevs",
      "website": "https://sportdevs.com",
      "pricing": [
        {
          "plan": "Free",
          "price": "€0",
          "limits": "up to 300 requests/day; up to 10 major leagues"
        },
        {
          "plan": "Major",
          "price": "from €19",
          "limits": "5,000–1,000,000 requests/day; 10 major leagues"
        },
        {
          "plan": "Worldwide",
          "price": "from €69",
          "limits": "up to 130 leagues"
        },
        {
          "plan": "Enterprise",
          "price": "from €129",
          "limits": "all leagues"
        },
        {
          "plan": "Pay as you go",
          "price": "from €0.01",
          "limits": "all leagues"
        }
      ],
      "free_plan": true,
      "league_count": "up to 130 (Worldwide) / all (Enterprise); total not stated",
      "leagues": {
        "premier_league": "unknown",
        "championship": "unknown",
        "laliga": "unknown",
        "serie_a": "unknown",
        "bundesliga": "unknown",
        "ligue_1": "unknown",
        "primeira_liga": "unknown",
        "mls": "unknown",
        "champions_league": "unknown"
      },
      "leagues_note": "Which 10 'major leagues' not listed on the page fetched.",
      "data_types": {
        "fixtures": true,
        "live_scores": true,
        "lineups": true,
        "events": "incidents",
        "player_stats": "statistics",
        "xg": "unknown",
        "odds": "Odds360 API (separate)",
        "injuries": "unknown",
        "transfers": "unknown",
        "news": "add-on",
        "predictions": true,
        "historical_depth": "unknown"
      },
      "api_style": "REST + WebSockets (add-on)",
      "docs_url": "unknown",
      "status_page": "unknown",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://sportdevs.com/football"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Source page unreachable on 2026-10-19 re-check; figures from initial research."
        },
        "free_tier": {
          "sources": [
            "https://sportdevs.com/football"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Source page unreachable on 2026-10-19 re-check; figures from initial research."
        },
        "coverage": {
          "sources": [
            "https://sportdevs.com/football"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Source page unreachable on 2026-10-19 re-check; figures from initial research."
        },
        "data_types": {
          "sources": [
            "https://sportdevs.com/football"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://sportdevs.com/football"
      ]
    },
    {
      "name": "Highlightly",
      "website": "https://highlightly.net",
      "pricing": [
        {
          "plan": "Basic",
          "price": "$0",
          "limits": "100 requests/day; no credit card"
        },
        {
          "plan": "Pro",
          "price": "$9.49/mo",
          "limits": "7,500 requests/day; 12 requests/second"
        },
        {
          "plan": "Ultra",
          "price": "$20.99/mo",
          "limits": "25,000 requests/day; 20 requests/second"
        },
        {
          "plan": "Mega",
          "price": "$45.99/mo",
          "limits": "65,000 requests/day; 100 requests/second"
        }
      ],
      "free_plan": true,
      "league_count": "950+ leagues, 170+ countries (9 sports)",
      "leagues": {
        "premier_league": "unknown",
        "championship": "unknown",
        "laliga": "unknown",
        "serie_a": "unknown",
        "bundesliga": "unknown",
        "ligue_1": "unknown",
        "primeira_liga": "unknown",
        "mls": "unknown",
        "champions_league": "unknown"
      },
      "data_types": {
        "fixtures": true,
        "live_scores": true,
        "lineups": true,
        "events": "live events",
        "player_stats": true,
        "xg": "unknown",
        "odds": "paid plans",
        "injuries": "unknown",
        "transfers": true,
        "predictions": true,
        "historical_depth": "unknown",
        "media": "video highlights"
      },
      "api_style": "REST (via RapidAPI or direct)",
      "docs_url": "https://highlightly.net/football-api/documentation/",
      "status_page": "https://status.highlightly.net",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://highlightly.net/football-api",
            "https://rapidapi.com/highlightly-api-highlightly-api-default/api/football-highlights-api/pricing"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Confirmed on the official Highlightly page (RapidAPI pricing kept as a secondary source)."
        },
        "free_tier": {
          "sources": [
            "https://highlightly.net/football-api"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Basic plan: free, 100 requests/day, no credit card."
        },
        "coverage": {
          "sources": [
            "https://highlightly.net/"
          ],
          "lastVerified": "2026-10-19",
          "status": "partial",
          "note": "'950+ leagues' confirmed on the homepage on 2026-10-19. Per-league coverage not re-checked."
        },
        "data_types": {
          "sources": [
            "https://highlightly.net/"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://highlightly.net/football-api",
        "https://rapidapi.com/highlightly-api-highlightly-api-default/api/football-highlights-api/pricing",
        "https://highlightly.net/"
      ]
    },
    {
      "name": "SportsGameOdds",
      "website": "https://sportsgameodds.com",
      "pricing": [
        {
          "plan": "Amateur (free)",
          "price": "$0",
          "limits": "10 req/min; 2,500 objects/mo; 8 leagues; 10-min updates"
        },
        {
          "plan": "Rookie",
          "price": "$99/mo",
          "limits": "50 req/min; 100,000 objects/mo; 17 leagues; 3-min updates"
        },
        {
          "plan": "Pro",
          "price": "$299/mo",
          "limits": "300 req/min; unlimited objects; 53 leagues"
        }
      ],
      "free_plan": true,
      "league_count": "8 / 17 / 53 leagues by plan (multi-sport, odds-focused)",
      "leagues": {
        "premier_league": "unknown",
        "championship": "unknown",
        "laliga": "unknown",
        "serie_a": "unknown",
        "bundesliga": "unknown",
        "ligue_1": "unknown",
        "primeira_liga": "unknown",
        "mls": true,
        "champions_league": true
      },
      "leagues_note": "Free plan soccer = Champions League + MLS; other soccer leagues per plan not itemised.",
      "data_types": {
        "fixtures": "events",
        "live_scores": true,
        "lineups": "unknown",
        "events": "unknown",
        "player_stats": true,
        "xg": "unknown",
        "odds": "core product: pregame, live, props, alt lines, 80+ bookmakers",
        "injuries": "unknown",
        "transfers": "unknown",
        "historical_depth": "unknown"
      },
      "api_style": "REST",
      "docs_url": "https://sportsgameodds.com/docs",
      "status_page": "unknown",
      "affiliate": {
        "has": true,
        "url": "https://sportsgameodds.com/partner",
        "terms": "up to 20% recurring commission"
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://sportsgameodds.com/pricing"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Prices, request rates and monthly object limits match the official page. The per-plan league counts and update times in the limits weren't re-confirmed."
        },
        "free_tier": {
          "sources": [
            "https://sportsgameodds.com/pricing"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Amateur plan: free, 10 req/min, 2,500 objects/mo."
        },
        "coverage": {
          "sources": [
            "https://sportsgameodds.com/pricing"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "League counts per plan not re-confirmed on 2026-10-19; figures from initial research."
        },
        "data_types": {
          "sources": [
            "https://sportsgameodds.com/pricing"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://sportsgameodds.com/pricing",
        "https://sportsgameodds.com/partner"
      ]
    },
    {
      "name": "iSports API",
      "website": "https://www.isportsapi.com",
      "pricing": [
        {
          "plan": "Free trial",
          "price": "$0 for 15 days",
          "limits": "200 calls/sport/day; ~2-min live delay"
        },
        {
          "plan": "Live Data",
          "price": "$449/mo ($1,199/qtr, $3,999/yr)",
          "limits": "29 endpoints"
        },
        {
          "plan": "Stats",
          "price": "$299/mo",
          "limits": "unknown"
        },
        {
          "plan": "Odds",
          "price": "$449/mo",
          "limits": "18 agencies"
        },
        {
          "plan": "Odds Pro",
          "price": "$599/mo",
          "limits": "200+ agencies European index"
        },
        {
          "plan": "Live Animation",
          "price": "$1,299/mo",
          "limits": "unknown"
        },
        {
          "plan": "Promotion (top leagues)",
          "price": "'$49 Promotion' banner; details not verified",
          "limits": "unknown"
        }
      ],
      "free_plan": "trial only (15 days)",
      "league_count": "2,000+ leagues & cups (homepage FAQ)",
      "leagues": {
        "premier_league": "unknown",
        "championship": "unknown",
        "laliga": "unknown",
        "serie_a": "unknown",
        "bundesliga": "unknown",
        "ligue_1": "unknown",
        "primeira_liga": "unknown",
        "mls": "unknown",
        "champions_league": "unknown"
      },
      "data_types": {
        "fixtures": true,
        "live_scores": true,
        "lineups": true,
        "events": true,
        "player_stats": true,
        "xg": "listed on Live Data page",
        "odds": true,
        "injuries": "injury & suspension",
        "transfers": "Big Five leagues only",
        "historical_depth": "20 years (Historical Database, contact sales)"
      },
      "api_style": "REST",
      "docs_url": "https://www.isportsapi.com/docs.html",
      "status_page": "unknown",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://www.isportsapi.com/"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Product pages return 404; the homepage says plans start from $49/month, with 50% off when billing annually. Individual plan prices not re-confirmed."
        },
        "free_tier": {
          "sources": [
            "https://www.isportsapi.com/"
          ],
          "lastVerified": "2026-10-19",
          "status": "partial",
          "note": "The homepage says a free trial is available after registering. The 15-day length and 200 calls/sport/day limit came from pages that now return 404 and weren't re-confirmed."
        },
        "coverage": {
          "sources": [
            "https://www.isportsapi.com/"
          ],
          "lastVerified": "2026-10-19",
          "status": "partial",
          "note": "'2,000+ football leagues & cups' on the homepage FAQ (2026-10-19). Per-league coverage not checked."
        },
        "data_types": {
          "sources": [
            "https://www.isportsapi.com/"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field. The product pages they came from now return 404."
        }
      },
      "sources": [
        "https://www.isportsapi.com/"
      ]
    },
    {
      "name": "Entity Sports",
      "website": "https://www.entitysport.com/football-api/",
      "pricing": [
        {
          "plan": "Developer (free)",
          "price": "$0 for 15 days",
          "limits": "2,000 calls total; Ligue 1 & Eredivisie only"
        },
        {
          "plan": "Starter",
          "price": "$250/mo ($2,500/yr)",
          "limits": "10 leagues incl. EPL; 1M calls/mo"
        },
        {
          "plan": "Pro",
          "price": "$450/mo ($4,500/yr)",
          "limits": "35 leagues; 2M calls/mo"
        },
        {
          "plan": "Elite",
          "price": "$750/mo ($7,500/yr)",
          "limits": "65 leagues; 3M calls/mo"
        },
        {
          "plan": "Gold",
          "price": "$1,600/mo ($16,000/yr)",
          "limits": "100+ leagues; 6M calls/mo; WebSocket"
        },
        {
          "plan": "Enterprise",
          "price": "contact",
          "limits": "all leagues; odds, injuries, transfers"
        }
      ],
      "free_plan": "trial only (15 days)",
      "league_count": "10 / 35 / 65 / 100+ by plan",
      "leagues": {
        "premier_league": true,
        "championship": "unknown",
        "laliga": "unknown",
        "serie_a": "unknown",
        "bundesliga": "unknown",
        "ligue_1": true,
        "primeira_liga": "unknown",
        "mls": "unknown",
        "champions_league": "unknown"
      },
      "leagues_note": "An older Entity blog post lists different plans ($150/$250/$400) incl. LaLiga, Bundesliga, Serie A, MLS — conflicts with current pricing page; not relied on.",
      "data_types": {
        "fixtures": true,
        "live_scores": "Gold+ (Live Score API)",
        "lineups": "unknown",
        "events": "unknown",
        "player_stats": "unknown",
        "xg": "unknown",
        "odds": "Enterprise",
        "injuries": "Enterprise",
        "transfers": "Enterprise",
        "fantasy": "Fantasy API on all paid plans",
        "historical_depth": "current + previous season; full archive on Enterprise"
      },
      "api_style": "REST; WebSocket on Gold/Enterprise",
      "docs_url": "unknown",
      "status_page": "unknown",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://www.entitysport.com/football-api/"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Monthly and yearly prices and league counts per plan match the official page."
        },
        "free_tier": {
          "sources": [
            "https://www.entitysport.com/football-api/"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Developer plan: free 15-day trial with 2,000 calls."
        },
        "coverage": {
          "sources": [
            "https://www.entitysport.com/football-api/",
            "https://www.entitysport.com/blog/best-football-api-plans-for-asian-football-leagues/"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "data_types": {
          "sources": [
            "https://www.entitysport.com/football-api/"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://www.entitysport.com/football-api/",
        "https://www.entitysport.com/blog/best-football-api-plans-for-asian-football-leagues/"
      ]
    },
    {
      "name": "Goalserve",
      "website": "https://www.goalserve.com/en/sport-data-feeds/soccer-api/prices",
      "pricing": [
        {
          "plan": "Soccer Live Score",
          "price": "$150/mo (sale)",
          "limits": "unknown"
        },
        {
          "plan": "Live Game Stats",
          "price": "$200/mo",
          "limits": "50+ leagues"
        },
        {
          "plan": "Fixtures/Results",
          "price": "$150/mo",
          "limits": "unknown"
        },
        {
          "plan": "Pregame Odds",
          "price": "$250/mo",
          "limits": "20+ bookmakers, 300+ leagues"
        },
        {
          "plan": "Full Stats (no odds)",
          "price": "$300/mo (sale)",
          "limits": "unknown"
        },
        {
          "plan": "Full Soccer",
          "price": "$550/mo (sale)",
          "limits": "incl. in-play odds"
        },
        {
          "plan": "WebSocket add-on",
          "price": "$200/mo",
          "limits": "requires full package"
        },
        {
          "plan": "Free trial",
          "price": "$0",
          "limits": "30 days"
        }
      ],
      "free_plan": "trial only (30 days)",
      "league_count": "400+ (page also says 500+)",
      "leagues": {
        "premier_league": true,
        "championship": "unknown",
        "laliga": true,
        "serie_a": true,
        "bundesliga": true,
        "ligue_1": true,
        "primeira_liga": "unknown",
        "mls": true,
        "champions_league": true
      },
      "data_types": {
        "fixtures": true,
        "live_scores": true,
        "lineups": true,
        "events": true,
        "player_stats": true,
        "xg": "unknown",
        "odds": "pregame + in-play",
        "injuries": true,
        "transfers": "unknown",
        "historical_depth": "historical stats since 2016"
      },
      "api_style": "REST (XML + JSON); WebSocket add-on for live odds",
      "docs_url": "https://www.goalserve.com/en/sport-data-feeds/soccer-api/documentation",
      "status_page": "unknown",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://www.goalserve.com/en/sport-data-feeds/soccer-api/prices"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Monthly prices match the official price list."
        },
        "free_tier": {
          "sources": [
            "https://www.goalserve.com/en/sport-data-feeds/soccer-api/prices"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "30-day free trial confirmed in the FAQ."
        },
        "coverage": {
          "sources": [
            "https://www.goalserve.com/en/sport-data-feeds/soccer-api/prices"
          ],
          "lastVerified": "2026-10-19",
          "status": "partial",
          "note": "'400+ soccer leagues in live data coverage' confirmed on 2026-10-19. The 500+ figure and per-league flags weren't re-checked."
        },
        "data_types": {
          "sources": [
            "https://www.goalserve.com/en/sport-data-feeds/soccer-api/prices"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://www.goalserve.com/en/sport-data-feeds/soccer-api/prices"
      ]
    },
    {
      "name": "FootballAnt",
      "website": "https://www.footballant.com",
      "pricing": [
        {
          "plan": "API pricing",
          "price": "unknown",
          "limits": "no public API pricing page found; consumer app SVIP $9.90/mo is not API access"
        }
      ],
      "free_plan": "unknown",
      "league_count": "1,000+ leagues claimed on site (App Store listing says 120+) — inconsistent",
      "leagues": {
        "premier_league": "unknown",
        "championship": "unknown",
        "laliga": "unknown",
        "serie_a": "unknown",
        "bundesliga": "unknown",
        "ligue_1": "unknown",
        "primeira_liga": "unknown",
        "mls": "unknown",
        "champions_league": "unknown"
      },
      "leagues_note": "Consumer site lists PL, Championship, LaLiga, Serie A, Bundesliga, Ligue 1, Liga Portugal, MLS, CL — API coverage unverified.",
      "data_types": {
        "fixtures": true,
        "live_scores": true,
        "lineups": true,
        "events": true,
        "player_stats": true,
        "xg": "unknown",
        "odds": "odds analysis on site",
        "injuries": "unknown",
        "transfers": "unknown",
        "predictions": "AI predictions",
        "historical_depth": "unknown"
      },
      "api_style": "unknown",
      "docs_url": "unknown",
      "status_page": "unknown",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://www.footballant.com/football-data"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "free_tier": {
          "sources": [
            "https://www.footballant.com/football-data"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "coverage": {
          "sources": [
            "https://www.footballant.com/football-data",
            "https://apps.apple.com/us/app/footballant-ai-live-scores/id1542573129"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "data_types": {
          "sources": [
            "https://www.footballant.com/football-data",
            "https://apps.apple.com/us/app/footballant-ai-live-scores/id1542573129"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://www.footballant.com/football-data",
        "https://apps.apple.com/us/app/footballant-ai-live-scores/id1542573129"
      ],
      "notes": "API pricing ($899/mo) appears only in promotional-looking Reddit posts in r/Smart_Aipredict; not used."
    },
    {
      "name": "Data Sports Group (DSG)",
      "website": "https://datasportsgroup.com",
      "pricing": [
        {
          "plan": "Free trial",
          "price": "$0",
          "limits": "unknown"
        },
        {
          "plan": "Football Top 50 package",
          "price": "quote",
          "limits": "unknown"
        }
      ],
      "free_plan": "trial only",
      "league_count": "5,000+ competitions across 80+ sports",
      "leagues": {
        "premier_league": "unknown",
        "championship": "unknown",
        "laliga": "unknown",
        "serie_a": "unknown",
        "bundesliga": "unknown",
        "ligue_1": "unknown",
        "primeira_liga": "unknown",
        "mls": "unknown",
        "champions_league": "unknown"
      },
      "data_types": {
        "fixtures": "unknown",
        "live_scores": "unknown",
        "lineups": "unknown",
        "events": "unknown",
        "player_stats": "unknown",
        "xg": "unknown",
        "odds": "unknown",
        "injuries": "unknown",
        "transfers": "unknown",
        "historical_depth": "unknown"
      },
      "api_style": "unknown",
      "docs_url": "unknown",
      "status_page": "unknown",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://datasportsgroup.com/"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "free_tier": {
          "sources": [
            "https://datasportsgroup.com/"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "coverage": {
          "sources": [
            "https://datasportsgroup.com/"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "data_types": {
          "sources": [
            "https://datasportsgroup.com/"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://datasportsgroup.com/"
      ]
    },
    {
      "name": "Sportradar",
      "website": "https://developer.sportradar.com",
      "pricing": [
        {
          "plan": "Trial",
          "price": "$0",
          "limits": "30 days; 1,000 requests per rolling 30 days; 1 QPS"
        },
        {
          "plan": "Production",
          "price": "quote (order form)",
          "limits": "unknown"
        }
      ],
      "free_plan": "trial only (30 days)",
      "league_count": "unknown",
      "leagues": {
        "premier_league": "unknown",
        "championship": "unknown",
        "laliga": "unknown",
        "serie_a": "unknown",
        "bundesliga": "unknown",
        "ligue_1": "unknown",
        "primeira_liga": "unknown",
        "mls": "unknown",
        "champions_league": "unknown"
      },
      "data_types": {
        "fixtures": "unknown",
        "live_scores": "unknown",
        "lineups": "unknown",
        "events": "unknown",
        "player_stats": "unknown",
        "xg": "unknown",
        "odds": "unknown",
        "injuries": "unknown",
        "transfers": "unknown",
        "historical_depth": "unknown"
      },
      "api_style": "REST (+ push feeds; not verified)",
      "docs_url": "https://developer.sportradar.com/soccer/reference/soccer-api-overview",
      "status_page": "unknown",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://developer.sportradar.com/soccer/docs/soccer-ig-account-setup"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Production pricing is quote only; not re-checked on 2026-10-19."
        },
        "free_tier": {
          "sources": [
            "https://developer.sportradar.com/soccer/docs/soccer-ig-account-setup"
          ],
          "lastVerified": "2026-10-19",
          "status": "partial",
          "note": "The free trial is confirmed on the account setup page. The '1,000 requests per 30 days; 1 QPS' detail wasn't re-confirmed."
        },
        "coverage": {
          "sources": [
            "https://developer.sportradar.com/soccer/docs/soccer-ig-account-setup"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "data_types": {
          "sources": [
            "https://developer.sportradar.com/soccer/docs/soccer-ig-account-setup"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://developer.sportradar.com/soccer/docs/soccer-ig-account-setup"
      ]
    },
    {
      "name": "Stats Perform (Opta)",
      "website": "https://www.statsperform.com/opta/",
      "pricing": [
        {
          "plan": "All",
          "price": "price on request",
          "limits": "unknown"
        }
      ],
      "free_plan": false,
      "league_count": "unknown",
      "leagues": {
        "premier_league": "unknown",
        "championship": "unknown",
        "laliga": "unknown",
        "serie_a": "unknown",
        "bundesliga": "unknown",
        "ligue_1": "unknown",
        "primeira_liga": "unknown",
        "mls": "unknown",
        "champions_league": "unknown"
      },
      "data_types": {
        "fixtures": "unknown",
        "live_scores": "unknown",
        "lineups": "unknown",
        "events": "unknown",
        "player_stats": "unknown",
        "xg": "unknown",
        "odds": "unknown",
        "injuries": "unknown",
        "transfers": "unknown",
        "historical_depth": "unknown"
      },
      "api_style": "unknown",
      "docs_url": "unknown",
      "status_page": "unknown",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://11.football/tools/data"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "free_tier": {
          "sources": [
            "https://11.football/tools/data"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "coverage": {
          "sources": [
            "https://11.football/tools/data"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "data_types": {
          "sources": [
            "https://11.football/tools/data"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://11.football/tools/data"
      ],
      "notes": "Official site blocks automated fetch (403)."
    },
    {
      "name": "SportsDataIO (Soccer)",
      "website": "https://sportsdata.io/developers/api-documentation/soccer",
      "pricing": [
        {
          "plan": "Free trial",
          "price": "$0, no card",
          "limits": "scrambled data; small daily call limit; soccer trial = Champions League only"
        },
        {
          "plan": "Commercial",
          "price": "quote per leagues/feeds",
          "limits": "unknown"
        }
      ],
      "free_plan": "trial only (scrambled data)",
      "league_count": "unknown",
      "leagues": {
        "premier_league": true,
        "championship": "unknown",
        "laliga": "unknown",
        "serie_a": "unknown",
        "bundesliga": "unknown",
        "ligue_1": "unknown",
        "primeira_liga": "unknown",
        "mls": true,
        "champions_league": true
      },
      "leagues_note": "Trial page markets 'MLS & EPL Data Feeds'.",
      "data_types": {
        "fixtures": "unknown",
        "live_scores": "unknown",
        "lineups": "unknown",
        "events": "unknown",
        "player_stats": "unknown",
        "xg": "unknown",
        "odds": "unknown",
        "injuries": "unknown",
        "transfers": "unknown",
        "historical_depth": "unknown"
      },
      "api_style": "REST",
      "docs_url": "https://sportsdata.io/developers/api-documentation/soccer",
      "status_page": "unknown",
      "affiliate": {
        "has": "not found",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://sportsdata.io/cart/free-trial/soccer",
            "https://sportsdata.io/help/data-rights-and-licensing-questions"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Commercial pricing is quote only; not re-checked on 2026-10-19."
        },
        "free_tier": {
          "sources": [
            "https://sportsdata.io/cart/free-trial/soccer"
          ],
          "lastVerified": "2026-10-19",
          "status": "partial",
          "note": "The free trial is confirmed on the trial page. 'Scrambled data' and 'Champions League only' weren't re-confirmed on that page."
        },
        "coverage": {
          "sources": [
            "https://sportsdata.io/cart/free-trial/soccer"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "data_types": {
          "sources": [
            "https://sportsdata.io/cart/free-trial/soccer"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://sportsdata.io/cart/free-trial/soccer",
        "https://sportsdata.io/help/data-rights-and-licensing-questions"
      ]
    },
    {
      "name": "StatsBomb Open Data (Hudl)",
      "website": "https://github.com/statsbomb/open-data",
      "pricing": [
        {
          "plan": "Open data",
          "price": "free (attribution required)",
          "limits": "selected competitions/seasons only; research & genuine-interest use"
        }
      ],
      "free_plan": true,
      "league_count": "24 competitions / 80 competition-seasons (competitions.json, fetched 2026-10-19)",
      "leagues": {
        "premier_league": true,
        "championship": false,
        "laliga": true,
        "serie_a": true,
        "bundesliga": true,
        "ligue_1": true,
        "primeira_liga": false,
        "mls": true,
        "champions_league": true
      },
      "leagues_note": "Selected seasons only, not current full seasons.",
      "data_types": {
        "fixtures": "matches",
        "live_scores": false,
        "lineups": true,
        "events": "full event data",
        "player_stats": "derivable from events",
        "xg": "unknown (not stated in README)",
        "odds": false,
        "injuries": false,
        "transfers": false,
        "tracking": "StatsBomb 360 freeze-frames for selected matches",
        "historical_depth": "selected historical seasons"
      },
      "api_style": "Static JSON files on GitHub (no API)",
      "docs_url": "https://github.com/statsbomb/open-data/tree/master/doc",
      "status_page": "n/a",
      "affiliate": {
        "has": "n/a",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://github.com/statsbomb/open-data"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "free_tier": {
          "sources": [
            "https://github.com/statsbomb/open-data"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "coverage": {
          "sources": [
            "https://raw.githubusercontent.com/statsbomb/open-data/master/data/competitions.json"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "Counted from the machine-readable competitions.json on 2026-10-19."
        },
        "data_types": {
          "sources": [
            "https://github.com/statsbomb/open-data"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://github.com/statsbomb/open-data",
        "https://raw.githubusercontent.com/statsbomb/open-data/master/data/competitions.json"
      ]
    },
    {
      "name": "OpenLigaDB",
      "website": "https://www.openligadb.de",
      "pricing": [
        {
          "plan": "Open",
          "price": "free (community database)",
          "limits": "unknown"
        }
      ],
      "free_plan": true,
      "league_count": "838 league entries via /getavailableleagues (community-created; includes duplicates and fan leagues)",
      "leagues": {
        "premier_league": "unknown",
        "championship": "unknown",
        "laliga": true,
        "serie_a": "unknown",
        "bundesliga": true,
        "ligue_1": "unknown",
        "primeira_liga": "unknown",
        "mls": "unknown",
        "champions_league": true
      },
      "leagues_note": "German-focused; homepage shows current Bundesliga 1–3, CL, EL, LaLiga matchdays.",
      "data_types": {
        "fixtures": true,
        "live_scores": "results entered by community",
        "lineups": "unknown",
        "events": "goals",
        "player_stats": "unknown",
        "xg": false,
        "odds": false,
        "injuries": false,
        "transfers": false,
        "historical_depth": "Bundesliga back to 2001/02 seasons listed"
      },
      "api_style": "REST (JSON)",
      "docs_url": "https://api.openligadb.de",
      "status_page": "unknown",
      "affiliate": {
        "has": "n/a",
        "url": null
      },
      "verification": {
        "pricing": {
          "sources": [
            "https://www.openligadb.de"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "free_tier": {
          "sources": [
            "https://www.openligadb.de"
          ],
          "lastVerified": null,
          "status": "unverified",
          "note": "Not re-checked on 2026-10-19; figures from initial research."
        },
        "coverage": {
          "sources": [
            "https://api.openligadb.de/getavailableleagues",
            "https://www.openligadb.de"
          ],
          "lastVerified": "2026-10-19",
          "status": "verified",
          "note": "League list from the machine-readable /getavailableleagues endpoint on 2026-10-19."
        },
        "data_types": {
          "sources": [
            "https://www.openligadb.de"
          ],
          "lastVerified": null,
          "status": "partial",
          "note": "From initial research of public pages on 2026-10-19; not re-checked field by field."
        }
      },
      "sources": [
        "https://www.openligadb.de",
        "https://api.openligadb.de/getavailableleagues"
      ]
    }
  ]
}
