Mar 16, 2017 Different bookmakers offer different markets for betting on cards in soccer. Pinnacle offers Handicap and Total cards markets for the Champions League, Premier League, La Liga, Bundesliga and Serie A - all of these markets use a points system. Keep betting on favourites and you will be successful in these leagues:) Group 2: Favourites usually win. Group 3: Average leagues for betting. Group 4: Bet very carefuly here. Outsiders winning lot of games. Group 5: OMG leagues. Money play football here?:) If you want to bet do not bet on favourites, but choose outsiders. If a yellow card is shown, 10 points are added to the total. If a red card is shown, 25 points are added to the total. When a player is sent off having already been shown a yellow card, 35 points are added to the total. Your bet is based upon how many total booking points you think there will be in a particular match.

08 Mar 2014Betting

Last updated: December 2 2019

Where can I actually find football/soccer data?

There are three main ways to get data. You can parse/scrape it from a hobbyist project/website, you can pay for it or you can try to collect it yourself.

Jump to a specific source:

  • Open source data on github
  • Free APIs
    • football-data.org (RESTful API)
    • Sports Open Data (RESTful API)
    • openfooty API (hard to get an API Key)
    • betlines ninja API (RESTful API on Mashape)
  • Commercial APIs
  • Other Websites

Open Source Data on Github

openfootball - aka football.db

openfootball (aka football.db) has started a free, open source public domain football database.The data is historical data, meaning no lives scores but the data does include the schedule, teams and players for the 2014 World Cup along with global league data. This is a very promising project and has the potential to be the definitive source for historical data for the public.See the opensport Google Group for discussion and questions. The data is stored in various repos on github.Consider contributing any data you have yourself and be sure to thank Gerald Bauer. All the various repos can be intimidating. A good place to start is at github.com/openfootball.

An example of the plain text (custom format):

Check out the following github organizations for more listings:

Soccer

There is also an open source football.db HTTP JSON(P) API for demo purposes. Example Endpoints:

jokecamp/FootballData

jokecamp/FootballData - my own hodgepodge of JSON and CSV Football/Soccer data on GitHub with a focus on the EPL

soccerstats.us

soccerstats.us is github organization with multiple repositories for sets of data (with a focus on North American data). The parser is written in python and looks like it was designed to parse the rsssf.com text data.

WoSo Stats

Card Index Soccer Betting

Women's Soccer Stats. Collecting, analyzing, and sharing data about women's soccer from around the world. WoSo Stats Homepage and their github amj2012/wosostats. Browse their data app.

Other smaller Projects/Repos

  • github.com/jalapic/engsoccerdata includes a csv file of the top 4 tier English League Soccer games from 1888 to 2014.
  • planetopendata/awesome-football includes another list of repos
  • architv/soccer-cli - A command line interface for retrieving football scores.
  • pssguy/epldata - Datasets of the English Premier League 1992-2018
  • jalapic/engsoccerdata - English and European soccer results 1871-2017. Includes three English ones (League data, FA Cup data, Playoff data), several European leagues (Spain, Germany, Italy, Holland, France, Belgium, Portugal, Turkey, Scotland, Greece) as well as South Africa and MLS.
  • gavinr/usa-soccer - USA soccer teams and location data for MLS, NWSL, and USL conferences. CSV or GeoJSON can be used as an API.

Free APIs

football-data.org (beta)

football-data.org is a RESTful API in beta with regularly updated data. If you register for a free API key you will get CORS support. I recommend registering for a key to show your support and help the service track usage. However, a key is not required yet so you can try out the endpoints right now. I am excited to see this API grow and mature!

Available endpoints

Some example calls:

  • http://api.football-data.org/v1/soccerseasons/424 (European Championships France 2016)

Example JSON output for a team:

Sports Open Data API

This free RESTful API (hosted on Mashape) is an impressive service provided by http://sportsopendata.net/. Introduced in early 2016 it is very promising. The data is under a Creative Commons license. Limited to 10,000 requests a month. Mashape registration is required.

Available Endpoints:

Example Season JSON

Example Standings JSON

openfooty API

openfooty API had promising API documentation but a quick look at the developer forums shows a stale community and questions about why no one seems to actually be able to get a developer key.

Betlines Ninja API (betting/odds)

