NAV
cURL JavaScript Python

Datacentre API Documentation

This documentation covers the Datacentre API for Soccerverse, which provides access to statistical data and analytics.

Introduction

The Soccerverse Datacentre API provides access to advanced analytics, historical data, and management tools beyond the core game features. This API is designed for data analysts, researchers, and third-party developers building companion applications for Soccerverse.

Base URL

All API requests should be sent to:

https://services.soccerverse.com/api

API Protocol

The Datacentre API uses a RESTful API design. Resources are accessed via standard HTTP methods:

Response Format

Example response format:

{
  "page": 1,
  "per_page": 20,
  "total": 500,
  "total_pages": 25,
  "items": [
    {
      "id": 1,
      "name": "Example",
      "value": 1000
    }
  ]
}

The API returns data in JSON format. Most list endpoints return paginated results with the following structure:

Field Description
page Current page number
per_page Number of items per page
total Total number of items
total_pages Total number of pages
items Array of items for the current page

Error Handling

Example error response:

{
  "detail": {
    "msg": "Invalid request parameters",
    "type": "validation_error"
  }
}

Error responses include a detail object with information about what went wrong:

Field Description
msg Human-readable error message
type Error type identifier

Common Status Codes

Status Code Description
200 OK - Request succeeded
400 Bad Request - Invalid request format or parameters
404 Not Found - Requested resource doesn't exist
422 Validation Error - Request validation failed
500 Server Error - Something went wrong on the server

Player Methods

Methods Summary

Endpoint Description Method
/players Retrieve list of soccer players GET
/players/detailed Retrieve detailed soccer player data GET

Retrieve list of soccer players

Request example:

curl -X GET "/api/players?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&age_min={age_min}&age_max={age_max}&age={age}&player_id={player_id}&wages_min={wages_min}&wages_max={wages_max}&rating_min={rating_min}&rating_max={rating_max}&value_min={value_min}&value_max={value_max}&country_id={country_id}&owned={owned}&positions={positions}&club_id={club_id}&allow_transfer={allow_transfer}&allow_renew={allow_renew}"
const response = await fetch("/api/players?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&age_min={age_min}&age_max={age_max}&age={age}&player_id={player_id}&wages_min={wages_min}&wages_max={wages_max}&rating_min={rating_min}&rating_max={rating_max}&value_min={value_min}&value_max={value_max}&country_id={country_id}&owned={owned}&positions={positions}&club_id={club_id}&allow_transfer={allow_transfer}&allow_renew={allow_renew}");
const data = await response.json();
console.log(data);
import requests

url = "/api/players"
params = {"page": "{page}", "per_page": "{per_page}", "sort_by": "{sort_by}", "sort_order": "{sort_order}", "age_min": "{age_min}", "age_max": "{age_max}", "age": "{age}", "player_id": "{player_id}", "wages_min": "{wages_min}", "wages_max": "{wages_max}", "rating_min": "{rating_min}", "rating_max": "{rating_max}", "value_min": "{value_min}", "value_max": "{value_max}", "country_id": "{country_id}", "owned": "{owned}", "positions": "{positions}", "club_id": "{club_id}", "allow_transfer": "{allow_transfer}", "allow_renew": "{allow_renew}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page PerPageOptions Number of records per page (options: 5, 10, 20, 50) No 20
sort_by object Field to sort by No
sort_order object Sort order: 'asc' or 'desc' No asc
age_min object Minimum age for players No
age_max object Maximum age for players No
age object Exact age for players No
player_id object Filter by specific player ID(s) No
wages_min object Minimum wages No
wages_max object Maximum wages No
rating_min object Minimum rating No
rating_max object Maximum rating No
value_min object Minimum value No
value_max object Maximum value No
country_id object Country ID to filter players No
owned object Filter players owned by the given name No
positions object Comma-separated list of positions to filter players No
club_id object Filter by specific club ID No
allow_transfer object Filter by allow_transfer value No
allow_renew object Filter by allow_renew value No

Response example

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "player_id": 0,
      "last_price": 0,
      "volume_1_day": 0,
      "volume_7_day": 0,
      "last_7days": [
        0
      ],
      "last_7days_price": [
        0
      ],
      "wages": 0,
      "multi_position": 0,
      "positions": [
        ""
      ],
      "rating": 0,
      "country_id": "",
      "dob": 0,
      "value": 0,
      "club_id": 0,
      "agent_name": "",
      "age": 0,
      "profile_pic": ""
    }
  ]
}

Response Fields

Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[PlayerResponse] Items

Retrieve detailed soccer player data

Request example:

curl -X GET "/api/players/detailed?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&age_min={age_min}&age_max={age_max}&age={age}&player_id={player_id}&wages_min={wages_min}&wages_max={wages_max}&contract_min={contract_min}&contract_max={contract_max}&rating_min={rating_min}&rating_max={rating_max}&rating_gk_min={rating_gk_min}&rating_gk_max={rating_gk_max}&rating_tackling_min={rating_tackling_min}&rating_tackling_max={rating_tackling_max}&rating_passing_min={rating_passing_min}&rating_passing_max={rating_passing_max}&rating_shooting_min={rating_shooting_min}&rating_shooting_max={rating_shooting_max}&rating_aggression_min={rating_aggression_min}&rating_aggression_max={rating_aggression_max}&rating_stamina_min={rating_stamina_min}&rating_stamina_max={rating_stamina_max}&value_min={value_min}&value_max={value_max}&desired_contract_min={desired_contract_min}&desired_contract_max={desired_contract_max}&country_id={country_id}&owned={owned}&positions={positions}&club_id={club_id}&allow_transfer={allow_transfer}&allow_renew={allow_renew}&fitness={fitness}&retired={retired}&morale={morale}&injured={injured}&injury_id={injury_id}&position={position}&multi_position={multi_position}&ability_gk={ability_gk}&ability_tackling={ability_tackling}&ability_passing={ability_passing}&ability_shooting={ability_shooting}&banned={banned}&cup_tied={cup_tied}&yellow_cards={yellow_cards}&red_cards={red_cards}"
const response = await fetch("/api/players/detailed?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&age_min={age_min}&age_max={age_max}&age={age}&player_id={player_id}&wages_min={wages_min}&wages_max={wages_max}&contract_min={contract_min}&contract_max={contract_max}&rating_min={rating_min}&rating_max={rating_max}&rating_gk_min={rating_gk_min}&rating_gk_max={rating_gk_max}&rating_tackling_min={rating_tackling_min}&rating_tackling_max={rating_tackling_max}&rating_passing_min={rating_passing_min}&rating_passing_max={rating_passing_max}&rating_shooting_min={rating_shooting_min}&rating_shooting_max={rating_shooting_max}&rating_aggression_min={rating_aggression_min}&rating_aggression_max={rating_aggression_max}&rating_stamina_min={rating_stamina_min}&rating_stamina_max={rating_stamina_max}&value_min={value_min}&value_max={value_max}&desired_contract_min={desired_contract_min}&desired_contract_max={desired_contract_max}&country_id={country_id}&owned={owned}&positions={positions}&club_id={club_id}&allow_transfer={allow_transfer}&allow_renew={allow_renew}&fitness={fitness}&retired={retired}&morale={morale}&injured={injured}&injury_id={injury_id}&position={position}&multi_position={multi_position}&ability_gk={ability_gk}&ability_tackling={ability_tackling}&ability_passing={ability_passing}&ability_shooting={ability_shooting}&banned={banned}&cup_tied={cup_tied}&yellow_cards={yellow_cards}&red_cards={red_cards}");
const data = await response.json();
console.log(data);
import requests

