XMLSOCCER.COM Web Developer Manual Written by Michael Nielsen

Transcription

XMLSOCCER.COM Web Developer Manual Written by Michael Nielsen
XMLSOCCER.COM Web Developer
Manual
Written by Michael Nielsen
Contactinformation and instructions is on the last page
P REFACE
This manual is written to give you, a user of XMLSOCCER.COM, an introduction of the
various methods available on our webservice. With some clever design and usage, it is
possible to get the desired data from our service – this document is an example of that.
First I will introduce you to the vast dataset that XMLSOCCER.COM is in possession of. This
will hopefully get your mouth dripping, while thinking of the many possibilities this gives
you, as a developer. The goal of this project of mine is, to make a lot of data available to a
lot of users as cheap as possible. As long as there are subscribers to the service, I will keep
developing the project by creating new functions and adding new data by popular demand.
That means, that if there is one particular function you would like the web service to
support, write me! I might figure something out.
After the introduction, I will explain the various methods currently supported.
In the end of the document, there will be code-example in various languages.
D EFINITIONS
Name
Resultset
Webservice, API
Input
Description
Dataset returned by the Web Service
This webservice
Your input to the API
C ONTENTS
Preface ................................................................................................................................................................................ 2
Definitions....................................................................................................................................................................... 2
Links .................................................................................................................................................................................... 5
Introduction ........................................................................................................................................................................ 6
Important information .................................................................................................................................................... 6
Demo versus paying service ....................................................................................................................................... 6
Input specification ...................................................................................................................................................... 7
Available data ..................................................................................................................................................................... 7
Historic Data ................................................................................................................................................................... 7
Current Data ................................................................................................................................................................... 7
Future Data ..................................................................................................................................................................... 8
Leagues ............................................................................................................................................................................... 9
Teams.................................................................................................................................................................................. 9
Access from 5 IPs ................................................................................................................................................................ 9
Time interval limitations ..................................................................................................................................................... 9
Consuming Webservice .NET ............................................................................................................................................ 10
Create a new Web Site ................................................................................................................................................. 10
Add Service Reference .................................................................................................................................................. 12
API Operations .................................................................................................................................................................. 18
GetHistoricMatchesByLeagueAndSeason ..................................................................................................................... 18
Resultset example ..................................................................................................................................................... 18
GetHistoricMatchesByTeamAndDateInterval ............................................................................................................... 19
Resultset example ..................................................................................................................................................... 19
GetHistoricMatchesByLeagueAndDateInterval ............................................................................................................ 20
Resultset example ..................................................................................................................................................... 21
GetHistoricMatchesByID ............................................................................................................................................... 21
Resultset example ..................................................................................................................................................... 22
GetHistoricMatchesByTeamsAndDateInterval ............................................................................................................. 22
Resultset example ..................................................................................................................................................... 22
GetFixturesByDateInterval............................................................................................................................................ 24
Resultset example ..................................................................................................................................................... 24
GetFixturesByDateIntervalAndLeague .......................................................................................................................... 25
Resultset example ..................................................................................................................................................... 25
GetAllTeams .................................................................................................................................................................. 26
Resultset example ..................................................................................................................................................... 26
GetAllTeamsByLeagueAndSeason ................................................................................................................................ 26
Resultset example ..................................................................................................................................................... 26
GetAllLeagues ............................................................................................................................................................... 27
Resultset example ..................................................................................................................................................... 27
GetLeagueStandingsBySeason ...................................................................................................................................... 28
Resultset example ..................................................................................................................................................... 28
GetLiveScore ................................................................................................................................................................. 29
Resultset example ..................................................................................................................................................... 29
GetLiveScoreByLeague.................................................................................................................................................. 31
Resultset example ..................................................................................................................................................... 31
GetTeam ....................................................................................................................................................................... 31
Resultset example ..................................................................................................................................................... 31
Code Example ........................................................................................................................................................... 32
CheckApiKey ................................................................................................................................................................. 32
Resultset example ..................................................................................................................................................... 32
Contact information ......................................................................................................................................................... 33
L INKS
WSDL
List of Teams
List of Leagues
Documentation .pdf
Documentation overview
Formal description of API
List of all teams
List of all leagues
Documentation (this document)
Developers hub
I NTRODUCTION
XMLSOCCER.COM is a website that collects sports-data concerning soccer, and makes them
available in a structural language, XML, to subscribers/customers (users) of the website
through an advanced Web Service. This is interesting because it enables a user’s application
or website to understand the data given from XMLSOCCER.COM as XML is easily
interpreted by machines.
I call the Web Service “advanced” because it merely doesn’t provide the user with data by
calling it; you have to specify some parameters for it, which is why this document is
necessary to make it work. All functionality in the Web Service requires your unique API-key
(which you receive for FREE after signing up). Some functions, depending on their
complexity, require more information from you before it makes sense to provide you with a
data result set.
As a rule, the more parameters a function requires, the more specialized is the resultset
that are returned to you. For instance, the simplest function on the Web Service is called
“GetTeams”. It simply takes the ApiKey as the only input and returns a complete list of all
soccer teams in the database. Another function, that are a bit more complex, is called
“GetHistoricMatchesByTeamAndDateInterval” which require the team-ID and two dates
(startDate and endDate) as long as the mandatory ApiKey as input. This will return all
matches that one particularly team have played within a time-interval you specify. This
could be useful if you want to show a team’s past results.
XML-schemas are available on the website for download, but will also always be returned
within the resultset itself.
I MPORTANT
D E MO
IN FORMATION
V E R S US P A YI N G SE RV I C E
There are two different webservices available: One for paying members, and one for demo
users. The only difference is, that the demo-webservice will only grab data concerning the
Scottish Premier League. All operations are otherwise alike. This means that whenever you
are ready, you can easily switch to the pro webservice by simply changing the URL of the
service. The webservices are located at:
Pro Webservice
http://www.xmlsoccer.com/FootballData.asm
Demo Webservice
http://www.xmlsoccer.com/FootballDataDemo.asmx
I N P UT
SP E CI FI C AT I O N
Type
DateTimeString
ApiKey
TeamName, TeamId etc.
Format
YYYY-MM-DD
50 random letters
Team Name (string)
League
League Name
(String)
Example
2012-12-25
ABCDEFGHIJKLMN…..50
Liverpool, Man United
See list at
www.xmlsoccer.com/WebTeams.aspx
English Premier League
See list at
www.xmlsoccer.com/WebLeagues.aspx
A VAILABLE DATA
The data we have available here can be divided into four categories
1.
2.
3.
4.
Historic data (past match data and market details)
Current data (livescore)
Future data (fixtures and market details)
Static data (league and team information)
H ISTORIC D ATA
A quite extensive database has been build up in former years and holds data from many
thousand soccer matches from European leagues. Most leagues have data from ALL
matches the past five seasons or more and each match have detailed information (not
limited to) such as:

Team names/Id’s

Date

Goals

Penalties

Corners

Shots on and off target

Referee

Yellow and red cards

Lineups

Scoredetails (player names)
This data makes it possible to create interesting (and perhaps shocking) statistics on which
teams are best, or which referee is nicest towards the home-team. And how much does the
amount of cards depend on the referee?
This historical data also gives a nice opportunity to make some nice match prediction
models. You decide!
Historic data is updated approximately 24-48 hours after events, so have some patients
before all the data for all matches are added to the database.
C URRENT D ATA
Livescore data is available approximately 1 hour before match schedule and is available
around three hours after the final whistle. After that, the data becomes unavailable until
the match shows up in “Historic Data”. The data for livescore’s is, not surprising, not as
detailed as that of historic matches. When a match is being played, the following data is
available:

Team names/Id’s

Time (in minutes)

Score

Location

League

Country

Lineups

Scoredetails (player names)
F UTURE D ATA
Fixtures is available for all leagues (see specifications at
http://www.xmlsoccer.com/WebLeagues.aspx). It is possible to receive all fixture data for a
given period or limited to a single league in a given period).
Bear in mind that bookmakers rarely place odds more than 5 days prior a match, and you
should therefore not expect Odds-data for matches that is later than 5 days from your
request. Lineups are updated on matchday.
L EAGUES
A complete list of leagues can be obtained from the API or by simply visiting
http://www.xmlsoccer.com/WebLeagues.aspx
Some API-operations require specification of league. You have to use the exact same name
when using the API as is shown on that page.
It is now also possible to use the numeric ID for the league.
T EAMS
A complete list of teams can be obtained from the API or by simply visiting
http://www.xmlsoccer.com/WebTeams.aspx
Some API-operations require specification of team. You have to use the exact same name
when using the API as is shown on that page.
It is now also possible to use the numeric ID for the team.
A CCESS FROM 5 IP S
You are only allowed to use this service for one website/project. To allow flexibility in
development you are, however, allowed access to the API from 5 different IP’s. These IP’s
are maintained from your Account page. This applies for both the Pro and Demo service.
T IME INTERVAL LIMITATIONS
The following service methods have minimum time intervals between each request.
Service Method
Minimum Time interval (seconds)
GetLiveScore
30
GetLiveScoreByLeague
30
GetHistoricMatchesByLeagueAndSeason
21600
GetAllTeams
21600
GetAllLeagues
21600
GetLeagueStandingsBySeason
21600
Methods not listed here, does not have any interval limitations at the moment.
C ONSUMING W EBSERVICE .NET
This section shows an example on how to consume the xmlsoccer.com from an empty c#
.net 4.0 web application.
Goal: Create a Livescore overview with matches currently being played using my own
database, successfully uncoupling my website from xmlsoccer.com webservice.
What you need:

Visual Studio (I use VS2010)

Able to understand simple C# and LINQ

Basic understanding how to read XML-files

45 minutes of your time
This is the steps we take:
1.
2.
3.
4.
Consume Webservice
Create simple MS SQL-database tables for matches and teams and uses SQL to
LINQ Classes on these tables
Parse XML and saves data to database
Retrieves data as LINQ objects and binds them to Gridview
C REATE
A NEW
W EB S ITE
Fire up Microsoft Visual Studio and create a new Web Site.
This new website only has one purpose: Show livescores from all leagues. This is why I
choose to call it: “MyLivescoreWebsite”. Fancy, ey? I select “ASP.NET Empty Web Site”
under “Visual C#” and click OK.
The project is rather empty, in fact the solution explorer looks rather depressing. To
enlighten the project, I add my entry page: Default.aspx.
I put in “LiveScore Consuming example” in the HTML title tags, and add a standard Gridview
to the HTML markup and add an update button. I call my GridView “GridViewLiveScore”.
Check it out, below:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>LiveScore Consuming example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<p>This is my wonderful livescore website ;-).</p>
<p><asp:GridView ID="GridViewLiveScore" runat="server"></asp:GridView></p>
<asp:Label ID="LabelNoMatches" runat="server" Text="No matches is being played"></asp:Label>
<asp:Button ID="ButtonUpdate" runat="server" Text="Update Score"
onclick="ButtonUpdate_Click" />
</div>
</form>
</body>
</html>
A DD S ERVICE R EFERENCE
Now it’s time to see some magic!
First rightclick on your solution and select “Add Service Reference”.
F IGURE 1 - A DD S ERVICE R EFERENCE : F IRST STEP
In the dialog that show up, you need to enter the following information (See Figure 2):
Adress: http://www.xmlsoccer.com/FootballData.asmx. (Or, if you are using the DEMO
service: http://www.xmlsoccer.com/FootballDataDemo.asmx)
In the namespace you put in XMLSoccerCOM (or something similar) and click “Go”. It takes
a few seconds to load depending on your internet connection. When it is finished, expand
the left-side “FootballData” (or “FootballDataDemo”) and select “FootballDataHttpPost” as
that is what we will be using in this project. Now simply click “OK”.
F IGURE 2 - A DD S ERVICE REFERENCE : S TEP 2
Now that I have added my servicedefinition to my project, I am ready to start developing. I
have made my own database that includes the following table and their fields:

Matches
o Id (my own ID)
o HomeTeam
o AwayTeam
o HomeGoals
o AwayGoals
o HomeGoalDetails
o AwayGoalDetails
o XmlSoccerId (ID from service)
o Date
I’m using LINQ for SQL, and adds it by rightclicking on my project and selects “add item”. In
the following screen, I choose “LINQ to SQL Classes” – gives it the name
“MyLiveScoreDb.dbml” (see Figur 3 - Add LINQ To SQL Classes). I accepts that Visual Studio
wants to add it in the App_Code folder.
F IGUR 3 - A DD LINQ T O SQL C LASSES
After I added my LINQ Classes, I need to add my two tables that I already created in MS SQL
database. I do this by doubleclick on “MyLiveScoreDb.dbml” in the solution explorer and
picks out the two tables from the Server Explorer. This looks like this:
F IGUR 4 – M Y TWO TABLES IN M Y L IVE S CORE D B . DBML
Now that I have my LINQ Classes ready, I simply need to connect to the webservice, parse
the XML into my LINQ objects and save them to the database. This I will do whenever I click
on a button. In reality I would either have a windows Form application make the updates to
my database, or I will have a table with timestamp values for the various calls I make as I do
not want to spam the xmlsoccer.com webservice.
I make a couple methods to archive this. First I retrieves the XML node from the service and
converts it as a XDocument:
using System.Xml.Linq;
using System.Xml;
private XDocument GetLiveScoreDocument()
{
XMLSoccerCOM.FootballDataSoapClient serviceClient = new XMLSoccerCOM.FootballDataSoapClient();
var node = serviceClient.GetLiveScore(apiKey);
XDocument xmlDoc = new XDocument();
xmlDoc = XDocument.Load(new XmlNodeReader(node));
return xmlDoc;
}
Next, I parse the XDocument and saves it to my database:
private void SaveUpdateMatchesToDb(XDocument xDoc)
{
XNamespace ns = ""; //No namespace is used
var matchesFromXmlSoccer = from match in xDoc.Descendants(ns + "Match") //I'm only interested in
Match details
select new
{
HomeTeam = match.Descendants(ns + "Hometeam").FirstOrDefault().Value,
AwayTeam = match.Descendants(ns + "Awayteam").FirstOrDefault().Value,
HomeGoals = match.Descendants(ns + "HomeGoals").FirstOrDefault().Value,
AwayGoals = match.Descendants(ns + "AwayGoals").FirstOrDefault().Value,
HomeGoalDetails = match.Descendants(ns +
"HomeGoalDetails").FirstOrDefault().Value,
AwayGoalDetails = match.Descendants(ns +
"AwayGoalDetails").FirstOrDefault().Value,
Time = match.Descendants(ns + "Time").FirstOrDefault().Value,
XmlSoccerId = match.Descendants(ns + "Id").FirstOrDefault().Value,
Date = match.Descendants(ns + "Date").FirstOrDefault().Value
};
if (matchesFromXmlSoccer.Count() > 0) //If any matches are being played
{
MyLiveScoreDBDataContext dB = new MyLiveScoreDBDataContext(); //My LinQ SQL Classes data context
foreach(var matchFromXmlSoccer in matchesFromXmlSoccer) //For each match returned from the XML
{
Match matchToDb = new Match(); //Create new match and fill it with data from the XML-match
matchToDb.HomeTeam = matchFromXmlSoccer.HomeTeam;
matchToDb.AwayTeam = matchFromXmlSoccer.AwayTeam;
matchToDb.HomeGoals = Convert.ToInt32(matchFromXmlSoccer.HomeGoals);
matchToDb.AwayGoals = Convert.ToInt32(matchFromXmlSoccer.AwayGoals);
matchToDb.HomeGoalDetails = matchFromXmlSoccer.HomeGoalDetails;
matchToDb.AwayGoalDetails = matchFromXmlSoccer.AwayGoalDetails;
matchToDb.Time = matchFromXmlSoccer.Time;
matchToDb.XmlSoccerId = Convert.ToInt32(matchFromXmlSoccer.XmlSoccerId);
matchToDb.Date = Convert.ToDateTime(matchFromXmlSoccer.Date);
var existingMatchInDb =
(from c in dB.Matches
where c.XmlSoccerId == matchToDb.XmlSoccerId
select c).FirstOrDefault();
if(existingMatchInDb != null) //Check if any match existed in the db
existingMatchInDb = matchToDb; //It already existed, I'll just update it in.
else
dB.Matches.InsertOnSubmit(matchToDb); //It didn't exist - so I'll create it in my dB.
}
dB.SubmitChanges();
}
}
Both these functions are run when I click on my button:
Lastly, I’ll create the function that retrieves the data from my SQL database and binds it to
the gridview. This is run each time a user comes to my website.
protected void Page_Load(object sender, EventArgs e)
{
FillLiveScoreGridview();
}
private void FillLiveScoreGridview()
{
MyLiveScoreDBDataContext dB = new MyLiveScoreDBDataContext();
var matches = //Retrieve matches that is playing right now and will be played in the near future.
(from c in dB.Matches
where c.Date >= DateTime.Now.AddHours(-3) && c.Date <= DateTime.Now.AddHours(3)
select c);
if(matches.Count() > 0) //If any matches is being played, I bind them to my gridview. Otherwise I
show a message to the user.
{
GridViewLiveScore.DataSource = matches;
GridViewLiveScore.DataBind();
}
else
LabelNoMatches.Visible = true;
}
This is how it looks the first time I visit my site:
protected void ButtonUpdate_Click(object sender, EventArgs e)
{
XDocument xDoc = GetLiveScoreDocument();
SaveUpdateMatchesToDb(xDoc);
FillLiveScoreGridview();
}
After I click the button, my gridview is populated (also, I added some simple styling to the
gridview):
API O PERATIONS

CheckApiKey