The free API (hosted on Mashape) is for betting odds but contains a lot of upcoming fixture data. The API is provided by the Betlines Ninja. Along with match data the service provides recent odds data from all major sportsbooks (11 currently including Bwin, Paddy Power, Betfair etc.) Results can be obtained for a maximum of 3 days back in the free plan. There is also a: [ { 'id': 14143, 'idSeason': 435, 'seasonName': '2019/2020', 'idHome': 909, 'homeName': 'Parma', 'idAway': 854, 'awayName': 'Juventus', 'idStage': 131, 'idVenue': 709, 'venueName': 'Stadio Ennio Tardini', 'date': '2019-08-24 16:00:00', 'status': 'finished', 'round': 1, 'attendance': null, 'team_home_90min_goals': 0, 'team_away_90min_goals': 1, 'team_home_ET_goals': 0, 'team_away_ET_goals': 0, 'team_home_PEN_goals': 0, 'team_away_PEN_goals': 0, 'team_home_1stHalf_goals': 0, 'team_away_1stHalf_goals': 1, 'team_home_2ndHalf_goals': 0, 'team_away_2ndHalf_goals': 0, 'elapsed': 0, 'elapsedPlus': 0, 'eventsHash': '15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b', 'lineupsHash': '878f32f76b159494f5a39f9321616c6068cdb82e88df89bcc739bbc1ea78e1f9', 'statsHash': '6a4875ddaceaa91fb3369f0f6d962f77442daf1b1d97733457d12bcabdf79441', 'referees': [ { 'type': 'referee', 'idReferee': 8309, 'refereeName': 'F. Maresca' }, { 'type': 'assitant referee', 'idReferee': 8323, 'refereeName': 'P. De Meo' }, { 'type': 'assitant referee', 'idReferee': 8114, 'refereeName': 'M. Piccinini' } ], 'events': [ { 'id': 135422, 'idFixture': 14143, 'idSeason': 435, 'idTeam': 854, 'teamName': 'Juventus', 'idPlayer1': 12000, 'player1Name': 'G. Chiellini', 'idPlayer2': null, 'player2Name': null, 'elapsed': 21, 'elapsedPlus': 0, 'type': 'goal' }, { 'id': 135423, 'idFixture': 14143, 'idSeason': 435, 'idTeam': 909, 'teamName': 'Parma', 'idPlayer1': 15892, 'player1Name': 'D. Kulusevski', 'idPlayer2': null, 'player2Name': null, 'elapsed': 27, 'elapsedPlus': 0, 'type': 'y_card' }, { 'id': 135424, 'idFixture': 14143, 'idSeason': 435, 'idTeam': 909, 'teamName': 'Parma', 'idPlayer1': 15893, 'player1Name': 'Hernani', 'idPlayer2': null, 'player2Name': null, 'elapsed': 45, 'elapsedPlus': 0, 'type': 'y_card' }, { 'id': 135425, 'idFixture': 14143, 'idSeason': 435, 'idTeam': 854, 'teamName': 'Juventus', 'idPlayer1': 12278, 'player1Name': 'S. Khedira', 'idPlayer2': null, 'player2Name': null, 'elapsed': 53, 'elapsedPlus': 0, 'type': 'y_card' }, { 'id': 135457, 'idFixture': 14143, 'idSeason': 435, 'idTeam': 909, 'teamName': 'Parma', 'idPlayer1': 8132, 'player1Name': 'L. Siligardi', 'idPlayer2': 15892, 'player2Name': 'D. Kulusevski', 'elapsed': 57, 'elapsedPlus': 0, 'type': 'subst' }, { 'id': 135458, 'idFixture': 14143, 'idSeason': 435, 'idTeam': 854, 'teamName': 'Juventus', 'idPlayer1': 15073, 'player1Name': 'A. Rabiot', 'idPlayer2': 12278, 'player2Name': 'S. Khedira', 'elapsed': 63, 'elapsedPlus': 0, 'type': 'subst' }, { 'id': 135459, 'idFixture': 14143, 'idSeason': 435, 'idTeam': 854, 'teamName': 'Juventus', 'idPlayer1': 12193, 'player1Name': 'J. Cuadrado', 'idPlayer2': 15894, 'player2Name': 'Douglas Costa', 'elapsed': 71, 'elapsedPlus': 0, 'type': 'subst' }, { 'id': 135460, 'idFixture': 14143, 'idSeason': 435, 'idTeam': 909, 'teamName': 'Parma', 'idPlayer1': 11893, 'player1Name': 'A. Grassi', 'idPlayer2': 8478, 'player2Name': 'G. Brugman', 'elapsed': 77, 'elapsedPlus': 0, 'type': 'subst' }, { 'id': 135461, 'idFixture': 14143, 'idSeason': 435, 'idTeam': 854, 'teamName': 'Juventus', 'idPlayer1': 12135, 'player1Name': 'F. Bernardeschi', 'idPlayer2': 11848, 'player2Name': 'G. Higuaín', 'elapsed': 83, 'elapsedPlus': 0, 'type': 'subst' }, { 'id': 135462, 'idFixture': 14143, 'idSeason': 435, 'idTeam': 909, 'teamName': 'Parma', 'idPlayer1': 15899, 'player1Name': 'Y. Karamoh', 'idPlayer2': 8449, 'player2Name': 'A. Barillà', 'elapsed': 85, 'elapsedPlus': 0, 'type': 'subst' }, { 'id': 135426, 'idFixture': 14143, 'idSeason': 435, 'idTeam': 854, 'teamName': 'Juventus', 'idPlayer1': 12135, 'player1Name': 'F. Bernardeschi', 'idPlayer2': null, 'player2Name': null, 'elapsed': 88, 'elapsedPlus': 0, 'type': 'y_card' }, { 'id': 135427, 'idFixture': 14143, 'idSeason': 435, 'idTeam': 854, 'teamName': 'Juventus', 'idPlayer1': 12159, 'player1Name': 'M. Pjanić', 'idPlayer2': null, 'player2Name': null, 'elapsed': 90, 'elapsedPlus': 1, 'type': 'y_card' } ] } ], 'page': 1, 'itemsPerPage': 20}