url = "/api/players/detailed"
params = {"page": "{page}", "per_page": "{per_page}", "sort_by": "{sort_by}", "sort_order": "{sort_order}", "age_min": "{age_min}", "age_max": "{age_max}", "age": "{age}", "player_id": "{player_id}", "wages_min": "{wages_min}", "wages_max": "{wages_max}", "contract_min": "{contract_min}", "contract_max": "{contract_max}", "rating_min": "{rating_min}", "rating_max": "{rating_max}", "rating_gk_min": "{rating_gk_min}", "rating_gk_max": "{rating_gk_max}", "rating_tackling_min": "{rating_tackling_min}", "rating_tackling_max": "{rating_tackling_max}", "rating_passing_min": "{rating_passing_min}", "rating_passing_max": "{rating_passing_max}", "rating_shooting_min": "{rating_shooting_min}", "rating_shooting_max": "{rating_shooting_max}", "rating_aggression_min": "{rating_aggression_min}", "rating_aggression_max": "{rating_aggression_max}", "rating_stamina_min": "{rating_stamina_min}", "rating_stamina_max": "{rating_stamina_max}", "value_min": "{value_min}", "value_max": "{value_max}", "desired_contract_min": "{desired_contract_min}", "desired_contract_max": "{desired_contract_max}", "country_id": "{country_id}", "owned": "{owned}", "positions": "{positions}", "club_id": "{club_id}", "allow_transfer": "{allow_transfer}", "allow_renew": "{allow_renew}", "fitness": "{fitness}", "retired": "{retired}", "morale": "{morale}", "injured": "{injured}", "injury_id": "{injury_id}", "position": "{position}", "multi_position": "{multi_position}", "ability_gk": "{ability_gk}", "ability_tackling": "{ability_tackling}", "ability_passing": "{ability_passing}", "ability_shooting": "{ability_shooting}", "banned": "{banned}", "cup_tied": "{cup_tied}", "yellow_cards": "{yellow_cards}", "red_cards": "{red_cards}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page PerPageOptions Number of records per page (options: 5, 10, 20, 50) No 20
sort_by object Field to sort by No
sort_order object Sort order: 'asc' or 'desc' No asc
age_min object Minimum age for players No
age_max object Maximum age for players No
age object Exact age for players No
player_id object Filter by specific player ID(s) No
wages_min object Minimum wages No
wages_max object Maximum wages No
contract_min object Minimum contract No
contract_max object Maximum contract No
rating_min object Minimum rating No
rating_max object Maximum rating No
rating_gk_min object Minimum rating_gk No
rating_gk_max object Maximum rating_gk No
rating_tackling_min object Minimum rating_tackling No
rating_tackling_max object Maximum rating_tackling No
rating_passing_min object Minimum rating_passing No
rating_passing_max object Maximum rating_passing No
rating_shooting_min object Minimum rating_shooting No
rating_shooting_max object Maximum rating_shooting No
rating_aggression_min object Minimum rating_aggression No
rating_aggression_max object Maximum rating_aggression No
rating_stamina_min object Minimum rating_stamina No
rating_stamina_max object Maximum rating_stamina No
value_min object Minimum value No
value_max object Maximum value No
desired_contract_min object Minimum desired_contract No
desired_contract_max object Maximum desired_contract No
country_id object Country ID to filter players No
owned object Filter players owned by the given name No
positions object Comma-separated list of positions to filter players No
club_id object Filter by specific club ID No
allow_transfer object Filter by allow_transfer value No
allow_renew object Filter by allow_renew value No
fitness object Filter by fitness No
retired object Filter by retired No
morale object Filter by morale No
injured object Filter by injured No
injury_id object Filter by injury_id No
position object Filter by position No
multi_position object Filter by multi_position No
ability_gk object Filter by ability_gk No
ability_tackling object Filter by ability_tackling No
ability_passing object Filter by ability_passing No
ability_shooting object Filter by ability_shooting No
banned object Filter by banned No
cup_tied object Filter by cup_tied No
yellow_cards object Filter by yellow_cards No
red_cards object Filter by red_cards No

Response example

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "player_id": 0,
      "fitness": 0,
      "retired": 0,
      "morale": 0,
      "injured": 0,
      "injury_id": 0,
      "wages": 0,
      "contract": 0,
      "form": "",
      "position": 0,
      "multi_position": 0,
      "positions": [
        ""
      ],
      "rating": 0,
      "rating_gk": 0,
      "rating_tackling": 0,
      "rating_passing": 0,
      "rating_shooting": 0,
      "rating_stamina": 0,
      "rating_aggression": 0,
      "banned": 0,
      "cup_tied": 0,
      "yellow_cards": 0,
      "red_cards": 0,
      "dob": 0,
      "side": "",
      "value": 0,
      "country_id": "",
      "club_id": 0,
      "agent_name": "",
      "desired_contract": 0,
      "allow_transfer": 0,
      "allow_renew": 0,
      "age": 0,
      "last_price": 0,
      "volume_1_day": 0,
      "volume_7_day": 0,
      "last_7days": [
        0
      ],
      "last_7days_price": [
        0
      ],
      "profile_pic": ""
    }
  ]
}

Response Fields

Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[PlayerDetailedResponse] Items

Club Methods

Methods Summary

Endpoint Description Method
/clubs Retrieve influence market data for clubs GET
/clubs/detailed Retrieve detailed data for clubs GET
/best_managers Get best managers data GET
/club_balance_sheet/weeks Get club balance sheet entries by game week GET

Retrieve influence market data for clubs

Request example:

curl -X GET "/api/clubs?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&club_id={club_id}&country_id={country_id}&owned={owned}&manager_locked={manager_locked}&balance_min={balance_min}&balance_max={balance_max}"
const response = await fetch("/api/clubs?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&club_id={club_id}&country_id={country_id}&owned={owned}&manager_locked={manager_locked}&balance_min={balance_min}&balance_max={balance_max}");
const data = await response.json();
console.log(data);
import requests

url = "/api/clubs"
params = {"page": "{page}", "per_page": "{per_page}", "sort_by": "{sort_by}", "sort_order": "{sort_order}", "club_id": "{club_id}", "country_id": "{country_id}", "owned": "{owned}", "manager_locked": "{manager_locked}", "balance_min": "{balance_min}", "balance_max": "{balance_max}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page PerPageOptions Number of records per page (options: 5, 20, 50) No 20
sort_by object Field to sort by No
sort_order object Sort order: 'asc' or 'desc' No asc
club_id object Filter by specific club ID(s) No
country_id object Country ID to filter clubs No
owned object Filter clubs owned by the given name No
manager_locked object Exact value for manager_locked No
balance_min object Minimum balance No
balance_max object Maximum balance No

Response example

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "club_id": 0,
      "last_price": 0,
      "volume_1_day": 0,
      "volume_7_day": 0,
      "last_7days": [
        0
      ],
      "last_7days_price": [
        0
      ],
      "balance": 0,
      "manager_name": "",
      "country_id": "",
      "value": 0,
      "rating_start": 0,
      "profile_pic": ""
    }
  ]
}

Response Fields

Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[ClubResponse] Items

Retrieve detailed data for clubs

Request example:

curl -X GET "/api/clubs/detailed?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&club_id={club_id}&country_id={country_id}&owned={owned}&manager_locked={manager_locked}&available={available}&league_id={league_id}&division={division}&balance_min={balance_min}&balance_max={balance_max}&division_start_min={division_start_min}&division_start_max={division_start_max}&fans_start_min={fans_start_min}&fans_start_max={fans_start_max}&fans_current_min={fans_current_min}&fans_current_max={fans_current_max}&stadium_size_start_min={stadium_size_start_min}&stadium_size_start_max={stadium_size_start_max}&stadium_size_current_min={stadium_size_current_min}&stadium_size_current_max={stadium_size_current_max}&stadium_id_min={stadium_id_min}&stadium_id_max={stadium_id_max}&value_min={value_min}&value_max={value_max}&rating_start_min={rating_start_min}&rating_start_max={rating_start_max}&default_formation_min={default_formation_min}&default_formation_max={default_formation_max}&penalty_taker_min={penalty_taker_min}&penalty_taker_max={penalty_taker_max}&transfers_in_min={transfers_in_min}&transfers_in_max={transfers_in_max}&transfers_out_min={transfers_out_min}&transfers_out_max={transfers_out_max}"
const response = await fetch("/api/clubs/detailed?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&club_id={club_id}&country_id={country_id}&owned={owned}&manager_locked={manager_locked}&available={available}&league_id={league_id}&division={division}&balance_min={balance_min}&balance_max={balance_max}&division_start_min={division_start_min}&division_start_max={division_start_max}&fans_start_min={fans_start_min}&fans_start_max={fans_start_max}&fans_current_min={fans_current_min}&fans_current_max={fans_current_max}&stadium_size_start_min={stadium_size_start_min}&stadium_size_start_max={stadium_size_start_max}&stadium_size_current_min={stadium_size_current_min}&stadium_size_current_max={stadium_size_current_max}&stadium_id_min={stadium_id_min}&stadium_id_max={stadium_id_max}&value_min={value_min}&value_max={value_max}&rating_start_min={rating_start_min}&rating_start_max={rating_start_max}&default_formation_min={default_formation_min}&default_formation_max={default_formation_max}&penalty_taker_min={penalty_taker_min}&penalty_taker_max={penalty_taker_max}&transfers_in_min={transfers_in_min}&transfers_in_max={transfers_in_max}&transfers_out_min={transfers_out_min}&transfers_out_max={transfers_out_max}");
const data = await response.json();
console.log(data);
import requests

url = "/api/clubs/detailed"
params = {"page": "{page}", "per_page": "{per_page}", "sort_by": "{sort_by}", "sort_order": "{sort_order}", "club_id": "{club_id}", "country_id": "{country_id}", "owned": "{owned}", "manager_locked": "{manager_locked}", "available": "{available}", "league_id": "{league_id}", "division": "{division}", "balance_min": "{balance_min}", "balance_max": "{balance_max}", "division_start_min": "{division_start_min}", "division_start_max": "{division_start_max}", "fans_start_min": "{fans_start_min}", "fans_start_max": "{fans_start_max}", "fans_current_min": "{fans_current_min}", "fans_current_max": "{fans_current_max}", "stadium_size_start_min": "{stadium_size_start_min}", "stadium_size_start_max": "{stadium_size_start_max}", "stadium_size_current_min": "{stadium_size_current_min}", "stadium_size_current_max": "{stadium_size_current_max}", "stadium_id_min": "{stadium_id_min}", "stadium_id_max": "{stadium_id_max}", "value_min": "{value_min}", "value_max": "{value_max}", "rating_start_min": "{rating_start_min}", "rating_start_max": "{rating_start_max}", "default_formation_min": "{default_formation_min}", "default_formation_max": "{default_formation_max}", "penalty_taker_min": "{penalty_taker_min}", "penalty_taker_max": "{penalty_taker_max}", "transfers_in_min": "{transfers_in_min}", "transfers_in_max": "{transfers_in_max}", "transfers_out_min": "{transfers_out_min}", "transfers_out_max": "{transfers_out_max}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page PerPageOptions Number of records per page (options: 5, 20, 50) No 20
sort_by object Field to sort by No
sort_order object Sort order: 'asc' or 'desc' No asc
club_id object Filter by specific club ID(s) No
country_id object Country ID to filter clubs No
owned object Filter clubs owned by the given name No
manager_locked object Exact value for manager_locked No
available object Availability status: 1 (available) or 0 (not available) No
league_id object Filter by league ID No
division object Filter by division No
balance_min object Minimum balance No
balance_max object Maximum balance No
division_start_min object Minimum division_start No
division_start_max object Maximum division_start No
fans_start_min object Minimum fans_start No
fans_start_max object Maximum fans_start No
fans_current_min object Minimum fans_current No
fans_current_max object Maximum fans_current No
stadium_size_start_min object Minimum stadium_size_start No
stadium_size_start_max object Maximum stadium_size_start No
stadium_size_current_min object Minimum stadium_size_current No
stadium_size_current_max object Maximum stadium_size_current No
stadium_id_min object Minimum stadium_id No
stadium_id_max object Maximum stadium_id No
value_min object Minimum value No
value_max object Maximum value No
rating_start_min object Minimum rating No
rating_start_max object Maximum rating No
default_formation_min object Minimum default_formation No
default_formation_max object Maximum default_formation No
penalty_taker_min object Minimum penalty_taker No
penalty_taker_max object Maximum penalty_taker No
transfers_in_min object Minimum transfers_in No
transfers_in_max object Maximum transfers_in No
transfers_out_min object Minimum transfers_out No
transfers_out_max object Maximum transfers_out No

Response example

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "club_id": 0,
      "balance": 0,
      "form": "",
      "division_start": 0,
      "fans_start": 0,
      "fans_current": 0,
      "stadium_size_start": 0,
      "stadium_size_current": 0,
      "stadium_id": 0,
      "value": 0,
      "rating_start": 0,
      "manager_name": "",
      "default_formation": 0,
      "penalty_taker": 0,
      "country_id": "",
      "manager_locked": 0,
      "transfers_in": 0,
      "transfers_out": 0,
      "committed_tactics": "",
      "proposed_manager": "",
      "last_price": 0,
      "volume_1_day": 0,
      "volume_7_day": 0,
      "last_7days": [
        0
      ],
      "last_7days_price": [
        0
      ],
      "available": 0,
      "league_id": 0,
      "division": 0,
      "avg_wages": 0,
      "total_wages": 0,
      "total_player_value": 0,
      "avg_player_rating": 0,
      "avg_player_rating_top21": 0,
      "avg_shooting": 0,
      "avg_passing": 0,
      "avg_tackling": 0,
      "gk_rating": 0,
      "profile_pic": "",
      "manager_voted": 0
    }
  ]
}

Response Fields

Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[ClubDetailedResponse] Items

Get best managers data

Request example:

curl -X GET "/api/best_managers?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&name={name}"
const response = await fetch("/api/best_managers?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&name={name}");
const data = await response.json();
console.log(data);
import requests

url = "/api/best_managers"
params = {"page": "{page}", "per_page": "{per_page}", "sort_by": "{sort_by}", "sort_order": "{sort_order}", "name": "{name}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page PerPageOptions Number of records per page (options: 5, 20, 50) No 20
sort_by BestManagersSortBy Field to sort by No rank_a_ranking
sort_order object Sort order: 'asc' or 'desc' No asc
name object Filter by specific user name (case sensitive) No

Response example

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "name": "",
      "rank_old": 0,
      "rank_old_ranking": 0,
      "rank_a": 0,
      "rank_a_ranking": 0,
      "rank_b": 0,
      "rank_b_ranking": 0,
      "profile_pic": ""
    }
  ]
}

Response Fields

Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[BestManagersResponse] Items

Get club balance sheet entries by game week

Request example:

curl -X GET "/api/club_balance_sheet/weeks?club_id={club_id}&season_id={season_id}"
const response = await fetch("/api/club_balance_sheet/weeks?club_id={club_id}&season_id={season_id}");
const data = await response.json();
console.log(data);
import requests

