GET Last Updated Coaches
Returns all the coaches that have received updates in the past two hours.
https://api.sportmonks.com/v3/football/coaches/latest{
  "data": [
    {
      "id": 50,
      "player_id": 50,
      "sport_id": 1,
      "country_id": 462,
      "nationality_id": null,
      "city_id": null,
      "common_name": "S. Gerrard",
      "firstname": "Steven",
      "lastname": "Gerrard",
      "name": "Steven Gerrard",
      "display_name": "Steven Gerrard",
      "image_path": "https://cdn.sportmonks.com/images/soccer/players/18/50.png",
      "height": 183,
      "weight": 83,
      "date_of_birth": "1980-05-30",
      "gender": "male"
    }
  ],id
Refers to the unique id of the coach
integer
player_id
Refers to the player related to the coach
integer
sport_id
Refers to the sport related to the coach
integer
country_id
Refers to the country of the coach
integer
nationality_id
Refers to the nationality of the coach
integer
city_id
Refers to the birthcity of the coach
string
common_name
Returns to the common name of the coach
string
firstname
Returns the first name of the coach
string
lastname
Returns the last name of the coach
string
name
Returns the first and last name of the coach
string
display_name
Returns the name that is often used to display in applications
string
image_path
Image path to the coach' headshot
string
height
Returns the height of the coach
integer
weight
Returns the weight of the coach
integer
date_of_birth
Returns the date of birth of the coach
string
gender
Returns the gender of the coach
string
api_token
YES
Another option is to provide the API token in the header.
Your unique API token. Ex. ?api_token=YOUR_TOKEN
include
NO
Enrich the API response with more data by using includes. Ex. &include=participants;events
filters
NO
Filter the API response on multiple related entities. There are static filters and dynamic filters. Please find the possibilities in the Static and Dynamic Filter tab.
locale
NO
Translate name fields of the API Response in your selected language. Find more information and which languages are available on our translations page.
Static filters are always the same and filter in one specific way without any custom options. Each static filter is listed below and has a description of how it filters. For more information, please look at our Filters page.
N/A
N/A
Not available on this endpoint
N/A
The dynamic filters are based on entities and includes. Each dynamic filter uses an entity to filter on and one entity to apply the filter on. Below are examples with explanations of how filters are set up. For more information, please look at our Filters page.
detailTypes
Statistics Check this endpoint for all possibilities.
Filter the coach statistics (detailTypes) on a selection of types separated by a comma.
&include=statistics.details.type&filters=coachstatisticdetailTypes:typeIDS
&include=statistics.details.type&filters=coachstatisticdetailTypes:59
seasons
Statistics (players, team, coaches, referees), Standings, and way more. Check this endpoint for all possibilities.
Filter coach statistics based on seasons.
&include=statistics.details.type&filters=coachstatisticSeasons:seasonIDS  
&include=statistics.details.type&filters=coachstatisticSeasons:19735
Definition of “Latest Updated”
This endpoint returns every coach whose data has changed in the last two hours. The coach data fields include country_id, nationality_id, city_id, weight, and gender. The two-hour update window is fixed and cannot be altered.
A change in any of these fields during the last two hours means that the coach's record is included in the response:
- country_id - Change means the coach’s associated country has been modified. 
 
- nationality_id - Change means the coach’s nationality assignment has been modified or added. 
 
- city_id - Change means the coach’s city association has been modified or added. 
 
- weight - Change means the coach’s weight value (in kilograms) was adjusted. 
 
- gender - Change means the coach’s gender field was modified. 
 
Frequency of updates & no-change responses
Any coach with at least one of the above fields changed in the last two hours will appear on each API call. If no coach record changed during that window, the API returns HTTP 200 with an empty data array. An empty array means there is nothing new to process.
Polling frequency & rate limits
- It is recommended to poll every 1h 59m 55s or 1h 59m 58s to reduce end-to-end latency. 
- Monitor for network jitter and clock skew to avoid missing updates or sending duplicate requests. 
Caching strategy & best practices
- Cache all returned fields per coach in your local store. 
- On each response, compare each coach’s new payload against the cache. 
- Discard coach records with no actual differences. 
- Update the cache with only the changed records. 
- Cache rarely changing lookup data (such as country and city names) locally. 
- If you observe long runs of empty responses, back off your polling frequency temporarily to reduce unnecessary calls. 
Filters
More information on how to use filters can be found in our tutorials on how to filter. If you want more information on which filters to use, you can check out the following endpoint:
Pagination
YES
Include depth
You can use a total of 3 nested includes on this endpoint
Include options
sport country  teams statistics nationality  trophies  player  fixtures
Related Entities:
Get an overview and explanation of all the fields returned in the API response. The related entities for the coaches endpoints are:
Postman
We also offer detailed postman documentation with examples and a complete up-to-date version of all our endpoints. Below is a button that lets your fork the collection or import it.
Code Example
require "uri"
require "net/http"
url = URI("https://api.sportmonks.com/v3/football/coaches/latest?api_token=YOUR_TOKEN")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
response = https.request(request)
puts response.read_body
import http.client
conn = http.client.HTTPSConnection("api.sportmonks.com")
payload = ''
headers = {}
conn.request("GET", "/v3/football/coaches/latest?api_token=YOUR_TOKEN", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))<?php
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.sportmonks.com/v3/football/coaches/latest?api_token=YOUR_TOKEN',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
echo $responsOkHttpClient client = new OkHttpClient().newBuilder()
  .build();
Request request = new Request.Builder()
  .url("https://api.sportmonks.com/v3/football/coaches/latest?api_token=YOUR_TOKEN")
  .method("GET", null)
  .build();
Response response = client.newCall(request).execute();var unirest = require('unirest');
var req = unirest('GET', 'https://api.sportmonks.com/v3/football/coaches/latest?api_token=YOUR_TOKEN')
  .end(function (res) { 
    if (res.error) throw new Error(res.error); 
    console.log(res.raw_body);
  });package main
import (
  "fmt"
  "net/http"
  "io/ioutil"
)
func main() {
  url := "https://api.sportmonks.com/v3/football/coaches/latest?api_token=YOUR_TOKEN"
  method := "GET"
  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)
  if err != nil {
    fmt.Println(err)
    return
  }
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()
  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}Last updated
Was this helpful?