GetAllLeagues

GetAllTeams

GetAllTeamsByLeagueAndSeaspn

GetFixturesByDateInterval

GetFixturesByDateIntervalAndLeague

GetHistoricMatchesByLeagueAndSeason

GetHistoricMatchesByLeagueAndDateInterval

GetHistoricMatchesByID

GetHistoricMatchesByFixtureMatchID

GetHistoricMatchesByTeamAndDateInterval

GetHistoricMatchesByTeamsAndDateInterval

GetLeagueStandingsBySeason

GetLiveScore

GetLiveScoreByLeague

GetTeam
G ET H ISTORIC M ATCHES B Y L EAGUE A ND S EASON
<s:element name="GetHistoricMatchesByTeamAndDateInterval">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="league" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="seasonDateString
" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing historic matches in a season.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetHistoricMatchesByLeagueAndSeason?ApiKey=YourAPIKey&league
=English Premier League& seasonDateString=1213
<XMLSOCCER.COM>
<Match>
<Id>22962</Id>
<FixtureMatch_Id>55645</FixtureMatch_Id>
<Date>2012-08-18T16:00:00+02:00</Date>
<League>English Premier League</League>
<HomeTeam>Fulham</HomeTeam>
<HomeTeam_Id>4</HomeTeam_Id>
<HomeCorners>6</HomeCorners>
<HomeGoals>5</HomeGoals>
<HalfTimeHomeGoals>2</HalfTimeHomeGoals>
<HomeShots>11</HomeShots>
<HomeShotsOnTarget>9</HomeShotsOnTarget>
<HomeFouls>12</HomeFouls>
<HomeGoalDetails>87': penalty Steve Sidwell;66': Alex Kacaniklic;54':
Mladen Petric;41': Mladen Petric;26': Damien Duff;87': penalty Steve
Sidwell;66': Alex Kacaniklic;54': Mladen Petric;41': Mladen Petric;26':
Damien Duff;</HomeGoalDetails>
<HomeLineupGoalkeeper> Mark Schwarzer</HomeLineupGoalkeeper>
<HomeLineupDefense> Aaron Hughes; John Arne Riise; Sascha Riether; Brede
Hangeland;</HomeLineupDefense>
<HomeLineupMidfield> Moussa Dembélé; Alex Kacaniklic; Damien Duff;
Mahamadou Diarra;</HomeLineupMidfield>
<HomeLineupForward> Bryan Ruiz; Mladen Petric;</HomeLineupForward>
<HomeYellowCards>0</HomeYellowCards>
<HomeRedCards>0</HomeRedCards>
<AwayTeam>Norwich</AwayTeam>
<AwayTeam_Id>13</AwayTeam_Id>
<AwayCorners>3</AwayCorners>
<AwayGoals>0</AwayGoals>
<HalfTimeAwayGoals>0</HalfTimeAwayGoals>
<AwayShots>4</AwayShots>
<AwayShotsOnTarget>2</AwayShotsOnTarget>
<AwayFouls>11</AwayFouls>
<AwayGoalDetails />
<AwayLineupGoalkeeper> John Ruddy</AwayLineupGoalkeeper>
<AwayLineupDefense> Ryan Bennett; Michael Turner; Marc Tierney; Russell
Martin;</AwayLineupDefense>
<AwayLineupMidfield> Jonathan Howson; Bradley Johnson; Anthony
Pilkington; Robert Snodgrass; Andrew Surman;</AwayLineupMidfield>
<AwayLineupForward> Grant Holt;</AwayLineupForward>
<AwayYellowCards>0</AwayYellowCards>
<AwayRedCards>0</AwayRedCards>
</Match>
Data requested at 08-04-2012 13:48:01 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
G ET H ISTORIC M ATCHES B Y T EAM A ND D ATE I NTERVAL
<s:element name="GetHistoricMatchesByTeamAndDateInterval">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="teamId" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="startDateString" type="s:stri
ng"/>
<s:element minOccurs="0" maxOccurs="1" name="endDateString" type="s:string
"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing historic matches in a given interval
regarding one particular team.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetHistoricMatchesByTeamAndDateInterval?ApiKey=YourAPIKey&sta
rtDateString=2010-04-01&endDateString=2012-05-10&teamId=Liverpool
<XMLSOCCER.COM>
<Match>
<Date>2011-02-27T00:00:00+01:00</Date>
<League>English Premier League</League>
<HomeTeam>West Ham</HomeTeam>
<HomeCorners>6</HomeCorners>
<HomeGoals>3</HomeGoals>
<HomeShots>17</HomeShots>
<HomeShotsOnTarget>11</HomeShotsOnTarget>
<HomeYellowCards>0</HomeYellowCards>
<HomeRedCards>0</HomeRedCards>
<AwayTeam>Liverpool</AwayTeam>
<AwayCorners>8</AwayCorners>
<AwayGoals>1</AwayGoals>
<AwayShots>12</AwayShots>
<AwayShotsOnTarget>8</AwayShotsOnTarget>
<AwayYellowCards>1</AwayYellowCards>
<AwayRedCards>0</AwayRedCards>
</Match>
<Match>
<Date>2011-02-12T00:00:00+01:00</Date>
<League>English Premier League</League>
<HomeTeam>Liverpool</HomeTeam>
<HomeCorners>8</HomeCorners>
<HomeGoals>1</HomeGoals>
<HomeShots>13</HomeShots>
<HomeShotsOnTarget>5</HomeShotsOnTarget>
<HomeYellowCards>1</HomeYellowCards>
<HomeRedCards>0</HomeRedCards>
<AwayTeam>Wigan</AwayTeam>
<AwayCorners>5</AwayCorners>
<AwayGoals>1</AwayGoals>
<AwayShots>8</AwayShots>
<AwayShotsOnTarget>2</AwayShotsOnTarget>
<AwayYellowCards>3</AwayYellowCards>
<AwayRedCards>0</AwayRedCards>
</Match>
Data requested at 08-04-2012 13:48:01 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
G ET H ISTORIC M ATCHES B Y L EAGUE A ND D ATE I NTERVAL
<s:element name="GetHistoricMatchesByLeagueAndDateInterval">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="league" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="startDateString" type="s:stri
ng"/>
<s:element minOccurs="0" maxOccurs="1" name="endDateString" type="s:string
"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing historic matches in a given interval
regarding one particular league.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetHistoricMatchesByLeagueAndDateInterval?ApiKey=YourApiKey&st
artDateString=2012-04-01&endDateString=2012-05-16&league=English%20Premier%20League
<XMLSOCCER.COM>
<Match>
<Date>2010-01-05T00:00:00+01:00</Date>
<League>English Premier League</League>
<HomeTeam>Stoke</HomeTeam>
<HomeCorners>8</HomeCorners>
<HomeGoals>3</HomeGoals>
<HomeShots>11</HomeShots>
<HomeShotsOnTarget>9</HomeShotsOnTarget>
<HomeYellowCards>1</HomeYellowCards>
<HomeRedCards>0</HomeRedCards>
<AwayTeam>Fulham</AwayTeam>
<AwayCorners>10</AwayCorners>
<AwayGoals>2</AwayGoals>
<AwayShots>14</AwayShots>
<AwayShotsOnTarget>7</AwayShotsOnTarget>
<AwayYellowCards>0</AwayYellowCards>
<AwayRedCards>0</AwayRedCards>
</Match>
<Match>
<Date>2010-01-09T00:00:00+01:00</Date>
<League>English Premier League</League>
<HomeTeam>Arsenal</HomeTeam>
<HomeCorners>6</HomeCorners>
<HomeGoals>2</HomeGoals>
<HomeShots>6</HomeShots>
<HomeShotsOnTarget>5</HomeShotsOnTarget>
<HomeYellowCards>1</HomeYellowCards>
<HomeRedCards>0</HomeRedCards>
<AwayTeam>Everton</AwayTeam>
<AwayCorners>8</AwayCorners>
<AwayGoals>2</AwayGoals>
<AwayShots>9</AwayShots>
<AwayShotsOnTarget>5</AwayShotsOnTarget>
<AwayYellowCards>1</AwayYellowCards>
<AwayRedCards>0</AwayRedCards>
</Match>
Data requested at 08-04-2012 13:58:36 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
G ET H ISTORIC M ATCHES B Y ID
<s:element name="GetHistoricMatchesByID">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Id" type="s:int"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing one particular match
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetHistoricMatchesByLeagueAndDateInterval?ApiKey=YourApiKey&Id
=4325
<XMLSOCCER.COM>
<Match>
<Id>4325</Id>
<Date>2010-01-05T00:00:00+01:00</Date>
<League>English Premier League</League>
<HomeTeam>Stoke</HomeTeam>
<HomeCorners>8</HomeCorners>
<HomeGoals>3</HomeGoals>
<HomeShots>11</HomeShots>
<HomeShotsOnTarget>9</HomeShotsOnTarget>
<HomeYellowCards>1</HomeYellowCards>
<HomeRedCards>0</HomeRedCards>
<AwayTeam>Fulham</AwayTeam>
<AwayCorners>10</AwayCorners>
<AwayGoals>2</AwayGoals>
<AwayShots>14</AwayShots>
<AwayShotsOnTarget>7</AwayShotsOnTarget>
<AwayYellowCards>0</AwayYellowCards>
<AwayRedCards>0</AwayRedCards>
</Match>
Data requested at 08-04-2012 13:58:36 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
G ET H ISTORIC M ATCHES B Y T EAMS A ND D ATE I NTERVAL
<s:element name="GetHistoricMatchesByTeamsAndDateInterval">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="team1Id" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="team2Id" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="startDateString" type="s:stri
ng"/>
<s:element minOccurs="0" maxOccurs="1" name="endDateString" type="s:string
"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing previous matches between two given teams
in a given interval.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetHistoricMatchesByTeamsAndDateInterval?ApiKey=YourAPIKey&st
artDateString=2009-08-01&endDateString=2011-01-13&team1Id=Man%20United&team2Id=Arsenal
<XMLSOCCER.COM>
<Match>
<Id>4325</Id>
<Date>2010-12-13T00:00:00+01:00</Date>
<League>English Premier League</League>
<HomeTeam>Man United</HomeTeam>
<HomeCorners>5</HomeCorners>
<HomeGoals>1</HomeGoals>
<HomeShots>14</HomeShots>
<HomeShotsOnTarget>10</HomeShotsOnTarget>
<HomeYellowCards>0</HomeYellowCards>
<HomeRedCards>0</HomeRedCards>
<AwayTeam>Arsenal</AwayTeam>
<AwayCorners>4</AwayCorners>
<AwayGoals>0</AwayGoals>
<AwayShots>11</AwayShots>
<AwayShotsOnTarget>6</AwayShotsOnTarget>
<AwayYellowCards>4</AwayYellowCards>
<AwayRedCards>0</AwayRedCards>
</Match>
<Match>
<Id>4165</Id>
<Date>2010-01-31T00:00:00+01:00</Date>
<League>English Premier League</League>
<HomeTeam>Arsenal</HomeTeam>
<HomeCorners>8</HomeCorners>
<HomeGoals>1</HomeGoals>
<HomeShots>18</HomeShots>
<HomeShotsOnTarget>7</HomeShotsOnTarget>
<HomeYellowCards>1</HomeYellowCards>
<HomeRedCards>0</HomeRedCards>
<AwayTeam>Man United</AwayTeam>
<AwayCorners>5</AwayCorners>
<AwayGoals>3</AwayGoals>
<AwayShots>11</AwayShots>
<AwayShotsOnTarget>5</AwayShotsOnTarget>
<AwayYellowCards>0</AwayYellowCards>
<AwayRedCards>0</AwayRedCards>
</Match>
<Match>
<Id>4125</Id>
<Date>2009-08-29T00:00:00+02:00</Date>
<League>English Premier League</League>
<HomeTeam>Man United</HomeTeam>
<HomeCorners>6</HomeCorners>
<HomeGoals>2</HomeGoals>
<HomeShots>10</HomeShots>
<HomeShotsOnTarget>4</HomeShotsOnTarget>
<HomeYellowCards>3</HomeYellowCards>
<HomeRedCards>0</HomeRedCards>
<AwayTeam>Arsenal</AwayTeam>
<AwayCorners>5</AwayCorners>
<AwayGoals>1</AwayGoals>
<AwayShots>9</AwayShots>
<AwayShotsOnTarget>3</AwayShotsOnTarget>
<AwayYellowCards>6</AwayYellowCards>
<AwayRedCards>0</AwayRedCards>
</Match>
Data requested at 08-04-2012 14:04:43 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
G ET F IXTURES B Y D ATE I NTERVAL
<s:element name="GetFixturesByDateInterval">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="startDateString" type="s:stri
ng"/>
<s:element minOccurs="0" maxOccurs="1" name="endDateString" type="s:string
"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing future matches in a given interval. If market
details are available, these will be presented as well.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetFixturesByDateInterval?ApiKey=YourAPIKey&startDateString=2012
-04-01&endDateString=2012-04-10
Warning – this operation will return quite a lot of data even when specifying a relatively short period. Also keep in
mind that market-data (odds) are only available for the next round in each league, as bookmakers don’t specify them
ealier.
<XMLSOCCER.COM>
<Match>
<Date>2012-04-09T21:00:00+02:00</Date>
<League>English Premier League</League>
<HomeTeam>Fulham</HomeTeam>
<AwayTeam>Chelsea</AwayTeam>
<Location>Craven Cottage</Location>
<WilliamHill_Home>3,20</WilliamHill_Home>
<WilliamHill_Draw>3,20</WilliamHill_Draw>
<WilliamHill_Away>2,00</WilliamHill_Away>
</Match>
<Match>
<Date>2012-04-09T18:20:00+02:00</Date>
<League>English League Championship</League>
<HomeTeam>West Ham United</HomeTeam>
<AwayTeam>Birmingham</AwayTeam>
<Location>Upton Park</Location>
</Match>
<Match>
<Date>2012-04-09T16:00:00+02:00</Date>
<League>English Premier League</League>
<HomeTeam>Queens Park Rangers</HomeTeam>
<AwayTeam>Swansea City</AwayTeam>
<Location>Loftus Road</Location>
<WilliamHill_Home>2,30</WilliamHill_Home>
<WilliamHill_Draw>3,20</WilliamHill_Draw>
<WilliamHill_Away>3,20</WilliamHill_Away>
</Match>
Data requested at 08-04-2012 14:33:25 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
G ET F IXTURES B Y D ATE I NTERVAL A ND L EAGUE
<s:element name="GetFixturesByDateIntervalAndTeam">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="league" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="startDateString" type="s:stri
ng"/>
<s:element minOccurs="0" maxOccurs="1" name="endDateString" type="s:string
"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing future matches in a given interval for a
specific league. If market details are available, these will be presented as well.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetFixturesByDateIntervalAndLeague?ApiKey=YourAPIKey&startDate
String=2010-04-01&endDateString=2012-05-10&league=English%20Premier%20League
<XMLSOCCER.COM>
<Match>
<Date>2012-04-09T21:00:00+02:00</Date>
<League>English Premier League</League>
<HomeTeam>Fulham</HomeTeam>
<AwayTeam>Chelsea</AwayTeam>
<Location>Craven Cottage</Location>
<WilliamHill_Home>3,20</WilliamHill_Home>
<WilliamHill_Draw>3,20</WilliamHill_Draw>
<WilliamHill_Away>2,00</WilliamHill_Away>
</Match>
<Match>
<Date>2012-04-09T18:20:00+02:00</Date>
<League>English League Championship</League>
<HomeTeam>West Ham United</HomeTeam>
<AwayTeam>Birmingham</AwayTeam>
<Location>Upton Park</Location>
</Match>
<Match>
<Date>2012-04-09T16:00:00+02:00</Date>
<League>English Premier League</League>
<HomeTeam>Queens Park Rangers</HomeTeam>
<AwayTeam>Swansea City</AwayTeam>
<Location>Loftus Road</Location>
<WilliamHill_Home>2,30</WilliamHill_Home>
<WilliamHill_Draw>3,20</WilliamHill_Draw>
<WilliamHill_Away>3,20</WilliamHill_Away>
</Match>
Data requested at 08-04-2012 14:33:25 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
G ET A LL T EAMS
<s:element name="GetAllTeams">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing all teams in the database.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetAllTeams?ApiKey=YourAPIKey
<XMLSOCCER.COM>
<Team>
<Id>42</Id>
<Name>Birmingham</Name>
<Country>England</Country>
<Stadium>St Andrews</Stadium>
<HomePageURL>http://www.bcfc.com</HomePageURL>
<WIKILink>http://en.wikipedia.org/wiki/Birmingham_City_F.C.</WIKILink>
</Team>
…..
<Team>
<Id>43</Id>
<Name>Blackburn</Name>
<Country>England</Country>
<Stadium>Ewood Park</Stadium>
<HomePageURL>http://www.bcfc.com</HomePageURL>
<WIKILink>http://en.wikipedia.org/wiki/Birmingham_City_F.C.</WIKILink>
</Team>
Data requested at 08-04-2012 14:40:26 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
G ET A LL T EAMS B Y L EAGUE A ND S EASON
<s:element name="GetAllTeams">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="league" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="seasonDateString
" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing all teams in a league of a specific season.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetAllTeamsByLeagueAndSeason?ApiKey=YourAPIKey&league=Englis
h Premier League& seasonDateString=1011
<XMLSOCCER.COM>
<Team>
<Id>42</Id>
<Name>Birmingham</Name>
<Country>England</Country>
<Stadium>St Andrews</Stadium>
<HomePageURL>http://www.bcfc.com</HomePageURL>
<WIKILink>http://en.wikipedia.org/wiki/Birmingham_City_F.C.</WIKILink>
</Team>
…..
<Team>
<Id>43</Id>
<Name>Blackburn</Name>
<Country>England</Country>
<Stadium>Ewood Park</Stadium>
<HomePageURL>http://www.bcfc.com</HomePageURL>
<WIKILink>http://en.wikipedia.org/wiki/Birmingham_City_F.C.</WIKILink>
</Team>
Data requested at 08-04-2012 14:40:26 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
G ET A LL L EAGUES
<s:element name="GetAllLeagues">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing all leagues in the database.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetAllLeagues?ApiKey=YourAPIKey
<XMLSOCCER.COM>
<League>
<Id>1</Id>
<Name>English Premier League</Name>
<Country>England</Country>
<Historical_Data>Yes</Historical_Data>
<Fixtures>Yes</Fixtures>
<Livescore>Yes</Livescore>
<NumberOfMatches>1070</NumberOfMatches>
<LatestMatch>2012-04-05T00:00:00+02:00</LatestMatch>
</League>
<League>
<Id>2</Id>
<Name>English League Championship</Name>
<Country>England</Country>
<Historical_Data>Yes</Historical_Data>
<Fixtures>Yes</Fixtures>
<Livescore>Yes</Livescore>
<NumberOfMatches>1588</NumberOfMatches>
<LatestMatch>2012-04-05T00:00:00+02:00</LatestMatch>
</League>
Data requested at 08-04-2012 14:42:02 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
G ET L EAGUE S TANDINGS B Y S EASON
<s:element name="GetLeagueStandingsBySeason">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="league" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="seasonDateString" type="s:str
ing"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing previous matches between two given teams
in a given interval.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetLeagueStandingBySeason?ApiKey=YourAPIKey&league=English%2
0Premier%20League&seasonDateString=1112
<XMLSOCCER.COM>
<TeamLeagueStanding xmlns="http://xmlsoccer.com/LeagueStanding">
<Team>Man United</Team>
<Played>31</Played>
<PlayedAtHome>15</PlayedAtHome>
<PlayedAway>16</PlayedAway>
<Won>24</Won>
<Draw>4</Draw>
<Lost>3</Lost>
<NumberOfShots>765</NumberOfShots>
<YellowCards>38</YellowCards>
<RedCards>1</RedCards>
<Goals_For>76</Goals_For>
<Goals_Against>27</Goals_Against>
<Goal_Difference>49</Goal_Difference>
<Points>76</Points>
</TeamLeagueStanding>
<TeamLeagueStanding xmlns="http://xmlsoccer.com/LeagueStanding">
<Team>Man City</Team>
<Played>31</Played>
<PlayedAtHome>16</PlayedAtHome>
<PlayedAway>15</PlayedAway>
<Won>22</Won>
<Draw>5</Draw>
<Lost>4</Lost>
<NumberOfShots>855</NumberOfShots>
<YellowCards>42</YellowCards>
<RedCards>4</RedCards>
<Goals_For>75</Goals_For>
<Goals_Against>25</Goals_Against>
<Goal_Difference>50</Goal_Difference>
<Points>71</Points>
</TeamLeagueStanding>
…
</TeamLeagueStanding>
Data requested at 08-04-2012 14:06:38 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
G ET L IVE S CORE
<s:element name="GetLiveScore">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing livescores from all leagues that are played
right now.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetLiveScore?ApiKey=YourAPIKey
<XMLSOCCER.COM>
<Match>
<Id>84926</Id>
<Date>2012-08-27T19:00:00+02:00</Date>
<League>Superliga</League>
<Hometeam>AC Horsens</Hometeam>
<HomeTeam_Id>311</HomeTeam_Id>
<Awayteam>AGF Aarhus</Awayteam>
<AwayTeam_Id>315</AwayTeam_Id>
<Time>50'</Time>
<HomeGoals>0</HomeGoals>
<AwayGoals>4</AwayGoals>
<HomeGoalDetails/>
<AwayGoalDetails>
48': penalty Aron Johannsson;36': Aron Johannsson;33': Aron
Johannsson;32': Aron Johannsson;
</AwayGoalDetails>
<HomeLineupGoalkeeper>Frederik Rønnow</HomeLineupGoalkeeper>
<AwayLineupGoalkeeper>Steffen Rasmussen</AwayLineupGoalkeeper>
<HomeLineupDefense>
Anders Nøhr; Morten Rasmussen; Mads Agesen; Thomas Kortegaard;
</HomeLineupDefense>
<AwayLineupDefense>
Mikkel Kirkeskov; Petri Pasanen; Anders Kure; Adam Eckersley;
</AwayLineupDefense>
<HomeLineupMidfield>
Troels Kløve; Steffen Kielstrup; Janus Drachmann; Jeppe Mehl;
</HomeLineupMidfield>
<AwayLineupMidfield>
Stephan Petersen; Hjalte Bo Nørregaard; Casper Sloth; Osama Akharraz;
</AwayLineupMidfield>
<HomeLineupForward>Henrik Toft; Martin Spelmann;</HomeLineupForward>
<AwayLineupForward>Aron Johannsson; David Devdariani;</AwayLineupForward>
<HomeSubDetails>
43': out Mads Agesen;43': in Nabil Aslam;37': out Martin Spelmann;37': in
Kenan Hajdarevic;43': out Mads Agesen;43': in Nabil Aslam;37': out Martin
Spelmann;37': in Kenan Hajdarevic;
</HomeSubDetails>
<AwaySubDetails/>
<Location>CASA Arena Horsens</Location>
<Stadium>CASA Arena Horsens</Stadium>
</Match>
<Match>
<Id>83475</Id>
<Date>2012-08-27T20:45:00+02:00</Date>
<League>Serie B</League>
<Hometeam>Cesena</Hometeam>
<HomeTeam_Id>77</HomeTeam_Id>
<Awayteam>Sassuolo</Awayteam>
<AwayTeam_Id>115</AwayTeam_Id>
<Time>Not started</Time>
<HomeGoals>0</HomeGoals>
<AwayGoals>0</AwayGoals>
<HomeGoalDetails/>
<AwayGoalDetails/>
<HomeLineupGoalkeeper/>
<AwayLineupGoalkeeper/>
<HomeLineupDefense/>
<AwayLineupDefense/>
<HomeLineupMidfield/>
<AwayLineupMidfield/>
<HomeLineupForward/>
<AwayLineupForward/>
<HomeSubDetails/>
<AwaySubDetails/>
<Location>Stadio D. Manuzzi</Location>
<Stadium>Stadio Dino Manuzzi</Stadium>
</Match>
<Match>
<Id>84278</Id>
<Date>2012-08-27T22:00:00+02:00</Date>
<League>La Liga</League>
<Hometeam>Ath Madrid</Hometeam>
<HomeTeam_Id>145</HomeTeam_Id>
<Awayteam>Ath Bilbao</Awayteam>
<AwayTeam_Id>143</AwayTeam_Id>
<Time>Not started</Time>
<HomeGoals>0</HomeGoals>
<AwayGoals>0</AwayGoals>
<HomeGoalDetails/>
<AwayGoalDetails/>
<HomeLineupGoalkeeper>Thibaut Courtois</HomeLineupGoalkeeper>
<AwayLineupGoalkeeper>Gorka Iraizoz Moreno</AwayLineupGoalkeeper>
<HomeLineupDefense>Diego Godin; Silvio; Filipe; Miranda;</HomeLineupDefense>
<AwayLineupDefense>
Carlos Gurpegi; Oscar De Marcos; Andoni Iraola; Mikel San José;
</AwayLineupDefense>
<HomeLineupMidfield>
Adrian; Arda Turan; Cristian Rodriguez; Mario Suarez; Gabi Fernández;
</HomeLineupMidfield>
<AwayLineupMidfield>
Markel Susaeta Laskurain; Iker Muniain; Soto Inigo Perez; Ander Herrera;
Ander Iturraspe;
</AwayLineupMidfield>
<HomeLineupForward>Radamel Falcao;</HomeLineupForward>
<AwayLineupForward>Aritz Aduriz;</AwayLineupForward>
<HomeSubDetails/>
<AwaySubDetails/>
<Location>Vicente Calderon</Location>
<Stadium>Estadio Vicente Calderón</Stadium>
</Match>
<AccountInformation>
Data requested at 27-08-2012 20:08:00 from 127.0.0.1, Username: Espectro.
Your current supscription runs out on xxxxx 11:01:25.
</AccountInformation>
</XMLSOCCER.COM>
G ET L IVE S CORE B Y L EAGUE
<s:element name="GetLiveScoreByLeague">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="league" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to get a resultset containing livescores from all a specific league that are
played right now.
R E S UL T S ET
E XA M P L E
http://www.xmlsoccer.com/FootballData.asmx/GetLiveScore?ApiKey=YourAPIKey&league=English%20Premier%20Le
ague
<XMLSOCCER.COM>
<Match>
<Date>2012-04-08T14:30:00+02:00</Date>
<Hometeam>Man United</Hometeam>
<Awayteam>QPR</Awayteam>
<Time>15'</Time>
<HomeGoals>1</HomeGoals>
<AwayGoals>0</AwayGoals>
<Location>Old Trafford</Location>
<Stadium>Old Trafford</Stadium>
</Match>
<Match>
<Date>2012-04-08T17:00:00+02:00</Date>
<Hometeam>Arsenal</Hometeam>
<Awayteam>Man City</Awayteam>
<Location>Emirates Stadium</Location>
<Stadium>Emirates Stadium</Stadium>
</Match>
Data requested at 08-04-2012 14:45:58 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
G ET T EAM
<s:element name="GetTeam">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="teamName" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to detailed information of a particular team.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/GetTeam?ApiKey=YourAPIKey&teamName=Liverpool
<XMLSOCCER.COM>
<Team>
<Name>Liverpool</Name>
<Stadium>Anfield</Stadium>
<Website>http://www.liverpoolfc.tv/</Website>
<WikiPageUrl>http://en.wikipedia.org/wiki/Liverpool_F.C.</WikiPageUrl>
<Country>England</Country>
</Team>
Data requested at 08-04-2012 14:55:44 from 127.0.0.1, Username: Espectro. Your
current supscription runs out on 01-08-2014 11:01:25.
</XMLSOCCER.COM>
C O D E E X A MP L E
C# .Net
using System.Xml;
XmlDocument doc = new XmlDocument();
doc.Load("http://www.xmlsoccer.com/FootballData.asmx/GetTeam?ApiKey=YourAPIKey&
teamName=Liverpool");
var stadium = doc.SelectNodes("/XMLSOCCER.COM/Team/Stadium")[0].InnerText;
Result: ‘Anfield’
C HECK A PI K EY
<s:element name="CheckApiKey">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
Use this operation to check what kind of access you have.
R E S UL T S ET
E XA MP L E
http://www.xmlsoccer.com/FootballData.asmx/CheckApiKey?ApiKey=YourAPIKey
Results can either be:
“Hello {Full name}, you have access to all leagues (paying-member). Your current
subscription ends at {Subscription ends}”
Or
Api-key not accepted, please either sign up for a free demo account or buy a
subscription for our full service.
Or
Hello , you have access to free leagues (demo-user).
C ONTACT INFORMATION
My name is Michael Nielsen, and I am the owner/creator of this service. I am constantly
trying to improve the service by adding new functions, and greatly appreciate any feedback
or questions. Please contact me on this mail:
[email protected]
Don’t hesitate to contact me, if you have one particular function that you “desperately”
need. If I can see that your wish is general enough that others might find it useful, chances
are I will implement it.
Also – If you have some client-side codes that you wish to share when using this API, please
submit them (any language) and if I can use it for this documentation I might even grant
you some free-roll time on the service.
Kind regards
Michael