url = "/api/club_balance_sheet/weeks"
params = {"club_id": "{club_id}", "season_id": "{season_id}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
club_id integer Club ID Yes
season_id integer Season ID Yes

Response example

[
  {
    "season": 0,
    "game_week": 0,
    "date": 0,
    "agent_wages": 0,
    "cash_injection": 0,
    "gate_receipts": 0,
    "ground_maintenance": 0,
    "managers_wage": 0,
    "merchandise": 0,
    "other_income": 0,
    "other_outgoings": 0,
    "player_wages": 0,
    "prize_money": 0,
    "shareholder_payouts": 0,
    "shareholder_prize_money": 0,
    "sponsor": 0,
    "transfers_in": 0,
    "transfers_out": 0,
    "tv_revenue": 0
  }
]

Response Fields

Field Type Description
season integer Season
game_week integer Game Week
date integer Date
agent_wages integer Agent Wages
cash_injection integer Cash Injection
gate_receipts integer Gate Receipts
ground_maintenance integer Ground Maintenance
managers_wage integer Managers Wage
merchandise integer Merchandise
other_income integer Other Income
other_outgoings integer Other Outgoings
player_wages integer Player Wages
prize_money integer Prize Money
shareholder_payouts integer Shareholder Payouts
shareholder_prize_money integer Shareholder Prize Money
sponsor integer Sponsor
transfers_in integer Transfers In
transfers_out integer Transfers Out
tv_revenue integer Tv Revenue

League Methods

Methods Summary

Endpoint Description Method
/leagues Retrieve data for leagues (with 5-min cache) GET
/league_tables Get league table standings GET

Retrieve data for leagues (with 5-min cache)

Request example:

curl -X GET "/api/leagues?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&country_id={country_id}&division={division}&league_id={league_id}"
const response = await fetch("/api/leagues?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&country_id={country_id}&division={division}&league_id={league_id}");
const data = await response.json();
console.log(data);
import requests

url = "/api/leagues"
params = {"page": "{page}", "per_page": "{per_page}", "sort_by": "{sort_by}", "sort_order": "{sort_order}", "country_id": "{country_id}", "division": "{division}", "league_id": "{league_id}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page PerPageOptions Number of records per page (options: 5, 10, 20, 50) No 20
sort_by object Field to sort by No
sort_order object Sort order: 'asc' or 'desc' No asc
country_id object Filter by country ID No
division object Filter by division (league level) No
league_id object Filter by league ID No

Response example

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "league_id": 0,
      "country_id": "",
      "division": 0,
      "ticket_cost": 0,
      "tv_money": 0,
      "prize_money_pot": 0,
      "ave_attendance": 0,
      "num_teams": 0,
      "round": 0,
      "num_rounds": 0,
      "comp_type": 0,
      "total_volume_1_day": 0,
      "total_volume_7_day": 0,
      "last_7days": [
        0
      ],
      "volume_clubs_1_day": 0,
      "volume_players_1_day": 0,
      "volume_clubs_7_day": 0,
      "volume_players_7_day": 0,
      "market_cap": 0,
      "club_market_cap": 0,
      "player_market_cap": 0,
      "total_wages": 0,
      "avg_wages": 0,
      "total_player_value": 0,
      "total_clubs": 0,
      "total_players": 0,
      "total_available_jobs": 0
    }
  ]
}

Response Fields

Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[LeagueResponse] Items

Get league table standings

Request example:

curl -X GET "/api/league_tables?league_id={league_id}&country_id={country_id}&division={division}&season_id={season_id}"
const response = await fetch("/api/league_tables?league_id={league_id}&country_id={country_id}&division={division}&season_id={season_id}");
const data = await response.json();
console.log(data);
import requests

url = "/api/league_tables"
params = {"league_id": "{league_id}", "country_id": "{country_id}", "division": "{division}", "season_id": "{season_id}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
league_id object League ID No
country_id object Country ID No
division object Division (level) No
season_id object Season ID No

Response example

[
  {
    "club_id": 0,
    "league_id": 0,
    "manager_name": "",
    "manager_profile_pic": "",
    "manager_last_active_unix": 0,
    "country_id": "",
    "division": 0,
    "club_ix": 0,
    "played": 0,
    "won": 0,
    "drawn": 0,
    "lost": 0,
    "goals_for": 0,
    "goals_against": 0,
    "pts": 0,
    "form": "",
    "old_position": 0,
    "new_position": 0,
    "season_id": 0,
    "stadium_size": 0,
    "fanbase": 0,
    "balance": 0,
    "avg_player_rating": 0,
    "top_3_players": [
      0
    ]
  }
]

Response Fields

Field Type Description
club_id integer Club Id
league_id integer League Id
manager_name object Manager Name
manager_profile_pic object Manager Profile Pic
manager_last_active_unix object Manager Last Active Unix
country_id string Country Id
division integer Division
club_ix integer Club Ix
played integer Played
won integer Won
drawn integer Drawn
lost integer Lost
goals_for integer Goals For
goals_against integer Goals Against
pts integer Pts
form string Form
old_position integer Old Position
new_position integer New Position
season_id integer Season Id
stadium_size object Stadium Size
fanbase object Fanbase
balance object Balance
avg_player_rating object Avg Player Rating
top_3_players object Top 3 Players

User Methods

Methods Summary

Endpoint Description Method
/users Get user list and basic data GET
/users/detailed Get detailed user and trading data GET
/user_activity Get user activity stats GET
/user_balance_sheet Get user balance sheet entries GET
/user_balance_sheet/weeks Get weekly aggregated user balance sheets GET
/user_balance_sheet/earnings Get aggregated SVC earnings GET

Get user list and basic data

Request example:

curl -X GET "/api/users?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&name_prefix={name_prefix}&names={names}"
const response = await fetch("/api/users?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&name_prefix={name_prefix}&names={names}");
const data = await response.json();
console.log(data);
import requests

url = "/api/users"
params = {"page": "{page}", "per_page": "{per_page}", "sort_by": "{sort_by}", "sort_order": "{sort_order}", "name_prefix": "{name_prefix}", "names": "{names}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page PerPageOptions Number of records per page (options: 5, 20, 50, 100) No 20
sort_by object Field to sort by No
sort_order object Sort order: 'asc' or 'desc' No asc
name_prefix object Name prefix to search No
names object List of names to include No

Response example

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "name": "",
      "balance": 0,
      "last_active_unix": 0,
      "last_active": "",
      "club_id": 0,
      "profile_pic": "",
      "manager_voted": 0
    }
  ]
}

Response Fields

Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[UserResponse] Items

Get detailed user and trading data

Request example:

curl -X GET "/api/users/detailed?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&name_prefix={name_prefix}&names={names}&buy_volume_min={buy_volume_min}&buy_volume_max={buy_volume_max}&sell_volume_min={sell_volume_min}&sell_volume_max={sell_volume_max}&total_volume_min={total_volume_min}&total_volume_max={total_volume_max}"
const response = await fetch("/api/users/detailed?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&name_prefix={name_prefix}&names={names}&buy_volume_min={buy_volume_min}&buy_volume_max={buy_volume_max}&sell_volume_min={sell_volume_min}&sell_volume_max={sell_volume_max}&total_volume_min={total_volume_min}&total_volume_max={total_volume_max}");
const data = await response.json();
console.log(data);
import requests