Sportdeer.com

SportDeer.com offers three different plans. Basic, Normal and Advanced. Plans range from 5€/month to 15€/month but will be free of charge till the end of 2018. Registration is required. API Documentation

Some example endpoints are:

fantasysportnet

I have not had time to check this out but adding to the list for now. http://www.fantasysportnet.com/data/home.jsp

GoalServe.com

Goalserve Soccer Data Feeds API provide live score services, fixtures and results, In-Game player stats, profiles, injuries, historical data, prematch and inplay Odds. More than 400 football leagues in live data coverage. XML and JSON formats. Free Trial period available. Pricing starts at $150+.

Soccer's API

Soccer's API offers live scores and stats. More than 800 leagues, match statistics, stats of teams and players, squads and player profiles, lineups, information about online broadcasts (DAZN, ESPN...), TV channels and data about Bookmakers with up to 30 of them with pre-match and Inplay odds. Plans price range from $30-$300 USD per month. A 15-day free trial available.

Example for Match by ID - Endpoint Response (Real Madrid vs PSG - 2019-11-26). Url format is https://api.soccersapi.com/v2.2/fixtures/?user=YOUR_USER&token=YOUR_TOKEN&t=info2&id=11999203

football-api

football-api.com is a paid API service. The API rxrestricts by IP addresses and limit calls based on your package. Includes endpoints for competitions, teams, standings, live scores, fixtures and commentaries. See the pricing page. Prices range from $15 to $200 per month.

Example endpoints:

The demo (EPL) free feature is no longer available. Here is part of the email notice sent:

Discontinuation Of The Demo Plan (March 3 2016)

In the last couple of weekends, we experienced a very high load on our servers. This lead to delayed responses and very slow data return. We had to take emergency measures and unfortunately, we had to suspend the demo access to the English Premier League in favour of our paying customers. This decision is hard for us since we would like to offer this demo access for free. However, with around 3000 demo users, the load on our servers was too high.

Since the demo plan was not planned for production purposes (hence the name), we apologize if we have disturbed your development and surprised you with a lot of error messages.

This is why we can't have nice things.

CrowdScores and FastestLiveScores API

CrowdScores is a UK company that uses a crowd-sourcing football data collection process. You sign up for an account and report game events to their servers. They have iPhone and android apps for reporting. The collected data is then available as an API on FastestLiveScores.com. They currently offer three different API tiers. Free trial ($0), Basic ($100 per month) and Pro (price unlisted). View the API documentation.

