
Contents
Without much technological jargon, in simple terms, C# was designed to be simple, modern, elegant, and general-purpose.
In this guide, we’ll explore how to harness the capabilities of Sportmonks’ Football API, which has a coverage of more than 2,300 leagues, among them the big five, the Premier League, Serie A, Bundesliga, La Liga, Ligue 1, using this constantly evolving and preferred language of choice, C#.
Influenced by a host of other popular programming languages such as Pascal and C++, C# was designed and developed by two employees of Microsoft Corporation, Anders Hejlsberg and Mads Torgersen, in the year 2000.
C#’s extensive documentation and community makes it a popular choice for rookies and seasoned programmers alike. In addition, numerous tools, such as the well-known IDE, Visual Studio, and its spin-off Visual Studio Code, which we shall deploy in this guide, are available for free.
Just like we have done in the past with Python, PHP, Java, and GO, in this blog we will focus on harnessing the power of Sportmonks API with C#.
Why Choose Sportmonks’ Football API?
Sportmonks’ Football API offers a comprehensive set of endpoints with quality data at pocket-friendly prices, which you can easily integrate with minimal effort. We provide more than 60 endpoints, covering leagues, teams, matches, players, and much more.
Our well-thought-out flexible API allows you to interact with these endpoints to retrieve up-to-date information for as many as 2,200 leagues, eye-catching data for mind-blowing mobile apps, and football-related services for professionals and fans alike.
Our unbeatable coverage for the Premier League, Serie A, Ligue 1, UEFA Champions League, and continental football competitions such as the European Championship has attracted as many as 30,000 users.
We will go through a number of subtopics to help you navigate conveniently.
What can you build with C#?
As mentioned earlier, C# is easy to learn and thanks to its strong online community, plenty of resources are available to get you into the comfort seat no matter what your skillset is.
With C#, you can build cloud, network applications, web services, mobile applications and games, just to mention a few. Did you know one of the most popular Q&A communities, Stack Overflow, was developed with C#? Renowned technology giants such as Google, Adobe, HP and Dell have leveraged C#’s versatility for building hardware specific software and cloud services.
By harnessing the power of C#, developers can quickly and efficiently integrate Sportmonks’ Football API into their projects to query more than 65 endpoints, including a boatload of new stats which were recently added to our API.
In the following chapters, we’ll guide you through installing Visual Studio Code, making a basic API request, and retrieving information from Sportmonks’ Football API. In each chapter, we will feature practical examples and code snippets to illustrate key concepts and help you harness the power of Sportmonks’ Football API with C#.
Chapter 1: Setting up your environment
Successfully using Sportmonks’ Football API with C# requires installing an environment where we can write and compile C#.
1.1 Installing an IDE for C#.
Visual Studio Code (VSC) is a cross-platform IDE and an ideal solution for today’s exercise as it is available on Mac, Windows, and Linux. You may download a free version of VSC here.
However, you will need to install a C# Dev Kit to get started on Visual Studio Code. As an alternative, you can download Monodevelop, which is also a cross-platform IDE.
For today’s exercise, we will be using VSC to ensure a level playing field since it is easy to install and configure on a host of platforms.
1.2 Getting Started with Sportmonks’ Football API and C#
Now that you have Visual Studio Code installed, it’s time to sink our teeth into the task at hand.
Just like many other HTTP endpoints, Sportmonks’ Football API returns JavaScript Object Notation (JSON) data. You saw plenty of this in our previous blog post using Kotlin, Google’s preferred language for Android.
We will get started with a familiar exercise before we get our hands dirty with all kinds of mind-blowing stats and data from our Football API, which has an extensive coverage of 2,300 leagues.
1.3 Obtaining an API Token
To use the API, sign up for an account. Your account automatically comes with the Danish Super Liga and Scottish Premier League plans. These are free forever.
However, for today’s exercise, you can take advantage of the 14-day free trial on any of the other plans.
Head over to the Create an API Token on your dashboard. Once you create your API token, which is required for authentication and accessing the data endpoints, you must keep it private.
If your API token becomes compromised at any time, you can easily delete and create a new one. With your API key ready and Visual Studio Code installed, you’re ready to start making requests to Sportmonks’ Football API.
Chapter 2. Retrieving League Details using C#
In this exercise we will retrieve league details using the league’s endpoint and your API Token. You can easily place this url https://api.sportmonks.com/v3/football/leagues?api_token=API_TOKEN on your browser, before running the code on Visual Studio Code.
using System; using System.Net.Http; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { // Define the base URL of the API string url = "https://api.sportmonks.com/v3/football/leagues?api_token=API_Token"; //replace with your API Token. // Create an instance of HttpClient using (HttpClient client = new HttpClient()) { try { // Send a GET request to the API HttpResponseMessage response = await client.GetAsync(url); // Ensure the request was successful response.EnsureSuccessStatusCode(); // Read the response content as a string string responseBody = await response.Content.ReadAsStringAsync(); // Output the response Console.WriteLine(responseBody); } catch (HttpRequestException e) { // Output any error messages Console.WriteLine($"Request error: {e.Message}"); } } } }
{"data":[{"id":2,"sport_id":1,"country_id":41,"name":"Champions League","active":true,"short_code":"UEFA CL","image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/2.png","type":"league","sub_type":"cup_international","last_played_at":"2024-10-23 19:00:00","category":1,"has_jerseys":false},{"id":5,"sport_id":1,"country_id":41,"name":"Europa League","active":true,"short_code":"UEFA EL","image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/5\/5.png","type":"league","sub_type":"cup_international","last_played_at":"2024-10-24 19:00:00","category":1,"has_jerseys":false},{"id":8,"sport_id":1,"country_id":462,"name":"Premier League","active":true,"short_code":"UK PL","image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/8\/8.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-27 16:30:00","category":1,"has_jerseys":false},{"id":9,"sport_id":1,"country_id":462,"name":"Championship","active":true,"short_code":"UK Champ","image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/9\/9.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-27 15:00:00","category":2,"has_jerseys":false},{"id":12,"sport_id":1,"country_id":462,"name":"League One","active":true,"short_code":"UK L1","image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/12\/12.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-28 20:00:00","category":2,"has_jerseys":false},{"id":14,"sport_id":1,"country_id":462,"name":"League Two","active":true,"short_code":"UK L2","image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/14\/14.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-26 14:00:00","category":2,"has_jerseys":false},{"id":17,"sport_id":1,"country_id":462,"name":"National League","active":true,"short_code":"UK NL","image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/17\/17.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-26 16:30:00","category":3,"has_jerseys":false},{"id":20,"sport_id":1,"country_id":462,"name":"Vanarama National League North","active":true,"short_code":"UK NLN","image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/20\/20.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-26 14:00:00","category":4,"has_jerseys":false},{"id":23,"sport_id":1,"country_id":462,"name":"Community Shield","active":true,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/23\/23.png","type":"league","sub_type":"domestic_cup","last_played_at":"2024-08-10 14:00:00","category":2,"has_jerseys":false},{"id":24,"sport_id":1,"country_id":462,"name":"FA Cup","active":true,"short_code":"UK FA Cup","image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/24\/24.png","type":"league","sub_type":"domestic_cup","last_played_at":"2024-10-15 18:45:00","category":2,"has_jerseys":false},{"id":27,"sport_id":1,"country_id":462,"name":"Carabao Cup","active":true,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/27\/27.png","type":"league","sub_type":"domestic_cup","last_played_at":"2024-10-01 18:45:00","category":2,"has_jerseys":false},{"id":30,"sport_id":1,"country_id":462,"name":"Fa Trophy","active":true,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/30\/30.png","type":"league","sub_type":"domestic_cup","last_played_at":"2024-10-26 14:00:00","category":2,"has_jerseys":false},{"id":32,"sport_id":1,"country_id":462,"name":"Premier League Cup","active":true,"short_code":"ENG DL2","image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/0\/32.png","type":"league","sub_type":"domestic_cup","last_played_at":"2024-10-25 18:00:00","category":3,"has_jerseys":false},{"id":35,"sport_id":1,"country_id":462,"name":"Premier League U21","active":true,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/3\/35.png","type":"league","sub_type":"domestic","last_played_at":"2016-05-12 10:30:00","category":3,"has_jerseys":false},{"id":38,"sport_id":1,"country_id":462,"name":"Premier League International Cup","active":true,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/6\/38.png","type":"league","sub_type":"domestic_cup","last_played_at":"2024-10-28 19:00:00","category":3,"has_jerseys":false},{"id":39,"sport_id":1,"country_id":462,"name":"EFL Trophy","active":true,"short_code":"UK EFLT","image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/7\/39.png","type":"league","sub_type":"domestic_cup","last_played_at":"2024-10-08 18:45:00","category":2,"has_jerseys":false},{"id":42,"sport_id":1,"country_id":462,"name":"Premier League U18","active":true,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/10\/42.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-26 12:00:00","category":3,"has_jerseys":false},{"id":44,"sport_id":1,"country_id":462,"name":"Wsl 2 Women","active":true,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/12\/44.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-20 13:00:00","category":3,"has_jerseys":false},{"id":45,"sport_id":1,"country_id":462,"name":"Women's Super League","active":true,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/13\/45.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-20 17:45:00","category":3,"has_jerseys":false},{"id":48,"sport_id":1,"country_id":462,"name":"Professional Development League","active":true,"short_code":"UK U23 DL","image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/16\/48.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-28 19:00:00","category":4,"has_jerseys":false},{"id":51,"sport_id":1,"country_id":462,"name":"Non League Premier: Isthmian","active":true,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/19\/51.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-26 14:00:00","category":4,"has_jerseys":false},{"id":53,"sport_id":1,"country_id":462,"name":"Non League Div One: Isthmian North","active":true,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/21\/53.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-23 18:45:00","category":4,"has_jerseys":false},{"id":54,"sport_id":1,"country_id":462,"name":"Non League Div One: Southern Central","active":true,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/22\/54.png","type":"league","sub_type":"domestic","last_played_at":"2024-10-26 14:00:00","category":4,"has_jerseys":false},{"id":57,"sport_id":1,"country_id":462,"name":"Non League Div One: Northern North","active":false,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/25\/57.png","type":"league","sub_type":"domestic","last_played_at":"2020-12-26 21:00:12","category":4,"has_jerseys":false},{"id":60,"sport_id":1,"country_id":462,"name":"Non League Div One: Isthmian South","active":false,"short_code":null,"image_path":"https:\/\/cdn.sportmonks.com\/images\/soccer\/leagues\/28\/60.png","type":"league","sub_type":"domestic","last_played_at":"2020-11-04 09:00:27","category":4,"has_jerseys":false}],"pagination":{"count":25,"per_page":25,"current_page":1,"next_page":"https:\/\/api.sportmonks.com\/v3\/football\/leagues?page=2","has_more":true},"subscription":[{"meta":{"trial_ends_at":"2024-10-16 14:50:45","ends_at":null,"current_timestamp":1730197289},"plans":[{"plan":"Enterprise plan (loyal)","sport":"Football","category":"Advanced"},{"plan":"Enterprise Plan","sport":"Cricket","category":"Standard"},{"plan":"Formula One","sport":"Formula One","category":"Standard"}],"add_ons":[{"add_on":"All-in News API","sport":"Football","category":"News"},{"add_on":"pressure index add-on","sport":"Football","category":"Default"},{"add_on":"Enterprise Plan Predictions","sport":"Football","category":"Predictions"},{"add_on":"xG Advanced","sport":"Football","category":"Expected"}],"widgets":[{"widget":"Sportmonks Widgets","sport":"Football"}]}],"rate_limit":{"resets_in_seconds":3600,"remaining":2999,"requested_entity":"League"},"timezone":"UTC"}
Explanation.
An httpClient.GetAsync(apiUrl) sends a GET request to the specified URL of the API. The function returns the expected http.Response in JSON, which is displayed on the terminal of your IDE, in this case Visual Studio Code.
The response, which may be difficult to comprehend, contains the server’s response to the request which was made via the url.
Chapter 3. Formatting our JSON Response.
In this chapter, we will add another step by formatting the result to make it easily readable using deserialization. To do so, we will have to install Newton.Json via the package manager.
3.1 Installing Newton.Json Package
Follow the instructions on this page to have the package installed on your edition of Visual Studio Code.
Depending on your setup, at the time of this writing, you may be required to install .Net SDK to enable use of Nuget on your edition of Visual Studio Code.
Search for the package Newton.Json after Nuget has been added to your project.
3.2 Formatting the League Results.
Just as you have seen from the JSON response in Chapter 2, each league object typically contains details such as the league ID, name, country, and short code, just to mention a few. Armed with this knowledge, we will create a class to represent the league objects; this will enable us to print selected data items.
Using the same url, here is the modified piece of code.
using System; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json; using System.Collections.Generic; namespace LeagueData { public class Program { public static async Task Main(string[] args) { string url = "https://api.sportmonks.com/v3/football/leagues?api_token=API_Token"; // Replace with your API token try { using (HttpClient client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(url); response.EnsureSuccessStatusCode(); string jsonResponse = await response.Content.ReadAsStringAsync(); // Deserialize the JSON into a Root object var deserialized = JsonConvert.DeserializeObject ID: 2 Sport ID: 1 Country ID: 41 Name: Champions League Active: True Short Code: UEFA CL Sub Type: cup_international Category: 1 Has Jerseys: False ID: 5 Sport ID: 1 Country ID: 41 Name: Europa League Active: True Short Code: UEFA EL Sub Type: cup_international Category: 1 Has Jerseys: False ID: 8 Sport ID: 1 Country ID: 462 Name: Premier League Active: True Short Code: UK PL Sub Type: domestic Category: 1 Has Jerseys: False ID: 9 Sport ID: 1 Country ID: 462 Name: Championship Active: True Short Code: UK Champ Sub Type: domestic Category: 2 Has Jerseys: False ID: 12 Sport ID: 1 Country ID: 462 Name: League One Active: True Short Code: UK L1 Sub Type: domestic Category: 2 Has Jerseys: False ID: 14 Sport ID: 1 Country ID: 462 Name: League Two Active: True Short Code: UK L2 Sub Type: domestic Category: 2 Has Jerseys: False ID: 17 Sport ID: 1 Country ID: 462 Name: National League Active: True Short Code: UK NL Sub Type: domestic Category: 3 Has Jerseys: False ID: 20 Sport ID: 1 Country ID: 462 Name: Vanarama National League North Active: True Short Code: UK NLN Sub Type: domestic Category: 4 Has Jerseys: False ID: 23 Sport ID: 1 Country ID: 462 Name: Community Shield Active: True Short Code: Sub Type: domestic_cup Category: 2 Has Jerseys: False ID: 24 Sport ID: 1 Country ID: 462 Name: FA Cup Active: True Short Code: UK FA Cup Sub Type: domestic_cup Category: 2 Has Jerseys: False ID: 27 Sport ID: 1 Country ID: 462 Name: Carabao Cup Active: True Short Code: Sub Type: domestic_cup Category: 2 Has Jerseys: False ID: 30 Sport ID: 1 Country ID: 462 Name: Fa Trophy Active: True Short Code: Sub Type: domestic_cup Category: 2 Has Jerseys: False ID: 32 Sport ID: 1 Country ID: 462 Name: Premier League Cup Active: True Short Code: ENG DL2 Sub Type: domestic_cup Category: 3 Has Jerseys: False ID: 35 Sport ID: 1 Country ID: 462 Name: Premier League U21 Active: True Short Code: Sub Type: domestic Category: 3 Has Jerseys: False ID: 38 Sport ID: 1 Country ID: 462 Name: Premier League International Cup Active: True Short Code: Sub Type: domestic_cup Category: 3 Has Jerseys: False ID: 39 Sport ID: 1 Country ID: 462 Name: EFL Trophy Active: True Short Code: UK EFLT Sub Type: domestic_cup Category: 2 Has Jerseys: False ID: 42 Sport ID: 1 Country ID: 462 Name: Premier League U18 Active: True Short Code: Sub Type: domestic Category: 3 Has Jerseys: False ID: 44 Sport ID: 1 Country ID: 462 Name: Wsl 2 Women Active: True Short Code: Sub Type: domestic Category: 3 Has Jerseys: False ID: 45 Sport ID: 1 Country ID: 462 Name: Women's Super League Active: True Short Code: Sub Type: domestic Category: 3 Has Jerseys: False ID: 48 Sport ID: 1 Country ID: 462 Name: Professional Development League Active: True Short Code: UK U23 DL Sub Type: domestic Category: 4 Has Jerseys: False ID: 51 Sport ID: 1 Country ID: 462 Name: Non League Premier: Isthmian Active: True Short Code: Sub Type: domestic Category: 4 Has Jerseys: False ID: 53 Sport ID: 1 Country ID: 462 Name: Non League Div One: Isthmian North Active: True Short Code: Sub Type: domestic Category: 4 Has Jerseys: False ID: 54 Sport ID: 1 Country ID: 462 Name: Non League Div One: Southern Central Active: True Short Code: Sub Type: domestic Category: 4 Has Jerseys: False ID: 57 Sport ID: 1 Country ID: 462 Name: Non League Div One: Northern North Active: False Short Code: Sub Type: domestic Category: 4 Has Jerseys: False ID: 60 Sport ID: 1 Country ID: 462 Name: Non League Div One: Isthmian South Active: False Short Code: Sub Type: domestic Category: 4 Has Jerseys: FalseDo note that the result displayed could appear slightly different from yours as it depends on your current plan.
Explanation
A Root class is added to match the structure of the JSON response, with a data property that holds a list of League objects. Then we performed Deserialization. The JSON response is deserialized into the Root object: var deserialized = JsonConvert.DeserializeObject(jsonResponse);.
The data property of the Root object contains the list of League objects, which we iterate over using a loop to print the details in a readable format.
Chapter 3.3 GET LEAGUE FROM SPECIFIC COUNTRY
Using the same piece of code, we can easily retrieve league details using a particular country ID. We will use the country ID: 462, which represents the UK.
All we have to do is replace our URL with https://api.sportmonks.com/v3/football/leagues/countries/462?api_token=API_Token.
using System; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json; using System.Collections.Generic; namespace UK_LeagueData { public class Program { public static async Task Main(string[] args) { string url = "https://api.sportmonks.com/v3/football/leagues/countries/462?api_token=API_TOKEN"; // Replace with your API token try { using (HttpClient client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(url); response.EnsureSuccessStatusCode(); string jsonResponse = await response.Content.ReadAsStringAsync(); // Deserialize the JSON into a Root object var deserialized = JsonConvert.DeserializeObject(jsonResponse); // Iterate through the list and print out details for each league in the UK foreach (var league in deserialized.data) { Console.WriteLine($"ID: {league.id}"); Console.WriteLine($"Sport ID: {league.sport_id}"); Console.WriteLine($"Country ID: {league.country_id}"); Console.WriteLine($"Name: {league.name}"); Console.WriteLine($"Active: {league.active}"); Console.WriteLine($"Short Code: {league.short_code}"); Console.WriteLine($"Sub Type: {league.sub_type}"); Console.WriteLine($"Category: {league.category}"); Console.WriteLine($"Has Jerseys: {league.has_jerseys}"); Console.WriteLine(); // Add a line break for readability } } } catch (Exception ex) { Console.WriteLine($"An error occurred: {ex.Message}"); } } public class League { // Define your data type based on the JSON structure public int id { get; set; } public int sport_id { get; set; } public int country_id { get; set; } public string name { get; set; } public bool active { get; set; } public string short_code { get; set; } public string sub_type { get; set; } public int category { get; set; } public bool has_jerseys { get; set; } } // Define a wrapper class to match the JSON structure public class Root { public List data { get; set; } } } } ID: 8 Sport ID: 1 Country ID: 462 Name: Premier League Active: True Short Code: UK PL Sub Type: domestic Category: 1 Has Jerseys: False ID: 9 Sport ID: 1 Country ID: 462 Name: Championship Active: True Short Code: UK Champ Sub Type: domestic Category: 2 Has Jerseys: False ID: 12 Sport ID: 1 Country ID: 462 Name: League One Active: True Short Code: UK L1 Sub Type: domestic Category: 2 Has Jerseys: False ID: 14 Sport ID: 1 Country ID: 462 Name: League Two Active: True Short Code: UK L2 Sub Type: domestic Category: 2 Has Jerseys: False ID: 17 Sport ID: 1 Country ID: 462 Name: National League Active: True Short Code: UK NL Sub Type: domestic Category: 3 Has Jerseys: False ID: 20 Sport ID: 1 Country ID: 462 Name: Vanarama National League North Active: True Short Code: UK NLN Sub Type: domestic Category: 4 Has Jerseys: False ID: 23 Sport ID: 1 Country ID: 462 Name: Community Shield Active: True Short Code: Sub Type: domestic_cup Category: 2 Has Jerseys: False ID: 24 Sport ID: 1 Country ID: 462 Name: FA Cup Active: True Short Code: UK FA Cup Sub Type: domestic_cup Category: 2 Has Jerseys: False ID: 27 Sport ID: 1 Country ID: 462 Name: Carabao Cup Active: True Short Code: Sub Type: domestic_cup Category: 2 Has Jerseys: False ID: 30 Sport ID: 1 Country ID: 462 Name: Fa Trophy Active: True Short Code: Sub Type: domestic_cup Category: 2 Has Jerseys: False ID: 32 Sport ID: 1 Country ID: 462 Name: Premier League Cup Active: True Short Code: ENG DL2 Sub Type: domestic_cup Category: 3 Has Jerseys: False ID: 35 Sport ID: 1 Country ID: 462 Name: Premier League U21 Active: True Short Code: Sub Type: domestic Category: 3 Has Jerseys: False ID: 38 Sport ID: 1 Country ID: 462 Name: Premier League International Cup Active: True Short Code: Sub Type: domestic_cup Category: 3 Has Jerseys: False ID: 39 Sport ID: 1 Country ID: 462 Name: EFL Trophy Active: True Short Code: UK EFLT Sub Type: domestic_cup Category: 2 Has Jerseys: False ID: 42 Sport ID: 1 Country ID: 462 Name: Premier League U18 Active: True Short Code: Sub Type: domestic Category: 3 Has Jerseys: False ID: 44 Sport ID: 1 Country ID: 462 Name: Wsl 2 Women Active: True Short Code: Sub Type: domestic Category: 3 Has Jerseys: False ID: 45 Sport ID: 1 Country ID: 462 Name: Women's Super League Active: True Short Code: Sub Type: domestic Category: 3 Has Jerseys: False ID: 48 Sport ID: 1 Country ID: 462 Name: Professional Development League Active: True Short Code: UK U23 DL Sub Type: domestic Category: 4 Has Jerseys: False ID: 51 Sport ID: 1 Country ID: 462 Name: Non League Premier: Isthmian Active: True Short Code: Sub Type: domestic Category: 4 Has Jerseys: False ID: 53 Sport ID: 1 Country ID: 462 Name: Non League Div One: Isthmian North Active: True Short Code: Sub Type: domestic Category: 4 Has Jerseys: False ID: 54 Sport ID: 1 Country ID: 462 Name: Non League Div One: Southern Central Active: True Short Code: Sub Type: domestic Category: 4 Has Jerseys: False ID: 57 Sport ID: 1 Country ID: 462 Name: Non League Div One: Northern North Active: False Short Code: Sub Type: domestic Category: 4 Has Jerseys: False ID: 60 Sport ID: 1 Country ID: 462 Name: Non League Div One: Isthmian South Active: False Short Code: Sub Type: domestic Category: 4 Has Jerseys: False ID: 63 Sport ID: 1 Country ID: 462 Name: Non League Div One: Northern South Active: False Short Code: Sub Type: domestic Category: 4 Has Jerseys: False ID: 66 Sport ID: 1 Country ID: 462 Name: Non League Div One: Southern S & W Active: False Short Code: Sub Type: domestic Category: 4 Has Jerseys: False
Chapter 4. Retrieving Fixtures Between Dates from a League
In this chapter, we will retrieve fixtures from a specific league in a period. For this, we will make changes to our piece of code and make use of the Premier League ID from the result seen in Chapter 3.3.
Here’s our new url: https://api.sportmonks.com/v3/football/fixtures/between/2024-10-25/2024-10-28?api_token=API_TOKEN&filters=fixtureLeagues:8
If you are using a free plan, you may not be able to retrieve the results. However, you may switch your ID to 271 or 501, which are for the Danish Superliga and Scottish Premiership, respectively.
You may also make changes to the date while keeping the format YY/MM/DD.
using System; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json; namespace FixtureRetrievalExample { public class Program { public static async Task Main(string[] args) { string apiUrl = "https://api.sportmonks.com/v3/football/fixtures/between/2024-10-25/2024-10-28?api_token=API_TOKEN&filters=fixtureLeagues:8"; try { using (HttpClient client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(apiUrl); response.EnsureSuccessStatusCode(); string jsonResponse = await response.Content.ReadAsStringAsync(); // Deserialize the JSON into a list of Fixture objects var fixtureResponse = JsonConvert.DeserializeObject(jsonResponse); // Display fixture details if (fixtureResponse != null) { foreach (var fixture in fixtureResponse.Data) { Console.WriteLine($"Match: {fixture.Name}"); Console.WriteLine($"Date: {fixture.StartingAt}"); Console.WriteLine($"Result: {fixture.ResultInfo}"); Console.WriteLine($"Venue ID: {fixture.VenueId}"); Console.WriteLine("----------"); } } } } catch (Exception ex) { Console.WriteLine($"An error occurred: {ex.Message}"); } } } // Wrapper class to represent the response structure public class FixtureApiResponse { [JsonProperty("data")] public List Data { get; set; } } // Fixture class with properties matching the JSON structure public class Fixture { public int Id { get; set; } [JsonProperty("sport_id")] public int SportId { get; set; } [JsonProperty("league_id")] public int LeagueId { get; set; } [JsonProperty("season_id")] public int SeasonId { get; set; } [JsonProperty("stage_id")] public long StageId { get; set; } [JsonProperty("group_id")] public int? GroupId { get; set; } [JsonProperty("aggregate_id")] public int? AggregateId { get; set; } [JsonProperty("round_id")] public int RoundId { get; set; } [JsonProperty("state_id")] public int StateId { get; set; } [JsonProperty("venue_id")] public int VenueId { get; set; } public string Name { get; set; } [JsonProperty("starting_at")] public string StartingAt { get; set; } [JsonProperty("result_info")] public string ResultInfo { get; set; } public string Leg { get; set; } public string Details { get; set; } public int Length { get; set; } public bool Placeholder { get; set; } [JsonProperty("has_odds")] public bool HasOdds { get; set; } [JsonProperty("has_premium_odds")] public bool HasPremiumOdds { get; set; } [JsonProperty("starting_at_timestamp")] public long StartingAtTimestamp { get; set; } } }
Match: Leicester City vs Nottingham Forest Date: 2024-10-25 19:00:00 Result: Nottingham Forest won after full-time. Venue ID: 117 ---------- Match: Aston Villa vs AFC Bournemouth Date: 2024-10-26 14:00:00 Result: Game ended in draw. Venue ID: 5 ---------- Match: Brentford vs Ipswich Town Date: 2024-10-26 14:00:00 Result: Brentford won after full-time. Venue ID: 338817 ---------- Match: Brighton & Hove Albion vs Wolverhampton Wanderers Date: 2024-10-26 14:00:00 Result: Game ended in draw. Venue ID: 282066 ---------- Match: Manchester City vs Southampton Date: 2024-10-26 14:00:00 Result: Manchester City won after full-time. Venue ID: 151 ---------- Match: Everton vs Fulham Date: 2024-10-26 16:30:00 Result: Game ended in draw. Venue ID: 12 ---------- Match: Chelsea vs Newcastle United Date: 2024-10-27 14:00:00 Result: Chelsea won after full-time. Venue ID: 321614 ---------- Match: Crystal Palace vs Tottenham Hotspur Date: 2024-10-27 14:00:00 Result: Crystal Palace won after full-time. Venue ID: 201 ---------- Match: West Ham United vs Manchester United Date: 2024-10-27 14:00:00 Result: West Ham United won after full-time. Venue ID: 214 ---------- Match: Arsenal vs Liverpool Date: 2024-10-27 16:30:00 Result: Game ended in draw. Venue ID: 204 ----------
Chapter 4.1 Including Venue Names.
In our previous blogpost, leveraging sportmonks football API in Kotlin, we edited a piece of code to execute two separate endpoints in an attempt to retrieve league standings with club names.
However, in this blog, we will use a different approach to demonstrate the flexibility of our API. In this section, we shall combine ‘Filters’ with ‘Includes’, two powerful tools that make Sportmonks’ Football API stand out. These tools allow us to write a more elegant piece of code that runs efficiently, considering an improved speed.
Here is our url: https://api.sportmonks.com/v3/football/fixtures/between/2024-10-25/2024-10-28?api_token={apiToken}&filters=fixtureLeagues:8&include=venue
Here is the new piece of code.
using System; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json; namespace FixturesWithVenueNames { public class Program { private static string apiToken = "API_Token"; public static async Task Main(string[] args) { string fixturesApiUrl = $"https://api.sportmonks.com/v3/football/fixtures/between/2024-10-25/2024-10-28?api_token={apiToken}&filters=fixtureLeagues:8&include=venue"; try { using (HttpClient client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(fixturesApiUrl); response.EnsureSuccessStatusCode(); string jsonResponse = await response.Content.ReadAsStringAsync(); var fixtureResponse = JsonConvert.DeserializeObject(jsonResponse); if (fixtureResponse != null) { foreach (var fixture in fixtureResponse.Data) { Console.WriteLine($"Match: {fixture.Name}"); Console.WriteLine($"Date: {fixture.StartingAt}"); Console.WriteLine($"Result: {fixture.ResultInfo}"); Console.WriteLine($"Venue Name: {fixture.Venue.Name}"); Console.WriteLine("----------"); } } } } catch (Exception ex) { Console.WriteLine($"An error occurred: {ex.Message}"); } } } // Wrapper class for fixture response public class FixtureApiResponse { [JsonProperty("data")] public List Data { get; set; } } // Fixture class for fixture details public class Fixture { public int Id { get; set; } [JsonProperty("sport_id")] public int SportId { get; set; } [JsonProperty("league_id")] public int LeagueId { get; set; } [JsonProperty("season_id")] public int SeasonId { get; set; } [JsonProperty("stage_id")] public long StageId { get; set; } [JsonProperty("group_id")] public int? GroupId { get; set; } [JsonProperty("aggregate_id")] public int? AggregateId { get; set; } [JsonProperty("round_id")] public int RoundId { get; set; } [JsonProperty("state_id")] public int StateId { get; set; } [JsonProperty("venue")] public Venue Venue { get; set; } public string Name { get; set; } [JsonProperty("starting_at")] public string StartingAt { get; set; } [JsonProperty("result_info")] public string ResultInfo { get; set; } public string Leg { get; set; } public string Details { get; set; } public int Length { get; set; } public bool Placeholder { get; set; } [JsonProperty("has_odds")] public bool HasOdds { get; set; } [JsonProperty("has_premium_odds")] public bool HasPremiumOdds { get; set; } [JsonProperty("starting_at_timestamp")] public long StartingAtTimestamp { get; set; } } // Venue class for venue details public class Venue { public int Id { get; set; } public string Name { get; set; } } }
Match: Leicester City vs Nottingham Forest Date: 2024-10-25 19:00:00 Result: Nottingham Forest won after full-time. Venue Name: King Power Stadium ---------- Match: Aston Villa vs AFC Bournemouth Date: 2024-10-26 14:00:00 Result: Game ended in draw. Venue Name: Villa Park ---------- Match: Brentford vs Ipswich Town Date: 2024-10-26 14:00:00 Result: Brentford won after full-time. Venue Name: Brentford Community Stadium ---------- Match: Brighton & Hove Albion vs Wolverhampton Wanderers Date: 2024-10-26 14:00:00 Result: Game ended in draw. Venue Name: Broadfield Stadium ---------- Match: Manchester City vs Southampton Date: 2024-10-26 14:00:00 Result: Manchester City won after full-time. Venue Name: Etihad Stadium ---------- Match: Everton vs Fulham Date: 2024-10-26 16:30:00 Result: Game ended in draw. Venue Name: Goodison Park ---------- Match: Chelsea vs Newcastle United Date: 2024-10-27 14:00:00 Result: Chelsea won after full-time. Venue Name: Stamford Bridge ---------- Match: Crystal Palace vs Tottenham Hotspur Date: 2024-10-27 14:00:00 Result: Crystal Palace won after full-time. Venue Name: Selhurst Park ---------- Match: West Ham United vs Manchester United Date: 2024-10-27 14:00:00 Result: West Ham United won after full-time. Venue Name: London Stadium ---------- Match: Arsenal vs Liverpool Date: 2024-10-27 16:30:00 Result: Game ended in draw. Venue Name: Emirates Stadium ----------
The improved piece of code sends a GET request to retrieve fixtures within a date range. It then applies a filter that narrows the results down to only fixtures from the Premier League before including the venues where each game was played.
CHAPTER 5. Retrieve TV stations.
We will take one step further in this final chapter by displaying all TV stations where a particular fixture will be shown. This comes in handy if you are building a media app where you wish to let your users know where they can legally watch each game.
Here is the url to have TV Stations displayed.
using System; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json; namespace FixturesVenuesTVStations { public class Program { private static string apiToken = "API_Token"; public static async Task Main(string[] args) { string fixturesApiUrl = $"https://api.sportmonks.com/v3/football/fixtures/between/2024-10-25/2024-10-28?api_token={apiToken}&include=venue;tvstations.tvstation;tvstations.country&filters=fixtureLeagues:8"; try { using (HttpClient client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(fixturesApiUrl); response.EnsureSuccessStatusCode(); string jsonResponse = await response.Content.ReadAsStringAsync(); var fixtureResponse = JsonConvert.DeserializeObject(jsonResponse); if (fixtureResponse != null) { foreach (var fixture in fixtureResponse.Data) { Console.WriteLine($"Match: {fixture.Name}"); Console.WriteLine($"Match ID: {fixture.Id}"); Console.WriteLine($"Date: {fixture.StartingAt}"); Console.WriteLine($"Result: {fixture.ResultInfo}"); Console.WriteLine($"Venue Name: {fixture.Venue.Name}"); Console.WriteLine("TV Stations:"); foreach (var tvStation in fixture.TvStations) { Console.WriteLine($"{tvStation.TVStation.Name} ({tvStation.Country.Name})"); // Display TV stations } Console.WriteLine("----------"); } } } } catch (Exception ex) { Console.WriteLine($"An error occurred: {ex.Message}"); } } } // Wrapper class for fixture response public class FixtureApiResponse { [JsonProperty("data")] public List Data { get; set; } } // Fixture class for fixture details public class Fixture { public int Id { get; set; } [JsonProperty("sport_id")] public int SportId { get; set; } [JsonProperty("league_id")] public int LeagueId { get; set; } [JsonProperty("season_id")] public int SeasonId { get; set; } [JsonProperty("stage_id")] public long StageId { get; set; } [JsonProperty("group_id")] public int? GroupId { get; set; } [JsonProperty("aggregate_id")] public int? AggregateId { get; set; } [JsonProperty("round_id")] public int RoundId { get; set; } [JsonProperty("state_id")] public int StateId { get; set; } [JsonProperty("venue")] public Venue Venue { get; set; } public string Name { get; set; } [JsonProperty("starting_at")] public string StartingAt { get; set; } [JsonProperty("result_info")] public string ResultInfo { get; set; } public string Leg { get; set; } public string Details { get; set; } public int Length { get; set; } public bool Placeholder { get; set; } [JsonProperty("has_odds")] public bool HasOdds { get; set; } [JsonProperty("has_premium_odds")] public bool HasPremiumOdds { get; set; } [JsonProperty("starting_at_timestamp")] public long StartingAtTimestamp { get; set; } [JsonProperty("tvstations")] public List TvStations { get; set; } } // Venue class for venue details public class Venue { public int Id { get; set; } public string Name { get; set; } } // Fixture TV Station class containing the TV station public class FixtureTVStation { [JsonProperty("tvstation")] public TVStation TVStation { get; set; } [JsonProperty("country")] public Country Country { get; set; } } // TV Station class for TV station details public class TVStation { public int Id { get; set; } public string Name { get; set; } } // Country class for country details public class Country { public int Id { get; set; } public string Name { get; set; } } }
SuperSport Premier League ROA (Malawi) SuperSport Premier League ROA (Tanzania) SuperSport Premier League ROA (Eritrea) SuperSport Premier League ROA (Ethiopia) SuperSport Premier League ROA (Sudan) SuperSport Premier League ROA (Niger) SuperSport Premier League ROA (Rwanda) SuperSport Premier League ROA (Chad) SuperSport Premier League ROA (São Tomé and Príncipe) SuperSport Premier League ROA (South Sudan) SuperSport Premier League ROA (Botswana) SuperSport Premier League ROA (Equatorial Guinea) SuperSport Premier League ROA (Mauritius) SuperSport Premier League ROA (Comoros) SuperSport Premier League ROA (Lesotho) SuperSport Premier League ROA (Djibouti) SuperSport Premier League ROA (Seychelles) DStv Now (Ivory Coast) DStv Now (Mali) DStv Now (Senegal) DStv Now (Ghana) DStv Now (Cameroon) DStv Now (Burkina Faso) DStv Now (Nigeria) DStv Now (Liberia) DStv Now (Burundi) DStv Now (Angola) DStv Now (Kenya) DStv Now (Madagascar) DStv Now (Guinea) DStv Now (Guinea-Bissau) DStv Now (Zimbabwe) DStv Now (Mauritania) DStv Now (Gambia) DStv Now (Togo) DStv Now (Gabon) DStv Now (Uganda) DStv Now (Sierra Leone) DStv Now (Namibia) DStv Now (Mozambique) DStv Now (Swaziland) DStv Now (Malawi) DStv Now (Tanzania) DStv Now (Eritrea) DStv Now (Ethiopia) DStv Now (Sudan) DStv Now (Niger) DStv Now (Chad) DStv Now (South Sudan) DStv Now (Botswana) DStv Now (Equatorial Guinea) DStv Now (Mauritius) DStv Now (Lesotho) DStv Now (Djibouti) DStv Now (Seychelles) Moja TV (Bosnia and Herzegovina) Astro Go (Malaysia) Play Diema Xtra (Bulgaria) QQ Sports Live (China) Migu (China) Sky Sport NOW (New Zealand) Sky Sport NOW (Fiji) Sky Sport NOW (Solomon Islands) Sky Sport NOW (Vanuatu) Sky Sport NOW (Samoa) Sky Sport NOW (Tonga) Sky Sport NOW (Niue) Sky Sport NOW (Tuvalu) JioTV (India) Vidio (Indonesia) BBC Radio 5 Live (England) SuperSport Premier League Nigeria (Nigeria) StarHub TV+ (Singapore) DStv App (South Africa) SiriusXM FC (United States) Movistar Futbol (Spain) TV3 MAX (Denmark) TV3 MAX (Faroe Islands) Sky Sport Uno (Italy) Diema Sport 2 (Bulgaria) Optus Sport (Australia) V Sport Premium (Sweden) V Sport Premium (Finland) SKY Go Italia (Italy) NOW TV (Italy) Viaplay Norway (Norway) GO TV Anywhere (Malta) iQiyi (China) iQiyi (Macau) beIN SPORTS CONNECT Arabia (Palestine) Peacock (United States) TOD (Iraq) TOD (Turkey) TOD (Algeria) TOD (Egypt) TOD (Morocco) TOD (Tunisia) TOD (Mauritania) TOD (United Arab Emirates) TOD (Syria) TOD (Oman) TOD (Somalia) TOD (Libya) TOD (Kuwait) TOD (Saudi Arabia) TOD (Lebanon) TOD (Palestine) TOD (Qatar) TOD (Jordan) TOD (Chad) TOD (South Sudan) TOD (Yemen) TOD (Bahrain) TOD (Djibouti) True Premier Football HD 1 (Thailand) True Premier Football HD 2 (Thailand) Skylink (Czech Republic) Skylink (Slovakia) 221 Hub Premier 1 (Singapore) Digi Online (Romania) Orange TV Go (Romania) Viaplay Netherlands (Netherlands) Sport 24 Extra (International) TV2 Play (Hungary) NOW (England) Zapping (Brazil) Claro TV+ (Brazil) Vivo Play (Brazil) Sky+ (Brazil) SKY Go Italia (Italy) Elisa Viihde Viaplay (Finland) beIN CONNECT Turkey (Turkey) ---------- Match: Chelsea vs Newcastle United Match ID: 19134527 Date: 2024-10-27 14:00:00 Result: Chelsea won after full-time. Venue Name: Stamford Bridge TV Stations: DAZN (Spain) Play Sports (Belgium) Play Sports 1 (Belgium) Arena Sport 1 (Croatia) Arena Sport 1 (Slovenia) Viaplay Denmark (Denmark) Sky Go (Germany) Viaplay Sweden (Sweden) Viaplay Poland (Poland) Sky Ultra HD (Republic of Ireland) Sky Ultra HD (England) Sky Sports Premier League (Republic of Ireland) Sky Sports Premier League (England) SKY GO Extra (Republic of Ireland) SKY GO Extra (England) Sky Sports Main Event (Republic of Ireland) Sky Sports Main Event (England) Optus Sport (Australia) Canal+ Foot (France) Canal+ Foot (Switzerland) Canal+ Foot (Andorra) beIN SPORTS CONNECT (Iraq) beIN SPORTS CONNECT (Iran) beIN SPORTS CONNECT (Algeria) beIN SPORTS CONNECT (Egypt) beIN SPORTS CONNECT (Morocco) beIN SPORTS CONNECT (Tunisia) beIN SPORTS CONNECT (Mauritania) beIN SPORTS CONNECT (United Arab Emirates) beIN SPORTS CONNECT (Syria) beIN SPORTS CONNECT (Oman) beIN SPORTS CONNECT (Somalia) beIN SPORTS CONNECT (Libya) beIN SPORTS CONNECT (Kuwait) beIN SPORTS CONNECT (Saudi Arabia) beIN SPORTS CONNECT (Lebanon) beIN SPORTS CONNECT (Palestine) beIN SPORTS CONNECT (Sudan) beIN SPORTS CONNECT (Qatar) beIN SPORTS CONNECT (Jordan) beIN SPORTS CONNECT (Chad) beIN SPORTS CONNECT (South Sudan) beIN SPORTS CONNECT (Yemen) beIN SPORTS CONNECT (Bahrain) beIN SPORTS CONNECT (Djibouti) SuperSport MáXimo 3 (International) SuperSport MaXimo 1 (Ivory Coast) SuperSport MaXimo 1 (Mali) SuperSport MaXimo 1 (South Africa) SuperSport MaXimo 1 (Senegal) SuperSport MaXimo 1 (Ghana) SuperSport MaXimo 1 (Cameroon) SuperSport MaXimo 1 (Burkina Faso) SuperSport MaXimo 1 (Nigeria) SuperSport MaXimo 1 (Liberia) SuperSport MaXimo 1 (Burundi) SuperSport MaXimo 1 (Angola) SuperSport MaXimo 1 (Kenya) SuperSport MaXimo 1 (Central African Republic) SuperSport MaXimo 1 (Madagascar) SuperSport MaXimo 1 (Guinea) SuperSport MaXimo 1 (Guinea-Bissau) SuperSport MaXimo 1 (Zimbabwe) SuperSport MaXimo 1 (Mauritania) SuperSport MaXimo 1 (Gambia) SuperSport MaXimo 1 (Zambia) SuperSport MaXimo 1 (Togo) SuperSport MaXimo 1 (Gabon) SuperSport MaXimo 1 (Uganda) SuperSport MaXimo 1 (Mayotte) SuperSport MaXimo 1 (Sierra Leone) SuperSport MaXimo 1 (Namibia) SuperSport MaXimo 1 (Mozambique) SuperSport MaXimo 1 (Somalia) SuperSport MaXimo 1 (Benin) SuperSport MaXimo 1 (Swaziland) SuperSport MaXimo 1 (Malawi) SuperSport MaXimo 1 (Tanzania) SuperSport MaXimo 1 (Eritrea) SuperSport MaXimo 1 (Ethiopia) SuperSport MaXimo 1 (Sudan) SuperSport MaXimo 1 (Niger) SuperSport MaXimo 1 (Rwanda) SuperSport MaXimo 1 (Chad) SuperSport MaXimo 1 (São Tomé and Príncipe) SuperSport MaXimo 1 (South Sudan) SuperSport MaXimo 1 (Botswana) SuperSport MaXimo 1 (Equatorial Guinea) SuperSport MaXimo 1 (Mauritius) SuperSport MaXimo 1 (Comoros) SuperSport MaXimo 1 (Lesotho) SuperSport MaXimo 1 (Djibouti) SuperSport MaXimo 1 (Seychelles) DStv Now (Ivory Coast) DStv Now (Mali) DStv Now (Senegal) DStv Now (Ghana) DStv Now (Cameroon) DStv Now (Burkina Faso) DStv Now (Nigeria) DStv Now (Liberia) DStv Now (Burundi) DStv Now (Angola) DStv Now (Kenya) DStv Now (Madagascar) DStv Now (Guinea) DStv Now (Guinea-Bissau) DStv Now (Zimbabwe) DStv Now (Mauritania) DStv Now (Gambia) DStv Now (Togo) DStv Now (Gabon) DStv Now (Uganda) DStv Now (Sierra Leone) DStv Now (Namibia) DStv Now (Mozambique) DStv Now (Swaziland) DStv Now (Malawi) DStv Now (Tanzania) DStv Now (Eritrea) DStv Now (Ethiopia) DStv Now (Sudan) DStv Now (Niger) DStv Now (Chad) DStv Now (South Sudan) DStv Now (Botswana) DStv Now (Equatorial Guinea) DStv Now (Mauritius) DStv Now (Lesotho) DStv Now (Djibouti) DStv Now (Seychelles) Moja TV (Bosnia and Herzegovina) Astro Go (Malaysia) Play Diema Xtra (Bulgaria) QQ Sports Live (China) Migu (China) Sky Sport NOW (New Zealand) Sky Sport NOW (Fiji) Sky Sport NOW (Solomon Islands) Sky Sport NOW (Vanuatu) Sky Sport NOW (Samoa) Sky Sport NOW (Tonga) Sky Sport NOW (Niue) Sky Sport NOW (Tuvalu) Sky Sport 7 beIN Sports (New Zealand) Sky Sport 7 beIN Sports (International) JioTV (India) Vidio (Indonesia) ArtMotion (Kosovo) StarHub TV+ (Singapore) DStv App (South Africa) SiriusXM FC (United States) Sport 2 (Israel) Movistar Futbol (Spain) Sky Sport Uno (Italy) Diema Sport 2 (Bulgaria) Optus Sport (Australia) Play Sports 2 (Belgium) SKY Go Italia (Italy) NOW TV (Italy) Viaplay Norway (Norway) GO TV Anywhere (Malta) iQiyi (China) iQiyi (Macau) beIN SPORTS CONNECT Arabia (Palestine) NBC Sports App (United States) USA Network (United States) nbcsports.com (United States) TOD (Iraq) TOD (Turkey) TOD (Algeria) TOD (Egypt) TOD (Morocco) TOD (Tunisia) TOD (Mauritania) TOD (United Arab Emirates) TOD (Syria) TOD (Oman) TOD (Somalia) TOD (Libya) TOD (Kuwait) TOD (Saudi Arabia) TOD (Lebanon) TOD (Palestine) TOD (Qatar) TOD (Jordan) TOD (Chad) TOD (South Sudan) TOD (Yemen) TOD (Bahrain) TOD (Djibouti) DAZN 2 (Spain) Skylink (Czech Republic) Skylink (Slovakia) Digi Online (Romania) Orange TV Go (Romania) Viaplay Netherlands (Netherlands) Sport 24 Extra (International) TV2 Play (Hungary) NOW (England) SKY Go Italia (Italy) Elisa Viihde Viaplay (Finland) Viaplay Iceland (Iceland) beIN CONNECT Turkey (Turkey) Digiturk Play (Turkey) ---------- Match: Crystal Palace vs Tottenham Hotspur Match ID: 19134528 Date: 2024-10-27 14:00:00 Result: Crystal Palace won after full-time. Venue Name: Selhurst Park TV Stations: DAZN (Spain) Play Sports (Belgium) Viaplay Denmark (Denmark) Viaplay Sweden (Sweden) Viaplay Poland (Poland) Optus Sport (Australia) beIN SPORTS CONNECT (Iraq) beIN SPORTS CONNECT (Iran) beIN SPORTS CONNECT (Algeria) beIN SPORTS CONNECT (Egypt) beIN SPORTS CONNECT (Morocco) beIN SPORTS CONNECT (Tunisia) beIN SPORTS CONNECT (Mauritania) beIN SPORTS CONNECT (United Arab Emirates) beIN SPORTS CONNECT (Syria) beIN SPORTS CONNECT (Oman) beIN SPORTS CONNECT (Somalia) beIN SPORTS CONNECT (Libya) beIN SPORTS CONNECT (Kuwait) beIN SPORTS CONNECT (Saudi Arabia) beIN SPORTS CONNECT (Lebanon) beIN SPORTS CONNECT (Palestine) beIN SPORTS CONNECT (Sudan) beIN SPORTS CONNECT (Qatar) beIN SPORTS CONNECT (Jordan) beIN SPORTS CONNECT (Chad) beIN SPORTS CONNECT (South Sudan) beIN SPORTS CONNECT (Yemen) beIN SPORTS CONNECT (Bahrain) beIN SPORTS CONNECT (Djibouti) DStv Now (Mali) DStv Now (Senegal) DStv Now (Ghana) DStv Now (Cameroon) DStv Now (Burkina Faso) DStv Now (Nigeria) DStv Now (Liberia) DStv Now (Burundi) DStv Now (Angola) DStv Now (Kenya) DStv Now (Madagascar) DStv Now (Guinea) DStv Now (Guinea-Bissau) DStv Now (Zimbabwe) DStv Now (Mauritania) DStv Now (Gambia) DStv Now (Togo) DStv Now (Gabon) DStv Now (Uganda) DStv Now (Sierra Leone) DStv Now (Namibia) DStv Now (Mozambique) DStv Now (Swaziland) DStv Now (Malawi) DStv Now (Tanzania) DStv Now (Eritrea) DStv Now (Ethiopia) DStv Now (Sudan) DStv Now (Niger) DStv Now (Chad) DStv Now (South Sudan) DStv Now (Botswana) DStv Now (Equatorial Guinea) DStv Now (Mauritius) DStv Now (Lesotho) DStv Now (Djibouti) DStv Now (Seychelles) Moja TV (Bosnia and Herzegovina) Astro Go (Malaysia) QQ Sports Live (China) Migu (China) Sky Sport NOW (New Zealand) Sky Sport NOW (Fiji) Sky Sport NOW (Solomon Islands) Sky Sport NOW (Vanuatu) Sky Sport NOW (Samoa) Sky Sport NOW (Tonga) Sky Sport NOW (Niue) Sky Sport NOW (Tuvalu) JioTV (India) Vidio (Indonesia) StarHub TV+ (Singapore) DStv App (South Africa) Viaplay Norway (Norway) Viaplay Netherlands (Netherlands) SKY Go Italia (Italy) Elisa Viihde Viaplay (Finland) beIN CONNECT Turkey (Turkey) ---------- Match: West Ham United vs Manchester United Match ID: 19134532 Date: 2024-10-27 14:00:00 Result: West Ham United won after full-time. Venue Name: London Stadium TV Stations: DAZN (Spain) Play Sports (Belgium) Play Sports 3 (Belgium) Sky Go (Germany) Viaplay Poland (Poland) Sky Sports Premier League (Austria) Optus Sport (Australia) beIN SPORTS CONNECT (Iraq) beIN SPORTS CONNECT (Iran) beIN SPORTS CONNECT (Algeria) beIN SPORTS CONNECT (Egypt) beIN SPORTS CONNECT (Morocco) beIN SPORTS CONNECT (Tunisia) beIN SPORTS CONNECT (Mauritania) beIN SPORTS CONNECT (United Arab Emirates) beIN SPORTS CONNECT (Syria) beIN SPORTS CONNECT (Oman) beIN SPORTS CONNECT (Somalia) beIN SPORTS CONNECT (Libya) beIN SPORTS CONNECT (Kuwait) beIN SPORTS CONNECT (Saudi Arabia) beIN SPORTS CONNECT (Lebanon) beIN SPORTS CONNECT (Palestine) beIN SPORTS CONNECT (Sudan) beIN SPORTS CONNECT (Qatar) beIN SPORTS CONNECT (Jordan) beIN SPORTS CONNECT (Chad) beIN SPORTS CONNECT (South Sudan) beIN SPORTS CONNECT (Yemen) beIN SPORTS CONNECT (Bahrain) beIN SPORTS CONNECT (Djibouti) SuperSport MaXimo 2 (Mali) SuperSport MaXimo 2 (South Africa) SuperSport MaXimo 2 (Senegal) SuperSport MaXimo 2 (Ghana) SuperSport MaXimo 2 (Cameroon) SuperSport MaXimo 2 (Burkina Faso) SuperSport MaXimo 2 (Nigeria) SuperSport MaXimo 2 (Liberia) SuperSport MaXimo 2 (Burundi) SuperSport MaXimo 2 (Angola) SuperSport MaXimo 2 (Kenya) SuperSport MaXimo 2 (Central African Republic) SuperSport MaXimo 2 (Madagascar) SuperSport MaXimo 2 (Guinea) SuperSport MaXimo 2 (Guinea-Bissau) SuperSport MaXimo 2 (Zimbabwe) SuperSport MaXimo 2 (Mauritania) SuperSport MaXimo 2 (Gambia) SuperSport MaXimo 2 (Zambia) SuperSport MaXimo 2 (Togo) SuperSport MaXimo 2 (Gabon) SuperSport MaXimo 2 (Uganda) SuperSport MaXimo 2 (Mayotte) SuperSport MaXimo 2 (Sierra Leone) SuperSport MaXimo 2 (Namibia) SuperSport MaXimo 2 (Mozambique) SuperSport MaXimo 2 (Somalia) SuperSport MaXimo 2 (Benin) SuperSport MaXimo 2 (Swaziland) SuperSport MaXimo 2 (Malawi) SuperSport MaXimo 2 (Tanzania) SuperSport MaXimo 2 (Eritrea) SuperSport MaXimo 2 (Ethiopia) SuperSport MaXimo 2 (Sudan) SuperSport MaXimo 2 (Niger) SuperSport MaXimo 2 (Rwanda) SuperSport MaXimo 2 (Chad) SuperSport MaXimo 2 (Botswana) SuperSport MaXimo 2 (Equatorial Guinea) SuperSport MaXimo 2 (Mauritius) SuperSport MaXimo 2 (Comoros) SuperSport MaXimo 2 (Lesotho) SuperSport MaXimo 2 (Djibouti) SuperSport MaXimo 2 (Seychelles) SuperSport Premier League ROA (Mali) SuperSport Premier League ROA (Senegal) SuperSport Premier League ROA (Ghana) SuperSport Premier League ROA (Cameroon) SuperSport Premier League ROA (Burkina Faso) SuperSport Premier League ROA (Liberia) SuperSport Premier League ROA (Burundi) SuperSport Premier League ROA (Angola) SuperSport Premier League ROA (Kenya) SuperSport Premier League ROA (Madagascar) SuperSport Premier League ROA (Guinea) SuperSport Premier League ROA (Guinea-Bissau) SuperSport Premier League ROA (Zimbabwe) SuperSport Premier League ROA (Mauritania) SuperSport Premier League ROA (Gambia) SuperSport Premier League ROA (Zambia) SuperSport Premier League ROA (Togo) SuperSport Premier League ROA (Gabon) SuperSport Premier League ROA (Uganda) SuperSport Premier League ROA (Mayotte) SuperSport Premier League ROA (Sierra Leone) SuperSport Premier League ROA (Namibia) SuperSport Premier League ROA (Mozambique) SuperSport Premier League ROA (Somalia) SuperSport Premier League ROA (Benin) SuperSport Premier League ROA (Swaziland) SuperSport Premier League ROA (Malawi) SuperSport Premier League ROA (Tanzania) SuperSport Premier League ROA (Eritrea) SuperSport Premier League ROA (Ethiopia) SuperSport Premier League ROA (Sudan) SuperSport Premier League ROA (Niger) SuperSport Premier League ROA (Rwanda) SuperSport Premier League ROA (Chad) SuperSport Premier League ROA (Botswana) SuperSport Premier League ROA (Equatorial Guinea) SuperSport Premier League ROA (Mauritius) SuperSport Premier League ROA (Comoros) SuperSport Premier League ROA (Lesotho) SuperSport Premier League ROA (Djibouti) SuperSport Premier League ROA (Seychelles) DStv Now (Mali) DStv Now (Senegal) DStv Now (Ghana) DStv Now (Cameroon) DStv Now (Burkina Faso) DStv Now (Nigeria) DStv Now (Liberia) DStv Now (Burundi) DStv Now (Angola) DStv Now (Kenya) DStv Now (Madagascar) DStv Now (Guinea) DStv Now (Guinea-Bissau) DStv Now (Zimbabwe) DStv Now (Mauritania) DStv Now (Gambia) DStv Now (Togo) DStv Now (Gabon) DStv Now (Uganda) DStv Now (Sierra Leone) DStv Now (Namibia) DStv Now (Mozambique) DStv Now (Swaziland) DStv Now (Malawi) DStv Now (Tanzania) DStv Now (Eritrea) DStv Now (Ethiopia) DStv Now (Sudan) DStv Now (Niger) DStv Now (Chad) DStv Now (South Sudan) DStv Now (Botswana) DStv Now (Equatorial Guinea) DStv Now (Mauritius) DStv Now (Lesotho) DStv Now (Djibouti) DStv Now (Seychelles) Moja TV (Bosnia and Herzegovina) Astro Go (Malaysia) Play Diema Xtra (Bulgaria) QQ Sports Live (China) Migu (China) Sky Sport NOW (New Zealand) Sky Sport NOW (Fiji) Sky Sport NOW (Solomon Islands) Sky Sport NOW (Vanuatu) Sky Sport NOW (Samoa) Sky Sport NOW (Tonga) Sky Sport NOW (Niue) Sky Sport NOW (Tuvalu) JioTV (India) Vidio (Indonesia) BBC Radio 5 Live (England) ArtMotion (Kosovo) SuperSport Premier League Nigeria (Nigeria) StarHub TV+ (Singapore) DStv App (South Africa) Canal+ Sport 360 (France) Viaplay Norway (Norway) Viaplay Netherlands (Netherlands) Zapping (Brazil) Claro TV+ (Brazil) Vivo Play (Brazil) Sky+ (Brazil) SKY Go Italia (Italy) Elisa Viihde Viaplay (Finland) Arena 2 Premium (Serbia) Arena 2 Premium (Montenegro) Arena 2 Premium (Macedonia) beIN CONNECT Turkey (Turkey) ---------- Match: Arsenal vs Liverpool Match ID: 19134523 Date: 2024-10-27 16:30:00 Result: Game ended in draw. Venue Name: Emirates Stadium TV Stations: DAZN (Spain) Play Sports (Belgium) Play Sports 1 (Belgium) Arena Sport 1 (Croatia) Arena Sport 1 (Slovenia) Viaplay Denmark (Denmark) Sky Go (Germany) Viaplay Sweden (Sweden) Viaplay Poland (Poland) Sky Ultra HD (Republic of Ireland) Sky Ultra HD (England) Sky Sports Premier League (Germany) Sky Sports Premier League (Switzerland) Sky Sports Premier League (Austria) Sky Sports Premier League (Republic of Ireland) Sky Sports Premier League (England) SKY GO Extra (Republic of Ireland) SKY GO Extra (England) Sky Sports Main Event (Germany) Sky Sports Main Event (Switzerland) Sky Sports Main Event (Austria) Sky Sports Main Event (Republic of Ireland) Sky Sports Main Event (England) Optus Sport (Australia) Canal+ Foot (France) Canal+ Foot (Switzerland) Canal+ Foot (Andorra) Canal+ Foot (Togo) beIN SPORTS CONNECT (Iraq) beIN SPORTS CONNECT (Iran) beIN SPORTS CONNECT (Algeria) beIN SPORTS CONNECT (Egypt) beIN SPORTS CONNECT (Morocco) beIN SPORTS CONNECT (Tunisia) beIN SPORTS CONNECT (Mauritania) beIN SPORTS CONNECT (United Arab Emirates) beIN SPORTS CONNECT (Syria) beIN SPORTS CONNECT (Oman) beIN SPORTS CONNECT (Somalia) beIN SPORTS CONNECT (Libya) beIN SPORTS CONNECT (Kuwait) beIN SPORTS CONNECT (Saudi Arabia) beIN SPORTS CONNECT (Lebanon) beIN SPORTS CONNECT (Palestine) beIN SPORTS CONNECT (Sudan) beIN SPORTS CONNECT (Qatar) beIN SPORTS CONNECT (Jordan) beIN SPORTS CONNECT (Chad) beIN SPORTS CONNECT (South Sudan) beIN SPORTS CONNECT (Yemen) beIN SPORTS CONNECT (Bahrain) beIN SPORTS CONNECT (Djibouti) SuperSport MaXimo 2 (Ivory Coast) SuperSport MaXimo 2 (Mali) SuperSport MaXimo 2 (South Africa) SuperSport MaXimo 2 (Senegal) SuperSport MaXimo 2 (Ghana) SuperSport MaXimo 2 (Cameroon) SuperSport MaXimo 2 (Burkina Faso) SuperSport MaXimo 2 (Nigeria) SuperSport MaXimo 2 (Liberia) SuperSport MaXimo 2 (Burundi) SuperSport MaXimo 2 (Angola) SuperSport MaXimo 2 (Kenya) SuperSport MaXimo 2 (Central African Republic) SuperSport MaXimo 2 (Madagascar) SuperSport MaXimo 2 (Guinea) SuperSport MaXimo 2 (Guinea-Bissau) SuperSport MaXimo 2 (Zimbabwe) SuperSport MaXimo 2 (Mauritania) SuperSport MaXimo 2 (Gambia) SuperSport MaXimo 2 (Zambia) SuperSport MaXimo 2 (Togo) SuperSport MaXimo 2 (Gabon) SuperSport MaXimo 2 (Uganda) SuperSport MaXimo 2 (Mayotte) SuperSport MaXimo 2 (Sierra Leone) SuperSport MaXimo 2 (Namibia) SuperSport MaXimo 2 (Mozambique) SuperSport MaXimo 2 (Somalia) SuperSport MaXimo 2 (Benin) SuperSport MaXimo 2 (Swaziland) SuperSport MaXimo 2 (Malawi) SuperSport MaXimo 2 (Tanzania) SuperSport MaXimo 2 (Eritrea) SuperSport MaXimo 2 (Ethiopia) SuperSport MaXimo 2 (Sudan) SuperSport MaXimo 2 (Niger) SuperSport MaXimo 2 (Rwanda) SuperSport MaXimo 2 (Chad) SuperSport MaXimo 2 (São Tomé and Príncipe) SuperSport MaXimo 2 (South Sudan) SuperSport MaXimo 2 (Botswana) SuperSport MaXimo 2 (Equatorial Guinea) SuperSport MaXimo 2 (Mauritius) SuperSport MaXimo 2 (Comoros) SuperSport MaXimo 2 (Lesotho) SuperSport MaXimo 2 (Djibouti) SuperSport MaXimo 2 (Seychelles) SuperSport Premier League ROA (Ivory Coast) SuperSport Premier League ROA (Mali) SuperSport Premier League ROA (Senegal) SuperSport Premier League ROA (Ghana) SuperSport Premier League ROA (Cameroon) SuperSport Premier League ROA (Burkina Faso) SuperSport Premier League ROA (Nigeria) SuperSport Premier League ROA (Liberia) SuperSport Premier League ROA (Burundi) SuperSport Premier League ROA (Angola) SuperSport Premier League ROA (Kenya) SuperSport Premier League ROA (Central African Republic) SuperSport Premier League ROA (Madagascar) SuperSport Premier League ROA (Guinea) SuperSport Premier League ROA (Guinea-Bissau) SuperSport Premier League ROA (Zimbabwe) SuperSport Premier League ROA (Mauritania) SuperSport Premier League ROA (Gambia) SuperSport Premier League ROA (Zambia) SuperSport Premier League ROA (Togo) SuperSport Premier League ROA (Gabon) SuperSport Premier League ROA (Uganda) SuperSport Premier League ROA (Mayotte) SuperSport Premier League ROA (Sierra Leone) SuperSport Premier League ROA (Namibia) SuperSport Premier League ROA (Mozambique) SuperSport Premier League ROA (Somalia) SuperSport Premier League ROA (Benin) SuperSport Premier League ROA (Swaziland) SuperSport Premier League ROA (Malawi) SuperSport Premier League ROA (Tanzania) SuperSport Premier League ROA (Eritrea) SuperSport Premier League ROA (Ethiopia) SuperSport Premier League ROA (Sudan) SuperSport Premier League ROA (Niger) SuperSport Premier League ROA (Rwanda) SuperSport Premier League ROA (Chad) SuperSport Premier League ROA (São Tomé and Príncipe) SuperSport Premier League ROA (South Sudan) SuperSport Premier League ROA (Botswana) SuperSport Premier League ROA (Equatorial Guinea) SuperSport Premier League ROA (Mauritius) SuperSport Premier League ROA (Comoros) SuperSport Premier League ROA (Lesotho) SuperSport Premier League ROA (Djibouti) SuperSport Premier League ROA (Seychelles) SuperSport MaXimo 1 (Ivory Coast) SuperSport MaXimo 1 (Mali) SuperSport MaXimo 1 (South Africa) SuperSport MaXimo 1 (Senegal) SuperSport MaXimo 1 (Ghana) SuperSport MaXimo 1 (Cameroon) SuperSport MaXimo 1 (Burkina Faso) SuperSport MaXimo 1 (Nigeria) SuperSport MaXimo 1 (Liberia) SuperSport MaXimo 1 (Burundi) SuperSport MaXimo 1 (Angola) SuperSport MaXimo 1 (Kenya) SuperSport MaXimo 1 (Central African Republic) SuperSport MaXimo 1 (Madagascar) SuperSport MaXimo 1 (Guinea) SuperSport MaXimo 1 (Guinea-Bissau) SuperSport MaXimo 1 (Zimbabwe) SuperSport MaXimo 1 (Mauritania) SuperSport MaXimo 1 (Gambia) SuperSport MaXimo 1 (Zambia) SuperSport MaXimo 1 (Togo) SuperSport MaXimo 1 (Gabon) SuperSport MaXimo 1 (Uganda) SuperSport MaXimo 1 (Mayotte) SuperSport MaXimo 1 (Sierra Leone) SuperSport MaXimo 1 (Namibia) SuperSport MaXimo 1 (Mozambique) SuperSport MaXimo 1 (Somalia) SuperSport MaXimo 1 (Benin) SuperSport MaXimo 1 (Swaziland) SuperSport MaXimo 1 (Malawi) SuperSport MaXimo 1 (Tanzania) SuperSport MaXimo 1 (Eritrea) SuperSport MaXimo 1 (Ethiopia) SuperSport MaXimo 1 (Sudan) SuperSport MaXimo 1 (Niger) SuperSport MaXimo 1 (Rwanda) SuperSport MaXimo 1 (Chad) SuperSport MaXimo 1 (São Tomé and Príncipe) SuperSport MaXimo 1 (South Sudan) SuperSport MaXimo 1 (Botswana) SuperSport MaXimo 1 (Equatorial Guinea) SuperSport MaXimo 1 (Mauritius) SuperSport MaXimo 1 (Comoros) SuperSport MaXimo 1 (Lesotho) SuperSport MaXimo 1 (Djibouti) SuperSport MaXimo 1 (Seychelles) Supersport Grandstand ROA (Mali) Supersport Grandstand ROA (Senegal) Supersport Grandstand ROA (Ghana) Supersport Grandstand ROA (Cameroon) Supersport Grandstand ROA (Burkina Faso) Supersport Grandstand ROA (Liberia) Supersport Grandstand ROA (Burundi) Supersport Grandstand ROA (Angola) Supersport Grandstand ROA (Kenya) Supersport Grandstand ROA (Central African Republic) Supersport Grandstand ROA (Madagascar) Supersport Grandstand ROA (Guinea) Supersport Grandstand ROA (Guinea-Bissau) Supersport Grandstand ROA (Zimbabwe) Supersport Grandstand ROA (Mauritania) Supersport Grandstand ROA (Gambia) Supersport Grandstand ROA (Zambia) Supersport Grandstand ROA (Togo) Supersport Grandstand ROA (Gabon) Supersport Grandstand ROA (Uganda) Supersport Grandstand ROA (Mayotte) Supersport Grandstand ROA (Sierra Leone) Supersport Grandstand ROA (Namibia) Supersport Grandstand ROA (Mozambique) Supersport Grandstand ROA (Somalia) Supersport Grandstand ROA (Benin) Supersport Grandstand ROA (Swaziland) Supersport Grandstand ROA (Malawi) Supersport Grandstand ROA (Tanzania) Supersport Grandstand ROA (Eritrea) Supersport Grandstand ROA (Ethiopia) Supersport Grandstand ROA (Sudan) Supersport Grandstand ROA (Niger) Supersport Grandstand ROA (Rwanda) Supersport Grandstand ROA (Chad) Supersport Grandstand ROA (Botswana) Supersport Grandstand ROA (Equatorial Guinea) Supersport Grandstand ROA (Mauritius) Supersport Grandstand ROA (Comoros) Supersport Grandstand ROA (Lesotho) Supersport Grandstand ROA (Djibouti) Supersport Grandstand ROA (Seychelles) DStv Now (Ivory Coast) DStv Now (Mali) DStv Now (Senegal) DStv Now (Ghana) DStv Now (Cameroon) DStv Now (Burkina Faso) DStv Now (Nigeria) DStv Now (Liberia) DStv Now (Burundi) DStv Now (Angola) DStv Now (Kenya) DStv Now (Madagascar) DStv Now (Guinea) DStv Now (Guinea-Bissau) DStv Now (Zimbabwe) DStv Now (Mauritania) DStv Now (Gambia) DStv Now (Togo) DStv Now (Gabon) DStv Now (Uganda) DStv Now (Sierra Leone) DStv Now (Namibia) DStv Now (Mozambique) DStv Now (Swaziland) DStv Now (Malawi) DStv Now (Tanzania) DStv Now (Eritrea) DStv Now (Ethiopia) DStv Now (Sudan) DStv Now (Niger) DStv Now (Chad) DStv Now (South Sudan) DStv Now (Botswana) DStv Now (Equatorial Guinea) DStv Now (Mauritius) DStv Now (Lesotho) DStv Now (Djibouti) DStv Now (Seychelles) Moja TV (Bosnia and Herzegovina) Astro Go (Malaysia) Play Diema Xtra (Bulgaria) QQ Sports Live (China) Migu (China) Sky Sport NOW (New Zealand) Sky Sport NOW (Fiji) Sky Sport NOW (Solomon Islands) Sky Sport NOW (Vanuatu) Sky Sport NOW (Samoa) Sky Sport NOW (Tonga) Sky Sport NOW (Niue) Sky Sport NOW (Tuvalu) Free (France) JioTV (India) Vidio (Indonesia) BBC Radio 5 Live (England) ArtMotion (Kosovo) SuperSport Premier League Nigeria (Nigeria) StarHub TV+ (Singapore) DStv App (South Africa) Supersport Grandstand (South Africa) SiriusXM FC (United States) Sport 1 (Israel) Movistar Futbol (Spain) Amazon Prime Video (Mexico) Diema Sport 2 (Bulgaria) RTL+ (Germany) RTL+ (Switzerland) RTL+ (Austria) See (Denmark) See (Faroe Islands) Optus Sport (Australia) V Sport Premium (Sweden) V Sport Premium (Finland) Play Sports 2 (Belgium) SKY Go Italia (Italy) NOW TV (Italy) Viaplay Norway (Norway) Fox Sports Premium (Mexico) GO TV Anywhere (Malta) iQiyi (China) iQiyi (Macau) beIN SPORTS CONNECT Arabia (Palestine) Peacock (United States) TOD (Iraq) TOD (Turkey) TOD (Algeria) TOD (Egypt) TOD (Morocco) TOD (Tunisia) TOD (Mauritania) TOD (United Arab Emirates) TOD (Syria) TOD (Oman) TOD (Somalia) TOD (Libya) TOD (Kuwait) TOD (Saudi Arabia) TOD (Lebanon) TOD (Palestine) TOD (Qatar) TOD (Jordan) TOD (Chad) TOD (South Sudan) TOD (Yemen) TOD (Bahrain) TOD (Djibouti) K+ SPORT 1 (Vietnam) True Premier Football HD 1 (Thailand) True Premier Football HD 2 (Thailand) Skylink (Czech Republic) Skylink (Slovakia) Digi Online (Romania) Orange TV Go (Romania) Viaplay Netherlands (Netherlands) Setanta Sports 1 (Georgia) Setanta Sports 1 (Belarus) Setanta Sports 1 (Latvia) Setanta Sports 1 (Armenia) Setanta Sports 1 (Lithuania) Setanta Sports 1 (Moldova) Setanta Sports 1 (Estonia) Setanta Sports 1 (Uzbekistan) Setanta Sports 1 (Kazakhstan) Setanta Sports 1 (Azerbaijan) Setanta Sports 1 (Turkmenistan) Setanta Sports 1 (International) Sport 24 Extra (International) TV2 Play (Hungary) NOW (England) Canal+ France (France) Zapping (Brazil) Claro TV+ (Brazil) Vivo Play (Brazil) Sky+ (Brazil) Elisa Viihde Viaplay (Finland) beIN CONNECT Turkey (Turkey) ----------
As you can see from the response, all TV Stations legally permitted to broadcast each match is displayed.
Chapter 5.1: Using a Filter on TV Stations
Let’s assume you have a great Web analyst on your team who has been able to identify where the bulk of your traffic comes from. Perhaps you have more visitors from the United Kingdom and wish to display only TV stations in the UK. Our football API allows you to filter the results from the previous exercise to achieve this. Kindly note the country ID for the UK is 462, which you will find at the end of our url
Here is the url to have only TV Stations in the UK displayed.
using System; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json; namespace FixturesVenuesTVStationsUK { public class Program { private static string apiToken = "API_Token"; public static async Task Main(string[] args) { string fixturesApiUrl = $"https://api.sportmonks.com/v3/football/fixtures/between/2024-10-25/2024-10-28?api_token={apiToken}&include=venue;tvstations.tvstation;tvstations.country&filters=fixtureLeagues:8;fixturetvstationcountries:462"; try { using (HttpClient client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(fixturesApiUrl); response.EnsureSuccessStatusCode(); string jsonResponse = await response.Content.ReadAsStringAsync(); var fixtureResponse = JsonConvert.DeserializeObject(jsonResponse); if (fixtureResponse != null) { foreach (var fixture in fixtureResponse.Data) { Console.WriteLine($"Match: {fixture.Name}"); Console.WriteLine($"Match ID: {fixture.Id}"); Console.WriteLine($"Date: {fixture.StartingAt}"); Console.WriteLine($"Result: {fixture.ResultInfo}"); Console.WriteLine($"Venue Name: {fixture.Venue.Name}"); Console.WriteLine("TV Stations:"); foreach (var tvStation in fixture.TvStations) { Console.WriteLine(tvStation.TVStation.Name); // Display TV stations } Console.WriteLine("----------"); } } } } catch (Exception ex) { Console.WriteLine($"An error occurred: {ex.Message}"); } } } // Wrapper class for fixture response public class FixtureApiResponse { [JsonProperty("data")] public List Data { get; set; } } // Fixture class for fixture details public class Fixture { public int Id { get; set; } [JsonProperty("sport_id")] public int SportId { get; set; } [JsonProperty("league_id")] public int LeagueId { get; set; } [JsonProperty("season_id")] public int SeasonId { get; set; } [JsonProperty("stage_id")] public long StageId { get; set; } [JsonProperty("group_id")] public int? GroupId { get; set; } [JsonProperty("aggregate_id")] public int? AggregateId { get; set; } [JsonProperty("round_id")] public int RoundId { get; set; } [JsonProperty("state_id")] public int StateId { get; set; } [JsonProperty("venue")] public Venue Venue { get; set; } public string Name { get; set; } [JsonProperty("starting_at")] public string StartingAt { get; set; } [JsonProperty("result_info")] public string ResultInfo { get; set; } public string Leg { get; set; } public string Details { get; set; } public int Length { get; set; } public bool Placeholder { get; set; } [JsonProperty("has_odds")] public bool HasOdds { get; set; } [JsonProperty("has_premium_odds")] public bool HasPremiumOdds { get; set; } [JsonProperty("starting_at_timestamp")] public long StartingAtTimestamp { get; set; } [JsonProperty("tvstations")] public List TvStations { get; set; } } // Venue class for venue details public class Venue { public int Id { get; set; } public string Name { get; set; } } // Fixture TV Station class containing the TV station public class FixtureTVStation { [JsonProperty("tvstation")] public TVStation TVStation { get; set; } } // TV Station class for TV station details public class TVStation { public int Id { get; set; } public string Name { get; set; } } }
Match: Leicester City vs Nottingham Forest Match ID: 19134530 Date: 2024-10-25 19:00:00 Result: Nottingham Forest won after full-time. Venue Name: King Power Stadium TV Stations: Sky Ultra HD Sky Sports Premier League SKY GO Extra Sky Sports Main Event TalkSport Radio UK NOW ---------- Match: Aston Villa vs AFC Bournemouth Match ID: 19134524 Date: 2024-10-26 14:00:00 Result: Game ended in draw. Venue Name: Villa Park TV Stations: BBC Radio 5 Live ---------- Match: Brentford vs Ipswich Town Match ID: 19134525 Date: 2024-10-26 14:00:00 Result: Brentford won after full-time. Venue Name: Brentford Community Stadium TV Stations: ---------- Match: Brighton & Hove Albion vs Wolverhampton Wanderers Match ID: 19134526 Date: 2024-10-26 14:00:00 Result: Game ended in draw. Venue Name: Broadfield Stadium TV Stations: ---------- Match: Manchester City vs Southampton Match ID: 19134531 Date: 2024-10-26 14:00:00 Result: Manchester City won after full-time. Venue Name: Etihad Stadium TV Stations: ---------- Match: Everton vs Fulham Match ID: 19134529 Date: 2024-10-26 16:30:00 Result: Game ended in draw. Venue Name: Goodison Park TV Stations: Sky Ultra HD Sky Sports Premier League SKY GO Extra Sky Sports Main Event BBC Radio 5 Live NOW ---------- Match: Chelsea vs Newcastle United Match ID: 19134527 Date: 2024-10-27 14:00:00 Result: Chelsea won after full-time. Venue Name: Stamford Bridge TV Stations: Sky Ultra HD Sky Sports Premier League SKY GO Extra Sky Sports Main Event NOW ---------- Match: Crystal Palace vs Tottenham Hotspur Match ID: 19134528 Date: 2024-10-27 14:00:00 Result: Crystal Palace won after full-time. Venue Name: Selhurst Park TV Stations: ---------- Match: West Ham United vs Manchester United Match ID: 19134532 Date: 2024-10-27 14:00:00 Result: West Ham United won after full-time. Venue Name: London Stadium TV Stations: BBC Radio 5 Live ---------- Match: Arsenal vs Liverpool Match ID: 19134523 Date: 2024-10-27 16:30:00 Result: Game ended in draw. Venue Name: Emirates Stadium TV Stations: Sky Ultra HD Sky Sports Premier League SKY GO Extra Sky Sports Main Event BBC Radio 5 Live NOW ----------
As you can see from the response, only TV Stations from the UK, whose country code is 426 is returned.
CONCLUSION. Harness the Power of Sportmonks’ Football API with C#
Now that you’ve gone from zero to hero in just a bit while using C#, you can see how easy it is to retrieve data from Sportmonks’ Football API. As a summary, let’s go over all we did together.
In chapter 1, we installed Visual Studio Code and went about creating an API token for the exercise before retrieving league details in Chapter 2. We went further in chapter 3, formatting the league response received in Chapter 2 in a readable format using a NuGet package called Newton.Json.
We went on in chapter 3 to retrieve all leagues from a specific country (UK) using a country ID.
In Chapter 4, we retrieved fixtures from a specific league between two dates. We then went on to modify the response to include the stadiums where each game was played by modifying our url. But we didn’t stop there.
We moved on to Chapter 5, where we retrieved the TV stations licensed to broadcast the fixtures before concluding with an exercise to filter the results for only a specific country, the UK, once again.
While these few code snippets can get you up and running in little to no time, you can easily build upon the knowledge from this guide to create mind-blowing football apps.
C#’s extensive documentation, community, and easy-to-learn nature has made it accessible to users of all skill levels, allowing anyone, even with basic programming knowledge, to build apps that wow.
Not big on spending? While our plans are designed to be budget-friendly, you can request a custom plan to suit a specific need. Get in touch with our customer support to order one.
FAQ
- Create an account on My Sportmonks and get immediate access to our free plan.
- Subscribe to one of our paid plans and receive a one-time-only 14-day free trial.