url = "/api/users/detailed"
params = {"page": "{page}", "per_page": "{per_page}", "sort_by": "{sort_by}", "sort_order": "{sort_order}", "name_prefix": "{name_prefix}", "names": "{names}", "buy_volume_min": "{buy_volume_min}", "buy_volume_max": "{buy_volume_max}", "sell_volume_min": "{sell_volume_min}", "sell_volume_max": "{sell_volume_max}", "total_volume_min": "{total_volume_min}", "total_volume_max": "{total_volume_max}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page PerPageOptions Number of records per page (options: 5, 20, 50, 100) No 20
sort_by object Field to sort by No
sort_order object Sort order: 'asc' or 'desc' No asc
name_prefix object Name prefix to search No
names object List of names to include No
buy_volume_min object Minimum buy volume (1 day) No
buy_volume_max object Maximum buy volume (1 day) No
sell_volume_min object Minimum sell volume (1 day) No
sell_volume_max object Maximum sell volume (1 day) No
total_volume_min object Minimum total volume No
total_volume_max object Maximum total volume No

Response example

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "name": "",
      "balance": 0,
      "last_active_unix": 0,
      "last_active": "",
      "club_id": 0,
      "profile_pic": "",
      "manager_voted": 0,
      "buy_volume_1_day": 0,
      "buy_volume_7_day": 0,
      "sell_volume_1_day": 0,
      "sell_volume_7_day": 0,
      "buy_total_volume": 0,
      "sell_total_volume": 0,
      "total_volume": 0,
      "total_volume_30_day": 0,
      "first_trade_date": 0,
      "tenth_trade_date": 0,
      "hundredth_trade_date": 0,
      "thousandth_trade_date": 0,
      "biggest_trade": 0,
      "last_7days": [
        0
      ],
      "last_30days": [
        0
      ]
    }
  ]
}

Response Fields

Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[UserDetailedResponse] Items

Get user activity stats

Request example:

curl -X GET "/api/user_activity?name={name}"
const response = await fetch("/api/user_activity?name={name}");
const data = await response.json();
console.log(data);
import requests

url = "/api/user_activity"
params = {"name": "{name}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
name object Filter by username No

Response example

[
  {
    "name": "",
    "last_active_unix": 0,
    "first_move": 0,
    "rank": 0,
    "points": 0,
    "profile_pic": ""
  }
]

Response Fields

Field Type Description
name string Name
last_active_unix integer Last Active Unix
first_move integer First Move
rank integer Rank
points integer Points
profile_pic object Profile Pic

Get user balance sheet entries

Request example:

curl -X GET "/api/user_balance_sheet?page={page}&per_page={per_page}&name={name}&from_time={from_time}&to_time={to_time}"
const response = await fetch("/api/user_balance_sheet?page={page}&per_page={per_page}&name={name}&from_time={from_time}&to_time={to_time}");
const data = await response.json();
console.log(data);
import requests

url = "/api/user_balance_sheet"
params = {"page": "{page}", "per_page": "{per_page}", "name": "{name}", "from_time": "{from_time}", "to_time": "{to_time}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page PerPageOptionsExtended Number of records per page (options: 5, 20, 50, 100) No 50
name string Name of the user (exact match) Yes
from_time object Unix time integer for start of time range No
to_time object Unix time integer for end of time range No

Response example

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "name": "",
      "amount": 0,
      "type": "",
      "other_name": "",
      "other_type": "",
      "other_id": 0,
      "time": "",
      "unix_time": 0
    }
  ]
}

Response Fields

Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[UserBalanceSheetResponse] Items

Get weekly aggregated user balance sheets

Request example:

curl -X GET "/api/user_balance_sheet/weeks?page={page}&per_page={per_page}&name={name}"
const response = await fetch("/api/user_balance_sheet/weeks?page={page}&per_page={per_page}&name={name}");
const data = await response.json();
console.log(data);
import requests

url = "/api/user_balance_sheet/weeks"
params = {"page": "{page}", "per_page": "{per_page}", "name": "{name}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page integer Number of weeks per page No 10
name string Name of the user (exact match) Yes

Response example

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "name": "",
      "week_start_unix_time": 0,
      "week_end_unix_time": 0,
      "totals": [
        {
          "type": "",
          "amount": 0
        }
      ]
    }
  ]
}

Response Fields

Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[UserWeeklyBalanceSheetResponse] Items

Get aggregated SVC earnings

Request example:

curl -X GET "/api/user_balance_sheet/earnings?name={name}"
const response = await fetch("/api/user_balance_sheet/earnings?name={name}");
const data = await response.json();
console.log(data);
import requests

url = "/api/user_balance_sheet/earnings"
params = {"name": "{name}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
name string Name of the user (exact match) Yes

Response example

{
  "svc2usdc": 0,
  "earnings_7d": {
    "svc": 0,
    "usdc": 0
  },
  "earnings_14d": {},
  "earnings_30d": {},
  "earnings_last_match_day": {}
}

Response Fields

Field Type Description
svc2usdc number Svc2Usdc
earnings_7d EarningsPeriod
earnings_14d EarningsPeriod
earnings_30d EarningsPeriod
earnings_last_match_day EarningsPeriod

Market Methods

Methods Summary

Endpoint Description Method
/market Obtain overall market metrics GET

Obtain overall market metrics

Request example:

curl -X GET "/api/market"
const response = await fetch("/api/market");
const data = await response.json();
console.log(data);
import requests

response = requests.get("/api/market")
data = response.json()
print(data)

Response example

{
  "TotalPlayers": 0,
  "PlayersMarketCap": 0,
  "PlayerValues": 0,
  "Players7dayVolume": 0,
  "TotalClubs": 0,
  "ClubsMarketCap": 0,
  "ClubBalances": 0,
  "Clubs7dayVolume": 0,
  "TotalMarketCap": 0,
  "Total7dayVolume": 0,
  "UserBalances": 0,
  "UserTotalVolume": 0,
  "NumberOfUsers": 0,
  "NumberAgents": 0,
  "NumberManagers": 0,
  "ActiveUsers": 0,
  "ActiveManagers": 0,
  "InactiveManagers": 0,
  "NumberManagersLocked": 0,
  "NumberManagersUnlocked": 0,
  "SVC2USDC": 0
}

Response Fields

Field Type Description
TotalPlayers integer Totalplayers
PlayersMarketCap integer Playersmarketcap
PlayerValues integer Playervalues
Players7dayVolume integer Players7Dayvolume
TotalClubs integer Totalclubs
ClubsMarketCap integer Clubsmarketcap
ClubBalances integer Clubbalances
Clubs7dayVolume integer Clubs7Dayvolume
TotalMarketCap integer Totalmarketcap
Total7dayVolume integer Total7Dayvolume
UserBalances integer Userbalances
UserTotalVolume integer Usertotalvolume
NumberOfUsers integer Numberofusers
NumberAgents integer Numberagents
NumberManagers integer Numbermanagers
ActiveUsers integer Activeusers
ActiveManagers integer Activemanagers
InactiveManagers integer Inactivemanagers
NumberManagersLocked integer Numbermanagerslocked
NumberManagersUnlocked integer Numbermanagersunlocked
SVC2USDC number Svc2Usdc

Share Trading Methods

Methods Summary

Endpoint Description Method
/share_trade_history Retrieve share trade history GET
/trading_graph Retrieve aggregated trading data GET
/share_balances Retrieve influence balances GET

Retrieve share trade history

Request example:

curl -X GET "/api/share_trade_history?page={page}&per_page={per_page}&name={name}&club_id={club_id}&player_id={player_id}&sort_by={sort_by}&sort_order={sort_order}"
const response = await fetch("/api/share_trade_history?page={page}&per_page={per_page}&name={name}&club_id={club_id}&player_id={player_id}&sort_by={sort_by}&sort_order={sort_order}");
const data = await response.json();
console.log(data);
import requests

url = "/api/share_trade_history"
params = {"page": "{page}", "per_page": "{per_page}", "name": "{name}", "club_id": "{club_id}", "player_id": "{player_id}", "sort_by": "{sort_by}", "sort_order": "{sort_order}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page integer Number of records per page No 50
name object Name of the buyer or seller No
club_id object Club ID to filter trades No
player_id object Player ID to filter trades No
sort_by object Field to sort by (e.g. 'unix_time', 'price', 'num', or 'id') No
sort_order object Sort order: 'asc' or 'desc' No desc

Response example

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "id": 0,
      "time": "",
      "unix_time": 0,
      "share_type": "",
      "share_id": 0,
      "buyer": "",
      "buyer_profile_pic": "",
      "seller": "",
      "seller_profile_pic": "",
      "num": 0,
      "price": 0,
      "market_buy": false
    }
  ]
}