Example endpoints and parameters:

SPAPI

SPAPI offers subscriptions for a RESTful Sports API including live scores, player statistics, betting odds, pre-game data and match event data. The data response look pretty comprehensive.

Pricing:

Look at the example of one of the action data objects. It looks like data for a defensive clearance including x,y coordinates.

Example endpoints:

Pretty impressive but this level of detail comes at a price. Authentication method is a API key in querystring.

Sportmonks.com

https://sportmonks.com offers a JSON API. There are plans with prices ranging between 15 to 200 euro's per month. There is also an option for custom plans. This API support lazy loading, meaning you pass parameters in your request to load relationships and nested relationships.

Registration to this API is free and every plan has a 14 day trial.

Some example endpoints are:

And an example response looks like:

XMLSoccer.com

xmlsoccer.com is another subscription service. You can demo the service for free with the Scottish Premier League. The monthly pricing is 10 € per 1 month, 25 € per 3 months and 90 € per 12 months. You can browse the demo web methods here to see the types of calls available http://www.xmlsoccer.com/FootballDataDemo.asmx and the WSDL. The data is only returned in XML.

Each call must provide an API Key. You can get a free demo API Key by registering.

Example results for a team

Player data

Betting

Open source Python client for XmlSoccer API

Card Index Soccer Betting Sites

Resultados de Fútbol API

Resultados-futbol.com is a spanish football website with live scores and historical data with a database of more than four million matches and hundreds of competitions all around the world. When they decided to make their own mobile apps they created an API to serve both the apps and the website and made it available to developers.

Their API covers a lot from live scores with events to player stats, transfers, betting odds, etc. Chances are that if you find some info on the website it will be available on the API also. It is well documented in spanish only.

Their prices range from 99€ per year for around 1,000 requests per day to 499€ per month for 100k request per day. They offer a one month free trial with full access to the API and 500 request per day. Authentication method is a API key in the querystring.

opta

opta is one of industry leaders. This is what the tv networks use and likely what the actual football clubs use for scouting. If only this data were public! Opta used to provide a developer program under the title 'Opta Playground' but it seems that the site has been removed and now shows a 404 error. The site used to read 'Opta can provide data for programmers wishing to develop a mobile app or website with selected historical data available to download.' You had to request permission in an email. I applied and they sent me the xml data set for 10 rounds of games from the start of the 2007/2008 Bundesliga 2. The more detailed game data had either x,y coordinates of game events. A very impressive dataset but it felt more like an advertisement. The data provided I had no interest in and I'm not sure why an indie developer would spend time working on a data set they could never afford. They even track this data point 'Spectator on pitch.' Read this article FiveThirtyEight behind the scenes look at how opta tracks data (spoiler: young male gamers).

An example of an 'event' in xml

prozone

prozone is another large commercial data provider.

Match Analysis

Match Analysis is another large commercial data provider that lists Fox Soccer Channel, US National Team and the MLS among their clients.

ScoreBat Video API

ScoreBat Video API is a free API that provides the embed codes for the videos of the goals and video highlights in real time. It covers most of the main football leagues and tournaments.The API is super fast and very easy to use and requires no authentication. Check the structure here

APIfootball

apifootball.com is an affordable service with live scores for mobile applications and small websites.The service covers live scores for cups, football leagues, and intenational matches for all of the major football federations all over the world, along with many minor leagues, allowing you to integrate information regarding the football matches into your websites. Included in the available information are livescores, in play events, results, fixtures, standings and odds from 60+ bookmakers.

You can check here the API comprehensive and very easy to use documentation

Their prices range from $25 for the european plan to $50 for worldwide plan. Here is the complete list of prices and features.

Other Websites

FootballSquads

footballsquads.co.uk has current and historical squad details for clubs (rosters) and national teams from all across the world for many leagues and competitions, including the 2014 World Cup squads.

And example of the squad/roster data:

Rec.Sport.Soccer Statistics Foundation (RSSSF)

Card Index Soccer Betting

Rec.Sport.Soccer Statistics Foundation (RSSSF) has massive collection of formatted plain text statistics. An example of English Premier leagues results.

Example of the data for table results:

and scores:

football-data.co.uk

