You can download league tables from Club Log for convenient re-use or onwards publishing on other web sites. The JSON format of the leagues does not use pagination, so it is convenient and more readily accessible for this sort of purpose than the HTML version that Club Log displays.


API arguments

The following arguments can be provided:

mode = Filter by mode

0 = No mode filter

1 = CW

2 = Phone

3 = Date

qsl = Filter by QSL status

0 = Worked

1 = Confirmed

date = Filter by QSO date

0 = No date filter

1 = The last 12 months (eg. if today is 12 June 2016, then the range is 12 June 2015 to 12 June 2016)

2 = Not used

3 = This year (e.g. if today is between 1 January and 31 December 2016, then the year is 2016)

4 = Last year (e.g. if today is between 1 January and 31 December 2016, then last year is 2015)


The numerical club ID (or continent/region filter) as displayed on the main league tables. The default, 0 is the global league table. Other useful values are:

-1 = Europe

-2 = North America

-3 = South America

-4 = Asia

-5 = Oceania

-6 = Africa

-7 = Antarctica

57 = British Isles

To see the full list, please view the HTML for Search in the source HTML for "<SELECT size="1name="fClub">".


0 = Current entities

1 = Current and deleted entities


The default for each field is the value 0, so calling league_api.php without any arguments will return the global, unfiltered league table.

The results are cached for 24 hours. There is no need to call the API again within 24 hours, but doing so returns the same result quickly and is not likely to cause problems with server load. Please be aware that very large league tables take time to compute, so please allow for up to 10 seconds of calculation time if you request a league that has not been requested by another user of this API within that time.

Example URL

  • mode = 1 means CW
  • qsl = 0 means worked and confirmed QSOs
  • date = 3 means 'This year'
  • club = 180 means the UKCW Table
  • deleted = 0 means current and deleted entities

Response JSON

The response JSON contains the following fields in order:

rank, callsign, DXCCs worked, slots worked and then an array of bands and DXCC count for that band (from 160m through to 13cm).

Example response

[[1,"GM0OPS","159","628",{"160":64,"80":70,"60":1,"40":109,"30":36,"20":137,"17":57,"15":75,"12":25,"10":39,"6":15,"4":0,"2":0,"70":0,"23":0,"13":0}],[2,"G3WGV","156","694",{"160":57,"80":64,"60":17,"40":89,"30":76,"20":132,"17":86,"15":81,"12":23,"10":43,"6":26,"4":0,"2":0,"70":0,"23":0,"13":0}],[3,"G3WGN","153","546",{"160":72,"80":61,"60":0,"40":92,"30":40,"20":104,"17":71,"15":39,"12":14,"10":38,"6":15,"4":0,"2":0,"70":0,"23":0,"13":0}],[4,"MD0CCE","146","569",{"160":68,"80":62,"60":0,"40":78,"30":34,"20":117,"17":61,"15":76,"12":34,"10":25,"6":14,"4":0,"2":0,"70":0,"23":0,"13":0}],[5,"GM3YOR","136","431",{"160":36,"80":55,"60":0,"40":59,"30":56,"20":101,"17":55,"15":49,"12":8,"10":12,"6":0,"4":0,"2":0,"70":0,"23":0,"13":0}],[6,"G0ORC","133","548",{"160":1,"80":71,"60":21,"40":89,"30":61,"20":103,"17":67,"15":57,"12":24,"10":37,"6":17,"4":0,"2":0,"70":0,"23":0,"13":0}],[7,"G4DRS","104","330", etc.