Response Fields

Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[ShareTradeResponse] Items

Retrieve aggregated trading data

Request example:

curl -X GET "/api/trading_graph?club_id={club_id}&player_id={player_id}&time_range={time_range}"
const response = await fetch("/api/trading_graph?club_id={club_id}&player_id={player_id}&time_range={time_range}");
const data = await response.json();
console.log(data);
import requests

url = "/api/trading_graph"
params = {"club_id": "{club_id}", "player_id": "{player_id}", "time_range": "{time_range}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
club_id object Club ID No
player_id object Player ID No
time_range TimeRangeEnum Time range: '1d', '7d', '30d', '90d', '6m', '1y' Yes

Response example

[
  {
    "timestamp": 0,
    "datetime": "",
    "volume": 0,
    "weighted_average_price": 0
  }
]

Response Fields

Field Type Description
timestamp integer Timestamp
datetime string Datetime
volume integer Volume
weighted_average_price number Weighted Average Price

Retrieve influence balances

Request example:

curl -X GET "/api/share_balances?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&club_id={club_id}&player_id={player_id}&name={name}&countries={countries}&leagues={leagues}&country_id={country_id}&league_id={league_id}"
const response = await fetch("/api/share_balances?page={page}&per_page={per_page}&sort_by={sort_by}&sort_order={sort_order}&club_id={club_id}&player_id={player_id}&name={name}&countries={countries}&leagues={leagues}&country_id={country_id}&league_id={league_id}");
const data = await response.json();
console.log(data);
import requests

url = "/api/share_balances"
params = {"page": "{page}", "per_page": "{per_page}", "sort_by": "{sort_by}", "sort_order": "{sort_order}", "club_id": "{club_id}", "player_id": "{player_id}", "name": "{name}", "countries": "{countries}", "leagues": "{leagues}", "country_id": "{country_id}", "league_id": "{league_id}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page PerPageOptions Number of records per page (options: 5, 10, 20, 50) No 20
sort_by object Field to sort by (options: 'name', 'share_type', 'share_id', 'num') No
sort_order object Sort order: 'asc' or 'desc' No asc
club_id object Filter by club ID No
player_id object Filter by player ID No
name object Filter by name No
countries object Set to True to get data aggregated per country No False
leagues object Set to True to get data aggregated per league No False
country_id object Filter by country ID (used with name) No
league_id object Filter by league ID (used with name) No

Rich List Methods

Methods Summary

Endpoint Description Method
/rich_list Retrieve the richest users GET

Retrieve the richest users

Request example:

curl -X GET "/api/rich_list?page={page}&per_page={per_page}&name={name}&sort_by={sort_by}&sort_order={sort_order}"
const response = await fetch("/api/rich_list?page={page}&per_page={per_page}&name={name}&sort_by={sort_by}&sort_order={sort_order}");
const data = await response.json();
console.log(data);
import requests

url = "/api/rich_list"
params = {"page": "{page}", "per_page": "{per_page}", "name": "{name}", "sort_by": "{sort_by}", "sort_order": "{sort_order}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
page integer Page number, starting from 1 No 1
per_page PerPageOptions Number of records per page (options: 5, 10, 20, 50, 100) No 20
name object Filter by specific user name (case sensitive) No
sort_by RichListSortBy Field to sort by ('balance' or 'total_networth') No total_networth
sort_order object Sort order: 'asc' or 'desc' No desc

Response example

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "name": "",
      "balance": 0,
      "club_asset_value": 0,
      "player_asset_value": 0,
      "total_networth": 0,
      "rank": 0,
      "profile_pic": ""
    }
  ]
}

Response Fields

Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[RichListResponse] Items

Achievement Methods

Methods Summary

Endpoint Description Method
/achievements Get user achievements status GET

Get user achievements status

Request example:

curl -X GET "/api/achievements?username={username}"
const response = await fetch("/api/achievements?username={username}");
const data = await response.json();
console.log(data);
import requests