football-data.co.uk is a betting and odds website that has made a lot of historical league data available as csv files. The data includes results and a lot of betting/odds related data. I have tried to aggregate and clean up the data in the following repo github.com/jokecamp/FootballData

Leagues and divisions included:

The key/legend of all the field abbreviations gives you idea of what is available in the CSV files:

european-football-statistics.co.uk

www.european-football-statistics.co.uk is a visually dated website but has a lot of historical football data (mostly an overview of league/tournament results) displayed in nice clean HTML tables. Looks like they already have 2014 EPL stats. The site claims 'The target of this site is to collect european football statistics which are not easily found on internet.'

openligadb.db

openligadb.db has an old-school windows asmx web service with methods such as 'GetGoalsByMatch()'

Wikipedia

Wikipedia - has a lot of structured data and is also crowd/public sourced. You can use their API to query then parse the data. It is very fragmented into specific pages making this a good source if you are looking for very specific team/player data. For example here is a table of Manchester United season results http://en.wikipedia.org/wiki/List_of_Manchester_United_F.C._seasons.

Post War English & Scottish Football League A - Z Player's Database

Post War English & Scottish Football League A - Z Player's Database contains a lot of HTML tables of 'players who appeared for their clubs between 1946/47 and the end of the 2013/14 season and who have now left their clubs.' Here is a list of ex-Manchester United players.

Stats included are: NAME, POS, SEASONS, SOURCE, TRANSFERRED TO, APPS, GOALS

2015 Women's World Cup Data

FIFA PDF files - includes unformatted data on participating teams, schedules and random statistics

world-cup-women on github - plain text file list of teams and schedule

2015 Women's World Cup Wikipedia page - includes a great visual bracket view

2014 World Cup APIs

kimono labs 2014 World Cup Api - has a very nice restful API available. Free registration required to access the API. The API has a player, team, club, matches, and playerseasonstats endpoints. See the documentation and start making calls withe the API explorer

2014 World Cup JSON API - Soccer for Good - The API is available now. The author explains that the data is from a scraper so the availability is not guaranteed but should be available throughout the tournament. There are endpoints for teams, matches, today, tomorrow and current. The Ruby on Rails source code is available on Github

World Cup in JSON - an open source ruby project available at github.com/estiens/worldcupjson that scrapes a few sources and combines into an API. API is available at http://worldcup.sfg.io/matches

Unofficial FIFA.com JSON API for Mobile Apps This is unofficial and I wouldn't be surprised if it is protected/unavailable soon. Until then its nice to see data straight from the source. Known endpoints: matches, teams or detailed match info

Deprecated/Retired - 'The Graveyard of APIs'

ESPN API has an API for registered users (free). You can get a list of all the players in the EPL. However they are very limited in their data. They restrict all fixtures and scores to 'strategic partners.' However, you can get lists of players and teams. The Public API is being retired on Monday, December 8, 2014Read the announcement

StatsFC used to have an restful JSON API of all EPL scores and fixtures. It was about $8 us dollars a month but was recently shut down. See their official statement. They still offer widgets and they plan on reviving their servies. See their comments at the bottom of the page.

Other Reading / Resources

opendata.stackexchange forum

Are there any open datasets for Soccer statistics? - keep your eye on this open data forum for more answers.

Betting Soccer Tips

Linked Soccer Data

Linked Soccer Data (pdf) is a white paper on one group's attempt to 'create a dataset including reliable information about soccerevents covering as many historical data as available including recent competitionresults.' Some dead links but worth a skim.

Fantasy Data

Soccer Betting Prediction Today

  • EPL Fantasy Geek - Current season EPL Fantasy stats for every player.
  • Fantasy Soccer Data Downloader on github - A simple command line tool to download English Premier League (fantasy) soccer data

Soccer Betting Predictions

Even more links to explore

You've made it this far. Why stop now?

  • MLS Player Salary information - 2007 to current salary amounts in pdf from the MLS Players union.
  • See this 2012 opisthokonta.net blog post.
  • sportscruncher links blog post and soccer ratings post
  • FIFA Video Game Data at leereilly/fifa-soccer-12-ultimate-team-data

Share your own sources -- What have I missed?

Please let me know about your own data sources or add a pull request on github. I have mainly searched for EPL data and would love to add data from other leagues/competitions to the list.