url = "/api/achievements"
params = {"username": "{username}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
username string User's xayaname Yes

Response example

{
  "username": "",
  "update_profile_picture": 0,
  "refer_a_friend": 0,
  "complete_a_trade": 0,
  "buy_a_pack": 0,
  "link_discord": 0,
  "enable_social_notifications": 0,
  "profile_pic": ""
}

Response Fields

Field Type Description
username string Username
update_profile_picture integer Update Profile Picture
refer_a_friend integer Refer A Friend
complete_a_trade integer Complete A Trade
buy_a_pack integer Buy A Pack
link_discord integer Link Discord
enable_social_notifications integer Enable Social Notifications
profile_pic string Profile Pic

Leaderboard Methods

Methods Summary

Endpoint Description Method
/leaderboards/referrals/time-range Get top 20 referrers within a specific time range GET
/leaderboards/referrals/all Get top 20 referrers for all time GET

Get top 20 referrers within a specific time range

Request example:

curl -X GET "/api/leaderboards/referrals/time-range"
const response = await fetch("/api/leaderboards/referrals/time-range");
const data = await response.json();
console.log(data);
import requests

response = requests.get("/api/leaderboards/referrals/time-range")
data = response.json()
print(data)

Response example

{
  "entries": [
    {
      "account": "",
      "totalBonusShares": 0
    }
  ]
}

Response Fields

Field Type Description
entries array[LeaderboardEntry] Entries

Get top 20 referrers for all time

Request example:

curl -X GET "/api/leaderboards/referrals/all"
const response = await fetch("/api/leaderboards/referrals/all");
const data = await response.json();
console.log(data);
import requests

response = requests.get("/api/leaderboards/referrals/all")
data = response.json()
print(data)

Response example

{
  "entries": [
    {
      "account": "",
      "totalBonusShares": 0
    }
  ]
}

Response Fields

Field Type Description
entries array[LeaderboardEntry] Entries

Countries Methods

Methods Summary

Endpoint Description Method
/countries Retrieve data for countries GET

Retrieve data for countries

Request example:

curl -X GET "/api/countries?sort_by={sort_by}&sort_order={sort_order}&country_id={country_id}"
const response = await fetch("/api/countries?sort_by={sort_by}&sort_order={sort_order}&country_id={country_id}");
const data = await response.json();
console.log(data);
import requests

url = "/api/countries"
params = {"sort_by": "{sort_by}", "sort_order": "{sort_order}", "country_id": "{country_id}"}
response = requests.get(url, params=params)
data = response.json()
print(data)

Query Parameters

Parameter Type Description Required Default
sort_by object Field to sort by No
sort_order object Sort order: 'asc' or 'desc' No desc
country_id object Filter by country ID No

Response example

[
  {
    "country_id": "",
    "total_clubs": 0,
    "total_players": 0,
    "total_volume_1_day": 0,
    "total_volume_7_day": 0,
    "last_7days": [
      0
    ],
    "market_cap": 0,
    "club_market_cap": 0,
    "player_market_cap": 0,
    "total_available_jobs": 0,
    "total_leagues": 0
  }
]

Response Fields

Field Type Description
country_id string Country Id
total_clubs integer Total Clubs
total_players integer Total Players
total_volume_1_day integer Total Volume 1 Day
total_volume_7_day integer Total Volume 7 Day
last_7days object Last 7Days
market_cap integer Market Cap
club_market_cap integer Club Market Cap
player_market_cap integer Player Market Cap
total_available_jobs integer Total Available Jobs
total_leagues integer Total Leagues

Schema

This section provides data model definitions for the Datacentre API.

AchievementsResponse

{
  "username": "",
  "update_profile_picture": 0,
  "refer_a_friend": 0,
  "complete_a_trade": 0,
  "buy_a_pack": 0,
  "link_discord": 0,
  "enable_social_notifications": 0,
  "profile_pic": ""
}
Field Type Description
username string Username
update_profile_picture integer Update Profile Picture
refer_a_friend integer Refer A Friend
complete_a_trade integer Complete A Trade
buy_a_pack integer Buy A Pack
link_discord integer Link Discord
enable_social_notifications integer Enable Social Notifications
profile_pic string Profile Pic

ClubWeeklyBalanceSheetResponse

{
  "season": 0,
  "game_week": 0,
  "date": 0,
  "agent_wages": 0,
  "cash_injection": 0,
  "gate_receipts": 0,
  "ground_maintenance": 0,
  "managers_wage": 0,
  "merchandise": 0,
  "other_income": 0,
  "other_outgoings": 0,
  "player_wages": 0,
  "prize_money": 0,
  "shareholder_payouts": 0,
  "shareholder_prize_money": 0,
  "sponsor": 0,
  "transfers_in": 0,
  "transfers_out": 0,
  "tv_revenue": 0
}
Field Type Description
season integer Season
game_week integer Game Week
date integer Date
agent_wages integer Agent Wages
cash_injection integer Cash Injection
gate_receipts integer Gate Receipts
ground_maintenance integer Ground Maintenance
managers_wage integer Managers Wage
merchandise integer Merchandise
other_income integer Other Income
other_outgoings integer Other Outgoings
player_wages integer Player Wages
prize_money integer Prize Money
shareholder_payouts integer Shareholder Payouts
shareholder_prize_money integer Shareholder Prize Money
sponsor integer Sponsor
transfers_in integer Transfers In
transfers_out integer Transfers Out
tv_revenue integer Tv Revenue

CountryResponse

{
  "country_id": "",
  "total_clubs": 0,
  "total_players": 0,
  "total_volume_1_day": 0,
  "total_volume_7_day": 0,
  "last_7days": [
    0
  ],
  "market_cap": 0,
  "club_market_cap": 0,
  "player_market_cap": 0,
  "total_available_jobs": 0,
  "total_leagues": 0
}
Field Type Description
country_id string Country Id
total_clubs integer Total Clubs
total_players integer Total Players
total_volume_1_day integer Total Volume 1 Day
total_volume_7_day integer Total Volume 7 Day
last_7days object Last 7Days
market_cap integer Market Cap
club_market_cap integer Club Market Cap
player_market_cap integer Player Market Cap
total_available_jobs integer Total Available Jobs
total_leagues integer Total Leagues

LeaderboardResponse

{
  "entries": [
    {
      "account": "",
      "totalBonusShares": 0
    }
  ]
}
Field Type Description
entries array[LeaderboardEntry] Entries

LeagueTableRowResponse

{
  "club_id": 0,
  "league_id": 0,
  "manager_name": "",
  "manager_profile_pic": "",
  "manager_last_active_unix": 0,
  "country_id": "",
  "division": 0,
  "club_ix": 0,
  "played": 0,
  "won": 0,
  "drawn": 0,
  "lost": 0,
  "goals_for": 0,
  "goals_against": 0,
  "pts": 0,
  "form": "",
  "old_position": 0,
  "new_position": 0,
  "season_id": 0,
  "stadium_size": 0,
  "fanbase": 0,
  "balance": 0,
  "avg_player_rating": 0,
  "top_3_players": [
    0
  ]
}
Field Type Description
club_id integer Club Id
league_id integer League Id
manager_name object Manager Name
manager_profile_pic object Manager Profile Pic
manager_last_active_unix object Manager Last Active Unix
country_id string Country Id
division integer Division
club_ix integer Club Ix
played integer Played
won integer Won
drawn integer Drawn
lost integer Lost
goals_for integer Goals For
goals_against integer Goals Against
pts integer Pts
form string Form
old_position integer Old Position
new_position integer New Position
season_id integer Season Id
stadium_size object Stadium Size
fanbase object Fanbase
balance object Balance
avg_player_rating object Avg Player Rating
top_3_players object Top 3 Players

MarketResponse

{
  "TotalPlayers": 0,
  "PlayersMarketCap": 0,
  "PlayerValues": 0,
  "Players7dayVolume": 0,
  "TotalClubs": 0,
  "ClubsMarketCap": 0,
  "ClubBalances": 0,
  "Clubs7dayVolume": 0,
  "TotalMarketCap": 0,
  "Total7dayVolume": 0,
  "UserBalances": 0,
  "UserTotalVolume": 0,
  "NumberOfUsers": 0,
  "NumberAgents": 0,
  "NumberManagers": 0,
  "ActiveUsers": 0,
  "ActiveManagers": 0,
  "InactiveManagers": 0,
  "NumberManagersLocked": 0,
  "NumberManagersUnlocked": 0,
  "SVC2USDC": 0
}
Field Type Description
TotalPlayers integer Totalplayers
PlayersMarketCap integer Playersmarketcap
PlayerValues integer Playervalues
Players7dayVolume integer Players7Dayvolume
TotalClubs integer Totalclubs
ClubsMarketCap integer Clubsmarketcap
ClubBalances integer Clubbalances
Clubs7dayVolume integer Clubs7Dayvolume
TotalMarketCap integer Totalmarketcap
Total7dayVolume integer Total7Dayvolume
UserBalances integer Userbalances
UserTotalVolume integer Usertotalvolume
NumberOfUsers integer Numberofusers
NumberAgents integer Numberagents
NumberManagers integer Numbermanagers
ActiveUsers integer Activeusers
ActiveManagers integer Activemanagers
InactiveManagers integer Inactivemanagers
NumberManagersLocked integer Numbermanagerslocked
NumberManagersUnlocked integer Numbermanagersunlocked
SVC2USDC number Svc2Usdc

PaginatedResponse_BestManagersResponse_

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "name": "",
      "rank_old": 0,
      "rank_old_ranking": 0,
      "rank_a": 0,
      "rank_a_ranking": 0,
      "rank_b": 0,
      "rank_b_ranking": 0,
      "profile_pic": ""
    }
  ]
}
Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[BestManagersResponse] Items

PaginatedResponse_ClubDetailedResponse_

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "club_id": 0,
      "balance": 0,
      "form": "",
      "division_start": 0,
      "fans_start": 0,
      "fans_current": 0,
      "stadium_size_start": 0,
      "stadium_size_current": 0,
      "stadium_id": 0,
      "value": 0,
      "rating_start": 0,
      "manager_name": "",
      "default_formation": 0,
      "penalty_taker": 0,
      "country_id": "",
      "manager_locked": 0,
      "transfers_in": 0,
      "transfers_out": 0,
      "committed_tactics": "",
      "proposed_manager": "",
      "last_price": 0,
      "volume_1_day": 0,
      "volume_7_day": 0,
      "last_7days": [
        0
      ],
      "last_7days_price": [
        0
      ],
      "available": 0,
      "league_id": 0,
      "division": 0,
      "avg_wages": 0,
      "total_wages": 0,
      "total_player_value": 0,
      "avg_player_rating": 0,
      "avg_player_rating_top21": 0,
      "avg_shooting": 0,
      "avg_passing": 0,
      "avg_tackling": 0,
      "gk_rating": 0,
      "profile_pic": "",
      "manager_voted": 0
    }
  ]
}
Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[ClubDetailedResponse] Items

PaginatedResponse_ClubResponse_

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "club_id": 0,
      "last_price": 0,
      "volume_1_day": 0,
      "volume_7_day": 0,
      "last_7days": [
        0
      ],
      "last_7days_price": [
        0
      ],
      "balance": 0,
      "manager_name": "",
      "country_id": "",
      "value": 0,
      "rating_start": 0,
      "profile_pic": ""
    }
  ]
}
Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[ClubResponse] Items

PaginatedResponse_LeagueResponse_

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "league_id": 0,
      "country_id": "",
      "division": 0,
      "ticket_cost": 0,
      "tv_money": 0,
      "prize_money_pot": 0,
      "ave_attendance": 0,
      "num_teams": 0,
      "round": 0,
      "num_rounds": 0,
      "comp_type": 0,
      "total_volume_1_day": 0,
      "total_volume_7_day": 0,
      "last_7days": [
        0
      ],
      "volume_clubs_1_day": 0,
      "volume_players_1_day": 0,
      "volume_clubs_7_day": 0,
      "volume_players_7_day": 0,
      "market_cap": 0,
      "club_market_cap": 0,
      "player_market_cap": 0,
      "total_wages": 0,
      "avg_wages": 0,
      "total_player_value": 0,
      "total_clubs": 0,
      "total_players": 0,
      "total_available_jobs": 0
    }
  ]
}
Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[LeagueResponse] Items

PaginatedResponse_PlayerDetailedResponse_

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "player_id": 0,
      "fitness": 0,
      "retired": 0,
      "morale": 0,
      "injured": 0,
      "injury_id": 0,
      "wages": 0,
      "contract": 0,
      "form": "",
      "position": 0,
      "multi_position": 0,
      "positions": [
        ""
      ],
      "rating": 0,
      "rating_gk": 0,
      "rating_tackling": 0,
      "rating_passing": 0,
      "rating_shooting": 0,
      "rating_stamina": 0,
      "rating_aggression": 0,
      "banned": 0,
      "cup_tied": 0,
      "yellow_cards": 0,
      "red_cards": 0,
      "dob": 0,
      "side": "",
      "value": 0,
      "country_id": "",
      "club_id": 0,
      "agent_name": "",
      "desired_contract": 0,
      "allow_transfer": 0,
      "allow_renew": 0,
      "age": 0,
      "last_price": 0,
      "volume_1_day": 0,
      "volume_7_day": 0,
      "last_7days": [
        0
      ],
      "last_7days_price": [
        0
      ],
      "profile_pic": ""
    }
  ]
}
Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[PlayerDetailedResponse] Items

PaginatedResponse_PlayerResponse_

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "player_id": 0,
      "last_price": 0,
      "volume_1_day": 0,
      "volume_7_day": 0,
      "last_7days": [
        0
      ],
      "last_7days_price": [
        0
      ],
      "wages": 0,
      "multi_position": 0,
      "positions": [
        ""
      ],
      "rating": 0,
      "country_id": "",
      "dob": 0,
      "value": 0,
      "club_id": 0,
      "agent_name": "",
      "age": 0,
      "profile_pic": ""
    }
  ]
}
Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[PlayerResponse] Items

PaginatedResponse_RichListResponse_

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "name": "",
      "balance": 0,
      "club_asset_value": 0,
      "player_asset_value": 0,
      "total_networth": 0,
      "rank": 0,
      "profile_pic": ""
    }
  ]
}
Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[RichListResponse] Items

PaginatedResponse_ShareTradeResponse_

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "id": 0,
      "time": "",
      "unix_time": 0,
      "share_type": "",
      "share_id": 0,
      "buyer": "",
      "buyer_profile_pic": "",
      "seller": "",
      "seller_profile_pic": "",
      "num": 0,
      "price": 0,
      "market_buy": false
    }
  ]
}
Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[ShareTradeResponse] Items

PaginatedResponse_UserBalanceSheetResponse_

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "name": "",
      "amount": 0,
      "type": "",
      "other_name": "",
      "other_type": "",
      "other_id": 0,
      "time": "",
      "unix_time": 0
    }
  ]
}
Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[UserBalanceSheetResponse] Items

PaginatedResponse_UserDetailedResponse_

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "name": "",
      "balance": 0,
      "last_active_unix": 0,
      "last_active": "",
      "club_id": 0,
      "profile_pic": "",
      "manager_voted": 0,
      "buy_volume_1_day": 0,
      "buy_volume_7_day": 0,
      "sell_volume_1_day": 0,
      "sell_volume_7_day": 0,
      "buy_total_volume": 0,
      "sell_total_volume": 0,
      "total_volume": 0,
      "total_volume_30_day": 0,
      "first_trade_date": 0,
      "tenth_trade_date": 0,
      "hundredth_trade_date": 0,
      "thousandth_trade_date": 0,
      "biggest_trade": 0,
      "last_7days": [
        0
      ],
      "last_30days": [
        0
      ]
    }
  ]
}
Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[UserDetailedResponse] Items

PaginatedResponse_UserResponse_

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "name": "",
      "balance": 0,
      "last_active_unix": 0,
      "last_active": "",
      "club_id": 0,
      "profile_pic": "",
      "manager_voted": 0
    }
  ]
}
Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[UserResponse] Items

PaginatedResponse_UserWeeklyBalanceSheetResponse_

{
  "page": 0,
  "per_page": 0,
  "total": 0,
  "total_pages": 0,
  "items": [
    {
      "name": "",
      "week_start_unix_time": 0,
      "week_end_unix_time": 0,
      "totals": [
        {
          "type": "",
          "amount": 0
        }
      ]
    }
  ]
}
Field Type Description
page integer Page
per_page integer Per Page
total object Total
total_pages object Total Pages
items array[UserWeeklyBalanceSheetResponse] Items

TradingGraphDataPoint

{
  "timestamp": 0,
  "datetime": "",
  "volume": 0,
  "weighted_average_price": 0
}
Field Type Description
timestamp integer Timestamp
datetime string Datetime
volume integer Volume
weighted_average_price number Weighted Average Price

UserActivityResponse

{
  "name": "",
  "last_active_unix": 0,
  "first_move": 0,
  "rank": 0,
  "points": 0,
  "profile_pic": ""
}
Field Type Description
name string Name
last_active_unix integer Last Active Unix
first_move integer First Move
rank integer Rank
points integer Points
profile_pic object Profile Pic

UserEarningsResponse

{
  "svc2usdc": 0,
  "earnings_7d": {
    "svc": 0,
    "usdc": 0
  },
  "earnings_14d": {},
  "earnings_30d": {},
  "earnings_last_match_day": {}
}
Field Type Description
svc2usdc number Svc2Usdc
earnings_7d EarningsPeriod
earnings_14d EarningsPeriod
earnings_30d EarningsPeriod
earnings_last_match_day EarningsPeriod