NAV
cURL JavaScript Python

GSP API Documentation

This documentation covers the GSP (Game State Processor) API for Soccerverse, which allows you to integrate with the core game functionalities.

Authentication

All API requests are authenticated using your Soccerverse account credentials.

API Endpoint

The main API endpoint for the GSP API is:

https://gsppub.soccerverse.io/

All API calls are made using POST requests with JSON-RPC 2.0 format.

Introduction

The GSP API (Game State Processor) provides a comprehensive interface to interact with the Soccerverse game state. This API allows you to access and manipulate data about players, clubs, matches, competitions, and more.

Base URL

All API requests should be sent to:

https://gsppub.soccerverse.io/

API Protocol

The Soccerverse API uses the JSON-RPC 2.0 protocol. All requests and responses follow this standardized format.

JSON-RPC Request Format

Example JSON-RPC request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "method_name",
    "params": {
      "param1": "value1",
      "param2": "value2"
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'method_name',
    params: {
      param1: 'value1',
      param2: 'value2'
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "method_name",
    "params": {
        "param1": "value1",
        "param2": "value2"
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

All requests to the Soccerverse API should follow the JSON-RPC 2.0 format with the following fields:

Field Description
jsonrpc Must be "2.0" to indicate compliance with JSON-RPC 2.0
method The name of the method to invoke
params An object containing the parameters for the method
id A unique identifier for this request (can be a number or string)

Success Response Format

Example success response:

{
  "jsonrpc": "2.0",
  "result": {
    "data": "Method-specific response data"
  },
  "id": 1
}

Successful responses will include:

Field Description
jsonrpc Always "2.0"
result The result data, which varies by method
id The same id that was provided in the request

Error Response Format

Example error response:

{
  "jsonrpc": "2.0",
  "error": {
    "code": -32602,
    "message": "Invalid parameters"
  },
  "id": 1
}

Error responses will include:

Field Description
jsonrpc Always "2.0"
error An object containing error details
id The same id that was provided in the request

The error object contains:

Field Description
code A numeric error code
message A human-readable error message

Standard Error Codes

The API uses standard JSON-RPC error codes:

Code Message Description
-32600 Invalid Request The JSON sent is not a valid request object
-32601 Method not found The method does not exist or is unavailable
-32602 Invalid params Invalid method parameters
-32603 Internal error Internal JSON-RPC error
-32700 Parse error Invalid JSON was received

Authentication

Most methods do not require authentication. Methods that manipulate game state or access user-specific data require authentication via the Xaya wallet.

Each method's documentation indicates whether authentication is required.

General Methods

This section covers the basic methods for interacting with the Soccerverse game state. These methods provide fundamental access to the game state data and server control.

Methods Summary

Method Description Authentication Required
stop Stops the RPC server Yes
getcurrentstate Gets the current game state No
getnullstate Gets the null (initial) game state No
getpendingstate Gets the pending game state No
hashcurrentstate Gets a hash of the current game state No
getstatehash Gets a hash for a specific block No
settargetblock Sets the target block for the server Yes
waitforchange Waits for a block change since the known block No
waitforpendingchange Waits for a change in the pending state No

Stop

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "stop",
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'stop',
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "stop",
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": null,
  "id": 1
}

This method gracefully shuts down the RPC server. This method requires unsafe methods to be enabled.

Authentication

Admin-level authorization required.

Parameters

None

Returns

null on successful shutdown request.

Errors

Code Description
-32600 Unsafe methods are not enabled
-32603 Error shutting down the server

GetCurrentState

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "getcurrentstate",
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'getcurrentstate',
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "getcurrentstate",
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "block": {
      "hash": "7a8d3d2e1f0c9b8a7d6e5f4c3b2a1098",
      "height": 12345,
      "parent": "5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c"
    },
    "gamestates": {
      "state": {
        "game-state": {
          "current_season": {
            "id": 1
          },
          "timestamp": 1620000000
        }
      }
    }
  },
  "id": 1
}

Retrieves the current confirmed game state, including block information and full game state data.

Parameters

None

Returns

Field Type Description
block object Information about the current block
block.hash string Hash of the current block
block.height number Height of the current block in the blockchain
block.parent string Hash of the parent block
gamestates object The full game state data
gamestates.state object The state container
gamestates.state.game-state object The main game state

Errors

Code Description
-32603 Error retrieving current state

GetNullState

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "getnullstate",
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'getnullstate',
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "getnullstate",
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "block": null,
    "gamestates": {
      "state": {
        "game-state": {
          "initial": true
        }
      }
    }
  },
  "id": 1
}

Retrieves the null (initial) game state, representing the state before any blocks have been processed.

Parameters

None

Returns

Field Type Description
block null Always null for the null state
gamestates object The initial game state data
gamestates.state object The state container
gamestates.state.game-state object The main game state
gamestates.state.game-state.initial boolean Always true for the null state

Errors

Code Description
-32603 Error retrieving null state

GetPendingState

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "getpendingstate",
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'getpendingstate',
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "getpendingstate",
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "block": {
      "hash": "pending",
      "height": 12346,
      "parent": "7a8d3d2e1f0c9b8a7d6e5f4c3b2a1098"
    },
    "gamestates": {
      "state": {
        "game-state": {
          "current_season": {
            "id": 1
          },
          "timestamp": 1620001200
        }
      }
    }
  },
  "id": 1
}

Retrieves the pending game state, which includes unconfirmed transactions and changes that have not yet been included in a block.

Parameters

None

Returns

Field Type Description
block object Information about the pending block
block.hash string Always "pending" for pending state
block.height number Expected height of the pending block
block.parent string Hash of the current confirmed block
gamestates object The pending game state data
gamestates.state object The state container
gamestates.state.game-state object The main game state

Errors

Code Description
-32603 Error retrieving pending state

HashCurrentState

Needs unsafe calls to be enabled

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "hashcurrentstate",
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'hashcurrentstate',
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "hashcurrentstate",
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": "9a8b7c6d5e4f3g2h1i0j9k8l7m6n5o4p3q2r1s0t",
  "id": 1
}

Calculates and returns a cryptographic hash of the current game state. This is useful for verifying state integrity and for state comparison.

Parameters

None

Returns

A string containing the hexadecimal hash of the current game state.

Errors

Code Description
-32603 Error calculating current state hash

GetStateHash

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "getstatehash",
    "params": {
      "block": "7a8d3d2e1f0c9b8a7d6e5f4c3b2a1098"
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'getstatehash',
    "params": {
      "block": "7a8d3d2e1f0c9b8a7d6e5f4c3b2a1098"
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "getstatehash",
    "params": {
      "block": "7a8d3d2e1f0c9b8a7d6e5f4c3b2a1098"
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": "9a8b7c6d5e4f3g2h1i0j9k8l7m6n5o4p3q2r1s0t",
  "id": 1
}

Calculates and returns a cryptographic hash of the game state at a specific block.

Parameters

Parameter Type Description Required
blockhash string Hash of the target block Yes

Returns

A string containing the hexadecimal hash of the game state at the specified block.

Errors

Code Description
-32602 Invalid block hash
-32603 Error calculating state hash for specified block

Player Methods

This section covers methods for retrieving information about players, including their statistics, history, and attributes.

Methods Summary

Method Description Authentication Required
get_player_ids Gets a list of all player IDs No
get_players Gets detailed information about specific players No
get_player_rating_history Gets the rating history for a specific player No
get_player_rating_latest_changes Gets the most recent rating changes for players No
get_players_by_attributes Gets players that match specified attribute filters No
get_player_payouts Gets payment information for a specific player No
get_player_injury_history Gets the injury history for a specific player No
get_player_transfer_history Gets the transfer history for a specific player No
get_league_player_data Gets league statistics for a specific player No
get_cup_player_data Gets cup statistics for a specific player No

Get Player IDs

Needs unsafe to be allowed

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_player_ids",
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_player_ids',
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_player_ids",
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    { "player_id": 1 },
    { "player_id": 2 },
    { "player_id": 3 }
  ],
  "id": 1
}

Gets a list of all player IDs in the game.

Parameters

None

Returns

An array of objects, each containing:

Field Type Description
player_id number Unique identifier for the player

Errors

Code Description
-32603 Internal error retrieving player IDs

Get Players

Has maximum limit of 100 if unsafe not allowed

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_players",
    "params": {
      [1, 2, 3]
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_players',
    params: {
      [1, 2, 3]
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_players",
    "params": {
        [1, 2, 3]
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "player_id": 1,
      "club_id": 101,
      "retired": false,
      "contract": 2,
      "agent_name": "agent1",
      "desired": {
        "contract": 3,
        "transfer": true,
        "renew": true
      },
      "fitness": 95,
      "morale": 90,
      "injured": 0,
      "injury_id": 0,
      "wages": 10000,
      "form": "WWDWL",
      "multi_position": 0,
      "position": 1,
      "rating": 85,
      "banned": 0,
      "rating_gk": 10,
      "rating_tackling": 86,
      "rating_passing": 88,
      "rating_shooting": 84,
      "rating_aggression": 75,
      "rating_stamina": 90,
      "cup_tied": false,
      "yellow_cards": 2,
      "yellowred_cards": 0,
      "red_cards": 0,
      "dob": 946684800,
      "side": "R",
      "value": 20000000,
      "country_id": "ENG"
    }
  ],
  "id": 1
}

Gets detailed information about specific players, including their attributes, contract details, and current status.

Parameters

Parameter Type Description Required
player_ids array Array of player IDs to retrieve information for Yes

Returns

An array of player objects. Each player object contains the fields defined in the Player schema.

Errors

Code Description
-32602 Invalid player IDs
-32603 Error retrieving player information

Get Player Rating History

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_player_rating_history",
    "params": {
      "player_id": 42
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_player_rating_history',
    params: {
      player_id: 42
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_player_rating_history",
    "params": {
        "player_id": 42
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "player_history_id": 1,
      "player_id": 42,
      "rating": 82,
      "date_updated": 1662595200,
    }
  ],
  "id": 1
}

Gets the complete rating history for a specific player, showing all rating changes over time.

Parameters

Parameter Type Description Required
player_id number ID of the player Yes

Returns

An array of player rating history objects, each containing:

Field Type Description
player_history_id number Unique ID for the rating change record
player_id number ID of the player
rating number Player rating
date_updated number Unix timestamp of when the change occurred

Errors

Code Description
-32602 Invalid player ID
-32603 Error retrieving player rating history

Get Players By Attributes

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_players_by_attributes",
    "params": {
      "age_low": 20,
      "age_high": 30,
      "rating_low": 75,
      "rating_high": 90,
      "position": 4,
      "nationality": "ENG",
      "limit": 100,
      "offset": 0
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_players_by_attributes',
    params: {
      age_low: 20,
      age_high: 30,
      rating_low: 75,
      rating_high: 90,
      position: 4,
      nationality: "ENG",
      limit: 100,
      offset: 0
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_players_by_attributes",
    "params": {
        "age_low": 20,
        "age_high": 30,
        "rating_low": 75,
        "rating_high": 90,
        "position": 4,
        "nationality": "ENG",
        "limit": 100,
        "offset": 0
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "player_id": 15,
      "position": 1
      "country_id": "ENG",
      "dob": 967766400,
      "club_id": 1,
      "rating": 88,
      "value": 30000000,
      "wages": 20000,
      "contract": 3
    }
  ],
  "id": 1
}

Finds players that match specified attribute filters, such as age range, skill level, position, and nationality.

Parameters

Parameter Type Description Required
age_low number Minimum age of players No
age_high number Maximum age of players No
rating_low number Minimum rating of players No
rating_high number Maximum rating of players No
position number Position ID to filter by No
nationality string Country ID to filter by No
limit number Maximum number of results to return Yes
offset number Number of results to skip Yes

Returns

An array of player objects matching the specified criteria

Errors

Code Description
-32602 Invalid parameters
-32603 Error retrieving players by attributes

Get Player Payouts

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_player_payouts",
    "params": {
      "player_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_player_payouts',
    params: {
      player_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_player_payouts",
    "params": {
        "player_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "agent_wage": 34189,
      "assists": 85472,
      "goals": 170945,
      "lineup": 1709450,
      "regular": 3418900
    }
  ],
  "id": 1
}

Gets all payment information for a specific player, including wages and bonuses.

Parameters

Parameter Type Description Required
player_id number ID of the player Yes

Returns

An array of player payout objects, each containing:

Field Type Description
agent_wage number Payout from agent wage
assists number Payour from assists
goals number Payout from goals
lineup number Payout for lineup
regular number Payout from regular payment

Errors

Code Description
-32602 Invalid player ID
-32603 Error retrieving player payouts

Get Player Injury History

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_player_injury_history",
    "params": {
      "player_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_player_injury_history',
    params: {
      player_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_player_injury_history",
    "params": {
        "player_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "injury_history_id": 1,
      "injury_id": 1,
      "player_id": 1,
      "start_date": 1662595200,
      "end_date": 1663200000,
      "season_id": 1
    },
    {
      "injury_history_id": 1,
      "injury_id": 2,
      "player_id": 1,
      "start_date": 1665792000,
      "end_date": 1667001600,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets the complete injury history for a specific player.

Parameters

Parameter Type Description Required
player_id number ID of the player Yes

Returns

An array of injury objects, each containing:

Field Type Description
injury_history_id number Unique ID for the injury history record
injury_id number Unique ID for the injury record
player_id number ID of the injured player
start_date number Injury start date (Unix timestamp)
end_date number Expected recovery date (Unix timestamp)
season_id number ID of the season when the injury occurred

Errors

Code Description
-32602 Invalid player ID
-32603 Error retrieving player injury history

Get Player Transfer History

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_player_transfer_history",
    "params": {
      "player_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_player_transfer_history',
    params: {
      player_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_player_transfer_history",
    "params": {
        "player_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "player_id": 1,
      "club_id_from": 102,
      "club_id_to": 101,
      "amount": 15000000,
      "date": 1660406400,
    },
    {
      "player_id": 1,
      "club_id_from": 103,
      "club_id_to": 102,
      "amount": 8000000,
      "date": 1628870400,
    }
  ],
  "id": 1
}

Gets the complete transfer history for a specific player, showing all moves between clubs.

Parameters

Parameter Type Description Required
player_id number ID of the player Yes

Returns

An array of transfer objects, each containing:

Field Type Description
player_id number ID of the transferred player
club_id_from number ID of the selling club
club_id_to number ID of the buying club
amount number Payed amount
date number Date of the transfer (Unix timestamp)

Errors

Code Description
-32602 Invalid player ID
-32603 Error retrieving player transfer history

Get League Player Data

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_league_player_data",
    "params": {
      "player_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_league_player_data',
    params: {
      player_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_league_player_data",
    "params": {
        "player_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "league_player_id": 1,
      "league_id": 1,
      "player_id": 1,
      "yellow_cards": 2,
      "yellowred_cards": 4,
      "red_cards": 0,
      "goals": 5,
      "assists": 3,
      "appearances": 12,
      "sub_apearances": 12,
      "ave_rating": 7.8,
      "saves": 2,
      "key_tackles": 1,
      "key_passes": 3,
      "shots": 3,
      "mom": 3,
      "club_id": 44,
      "season_id": 1,
      "Active": 1
    }
  ],
  "id": 1
}

Gets league competition statistics for a specific player.

Parameters

Parameter Type Description Required
player_id number ID of the player Yes

Returns

An array of league player data objects, each containing:

Field Type Description
league_player_id number ID of the league player
player_id number ID of the player
league_id number ID of the league
yellow_cards number Number of yellow cards received
yellowred_cards number Number of yellow-red cards received
red_cards number Number of red cards received
goals number Number of goals scored
assists number Number of assists provided
appearances number Number of matches played
sub_apearances number Number of matches played as substitute
ave_rating number Average match rating
saves number Player saves stat
key_tackles number Player key tackle stat
key_passes number Player passes stat
shots number Player shots stat
mom number Player MoM stat
club_id number ID of the player club
season_id number ID of the season
Active number Is player active or not

Errors

Code Description
-32602 Invalid player ID
-32603 Error retrieving league player data

Get Cup Player Data

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_cup_player_data",
    "params": {
      "player_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_cup_player_data',
    params: {
      player_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_cup_player_data",
    "params": {
        "player_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "cup_player_id": 1,
      "cup_id": 1,
      "player_id": 1,
      "comp_type": 1,
      "yellow_cards": 2,
      "yellowred_cards": 4,
      "red_cards": 0,
      "goals": 5,
      "assists": 3,
      "appearances": 12,
      "sub_apearances": 12,
      "average_rating": 7.8,
      "saves": 2,
      "key_tackles": 1,
      "key_passes": 3,
      "shots": 3,
      "mom": 3,
      "club_id": 44,
      "season_id": 1,
      "Active": 1
    }
  ],
  "id": 1
}

Gets cup competition statistics for a specific player.

Parameters

Parameter Type Description Required
player_id number ID of the player Yes

Returns

An array of cup player data objects, each containing:

Field Type Description
cup_player_id number ID of the cup
cup_id number ID of the cup
league_id number ID of the league
comp_type number Type of the competition
yellow_cards number Number of yellow cards received
yellowred_cards number Number of yellow-red cards received
red_cards number Number of red cards received
goals number Number of goals scored
assists number Number of assists provided
appearances number Number of matches played
sub_apearances number Number of matches played as substitute
average_rating number Average match rating
saves number Player saves stat
key_tackles number Player key tackle stat
key_passes number Player passes stat
shots number Player shots stat
mom number Player MoM stat
club_id number ID of the player club
season_id number ID of the season
Active number Is player active or not

Errors

Code Description
-32602 Invalid player ID
-32603 Error retrieving cup player data

Club Methods

This section covers methods for retrieving information about clubs, including their finances, stadiums, squads, and schedules.

Methods Summary

Method Description Authentication Required
get_club_ids Gets a list of all club IDs No
get_all_stadium_data_ids Gets all stadium data IDs No
get_club Gets information about a specific club No
get_club_extended Gets extended information about a specific club No
get_all_clubs Gets information about all clubs No
get_club_balance_sheet Gets the balance sheet for a specific club No
get_stadiums_club Gets club information by stadium ID No
get_managers_club Gets club information by manager name No
get_agents_players Gets all players represented by a specific agent No
get_club_schedule Gets the schedule for a specific club in a season No
get_clubs_next_fixture Gets the next scheduled fixture for a specific club No
get_clubs_last_fixture Gets the most recently played fixture for a specific club No
get_squad Gets the squad of players for a specific club No
get_freebench Gets the list of free players not assigned to any club No

Get Club IDs

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_club_ids",
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_club_ids',
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_club_ids",
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    { "club_id": 1 },
    { "club_id": 2 },
    { "club_id": 3 }
  ],
  "id": 1
}

Gets a list of all club IDs in the game.

Parameters

None

Returns

An array of objects, each containing:

Field Type Description
club_id number Unique identifier for the club

Errors

Code Description
-32603 Internal error retrieving club IDs

Get All Stadium Data IDs

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_all_stadium_data_ids",
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_all_stadium_data_ids',
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_all_stadium_data_ids",
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    { "stadium_id": 1 },
    { "stadium_id": 2 },
    { "stadium_id": 3 }
  ],
  "id": 1
}

Gets all stadium data IDs in the game.

Parameters

None

Returns

An array of objects, each containing:

Field Type Description
stadium_id number Unique identifier for the stadium

Errors

Code Description
-32603 Internal error retrieving stadium IDs

Get Club

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_club",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_club',
    params: {
      club_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_club",
    "params": {
        "club_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "club_id": 1,
    "balance": {
      "total": 10000000,
      "available": 9000000,
      "reserved": 1000000
    },
    "form": "WDLWD",
    "fans_start": 20000,
    "fans_current": 22500,
    "stadium_size_start": 30000,
    "stadium_size_current": 30000,
    "stadium_id": 1,
    "proposed_manager": null,
    "manager_name": "manager1",
    "manager_locked": false,
    "manager_voted": true,
    "home_colour": "blue",
    "away_colour": "white",
    "default_formation": 442,
    "penalty_taker": 10,
    "country_id": "ENG",
    "transfers": {
      "in": 2,
      "out": 1
    }
  },
  "id": 1
}

Gets information about a specific club, including finances, stadium details, and manager information.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes

Returns

A club object containing:

Field Type Description
club_id number Unique identifier for the club
balance object Financial balance information
balance.total number Total financial balance
balance.available number Available balance
balance.reserved number Reserved balance (for pending transfers, etc.)
form string Recent form (e.g., "WDLWD" for Win-Draw-Loss-Win-Draw)
fans_start number Number of fans at the start of the season
fans_current number Current number of fans
stadium_size_start number Stadium capacity at the start of the season
stadium_size_current number Current stadium capacity
stadium_id number ID of the club's stadium
proposed_manager string Name of the proposed manager (if any)
manager_name string Name of the current manager
manager_locked boolean Whether the manager position is locked
manager_voted boolean Whether a manager vote has taken place
home_colour string Home kit color
away_colour string Away kit color
default_formation number Default formation (e.g., 442, 433)
penalty_taker number Player ID of the designated penalty taker
country_id string ISO country code for the club's country
transfers object Transfer activity information
transfers.in number Number of incoming transfers
transfers.out number Number of outgoing transfers

Errors

Code Description
-32602 Invalid club ID
-32603 Error retrieving club information

Get Club Extended

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_club_extended",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_club_extended',
    params: {
      club_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_club_extended",
    "params": {
        "club_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "club_id": 1,
    "balance": {
      "total": 10000000,
      "available": 9000000,
      "reserved": 1000000
    },
    "form": "WDLWD",
    "fans_start": 20000,
    "fans_current": 22500,
    "stadium_size_start": 30000,
    "stadium_size_current": 30000,
    "stadium_id": 1,
    "proposed_manager": null,
    "manager_name": "manager1",
    "manager_locked": false,
    "manager_voted": true,
    "home_colour": "blue",
    "away_colour": "white",
    "default_formation": 442,
    "penalty_taker": 10,
    "country_id": "ENG",
    "transfers": {
      "in": 2,
      "out": 1,
      "pending_out": 3,
      "pending_in_nonfree": 2,
      "pending_in_freebench": 1
    },
    "squad_size": 25
  },
  "id": 1
}

Gets extended information about a specific club, including detailed transfer information and squad size.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes

Returns

A club extended object containing all fields from the basic club object, plus:

Field Type Description
transfers.pending_out number Number of pending outgoing transfers
transfers.pending_in_nonfree number Number of pending incoming transfers (non-free)
transfers.pending_in_freebench number Number of pending incoming transfers (from free bench)
squad_size number Current squad size

Errors

Code Description
-32602 Invalid club ID
-32603 Error retrieving extended club information

Get All Clubs

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_all_clubs",
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_all_clubs',
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_all_clubs",
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "club_id": 1,
      "balance": {
        "total": 10000000,
        "available": 9000000,
        "reserved": 1000000
      },
      "form": "WDLWD",
      "fans_start": 20000,
      "fans_current": 22500,
      "stadium_size_start": 30000,
      "stadium_size_current": 30000,
      "stadium_id": 1,
      "proposed_manager": null,
      "manager_name": "manager1",
      "manager_locked": false,
      "manager_voted": true,
      "home_colour": "blue",
      "away_colour": "white",
      "default_formation": 442,
      "penalty_taker": 10,
      "country_id": "ENG",
      "transfers": {
        "in": 2,
        "out": 1
      }
    },
    {
      "club_id": 2,
      "balance": {
        "total": 8000000,
        "available": 7500000,
        "reserved": 500000
      },
      "form": "LWWDL",
      "fans_start": 18000,
      "fans_current": 19000,
      "stadium_size_start": 25000,
      "stadium_size_current": 25000,
      "stadium_id": 2,
      "proposed_manager": null,
      "manager_name": "manager2",
      "manager_locked": true,
      "manager_voted": true,
      "home_colour": "red",
      "away_colour": "black",
      "default_formation": 433,
      "penalty_taker": 7,
      "country_id": "ESP",
      "transfers": {
        "in": 1,
        "out": 2
      }
    }
  ],
  "id": 1
}

Gets information about all clubs in the game.

Parameters

None

Returns

An array of club objects. Each club object has the same structure as the response from the get_club method.

Errors

Code Description
-32603 Error retrieving all clubs

Get Club Balance Sheet

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_club_balance_sheet",
    "params": {
      "club_id": 1,
      "season_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_club_balance_sheet',
    params: {
      club_id: 1,
      season_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_club_balance_sheet",
    "params": {
        "club_id": 1,
        "season_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "balance_sheet_id": 1,
      "date": 1662595200,
      "gate_receipts": 500000,
      "tv_revenue": 1000000,
      "sponsor": 200000,
      "merchandise": 100000,
      "cash_injection": 0,
      "transfers_in": 15000000,
      "prize_money": 0,
      "other_income": 50000,
      "player_wages": 800000,
      "ground_maintenance": 50000,  
      "transfers_out": 8000000,   
      "managers_wage": 100000,
      "agent_wages": 80000,
      "shareholder_payouts": 500000,
      "shareholder_prize_money": 0,
      "other_outgoings": 30000,
      "game_week": 1
    },
    {
      "balance_sheet_id": 2,
      "date": 1663200000,
      "gate_receipts": 550000,
      "tv_revenue": 1000000,
      "sponsor": 200000,
      "merchandise": 120000,
      "cash_injection": 0,
      "transfers_in": 0,
      "prize_money": 100000,
      "other_income": 40000,
      "player_wages": 800000,
      "ground_maintenance": 50000,
      "transfers_out": 0,
      "managers_wage": 100000,
      "agent_wages": 80000,
      "shareholder_payouts": 500000,
      "shareholder_prize_money": 50000,
      "other_outgoings": 25000,
      "game_week": 2
    }
  ],
  "id": 1
}

Gets the financial balance sheet for a specific club and season, showing income and expenditure.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes
season_id number ID of the season Yes

Returns

An array of balance sheet objects, each containing:

Field Type Description
balance_sheet_id number Unique ID for the balance sheet record
date number Date of the balance sheet (Unix timestamp)
gate_receipts number Income from match tickets
tv_revenue number Income from television rights
sponsor number Income from sponsorships
merchandise number Income from merchandise sales
cash_injection number Additional cash injections
transfers_in number Income from player sales
prize_money number Income from competition prizes
other_income number Other income sources
player_wages number Expenditure on player wages
agent_wages number Expenditure on agent fees
managers_wage number Expenditure on manager salary
shareholder_payouts number Expenditure on shareholder dividends
shareholder_prize_money number Expenditure on shareholder prize money
ground_maintenance number Expenditure on stadium maintenance
transfers_out number Expenditure on player purchases
other_outgoings number Other expenditures
game_week number Game week of the balance sheet

Errors

Code Description
-32602 Invalid club ID or season ID
-32603 Error retrieving club balance sheet

Get Stadiums Club

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_stadiums_club",
    "params": {
      "stadium_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_stadiums_club',
    params: {
      stadium_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_stadiums_club",
    "params": {
        "stadium_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "club_id": 1,
      "balance": {
        "total": 10000000,
        "available": 9000000,
        "reserved": 1000000
      },
      "form": "WDLWD",
      "fans_start": 20000,
      "fans_current": 22500,
      "stadium_size_start": 30000,
      "stadium_size_current": 30000,
      "stadium_id": 1,
      "proposed_manager": null,
      "manager_name": "manager1",
      "manager_locked": false,
      "manager_voted": true,
      "home_colour": "blue",
      "away_colour": "white",
      "default_formation": 442,
      "penalty_taker": 10,
      "country_id": "ENG",
      "transfers": {
        "in": 2,
        "out": 1
      }
    }
  ],
  "id": 1
}

Gets club information by stadium ID, allowing you to find which club owns a particular stadium.

Parameters

Parameter Type Description Required
stadium_id number ID of the stadium Yes

Returns

An array of club objects. Each club object has the same structure as the response from the get_club method.

Errors

Code Description
-32602 Invalid stadium ID
-32603 Error retrieving club by stadium ID

Get Managers Club

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_managers_club",
    "params": {
      "manager_name": "manager1"
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_managers_club',
    params: {
      manager_name: "manager1"
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_managers_club",
    "params": {
        "manager_name": "manager1"
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "club_id": 1,
    "balance": {
      "total": 10000000,
      "available": 9000000,
      "reserved": 1000000
    },
    "form": "WDLWD",
    "fans_start": 20000,
    "fans_current": 22500,
    "stadium_size_start": 30000,
    "stadium_size_current": 30000,
    "stadium_id": 1,
    "proposed_manager": null,
    "manager_name": "manager1",
    "manager_locked": false,
    "manager_voted": true,
    "home_colour": "blue",
    "away_colour": "white",
    "default_formation": 442,
    "penalty_taker": 10,
    "country_id": "ENG",
    "transfers": {
      "in": 2,
      "out": 1
    }
  },
  "id": 1
}

Gets club information by manager name, allowing you to find which club a particular manager is managing.

Parameters

Parameter Type Description Required
manager_name string Name of the manager Yes

Returns

A club object with the same structure as the response from the get_club method.

Errors

Code Description
-32602 Invalid manager name
-32603 Error retrieving club by manager name

Get Agents Players

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_agents_players",
    "params": {
      "agent_name": "agent1"
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_agents_players',
    params: {
      agent_name: "agent1"
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_agents_players",
    "params": {
        "agent_name": "agent1"
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "player_id": 1,
      "club_id": 101,
      "retired": false,
      "contract": 2,
      "agent_name": "agent1",
      "desired": {
        "contract": 3,
        "transfer": true,
        "renew": true
      },
      "fitness": 95,
      "morale": 90,
      "injured": 0,
      "injury_id": 0,
      "wages": 10000,
      "form": "WWDWL",
      "multi_position": 0,
      "position": 1,
      "rating": 85,
      "banned": 0,
      "rating_gk": 10,
      "rating_tackling": 86,
      "rating_passing": 88,
      "rating_shooting": 84,
      "rating_aggression": 75,
      "rating_stamina": 90,
      "cup_tied": false,
      "yellow_cards": 2,
      "yellowred_cards": 0,
      "red_cards": 0,
      "dob": 946684800,
      "side": "R",
      "value": 20000000,
      "country_id": "ENG"
    },
    {
      "player_id": 5,
      "club_id": 103,
      "retired": false,
      "contract": 3,
      "agent_name": "agent1",
      "desired": {
        "contract": 4,
        "transfer": false,
        "renew": true
      },
      "fitness": 92,
      "morale": 85,
      "injured": 0,
      "injury_id": 0,
      "wages": 15000,
      "form": "WDWLL",
      "multi_position": 0,
      "position": 4,
      "rating": 82,
      "banned": 0,
      "rating_gk": 15,
      "rating_tackling": 83,
      "rating_passing": 84,
      "rating_shooting": 81,
      "rating_aggression": 78,
      "rating_stamina": 88,
      "cup_tied": false,
      "yellow_cards": 1,
      "yellowred_cards": 0,
      "red_cards": 0,
      "dob": 957394800,
      "side": "L",
      "value": 18000000,
      "country_id": "FRA"
    }
  ],
  "id": 1
}

Gets all players represented by a specific agent.

Parameters

Parameter Type Description Required
agent_name string Name of the agent Yes

Returns

An array of player objects. Each player object has the same structure as defined in the Player schema.

Errors

Code Description
-32602 Invalid agent name
-32603 Error retrieving agent's players

Get Club Schedule

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_club_schedule",
    "params": {
      "club_id": 1,
      "season_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_club_schedule',
    params: {
      club_id: 1,
      season_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_club_schedule",
    "params": {
        "club_id": 1,
        "season_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "attendance": 71766,
      "away_club": 542,
      "away_goals": 0,
      "away_manager": "PoleCalcio",
      "away_pen_score": 0,
      "comp_type": 0,
      "country_id": "ESP",
      "date": 1737223200,
      "fixture_id": 87578,
      "home_club": 541,
      "home_goals": 1,
      "home_manager": "Gevenito",
      "home_pen_score": 0,
      "penalties": 0,
      "played": 1,
      "stadium_id": 1456,
      "turn_id": 11212
    },
    {
      "attendance": 85400,
      "away_club": 572,
      "away_goals": 0,
      "away_manager": "leanvalen",
      "away_pen_score": 0,
      "comp_type": 3,
      "country_id": "EUR",
      "date": 1737403200,
      "fixture_id": 107150,
      "home_club": 541,
      "home_goals": 1,
      "home_manager": "Gevenito",
      "home_pen_score": 0,
      "penalties": 0,
      "played": 1,
      "stadium_id": 1456,
      "turn_id": 13646
    },
    {
      "attendance": 14851,
      "away_club": 541,
      "away_goals": 1,
      "away_manager": Gevenito,
      "away_pen_score": 0,
      "comp_type": 0,
      "country_id": "ESP",
      "date": 1737568800,
      "fixture_id": 87587,
      "home_club": 538,
      "home_goals": 0,
      "home_manager": "StormShadow",
      "home_pen_score": 0,
      "penalties": 0,
      "played": 1,
      "stadium_id": 1467,
      "turn_id": 11213
    }
  ],
  "id": 1
}

Gets the schedule of fixtures for a specific club in a season.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes
season_id number ID of the season Yes

Returns

An array of fixture objects, each containing:

Field Type Description
fixture_id number Unique ID for the fixture
home_club number ID of the home club
away_club number ID of the away club
home_goals number Number of goals scored by home team (null if not played)
away_goals number Number of goals scored by away team (null if not played)
penalties number Total penalties scored in this match
home_pen_score number Penalties scored by the home team
away_pen_score number Penalties scored by the away tem
attendance number Attendance
country_id string ISO country code for the club's country
turn_id number Unique identifier for Turn
home_manager string Username of the home team manager
away_manager string Username of the away team manager
stadium_id number Unique identifier for the stadium
date number Date of the fixture (Unix timestamp)
competition_type string Type of competition (e.g., "league", "cup")
played boolean Whether the fixture has been played

Errors

Code Description
-32602 Invalid club ID or season ID
-32603 Error retrieving club schedule

Get Clubs Next Fixture

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_clubs_next_fixture",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_clubs_next_fixture',
    params: {
      club_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_clubs_next_fixture",
    "params": {
        "club_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "attendance": 0,
    "away_club": 797,
    "away_goals": 0,
    "away_manager": null,
    "comp_type": 1,
    "country_id": "ESP",
    "date": 1746468000,
    "fixture_id": 110444,
    "home_club": 541,
    "home_goals": 0,
    "home_manager": null,
    "number": 5,
    "season_id": 1,
    "stadium_id": 1456,
    "turn_id": 11596
  },
  "id": 1
}

Gets the next scheduled fixture for a specific club.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes

Returns

A fixture object containing:

Field Type Description
attendance number Attendance
away_club number ID of the away club
away_goals number Number of goals scored by away team (null if not played)
away_manager string Username of the away team manager
comp_type number Competition type
country_id string ISO country code for the club's country
date number Date of the fixture (Unix timestamp)
fixture_id number Unique ID for the fixture
home_club number ID of the home club
home_goals number Number of goals scored by home team (null if not played)
home_manager string Username of the home team manager
number number Not used in game
season_id number ID of the season
stadium_id number Unique identifier for the stadium
turn_id number Unique identifier for Turn

Errors

Code Description
-32602 Invalid club ID
-32603 Error retrieving next fixture
-32604 No upcoming fixtures found

Get Clubs Last Fixture

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_clubs_last_fixture",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_clubs_last_fixture',
    params: {
      club_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_clubs_last_fixture",
    "params": {
        "club_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "attendance": 0,
    "away_club": 797,
    "away_goals": 0,
    "away_manager": null,
    "comp_type": 1,
    "country_id": "ESP",
    "date": 1746468000,
    "fixture_id": 110444,
    "home_club": 541,
    "home_goals": 0,
    "home_manager": null,
    "number": 5,
    "season_id": 1,
    "stadium_id": 1456,
    "turn_id": 11596
  },
  "id": 1
}

Gets the most recently played fixture for a specific club.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes

Returns

A fixture object with the same structure as the fixture objects in the get_clubs_next_fixture method.

Errors

Code Description
-32602 Invalid club ID
-32603 Error retrieving last fixture
-32604 No previous fixtures found

Get Squad

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_squad",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_squad',
    params: {
      club_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_squad",
    "params": {
        "club_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "player_id": 10,
      "club_id": 1,
      "retired": false,
      "contract": 3,
      "agent_name": "agent3",
      "desired": {
        "contract": 4,
        "transfer": false,
        "renew": true
      },
      "fitness": 98,
      "morale": 95,
      "injured": 0,
      "injury_id": 0,
      "wages": 25000,
      "form": "WWWWW",
      "multi_position": 0,
      "position": 1,
      "rating": 90,
      "banned": 0,
      "rating_gk": 90,
      "rating_tackling": 30,
      "rating_passing": 50,
      "rating_shooting": 20,
      "rating_aggression": 60,
      "rating_stamina": 85,
      "cup_tied": false,
      "yellow_cards": 0,
      "yellowred_cards": 0,
      "red_cards": 0,
      "dob": 936144000,
      "side": "R",
      "value": 35000000,
      "country_id": "GER"
    },
    {
      "player_id": 15,
      "club_id": 1,
      "retired": false,
      "contract": 3,
      "agent_name": "agent5",
      "desired": {
        "contract": 4,
        "transfer": false,
        "renew": true
      },
      "fitness": 90,
      "morale": 85,
      "injured": 0,
      "injury_id": 0,
      "wages": 20000,
      "form": "WWDLL",
      "multi_position": 0,
      "position": 4,
      "rating": 88,
      "banned": 0,
      "rating_gk": 14,
      "rating_tackling": 89,
      "rating_passing": 87,
      "rating_shooting": 79,
      "rating_aggression": 85,
      "rating_stamina": 92,
      "cup_tied": false,
      "yellow_cards": 3,
      "yellowred_cards": 0,
      "red_cards": 0,
      "dob": 967766400,
      "side": "R",
      "value": 30000000,
      "country_id": "ENG"
    }
  ],
  "id": 1
}

Gets the squad of players for a specific club.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes

Returns

An array of player objects. Each player object has the same structure as defined in the Player schema.

Errors

Code Description
-32602 Invalid club ID
-32603 Error retrieving squad

Get Freebench

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_freebench",
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_freebench',
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_freebench",
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "player_id": 50,
      "club_id": null,
      "retired": false,
      "contract": 0,
      "agent_name": "agent8",
      "desired": {
        "contract": 2,
        "transfer": true,
        "renew": false
      },
      "fitness": 90,
      "morale": 70,
      "injured": 0,
      "injury_id": 0,
      "wages": 5000,
      "form": "DLLWL",
      "multi_position": 0,
      "position": 2,
      "rating": 75,
      "banned": 0,
      "rating_gk": 15,
      "rating_tackling": 78,
      "rating_passing": 75,
      "rating_shooting": 70,
      "rating_aggression": 80,
      "rating_stamina": 85,
      "cup_tied": false,
      "yellow_cards": 1,
      "yellowred_cards": 0,
      "red_cards": 0,
      "dob": 978307200,
      "side": "R",
      "value": 8000000,
      "country_id": "BRA"
    }
  ],
  "id": 1
}

Gets the list of free players not assigned to any club, available for signing.

Parameters

None

Returns

An array of player objects. Each player object has the same structure as defined in the Player schema, but with club_id set to null.

Errors

Code Description
-32603 Error retrieving freebench

Tactical Methods

This section covers methods for managing club tactics, including lineups, formations, and playing styles.

Methods Summary

Method Description Authentication Required
preparetactics Prepares and validates tactics for a club No
get_club_tactics Gets the tactics for a specific club No
autopick_club_tactics Automatically selects tactics for a club No
get_old_tactic_actions Gets historical tactic actions for a club and fixture No
get_old_tactic_action_lineups Gets the lineup for a historical tactic action No

Prepare Tactics

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "preparetactics",
    "params": {
      "tactics": {
        "club_id": 1,
        "formation_id": 442,
        "play_style": 2,
        "use_playmaker": true,
        "use_target_man": false,
        "captain": 10,
        "penalty_taker": 15,
        "free_kicks": 15,
        "corner_taker": 8,
        "playmaker": 8,
        "target_man": null,
        "lineup": [
          {
            "player_id": 10,
            "tackling_style": 1,
            "tempo": 2
          },
          // Additional lineup players omitted for brevity
        ],
        "substitutions": [
          {
            "player_off_id": 15,
            "player_on_id": 18,
            "condition": {
              "type": "score",
              "trigger": "losing",
              "min_time": 60,
              "max_time": 80
            }
          }
        ],
        "formation_changes": []
      }
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'preparetactics',
    params: {
      tactics: {
        club_id: 1,
        formation_id: 442,
        play_style: 2,
        use_playmaker: true,
        use_target_man: false,
        captain: 10,
        penalty_taker: 15,
        free_kicks: 15,
        corner_taker: 8,
        playmaker: 8,
        target_man: null,
        lineup: [
          {
            player_id: 10,
            tackling_style: 1,
            tempo: 2
          },
          // Additional lineup players omitted for brevity
        ],
        substitutions: [
          {
            player_off_id: 15,
            player_on_id: 18,
            condition: {
              type: "score",
              trigger: "losing",
              min_time: 60,
              max_time: 80
            }
          }
        ],
        formation_changes: []
      }
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "preparetactics",
    "params": {
        "tactics": {
            "club_id": 1,
            "formation_id": 442,
            "play_style": 2,
            "use_playmaker": True,
            "use_target_man": False,
            "captain": 10,
            "penalty_taker": 15,
            "free_kicks": 15,
            "corner_taker": 8,
            "playmaker": 8,
            "target_man": None,
            "lineup": [
                {
                    "player_id": 10,
                    "tackling_style": 1,
                    "tempo": 2
                },
                # Additional lineup players omitted for brevity
            ],
            "substitutions": [
                {
                    "player_off_id": 15,
                    "player_on_id": 18,
                    "condition": {
                        "type": "score",
                        "trigger": "losing",
                        "min_time": 60,
                        "max_time": 80
                    }
                }
            ],
            "formation_changes": []
        }
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "data": "dVC7bsMwDPwXzhx0pERK/pUiQ2zFRdAWMBB3Cvzvle2tkBcS4PEe5JteNJCMQDS1e5I6W4FZTJONjwS9T4b68HmcahYdx9FryHkUDVVRHtWr1UBM652GjzdNNLxpflYaRJg+f2gIvFu0ura6MX23vcBgYeXIiY2dMxdGG4IhDGVERmIYw29My3MXbcrONK1Hm7+Otpy1zbAbNLfSHJbXvn+a/i5n27GwbU1tfR1B94jBRHMpwANj4hTy7aRcQ99zkqajH3SRE5SheCS/LQhYpb+0FIOdqXnpR+9nWR+SUr9fKZe+k5J/UJNCyRc/CgaynXw2Ge5Ofo3ocj/FLftDw==",
  },
  "id": 1
}

Prepares and validates tactics for a club, checking for errors and providing warnings about potential issues. This method should be called before submitting tactics to ensure they are valid.

Parameters

Parameter Type Description Required
tactics object Tactics configuration object Yes
tactics.club_id number ID of the club Yes
tactics.formation_id number Formation ID (e.g., 442, 433) Yes
tactics.play_style number Play style (0: defensive, 1: balanced, 2: attacking) Yes
tactics.use_playmaker boolean Whether to use a playmaker Yes
tactics.use_target_man boolean Whether to use a target man Yes
tactics.captain number Player ID of the captain Yes
tactics.penalty_taker number Player ID of the penalty taker Yes
tactics.free_kicks number Player ID of the free kick taker Yes
tactics.corner_taker number Player ID of the corner taker Yes
tactics.playmaker number Player ID of the playmaker (null if not used) No
tactics.target_man number Player ID of the target man (null if not used) No
tactics.lineup array Array of player positions Yes
tactics.substitutions array Array of planned substitutions No
tactics.formation_changes array Array of conditional formation changes No

Returns

Field Type Description
data string Encoded tactics string

Errors

Code Description
-32602 Invalid tactics parameters
-32603 Error validating tactics

Get Club Tactics

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_club_tactics",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_club_tactics',
    params: {
      club_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_club_tactics",
    "params": {
        "club_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "commitment": "5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c",
    "formation_id": 442,
    "play_style": 2,
    "use_playmaker": true,
    "use_target_man": false,
    "captain": 10,
    "penalty_taker": 15,
    "free_kicks": 15,
    "corner_taker": 8,
    "playmaker": 8,
    "target_man": null,
    "lineup": [
      {
        "player_id": 10,
        "tackling_style": 1,
        "tempo": 2
      },
      // Additional lineup players omitted for brevity
    ],
    "substitutions": [],
    "formation_changes": [],
    "validation": "valid"
  },
  "id": 1
}

Gets the current tactics for a specific club.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes

Returns

The response includes a Tactics object with the same structure as the Tactics schema. Notable fields include:

Field Type Description
commitment string Hash commitment for the tactics
formation_id number ID of the formation
play_style number Play style (0: defensive, 1: balanced, 2: attacking, etc.)
lineup array Array of player positions
validation string Validation status of the tactics

Errors

Code Description
-32602 Invalid club ID
-32603 Error retrieving club tactics
-32604 No tactics found for club

Autopick Club Tactics

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "autopick_club_tactics",
    "params": {
      "club_id": 1,
      "formation_id": 442
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'autopick_club_tactics',
    params: {
      club_id: 1,
      formation_id: 442
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "autopick_club_tactics",
    "params": {
        "club_id": 1,
        "formation_id": 442
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "formation_id": 442,
    "play_style": 2,
    "use_playmaker": true,
    "use_target_man": false,
    "captain": 10,
    "penalty_taker": 15,
    "free_kicks": 15,
    "corner_taker": 8,
    "playmaker": 8,
    "target_man": null,
    "lineup": [
      {
        "player_id": 10,
        "tackling_style": 1,
        "tempo": 2
      },
      // Additional lineup players omitted for brevity
    ]
  },
  "id": 1
}

Automatically selects the best tactics for a club based on the specified formation or the club's default formation if formation_id is 0.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes
formation_id number ID of the formation to use (0 for default) Yes

Returns

The response includes a partial Tactics object containing:

Field Type Description
formation_id number ID of the formation
play_style number Selected play style
use_playmaker boolean Whether to use a playmaker
use_target_man boolean Whether to use a target man
captain number Player ID of the selected captain
penalty_taker number Player ID of the selected penalty taker
free_kicks number Player ID of the selected free kick taker
corner_taker number Player ID of the selected corner taker
playmaker number Player ID of the selected playmaker (null if not used)
target_man number Player ID of the selected target man (null if not used)
lineup array Array of player positions

Errors

Code Description
-32602 Invalid club ID or formation ID
-32603 Error auto-picking tactics
-32604 Not enough players available for the formation

Get Old Tactic Actions

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_old_tactic_actions",
    "params": {
      "club_id": 1,
      "fixture_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_old_tactic_actions',
    params: {
      club_id: 1,
      fixture_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_old_tactic_actions",
    "params": {
        "club_id": 1,
        "fixture_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "old_tactic_action_id": 1,
      "time": 0,
      "situation": 0,
      "goal_margin": 0,
      "formation_id": 442,
      "play_style": 2,
      "use_playmaker": 1,
      "use_target_man": 0,
      "captain": 10,
      "penalty_taker": 15,
      "free_kicks": 15,
      "corner_taker": 8,
      "playmaker": 8,
      "target_man": 0,
      "season_id": 1,
      "autopicked": null
    },
    {
      "old_tactic_action_id": 2,
      "time": 65,
      "situation": 1,
      "goal_margin": -1,
      "formation_id": 433,
      "play_style": 3,
      "use_playmaker": 0,
      "use_target_man": 1,
      "captain": 10,
      "penalty_taker": 15,
      "free_kicks": 15,
      "corner_taker": 8,
      "playmaker": 0,
      "target_man": 12,
      "season_id": 1,
      "autopicked": null
    }
  ],
  "id": 1
}

Gets historical tactic actions for a specific club and fixture, showing how tactics changed during a match.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes
fixture_id number ID of the fixture Yes

Returns

An array of tactic action objects, each containing:

Field Type Description
old_tactic_action_id number Unique identifier for the tactic action
time number Match time when the action occurred (in minutes)
situation number Game situation (0: normal, 1: special circumstance)
goal_margin number Goal difference at the time (negative if losing)
formation_id number Formation ID used
play_style number Play style used
use_playmaker number Whether a playmaker was used (1: yes, 0: no)
use_target_man number Whether a target man was used (1: yes, 0: no)
captain number Player ID of the captain
penalty_taker number Player ID of the penalty taker
free_kicks number Player ID of the free kick taker
corner_taker number Player ID of the corner taker
playmaker number Player ID of the playmaker (0 if not used)
target_man number Player ID of the target man (0 if not used)
season_id number ID of the season
autopicked boolean Whether the tactics were autopicked (null if manually set)

Errors

Code Description
-32602 Invalid club ID or fixture ID
-32603 Error retrieving tactic actions
-32604 No tactic actions found for this club and fixture

Get Old Tactic Action Lineups

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_old_tactic_action_lineups",
    "params": {
      "old_tactic_action_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_old_tactic_action_lineups',
    params: {
      old_tactic_action_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_old_tactic_action_lineups",
    "params": {
        "old_tactic_action_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "old_tactic_action_lineup_id": 1,
      "position": 1,
      "tackling_style": 1,
      "tempo": 2,
      "player_id": 10,
      "season_id": 1
    },
    {
      "old_tactic_action_lineup_id": 2,
      "position": 2,
      "tackling_style": 2,
      "tempo": 2,
      "player_id": 2,
      "season_id": 1
    },
    // Additional player positions omitted for brevity
  ],
  "id": 1
}

Gets the lineup details for a specific historical tactic action.

Parameters

Parameter Type Description Required
old_tactic_action_id number ID of the historical tactic action Yes

Returns

An array of lineup position objects, each containing:

Field Type Description
old_tactic_action_lineup_id number Unique identifier for the lineup position
position number Position within the formation (1-11)
tackling_style number Tackling style (0: none, 1: normal, 2: hard)
tempo number Playing tempo (0: slow, 1: normal, 2: fast, 3: very fast)
player_id number ID of the player in this position
season_id number ID of the season

Errors

Code Description
-32602 Invalid tactic action ID
-32603 Error retrieving tactic action lineup
-32604 No lineup found for this tactic action

Match and Fixture Methods

This section covers methods for retrieving information about matches and fixtures.

Methods Summary

Method Description
get_fixture Gets information about a specific fixture
get_turn_fixtures Gets all fixtures for a specific turn
get_match_events Gets events that occurred during a match
get_match_commentary Gets commentary for a specific match
get_match_subs Gets substitutions made during a match
get_fixture_player_data Gets player statistics for a specific fixture
get_all_turns Gets all turns for a specific competition

get_fixture

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_fixture",
    "params": {
      "fixture_id": 1
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_fixture',
  params: {
    fixture_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_fixture',
    'params': {
        'fixture_id': 1
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": {
    "comp_type": 1
    "date": 178887665
    "home_club": 1,
    "away_club": 2, 
    "home_goals": 2,
    "away_goals": 1,    
    "penalties": 0,
    "home_pen_score": 0,
    "away_pen_score": 0,
    "home_possession": 55,
    "away_possession": 45,
    "home_shots": 14,
    "away_shots": 8,
    "home_shots_on_target": 5,
    "away_shots_on_target": 3,
    "home_corners": 7,
    "away_corners": 4,
    "attendance": 28000,
    "man_of_match": 15,
    "number": 4
    "home_manager": "manager1",
    "away_manager": "manager2",
    "stadium_id": 1,
    "turn_id": 10,
    "country_id": "ENG"
    "season_id": 1
  },
  "id": 1
}

Gets information about a specific fixture.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
fixture_id Integer ID of the fixture to retrieve

Returns

Returns a fixture object with match details including goals, statistics, attendance, and relevant IDs.

Errors

Error Code Meaning
404 Fixture Not Found - The specified fixture does not exist
403 Permission Denied - You don't have permission to access this fixture

get_turn_fixtures

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_turn_fixtures",
    "params": {
      "turn_id": 10
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_turn_fixtures',
  params: {
    turn_id: 10
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_turn_fixtures',
    'params': {
        'turn_id': 10
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "fixture_id": 1,
      "home_club": 1,
      "away_club": 2,
      "home_goals": 2,
      "away_goals": 1,
      "penalties": 0,
      "home_pen_score": 0,
      "away_pen_score": 0,
      "home_possession": 55,
      "away_possession": 45,
      "home_shots": 14,
      "away_shots": 8,
      "home_shots_on_target": 5,
      "away_shots_on_target": 3,
      "home_corners": 7,
      "away_corners": 4,
      "attendance": 28000,
      "man_of_match": 15,
      "number": 1,
      "stadium_id": 1,
      "turn_id": 10,
      "home_manager": "manager1",
      "away_manager": "manager2",
      "season_id": 1
    },
    {
      "fixture_id": 2,
      "home_club": 3,
      "away_club": 4,
      "home_goals": 3,
      "away_goals": 0,
      "penalties": 0,
      "home_pen_score": 0,
      "away_pen_score": 0,
      "home_possession": 60,
      "away_possession": 40,
      "home_shots": 18,
      "away_shots": 5,
      "home_shots_on_target": 9,
      "away_shots_on_target": 2,
      "home_corners": 8,
      "away_corners": 3,
      "attendance": 32000,
      "man_of_match": 25,
      "number": 2,
      "stadium_id": 3,
      "turn_id": 10,
      "home_manager": "manager3",
      "away_manager": "manager4",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets all fixtures for a specific turn.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
turn_id Integer ID of the turn to retrieve fixtures for

Returns

Returns an array of fixture objects for the specified turn.

Errors

Error Code Meaning
404 Turn Not Found - The specified turn does not exist
403 Permission Denied - You don't have permission to access these fixtures

get_match_events

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_match_events",
    "params": {
      "fixture_id": 1
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_match_events',
  params: {
    fixture_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_match_events',
    'params': {
        'fixture_id': 1
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "match_event_id": 1,
      "event_type": "goal",
      "player_id": 15,
      "club_id": 1,
      "time": 23,
      "goal_type": "",
      "season_id": 1
    },
    {
      "match_event_id": 2,
      "event_type": "yellow_card",
      "player_id": 22,
      "club_id": 2,
      "time": 35,
      "goal_type": "",
      "season_id": 1
    },
    {
      "match_event_id": 3,
      "event_type": "goal",
      "player_id": 15,
      "club_id": 1,
      "time": 67,
      "goal_type": "penalty",
      "season_id": 1
    },
    {
      "match_event_id": 4,
      "event_type": "goal",
      "player_id": 25,
      "club_id": 2,
      "time": 88,
      "goal_type": "",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets events that occurred during a match.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
fixture_id Integer ID of the fixture to retrieve events for

Returns

Returns an array of event objects that occurred during the specified match, including goals, cards, and other significant events.

Errors

Error Code Meaning
404 Fixture Not Found - The specified fixture does not exist
403 Permission Denied - You don't have permission to access this fixture's events

get_match_commentary

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_match_commentary",
    "params": {
      "fixture_id": 1
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_match_commentary',
  params: {
    fixture_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_match_commentary',
    'params': {
        'fixture_id': 1
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "category": "TACKLE",
      "club_one_id": 0,
      "club_two_id": 0,
      "comm_event_id": 3745417,
      "comm_sub_event_id": 9478589,
      "data_one":,
      "fixture_id": 87804,
      "player_one_id": 162122,
      "player_two_id": 0,
      "season_id": 1,
      "time": 4
    },
    {
      "category": "ASSISTEDCHANCE",
      "club_one_id": 537,
      "club_two_id": 0,
      "comm_event_id": 3745418,
      "comm_sub_event_id": 9478590,
      "data_one":,
      "fixture_id": 87804,
      "player_one_id": 47080,
      "player_two_id": 47361,
      "season_id": 1,
      "time": 6
    },
    {
      "category": "YELLOWCARD",
      "club_one_id": 0,
      "club_two_id": 0,
      "comm_event_id": 3745443,
      "comm_sub_event_id": 9478644,
      "data_one":,
      "fixture_id": 87804,
      "player_one_id": 0,
      "player_two_id": 0,
      "season_id": 1,
      "time": 66
    }
  ],
  "id": 1
}

Gets commentary for a specific match.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
fixture_id Integer ID of the fixture to retrieve commentary for

Returns

Returns an array of commentary events that describe the match narrative in sequential order.

Errors

Error Code Meaning
404 Fixture Not Found - The specified fixture does not exist
403 Permission Denied - You don't have permission to access this fixture's commentary

get_match_subs

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_match_subs",
    "params": {
      "fixture_id": 1
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_match_subs',
  params: {
    fixture_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_match_subs',
    'params': {
        'fixture_id': 1
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "subs_made_id": 1,
      "player_off_id": 18,
      "player_on_id": 21,
      "club_id": 1,
      "time": 65,
      "season_id": 1
    },
    {
      "subs_made_id": 2,
      "player_off_id": 28,
      "player_on_id": 31,
      "club_id": 2,
      "time": 70,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets substitutions made during a match.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
fixture_id Integer ID of the fixture to retrieve substitutions for

Returns

Returns an array of substitution objects showing player replacements during the match.

Errors

Error Code Meaning
404 Fixture Not Found - The specified fixture does not exist
403 Permission Denied - You don't have permission to access this fixture's substitutions

get_fixture_player_data

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_fixture_player_data",
    "params": {
      "fixture_id": 1
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_fixture_player_data',
  params: {
    fixture_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_fixture_player_data',
    'params': {
        'fixture_id': 1
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "fixture_player_id": 1,
      "team": 1,
      "player_id": 10,
      "start_ix": 1,
      "time_started": 0,
      "time_finished": 90,
      "saves": 3,
      "key_tackles": 0,
      "key_passes": 0,
      "assists": 0,
      "shots": 0,
      "goals": 0,
      "yellow_cards": 0,
      "red_cards": 0,
      "yellowred_cards": 0,
      "injuries": 0,
      "keeping_abilities": 90,
      "tackling_abilities": 30,
      "passing_abilities": 50,
      "shooting_abilities": 20,
      "rating": 7.5,
      "youth_player": 0,
      "fixture_id": 1,
      "season_id": 1
    },
    {
      "fixture_player_id": 2,
      "team": 1,
      "player_id": 15,
      "start_ix": 8,
      "time_started": 0,
      "time_finished": 90,
      "saves": 0,
      "key_tackles": 2,
      "key_passes": 3,
      "assists": 0,
      "shots": 4,
      "goals": 2,
      "yellow_cards": 0,
      "red_cards": 0,
      "yellowred_cards": 0,
      "injuries": 0,
      "keeping_abilities": 14,
      "tackling_abilities": 89,
      "passing_abilities": 87,
      "shooting_abilities": 79,
      "rating": 9.2,
      "youth_player": 0,
      "fixture_id": 1,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets player statistics for a specific fixture.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
fixture_id Integer ID of the fixture to retrieve player data for

Returns

Returns an array of player performance objects with detailed match statistics for each player involved in the fixture.

Errors

Error Code Meaning
404 Fixture Not Found - The specified fixture does not exist
403 Permission Denied - You don't have permission to access this fixture's player data

get_all_turns

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_all_turns",
    "params": {
      "comp_id": 1
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_all_turns',
  params: {
    comp_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_all_turns',
    'params': {
        'comp_id': 1
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "turn_id": 10,
      "date": 1662595200,
      "season_id": 1,
      "comp_type": 1,
      "number": 1,
      "played": 0,
      "country_id": "ENG",
      "season_id": 1,
    }
  ],
  "id": 1
}

Gets all turns for a specific competition.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
comp_id Integer ID of the competition to retrieve turns for

Returns

Returns an array of turn objects for the specified competition, including dates, completion status, and related IDs.

Errors

Error Code Meaning
404 Competition Not Found - The specified competition does not exist
403 Permission Denied - You don't have permission to access this competition's turns

League and Competition Methods

This section covers methods for retrieving information about leagues, cups, and competitions, including standings tables and top players.

Methods Summary

Method Description Authentication Required
get_league_table Gets the standings table for a specific league No
get_leagues Gets all leagues for a specific season No
get_leagues_by_country Gets all leagues for a specific country and season No
get_league Gets information about a specific league No
get_cups Gets all cups for a specific season No
get_cups_by_country Gets all cups for a specific country and season No
get_cup Gets information about a specific cup No
get_clubs_league Gets the league information for a specific club No
get_league_top_players Gets the top players in a specific league No

Get League Table

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_league_table",
    "params": {
      "league_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_league_table',
    params: {
      league_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_league_table",
    "params": {
        "league_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "club_id": 1234,
      "club_ix": 1,
      "played": 10,
      "won": 8,
      "drawn": 1,
      "lost": 1,
      "goals_for": 22,
      "goals_against": 7,
      "pts": 25,
      "form": "WWWDW",
      "old_position": 1,
      "new_position": 1,
      "season_id": 1,
      "manager_name": "Manager1"
    },
  ],
  "id": 1
}

Gets the current standings table for a specific league, showing all clubs' performance statistics.

Parameters

Parameter Type Description Required
league_id number ID of the league Yes

Returns

An array of table row objects, each containing:

Field Type Description
club_id number ID of the club
club_ix number Depricated, not used in front-end
played number Number of matches played
won number Number of matches won
drawn number Number of matches drawn
lost number Number of matches lost
goals_for number Number of goals scored
goals_against number Number of goals conceded
pts number Total points
form string Recent form (e.g., "WWWDW" for Win-Win-Win-Draw-Win)
old_position number Old position in the league table
new_position number New position in the league table
season_id number ID of the season
manager_name string Name of the manager

The array is sorted by position in ascending order.

Errors

Code Description
-32602 Invalid league ID
-32603 Error retrieving league table
-32604 League not found

Get Leagues

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_leagues",
    "params": {
      "season_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_leagues',
    params: {
      season_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_leagues",
    "params": {
        "season_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "league_id": 1,
      "name": "Premier League",
      "group": 1,
      "level": 1,
      "ticket_cost": 5000,
      "tv_money": 10000000,
      "comp_type": 1,
      "round": 1,
      "country_id": "ENG",
      "season_id": 1
    },
    {
      "league_id": 2,
      "name": "Championship",
      "group": 1,
      "level": 2,
      "ticket_cost": 3000,
      "tv_money": 5000000,
      "comp_type": 1,
      "round": 1,
      "country_id": "ENG",
      "season_id": 1
    },
    {
      "league_id": 3,
      "name": "La Liga",
      "group": 1,
      "level": 1,
      "ticket_cost": 4500,
      "tv_money": 9000000,
      "comp_type": 1,
      "round": 1,
      "country_id": "ESP",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets all leagues for a specific season across all countries.

Parameters

Parameter Type Description Required
season_id number ID of the season Yes

Returns

An array of league objects, each containing:

Field Type Description
league_id number Unique identifier for the league
name string Name of the league
group number Group identifier (for leagues with multiple groups)
level number Level in the league hierarchy (1 for top tier)
ticket_cost number Base ticket cost for matches
tv_money number TV revenue for the league
comp_type number Competition type (1 for league)
round number Current round of matches
country_id string ISO country code
season_id number ID of the season

Errors

Code Description
-32602 Invalid season ID
-32603 Error retrieving leagues

Get Leagues By Country

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_leagues_by_country",
    "params": {
      "country_id": "ENG",
      "season_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_leagues_by_country',
    params: {
      country_id: "ENG",
      season_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_leagues_by_country",
    "params": {
        "country_id": "ENG",
        "season_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "league_id": 1,
      "name": "Premier League",
      "group": 1,
      "level": 1,
      "ticket_cost": 5000,
      "tv_money": 10000000,
      "comp_type": 1,
      "round": 1,
      "country_id": "ENG",
      "season_id": 1
    },
    {
      "league_id": 2,
      "name": "Championship",
      "group": 1,
      "level": 2,
      "ticket_cost": 3000,
      "tv_money": 5000000,
      "comp_type": 1,
      "round": 1,
      "country_id": "ENG",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets all leagues for a specific country and season.

Parameters

Parameter Type Description Required
country_id string ISO country code Yes
season_id number ID of the season Yes

Returns

An array of league objects with the same structure as in Get Leagues, filtered by the specified country.

Errors

Code Description
-32602 Invalid country ID or season ID
-32603 Error retrieving leagues by country

Get League

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_league",
    "params": {
      "league_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_league',
    params: {
      league_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_league",
    "params": {
        "league_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [{
    "league_id": 1,
    "name": "Premier League",
    "group": 1,
    "level": 1,
    "ticket_cost": 5000,
    "tv_money": 10000000,
    "comp_type": 1,
    "round": 1,
    "country_id": "ENG",
    "season_id": 1
  }],
  "id": 1
}

Gets detailed information about a specific league.

Parameters

Parameter Type Description Required
league_id number ID of the league Yes

Returns

A league object with the same structure as the league objects in Get Leagues.

Errors

Code Description
-32602 Invalid league ID
-32603 Error retrieving league information
-32604 League not found

Get Cups

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_cups",
    "params": {
      "season_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_cups',
    params: {
      season_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_cups",
    "params": {
        "season_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "cup_id": 1,
      "num_teams": 3
      "round": 1,
      "num_rounds": 1
      "prize_money": 5000000,
      "comp_type": 2,
      "country_id": "ENG",
      "season_id": 1
    },
    {
      "cup_id": 2,
      "num_teams": 3
      "round": 1,
      "num_rounds": 1
      "prize_money": 3000000,
      "comp_type": 2,
      "country_id": "ENG",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets all cup competitions for a specific season across all countries.

Parameters

Parameter Type Description Required
season_id number ID of the season Yes

Returns

An array of cup objects, each containing:

Field Type Description
cup_id number Unique identifier for the cup
num_teams number Number of participating teams
round number Current round of the cup
num_rounds number Number of rounds in the cup
prize_money number Prize money for the cup winner
comp_type number Competition type (2 for cup)
country_id string ISO country code
season_id number ID of the season

Errors

Code Description
-32602 Invalid season ID
-32603 Error retrieving cups

Get Cups By Country

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_cups_by_country",
    "params": {
      "country_id": "ENG",
      "season_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_cups_by_country',
    params: {
      country_id: "ENG",
      season_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_cups_by_country",
    "params": {
        "country_id": "ENG",
        "season_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "cup_id": 1,
      "name": "FA Cup",
      "ticket_cost": 4000,
      "prize_money": 5000000,
      "comp_type": 2,
      "round": 1,
      "country_id": "ENG",
      "season_id": 1
    },
    {
      "cup_id": 2,
      "name": "League Cup",
      "ticket_cost": 3000,
      "prize_money": 3000000,
      "comp_type": 2,
      "round": 1,
      "country_id": "ENG",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets all cup competitions for a specific country and season.

Parameters

Parameter Type Description Required
country_id string ISO country code Yes
season_id number ID of the season Yes

Returns

An array of cup objects with the same structure as in Get Cups, filtered by the specified country.

Errors

Code Description
-32602 Invalid country ID or season ID
-32603 Error retrieving cups by country

Get Cup

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_cup",
    "params": {
      "cup_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_cup',
    params: {
      cup_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_cup",
    "params": {
        "cup_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "cup_id": 1,
    "name": "FA Cup",
    "ticket_cost": 4000,
    "prize_money": 5000000,
    "comp_type": 2,
    "round": 1,
    "country_id": "ENG",
    "season_id": 1
  },
  "id": 1
}

Gets detailed information about a specific cup competition.

Parameters

Parameter Type Description Required
cup_id number ID of the cup Yes

Returns

A cup object with the same structure as the cup objects in Get Cups.

Errors

Code Description
-32602 Invalid cup ID
-32603 Error retrieving cup information
-32604 Cup not found

Get Clubs League

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_clubs_league",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_clubs_league',
    params: {
      club_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_clubs_league",
    "params": {
        "club_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "league_id": 1
    }
  ],
  "id": 1
}

Gets the league information for a specific club, identifying which league the club participates in.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes

Returns

An array (typically containing one object) with league identifiers:

Field Type Description
league_id number ID of the league the club participates in

Errors

Code Description
-32602 Invalid club ID
-32603 Error retrieving club's league
-32604 Club not found or not in any league

Get League Top Players

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_league_top_players",
    "params": {
      "league_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_league_top_players',
    params: {
      league_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_league_top_players",
    "params": {
        "league_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
  {
    "league_id": 1,
    "player_id": 123,
    "club_id": 1,
    "apearances": 10,
    "goals": 5,
    "assists": 3,
    "perf_sum": 80,
    "mom": 2,
    "yellow_cards": 1,
    "yellowred_cards": 0,
    "red_cards": 0
  },
  ...
],
  "id": 1
}

Gets the top-performing players in a specific league across different statistical categories.

Parameters

Parameter Type Description Required
league_id number ID of the league Yes

Returns

An array containing objects with player data

Field Type Description
league_id number ID of the league
player_id number ID of the player
club_id number ID of the player's club
apearances number The relevant statistic
goals number The relevant statistic
assists number The relevant statistic
perf_sum number The relevant statistic
mom number The relevant statistic
yellow_cards number The relevant statistic
yellowred_cards number The relevant statistic
red_cards number The relevant statistic

Errors

Code Description
-32602 Invalid league ID
-32603 Error retrieving league top players
-32604 League not found

Association Methods

This section covers methods for retrieving information about football associations, their structure, and qualifiers.

Methods Summary

Method Description Authentication Required
get_associations Gets all associations of a specific type No
get_association Gets information about a specific association by country ID No
get_association_qualifiers Gets qualifier information for a specific association No

Get Associations

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_associations",
    "params": {
      "association_type": "national"
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_associations',
    params: {
      association_type: "continental"
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_associations",
    "params": {
        "association_type": "national"
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "association_data_id": 1,
      "association_type": "national",
      "country_id": "ENG",
      "num_leagues": 4,
      "num_promotion": 3,
      "num_cups": 2,
      "num_qualifiers": 4,
      "two_stages": 0,
      "league_games_per_week": 1,
      "num_league_rounds": 38,
      "match_day": 0,
      "match_time_hours": 15,
      "match_time_minutes": 0
    },
    {
      "association_data_id": 2,
      "association_type": "national",
      "country_id": "ESP",
      "num_leagues": 3,
      "num_promotion": 3,
      "num_cups": 1,
      "num_qualifiers": 4,
      "two_stages": 0,
      "league_games_per_week": 1,
      "num_league_rounds": 38,
      "match_day": 0,
      "match_time_hours": 20,
      "match_time_minutes": 0
    }
  ],
  "id": 1
}

Gets all football associations of a specific type (e.g., national, continental, world).

Parameters

Parameter Type Description Required
association_type string Type of association (e.g., "world", "continental", "national") Yes

Returns

An array of association objects, each containing:

Field Type Description
association_data_id number Unique identifier for the association
association_type string Type of the association
country_id string ISO country code (e.g., "ENG", "ESP")
num_leagues number Number of leagues in the association
num_promotion number Number of promotion slots between leagues
num_cups number Number of cup competitions
num_qualifiers number Number of continental qualification spots
two_stages number Whether leagues have two stages (0: no, 1: yes)
league_games_per_week number Number of league games per week
num_league_rounds number Number of rounds in a league season
match_day number Default match day (0: Saturday, 1: Sunday, etc.)
match_time_hours number Default match time (hours)
match_time_minutes number Default match time (minutes)

Errors

Code Description
-32602 Invalid association type
-32603 Error retrieving associations

Get Association

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_association",
    "params": {
      "country_id": "ENG"
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_association',
    params: {
      country_id: "ENG"
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_association",
    "params": {
        "country_id": "ENG"
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "association_data_id": 1,
      "association_type": "national",
      "country_id": "ENG",
      "num_leagues": 4,
      "num_promotion": 3,
      "num_cups": 2,
      "num_qualifiers": 4,
      "two_stages": 0,
      "league_games_per_week": 1,
      "num_league_rounds": 38,
      "match_day": 0,
      "match_time_hours": 15,
      "match_time_minutes": 0
    }
  ],
  "id": 1
}

Gets information about a specific football association by its country ID.

Parameters

Parameter Type Description Required
country_id string ISO country code (e.g., "ENG", "ESP") Yes

Returns

An array (typically containing one object) of association objects with the same structure as in Get Associations.

Errors

Code Description
-32602 Invalid country ID
-32603 Error retrieving association
-32604 Association not found

Get Association Qualifiers

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_association_qualifiers",
    "params": {
      "association_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_association_qualifiers',
    params: {
      association_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_association_qualifiers",
    "params": {
        "association_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "country_id": "ENG",
      "num_qualifiers": 4
    },
    {
      "country_id": "ESP",
      "num_qualifiers": 3
    }
  ],
  "id": 1
}

Gets qualifier information for a specific association, showing the number of qualification spots for continental competitions.

Parameters

Parameter Type Description Required
association_id number ID of the association Yes

Returns

An array of qualifier objects, each containing:

Field Type Description
country_id string ISO country code
num_qualifiers number Number of qualification spots for the country

Errors

Code Description
-32602 Invalid association ID
-32603 Error retrieving association qualifiers

Season Methods

This section covers methods for retrieving information about seasons.

Methods Summary

Method Description
get_seasons Gets information about all seasons
get_season Gets information about a specific season

get_seasons

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_seasons",
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_seasons',
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_seasons',
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "season_id": 1,
      "name": "2022-2023",
      "number": 1,
      "start": 1661990400,
      "end": 1685577600,
      "finished": true
    },
    {
      "season_id": 2,
      "name": "2023-2024",
      "number": 1,
      "start_date": 1688169600,
      "end_date": 1711843200,
      "finished": false
    }
  ],
  "id": 1
}

Gets information about all seasons in the system.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

None required.

Returns

Returns an array of season objects, each containing the season ID, name, start and end dates (as Unix timestamps), and whether it's the current season.

Errors

Error Code Meaning
401 Unauthorized - Authentication required to access season information
500 Server Error - Failed to retrieve seasons information

get_season

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_season",
    "params": {
      "season_id": 1
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_season',
  params: {
    season_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_season',
    'params': {
        'season_id': 1
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": {
    "season_id": 1,
    "name": "2022-2023",
    "number": 1,
    "start": 1661990400,
    "end": 1685577600,
    "playerupdates": {}
  },
  "id": 1
}

Gets information about a specific season by ID.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
season_id Integer ID of the season to retrieve

Returns

Returns a single season object containing the season ID, name, start and end dates (as Unix timestamps), and whether it's the current season.

Errors

Error Code Meaning
400 Bad Request - Missing required parameter
404 Not Found - Season with the specified ID was not found
401 Unauthorized - Authentication required to access season information

Message and News Methods

This section covers methods for retrieving messages and news within the game.

Methods Summary

Method Description
get_news_feed Gets the latest news feed
get_club_messages Gets messages for a specific club
get_player_messages Gets messages for a specific player
get_association_messages Gets messages for a specific association
get_comp_messages Gets messages for a specific competition

get_news_feed

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_news_feed",
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_news_feed',
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_news_feed',
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "message_id": 1,
      "date": 1662595200,
      "type": 9,
      "sub_type": 0,
      "club_1": 1223,
      "club_2": 65533,
      "data_1": 0,
      "data_2": 0,
      "data_3": 0,
      "data_4": 0,
      "data_5": 0,
      "name_1": "baron",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets the latest news feed from the game.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

None required.

Returns

Returns an array of news articles with details

Errors

Error Code Meaning
401 Unauthorized - Authentication required to access the news feed
500 Server Error - Failed to retrieve news feed

get_club_messages

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_club_messages",
    "params": {
      "club_id": 1,
      "season_id": 1
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_club_messages',
  params: {
    club_id: 1,
    season_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_club_messages',
    'params': {
        'club_id': 1,
        'season_id': 1
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "message_id": 1,
      "date": 1662595200,
      "type": 9,
      "sub_type": 0,
      "club_1": 1223,
      "club_2": 65533,
      "data_1": 0,
      "data_2": 0,
      "data_3": 0,
      "data_4": 0,
      "data_5": 0,
      "name_1": "baron",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets messages for a specific club.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
club_id Integer ID of the club to retrieve messages for
season_id Integer ID of the season to retrieve messages from

Returns

Returns an array of message objects related to the specified club, including title, content, date, and message ID.

Errors

Error Code Meaning
400 Bad Request - Missing required parameters
404 Not Found - Club or season not found
403 Forbidden - You don't have permission to access messages for this club

get_player_messages

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_player_messages",
    "params": {
      "player_id": 1,
      "season_id": 1
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_player_messages',
  params: {
    player_id: 1,
    season_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_player_messages',
    'params': {
        'player_id': 1,
        'season_id': 1
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "message_id": 1,
      "date": 1662595200,
      "type": 9,
      "sub_type": 0,
      "club_1": 1223,
      "club_2": 65533,
      "data_1": 0,
      "data_2": 0,
      "data_3": 0,
      "data_4": 0,
      "data_5": 0,
      "name_1": "baron",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets messages for a specific player.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
player_id Integer ID of the player to retrieve messages for
season_id Integer ID of the season to retrieve messages from

Returns

Returns an array of message objects related to the specified player

Errors

Error Code Meaning
400 Bad Request - Missing required parameters
404 Not Found - Player or season not found
403 Forbidden - You don't have permission to access messages for this player

get_association_messages

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_association_messages",
    "params": {
      "association_id": "ENG",
      "season_id": 1
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_association_messages',
  params: {
    association_id: "ENG",
    season_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_association_messages',
    'params': {
        'association_id': "ENG",
        'season_id': 1
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "message_id": 1,
      "date": 1662595200,
      "type": 9,
      "sub_type": 0,
      "club_1": 1223,
      "club_2": 65533,
      "data_1": 0,
      "data_2": 0,
      "data_3": 0,
      "data_4": 0,
      "data_5": 0,
      "name_1": "baron",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets messages for a specific association.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
association_id String ID of the association to retrieve messages for (e.g., "ENG" for England)
season_id Integer ID of the season to retrieve messages from

Returns

Returns an array of message objects related to the specified association

Errors

Error Code Meaning
400 Bad Request - Missing required parameters
404 Not Found - Association or season not found
403 Forbidden - You don't have permission to access messages for this association

get_comp_messages

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_comp_messages",
    "params": {
      "comp_id": 1,
      "season_id": 1
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_comp_messages',
  params: {
    comp_id: 1,
    season_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_comp_messages',
    'params': {
        'comp_id': 1,
        'season_id': 1
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "message_id": 1,
      "date": 1662595200,
      "type": 9,
      "sub_type": 0,
      "club_1": 1223,
      "club_2": 65533,
      "data_1": 0,
      "data_2": 0,
      "data_3": 0,
      "data_4": 0,
      "data_5": 0,
      "name_1": "baron",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets messages for a specific competition.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
comp_id Integer ID of the competition to retrieve messages for
season_id Integer ID of the season to retrieve messages from

Returns

Returns an array of message objects related to the specified competition

Errors

Error Code Meaning
400 Bad Request - Missing required parameters
404 Not Found - Competition or season not found
403 Forbidden - You don't have permission to access messages for this competition

Transfer Methods

This section covers methods for retrieving information about player transfers and auctions, including active transfer listings, bids, and historical transfer records.

Methods Summary

Method Description Authentication Required
get_top_transfer_auctions Gets the top transfer auctions No
get_clubs_transfer_auctions Gets all transfer auctions for a specific club No
get_clubs_transfer_bids Gets all transfer bids made by a specific club No
get_transfer_auction_details Gets detailed information about a specific player's transfer auction No
get_all_transfer_history Gets the history of all transfers in a specific season No
get_club_transfer_history Gets the transfer history for a specific club No
get_player_transfer_history Gets the transfer history for a specific player No

Get Top Transfer Auctions

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_top_transfer_auctions",
    "params": {
      "num": 2
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_top_transfer_auctions',
    params: {
      num: 2
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_top_transfer_auctions",
    "params": {
        "num": 2
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "club_id": 3601,
      "contract": 2,
      "country_id": "TUR",
      "dob": 1164758400,
      "end_time": 1746753400,
      "free_with_no_bids": false,
      "high_bid":{
          "amount": 1485000000,
          "club_id": 20780
      },
      "injured": 0,
      "injury_id": 0,
      "minimum_bid": 675000000,
      "multi_position": 16384,
      "player_id": 471385,
      "position": 16384,
      "rating": 61,
      "started": true,
      "transfer_auction_id": 7273,
      "value": 1350000000
    }
  ],
  "id": 1
}

Gets the top active transfer auctions, sorted by current bid amount in descending order.

Parameters

Parameter Type Description Required
num number Number of auctions to return Yes

Returns

An array of auction objects, each containing:

Field Type Description
club_id number Unique identifier for the club
contract number Contract length
country_id string ID of the country like "EUR"
dob number DOB date
end_time number End time date
free_with_no_bids boolean True if free and no bids
high_bid number High bid number
injured number Injured time
injury_id number Injured id type
minimum_bid number Minimum bid number
multi_position number Multiposition number
player_id number ID of the player being auctioned
position number Position number
rating number Player rating
started boolean True if started
transfer_auction_id number Unique identifier for the auction
value number Current value number

Errors

Code Description
-32602 Invalid number parameter
-32603 Error retrieving transfer auctions

Get Clubs Transfer Auctions

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_clubs_transfer_auctions",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_clubs_transfer_auctions',
    params: {
      club_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_clubs_transfer_auctions",
    "params": {
        "club_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "club_id": 3601,
      "contract": 2,
      "country_id": "TUR",
      "dob": 1164758400,
      "end_time": 1746753400,
      "free_with_no_bids": false,
      "high_bid":{
          "amount": 1485000000,
          "club_id": 20780
      },
      "injured": 0,
      "injury_id": 0,
      "minimum_bid": 675000000,
      "multi_position": 16384,
      "player_id": 471385,
      "position": 16384,
      "rating": 61,
      "started": true,
      "transfer_auction_id": 7273,
      "value": 1350000000
    }
  ],
  "id": 1
}

Gets all active transfer auctions for a specific club (players being sold by the club).

Parameters

Parameter Type Description Required
club_id number ID of the club Yes

Returns

An array of auction objects with the same structure as in Get Top Transfer Auctions.

Errors

Code Description
-32602 Invalid club ID
-32603 Error retrieving club transfer auctions

Get Clubs Transfer Bids

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_clubs_transfer_bids",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_clubs_transfer_bids',
    params: {
      club_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_clubs_transfer_bids",
    "params": {
        "club_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "transfer_auction_id": 123,
      "player_id": 456,
      "self_bid": 1500000,
      "highest_bid": 2000000,
      "highest_bidder": 789
    },
    {
      "transfer_auction_id": 124,
      "player_id": 457,
      "self_bid": 800000,
      "highest_bid": 800000,
      "highest_bidder": 1
    }
  ],
  "id": 1
}

Gets information about all transfer auctions that a specific club has bid on. This helps clubs track their active bids and see if they are currently the highest bidder.

Parameters

Parameter Type Description Required
club_id number ID of the club making the bids Yes

Returns

An array of bid summary objects, each containing:

Field Type Description
transfer_auction_id number Unique identifier for the transfer auction
player_id number ID of the player being bid on
self_bid number Amount of the club's own bid
highest_bid number Amount of the highest bid in the auction
highest_bidder number ID of the club with the highest bid (matches club_id if this club is winning)

Errors

Code Description
-32602 Invalid club ID
-32603 Error retrieving club transfer bids

Get Transfer Auction Details

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_transfer_auction_details",
    "params": {
      "player_id": 15
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_transfer_auction_details',
    params: {
      player_id: 15
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_transfer_auction_details",
    "params": {
        "player_id": 15
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "bids":[
        {
            "amount": 2655990000,
            "club_id": 210
        },
        {
            "amount": 4000000000,
            "club_id": 2744
        }
    ],
    "club_id": 837,
    "contract": 2,
    "country_id": "CHN",
    "dob": 797299200,
    "end_time": 1747211989,
    "free_with_no_bids": false,
    "high_bid":{
        "amount": 4000000000,
        "club_id": 2744
    },
    "injured": 0,
    "injury_id": 0,
    "maxbid": 9959935068,
    "minimum_bid": 2655982684,
    "minnextbid": 4040000000,
    "multi_position": 12,
    "player_id": 13044,
    "position": 4,
    "rating": 70,
    "started": true,
    "transfer_auction_id": 7683,
    "value": 3319978356
    },
  "id": 1
}

Gets detailed information about a specific player's active transfer auction, including all bids and basic player information.

Parameters

Parameter Type Description Required
player_id number ID of the player Yes

Returns

An auction details object containing:

Field Type Description
bids array Array of bid objects for this auction
bids[].club_id number ID of the club that placed the bid
bids[].amount number Amount of the bid
club_id number ID of the club with the highest bid (null if no bids)
contract number Number contract length
country_id string ID of the country, like "EUR"
dob number DOB Number
end_time number Auction end date (Unix timestamp)
free_with_no_bids boolean True if no bids
high_bid Object for the higher bid number
high_bid.club_id number ID of the club that placed the bid
high_bid.amount number Amount of the bid
injured number Date of injury end
injury_id number ID of the injury
maxbid number Maximum bid amount
minimum_bid number Minimum asking price for the bid
minnextbid number Next minimum bid amount
multi_position number Multiposition number
player_id number ID of the player being auctioned
position number Position number
rating number Rating number
started boolean True if transfer started
transfer_auction_id number Unique transfer auction ID
value number Value number

Errors

Code Description
-32602 Invalid player ID
-32603 Error retrieving transfer auction details
-32604 No active auction found for this player

Get All Transfer History

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_all_transfer_history",
    "params": {
      "season_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_all_transfer_history',
    params: {
      season_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_all_transfer_history",
    "params": {
        "season_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "player_id": 15,
      "date": 1661990400,     
      "club_id_from": 2,
      "club_id_to": 1,
      "amount": 30000000
    }
  ],
  "id": 1
}

Gets the history of all completed transfers in a specific season.

Parameters

Parameter Type Description Required
season_id number ID of the season Yes

Returns

An array of transfer objects, each containing:

Field Type Description
player_id number ID of the transferred player
date number Date of the transfer (Unix timestamp)
club_id_from number ID of the selling club
club_id_to number ID of the buying club
amount number Transfer fee

Errors

Code Description
-32602 Invalid season ID
-32603 Error retrieving transfer history

Get Club Transfer History

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_club_transfer_history",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_club_transfer_history',
    params: {
      club_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_club_transfer_history",
    "params": {
        "club_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "player_id": 15,
      "date": 1661990400,     
      "club_id_from": 2,
      "club_id_to": 1,
      "amount": 30000000
    }
  ],
  "id": 1
}

Gets the complete transfer history for a specific club, including both incoming and outgoing transfers.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes

Returns

An array of transfer objects with the same structure as in Get All Transfer History, plus an additional field:

Field Type Description
type string Type of transfer ("in" for incoming, "out" for outgoing)

Errors

Code Description
-32602 Invalid club ID
-32603 Error retrieving club transfer history

Get Player Transfer History

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_player_transfer_history",
    "params": {
      "player_id": 15
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_player_transfer_history',
    params: {
      player_id: 15
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_player_transfer_history",
    "params": {
        "player_id": 15
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "player_id": 15,
      "date": 1661990400,     
      "club_id_from": 2,
      "club_id_to": 1,
      "amount": 30000000
    }
  ],
  "id": 1
}

Gets the complete transfer history for a specific player, showing all moves between clubs.

Parameters

Parameter Type Description Required
player_id number ID of the player Yes

Returns

An array of transfer objects with the same structure as in Get All Transfer History. The transfers are ordered by date, with the most recent transfer first.

Errors

Code Description
-32602 Invalid player ID
-32603 Error retrieving player transfer history

User and Manager Methods

This section covers methods for retrieving information about users and managers.

Methods Summary

Method Description
get_user_account Gets information about a specific user account
get_all_users Gets a list of all users
get_all_managers Gets a list of all managers
get_users_last_active Gets the last active time for specific users
get_best_managers Gets a list of the best-performing managers
get_user_wages Gets wage information for a specific user
get_comp_history_by_manager Gets competition history for a specific manager
get_manager_history_by_manager Gets the career history for a specific manager
get_manager_history_by_club Gets the history of managers for a specific club

get_user_account

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_user_account",
    "params": {
      "name": "user1"
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_user_account',
  params: {
    name: "user1"
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_user_account',
    'params': {
        'name': "user1"
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": "balance":{
        "available": 336021679,
        "reserved": 2600000,
        "total": 338621679
    },
    "last_active": 1746535388,
  "id": 1
}

Gets information about a specific user account.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
name String Name of the user to retrieve information for

Returns

Returns a user object containing account details including balance, last active time, and user name

Errors

Error Code Meaning
400 Bad Request - Missing required parameter
404 Not Found - User with the specified name was not found
401 Unauthorized - Authentication required to access user information

get_all_users

This RPC requires unsafe mode to be enabled on the server

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_all_users",
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_all_users',
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_all_users',
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "name": "user1",
      "balance": 5000000,
    }
  ],
  "id": 1
}

Gets a list of all users in the system.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

None required.

Returns

Returns an array of user objects, each containing account details including name and balance.

Errors

Error Code Meaning
401 Unauthorized - Authentication required to access user information
403 Forbidden - You don't have permission to view all users

get_all_managers

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_all_managers",
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_all_managers',
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_all_managers',
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "manager_name": "user1",
      "club_id": 1
    }
  ],
  "id": 1
}

Gets a list of all managers in the system.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

None required.

Returns

Returns an array of manager objects, each containing information about users with manager roles, including their club affiliation and last active time.

Errors

Error Code Meaning
401 Unauthorized - Authentication required to access manager information
403 Forbidden - You don't have permission to view all managers

get_users_last_active

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_users_last_active",
    "params": {
      ["user1", "user2"]
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_users_last_active',
  params: {
    names: ["user1", "user2"]
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_users_last_active',
    'params': {
        'names': ["user1", "user2"]
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "name": "user1",
      "last_active": 1663804800
    },
    {
      "name": "user2",
      "last_active": 1663718400
    }
  ],
  "id": 1
}

Gets the last active time for specific users.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
names Array Array of user names to retrieve last active times for

Returns

Returns an array of objects, each containing a user name and their last active timestamp.

Errors

Error Code Meaning
400 Bad Request - Missing required parameter or invalid format
404 Not Found - One or more users not found
401 Unauthorized - Authentication required

get_best_managers

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_best_managers",
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_best_managers',
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_best_managers',
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {

      "club_id": 1,
      "manager_name": "user1",
      "manager_voted": false,
      "won": 8,
      "drawn": 2,
      "lost": 1,
      "num_games": 26,
      "start_date": 176655433,
      "end_date": 176544563
    }
  ],
  "id": 1
}

Gets a list of the best-performing managers, ordered by points.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

None required.

Returns

Returns an array of manager performance objects, each containing details about the manager's club, win/loss record, and points.

Errors

Error Code Meaning
401 Unauthorized - Authentication required to access manager information
500 Server Error - Failed to retrieve manager performance data

get_user_wages

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_user_wages",
    "params": {
      "id": 1,
      "season_id": 1,
      "wage_type": "manager"
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_user_wages',
  params: {
    id: 1,
    season_id: 1,
    wage_type: "manager"
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_user_wages',
    'params': {
        'id': 1,
        'season_id': 1,
        'wage_type': "manager"
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "wage": 10,
    }
  ],
  "id": 1
}

Gets wage information for a specific user.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
id Integer ID of the user to retrieve wage information for
season_id Integer ID of the season to retrieve data from
wage_type String Type of wage (e.g., "agent", "manager")

Returns

Returns an array of wage payment objects

Errors

Error Code Meaning
400 Bad Request - Missing required parameters
404 Not Found - User not found
403 Forbidden - You don't have permission to access this user's wage information

get_comp_history_by_manager

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_comp_history_by_manager",
    "params": {
      "name": "user1"
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_comp_history_by_manager',
  params: {
    name: "user1"
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_comp_history_by_manager',
    'params': {
        'name': "user1"
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "club_id": 1,
      "manager_name": "user1",
      "manager_voted": false,
      "won": 8,
      "drawn": 2,
      "lost": 1,
      "num_games": 26,
      "start_date": 176655433,
      "end_date": 176544563
    }
  ],
  "id": 1
}

Gets competition history for a specific manager.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
name String Name of the manager to retrieve competition history for

Returns

Returns an array of competition result objects, each containing details about the manager's performance in different competitions.

Errors

Error Code Meaning
400 Bad Request - Missing required parameter
404 Not Found - Manager not found
403 Forbidden - You don't have permission to access this manager's competition history

get_manager_history_by_manager

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_manager_history_by_manager",
    "params": {
      "name": "user1"
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_manager_history_by_manager',
  params: {
    name: "user1"
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_manager_history_by_manager',
    'params': {
        'name': "user1"
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "club_id": 1,
      "manager_name": "user1",
      "manager_voted": false,
      "won": 8,
      "drawn": 2,
      "lost": 1,
      "num_games": 26,
      "start_date": 176655433,
      "end_date": 176544563
    }
  ],
  "id": 1
}

Gets the career history for a specific manager.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
name String Name of the manager to retrieve career history for

Returns

Returns an array of career history objects, each containing details about the manager's tenures at different clubs, including start and end dates.

Errors

Error Code Meaning
400 Bad Request - Missing required parameter
404 Not Found - Manager not found
403 Forbidden - You don't have permission to access this manager's career history

get_manager_history_by_club

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_manager_history_by_club",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_manager_history_by_club',
  params: {
    club_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_manager_history_by_club',
    'params': {
        'club_id': 1
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "club_id": 1,
      "manager_name": "user1",
      "manager_voted": false,
      "won": 8,
      "drawn": 2,
      "lost": 1,
      "num_games": 26,
      "start_date": 176655433,
      "end_date": 176544563
    }
  ],
  "id": 1
}

Gets the history of managers for a specific club.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
club_id Integer ID of the club to retrieve manager history for

Returns

Returns an array of manager tenure objects, each containing details about a manager's time at the specified club, including start and end dates.

Errors

Error Code Meaning
400 Bad Request - Missing required parameter
404 Not Found - Club not found
403 Forbidden - You don't have permission to access this club's manager history

Vote and Proposal Methods

This section covers methods for retrieving information about votes and proposals.

Methods Summary

Method Description
get_all_votes Gets all active votes
get_votes_for_shareholder Gets all votes relevant to a specific shareholder
get_share_proposals Gets all proposals for a specific share

get_all_votes

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_all_votes",
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_all_votes',
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_all_votes',
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      share: {
        type: "club",
        id: 1
      },
      "state": "upcoming",
      "type": "club",
      "start_time": 1663632000,
      "end_time": 1664064000
    }
  ],
  "id": 1
}

Gets all active votes in the system.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

None required.

Returns

Returns an array of vote objects, each containing details about the vote.

Errors

Error Code Meaning
401 Unauthorized - Authentication required to access vote information
500 Server Error - Failed to retrieve votes

get_votes_for_shareholder

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_votes_for_shareholder",
    "params": {
      "name": "user1"
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_votes_for_shareholder',
  params: {
    name: "user1"
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_votes_for_shareholder',
    'params': {
        'name': "user1"
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      share: {
        type: "club",
        id: 1
      },
      "state": "upcoming",
      "type": "club",
      "start_time": 1663632000,
      "end_time": 1664064000
    }
  ],
  "id": 1
}

Gets all votes relevant to a specific shareholder.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
name String Name of the shareholder to retrieve votes for

Returns

Returns an array of vote objects relevant to the specified shareholder

Errors

Error Code Meaning
400 Bad Request - Missing required parameter
404 Not Found - Shareholder not found
401 Unauthorized - Authentication required to access shareholder vote information

get_share_proposals

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_share_proposals",
    "params": {
      "share": {
        "type": "club",
        "id": 1
      }
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_share_proposals',
  params: {
    share: {
      type: "club",
      id: 1
    }
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_share_proposals',
    'params': {
        'share': {
            'type': "club",
            'id': 1
        }
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
    "data":{
    },
    "end_time": 1736776424,
    "options":[
        {
        "data":{
            "manager": "Gevenito"
        },
        "option_id": 1,
        "votes": 4604
        },
        {
        "data":{
            "manager": "Loizire"
        },
        "option_id": 0,
        "votes": 0
        }
    ],
    "proposal_id": 33,
    "start_time": 1736517223,
    "state": "finished",
    "total_votes": 211560,
    "type": "manager",
    "votes":{
        "Gevenito": 1
}
  ],
  "id": 1
}

Gets all proposals for a specific share.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
share Object Object containing the type and ID of the share to retrieve proposals for

The share object should have the following structure: json { "type": "club", "id": 1 }

Returns

Returns an array of proposal objects for the specified share, each containing details about the proposal including its ID, type, proposed value, proposer, status, and associated vote (if any).

Errors

Error Code Meaning
400 Bad Request - Missing required parameter or invalid share object
404 Not Found - Share not found
401 Unauthorized - Authentication required to access share proposals

Share and Trading Methods

This section covers methods for retrieving information about shares and trading activities, including balances, transactions, orderbooks, and market data.

Methods Summary

Method Description Authentication Required
get_user_share_balances Gets the share balances for a specific user No
get_user_share_transactions Gets the share transaction history for a specific user No
get_share_owners Gets all owners of a specific share No
get_user_share_orders Gets all active share orders for a specific user No
get_share_orderbook Gets the current orderbook for a specific share No
get_share_last_prices Gets the last traded prices for specified shares No
get_share_overview Gets an overview of a specific share's activity over time No
get_share_trade_history Gets the trade history for a specific share No
get_share_dilutions Gets dilution information for shares No

Get User Share Balances

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_user_share_balances",
    "params": {
      "name": "user1"
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_user_share_balances',
    params: {
      name: "user1"
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_user_share_balances",
    "params": {
        "name": "user1"
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    "balance":{
        "available": 196,
        "reserved": 0,
        "total": 196
    },
    share:{
        "club": 40
    }
  ],
  "id": 1
}

Gets all share balances for a specific user, including both club and player shares.

Parameters

Parameter Type Description Required
name string Name of the user Yes

Returns

An array of share balance objects, each containing:

Field Type Description
balance object Object contains user SVC balance data
share object Share identifier

Errors

Code Description
-32602 Invalid user name
-32603 Error retrieving share balances

Get User Share Transactions

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_user_share_transactions",
    "params": {
      "name": "user1"
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_user_share_transactions',
    params: {
      name: "user1"
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_user_share_transactions",
    "params": {
        "name": "user1"
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "name": "Ondi",
      "share": {
        "type": "club",
        "id": 1
      },
      "date": 1662595200,
      "num": 4
      "type": "club"
      "other_name": "Master"
    }
  ],
  "id": 1
}

Gets the complete transaction history for a specific user, showing all share purchases and sales.

Parameters

Parameter Type Description Required
name string Name of the user Yes

Returns

An array of transaction objects, each containing:

Field Type Description
name string Name of the first involed party in transaction
share object Share identifier
date number Transaction time (Unix timestamp)
num number Transaction number
type string Type of share (e.g., "club", "player")
other_name string Name of the other involed party in transaction

Errors

Code Description
-32602 Invalid user name
-32603 Error retrieving share transactions

Get Share Owners

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_share_owners",
    "params": {
      "share": {
        "type": "club",
        "id": 1
      }
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_share_owners',
    params: {
      share: {
        type: "club",
        id: 1
      }
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_share_owners",
    "params": {
        "share": {
            "type": "club",
            "id": 1
        }
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "name": "user1",
      "num": 1000
    }
  ],
  "id": 1
}

Gets a list of all users who own shares of a specific entity (club or player).

Parameters

Parameter Type Description Required
share object Share identifier Yes
share.type string Type of share (e.g., "club", "player") Yes
share.id number ID of the entity (club or player) Yes

Returns

An array of share owner objects, each containing:

Field Type Description
name string Name of the share owner
num number Total number of shares owned

Errors

Code Description
-32602 Invalid share parameters
-32603 Error retrieving share owners

Get User Share Orders

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_user_share_orders",
    "params": {
      "name": "user1"
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_user_share_orders',
    params: {
      name: "user1"
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_user_share_orders",
    "params": {
        "name": "user1"
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "order_id": 1,
      "type": "bid",
      "share": {
        "type": "club",
        "id": 2
      },
      "num": 200,
      "price": 95
    }
  ],
  "id": 1
}

Gets all active share orders (bids and asks) placed by a specific user.

Parameters

Parameter Type Description Required
name string Name of the user Yes

Returns

An array of order objects, each containing:

Field Type Description
order_id number Unique identifier for the order
type string Order type ("bid" for buy orders, "ask" for sell orders)
share object Share identifier
share.type string Type of share (e.g., "club", "player")
share.id number ID of the entity (club or player)
num number Number of shares to buy/sell
price number Price per share

Errors

Code Description
-32602 Invalid user name
-32603 Error retrieving share orders

Get Share Orderbook

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_share_orderbook",
    "params": {
      "share": {
        "type": "club",
        "id": 1
      }
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_share_orderbook',
    params: {
      share: {
        type: "club",
        id: 1
      }
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_share_orderbook",
    "params": {
        "share": {
            "type": "club",
            "id": 1
        }
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
      bid: [
      {
        "mint": false,
        "name": "tigerbakerx",
        "num": 20,
        "price": 100000
      }
      ], 
      ask: [
      {
        "mint": false,
        "name": "tigerbakerx",
        "num": 20,
        "price": 100000
      }
      ],      
      }
  "id": 1
}

Gets the current orderbook for a specific share, showing all active buy (bid) and sell (ask) orders.

Parameters

Parameter Type Description Required
share object Share identifier Yes
share.type string Type of share (e.g., "club", "player") Yes
share.id number ID of the entity (club or player) Yes

Returns

An array of objects containing:

Field Type Description
ask[].num number Amout of influence
ask[].price number Influence price
ask[].name number Name of the seller
ask[].mint boolean Was influence bought from the store or not

bid[].num | number | Amout of influence bid[].price | number | Influence price bid[].name | number | Name of the seller bid[].mint | boolean | Was influence bought from the store or not

Bids are sorted by price in descending order (highest first), while asks are sorted by price in ascending order (lowest first).

Errors

Code Description
-32602 Invalid share parameters
-32603 Error retrieving share orderbook

Get Share Last Prices

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_share_last_prices",
    "params": {
      "shares": [
        {
          "type": "club",
          "id": 1
        },
        {
          "type": "club",
          "id": 2
        }
      ]
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_share_last_prices',
    params: {
      shares: [
        {
          type: "club",
          id: 1
        },
        {
          type: "club",
          id: 2
        }
      ]
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_share_last_prices",
    "params": {
        "shares": [
            {
                "type": "club",
                "id": 1
            },
            {
                "type": "club",
                "id": 2
            }
        ]
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "share": {
        "type": "club",
        "id": 1
      },
      "date": 105,
      "last_price": 1663632000,
    }
  ],
  "id": 1
}

Gets the last traded prices and related market data for the specified shares.

Parameters

Parameter Type Description Required
shares array Array of share identifiers Yes
shares[].type string Type of share (e.g., "club", "player") Yes
shares[].id number ID of the entity (club or player) Yes

Returns

An array of share price objects, each containing:

Field Type Description
share object Share identifier
share.type string Type of share (e.g., "club", "player")
share.id number ID of the entity (club or player)
date number Time of the last trade (Unix timestamp)
last_price number Last actual price

Errors

Code Description
-32602 Invalid share parameters
-32603 Error retrieving share prices

Get Share Overview

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_share_overview",
    "params": {
      "type": "club",
      "id": 1,
      "since": 1661990400
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_share_overview',
    params: {
      type: "club",
      id: 1,
      since: 1661990400
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_share_overview",
    "params": {
        "type": "club",
        "id": 1,
        "since": 1661990400
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
        "best_ask": 300000,
        "best_bid": 50000,
        "last_price": 300000,
        "num_shares": 211560,
        "share":{
            "type": "club",
            "id": 541
        },
        "volume": 15590000
    }
    ],
  "id": 1
}

Gets a comprehensive overview of a specific share's price and volume history, along with aggregate statistics.

Parameters

Parameter Type Description Required
type string Type of share (e.g., "club", "player") Yes
id number ID of the entity (club or player) Yes
since number Starting timestamp for historical data (Unix timestamp) Yes

Returns

An object containing:

Field Type Description
share object Share identifier
share.type string Type of share
share.id number ID of the entity
best_bid number Best bid amount
best_ask number Best ask amount
last_price number Last price used to buy
num_shares number Number of shares
volume number Total shares volume

Errors

Code Description
-32602 Invalid parameters
-32603 Error retrieving share overview

Get Share Trade History

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_share_trade_history",
    "params": {
      "share": {
        "type": "club",
        "id": 1
      }
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_share_trade_history',
    params: {
      share: {
        type: "club",
        id: 1
      }
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_share_trade_history",
    "params": {
        "share": {
            "type": "club",
            "id": 1
        }
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "date": 1662595200,   
      "buyer": "user1",
      "mint": false,
      "seller": "user2",
      "num": 500,
      "price": 100,
    }
  ],
  "id": 1
}

Gets the complete trade history for a specific share, showing all completed trades.

Parameters

Parameter Type Description Required
share object Share identifier Yes
share.type string Type of share (e.g., "club", "player") Yes
share.id number ID of the entity (club or player) Yes

Returns

An array of trade objects, each containing:

Field Type Description
date number Trade time (Unix timestamp)
buyer string Name of the buyer
mint boolean Was it bought from store directly or not
seller string Name of the seller
num number Number of shares traded
price number Price per share

Trades are ordered by time, with the most recent trade first.

Errors

Code Description
-32602 Invalid share parameters
-32603 Error retrieving share trade history

Get Share Dilutions

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_share_dilutions",
    "params": {
      "user": "user1",
      "type": "club",
      "id": 1,
      "state": "active"
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_share_dilutions',
    params: {
      user: "user1",
      type: "club",
      id: 1,
      state: "active"
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_share_dilutions",
    "params": {
        "user": "user1",
        "type": "club",
        "id": 1,
        "state": "active"
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "event_id": 1,
      "share": {
        "type": "club",
        "id": 1
      },
      "num": 1000,
      "minraise": 100000,
      "end_time": 1664236800,
      "state": "active",
      "contributions": [
        {
          "name": "user1",
          "amount": 50000
        },
        {
          "name": "user2",
          "amount": 30000
        }
      ],
      "total_bids": 80000
    },
    {
      "event_id": 2,
      "share": {
        "type": "player",
        "id": 15
      },
      "num": 500,
      "minraise": 75000,
      "end_time": 1664323200,
      "state": "success",
      "price": 160,
      "contributions": [
        {
          "name": "user1",
          "amount": 50000,
          "shares_bought": 312,
          "refund": 50
        },
        {
          "name": "user3",
          "amount": 30000,
          "shares_bought": 188,
          "refund": 0
        }
      ],
      "total_bids": 80000,
      "total_refund": 50,
      "total_raised": 79950
    },
    {
      "event_id": 3,
      "share": {
        "type": "club",
        "id": 2
      },
      "num": 800,
      "minraise": 90000,
      "end_time": 1664150400,
      "state": "failed",
      "contributions": [
        {
          "name": "user1",
          "amount": 30000
        },
        {
          "name": "user4",
          "amount": 40000
        }
      ],
      "total_bids": 70000
    }
  ],
  "id": 1
}

Gets information about share dilution events, which occur when new shares are issued by a club or for a player. A dilution event allows users to contribute funds to purchase newly issued shares.

Parameters

Parameter Type Description Required
user string Filter by user name who contributed to the dilution event No
type string Filter by share type (e.g., "club", "player") No
id number Filter by entity ID No
state string Filter by dilution state ("active", "success", "failed", or "finished" which includes both success and failed) No

Returns

An array of dilution event objects, each containing:

Field Type Description
event_id number Unique identifier for the dilution event
share object Share identifier
share.type string Type of share (e.g., "club", "player")
share.id number ID of the entity (club or player)
num number Total number of new shares to issue
minraise number Minimum amount of funds that need to be raised for the event to succeed
end_time number End time of the dilution event (Unix timestamp)
state string Current state of the event ("active", "success", "failed")
price number Price per share (only present for successful events)
contributions array Array of user contributions
contributions[].name string Name of the contributor
contributions[].amount number Amount contributed by the user
contributions[].shares_bought number Number of shares received (only for successful events)
contributions[].refund number Amount refunded to the user (only for successful events)
total_bids number Total amount of funds contributed to the event
total_refund number Total amount refunded to users (only for finished events)
total_raised number Total amount actually raised (only for successful events)

Errors

Code Description
-32602 Invalid parameters
-32603 Error retrieving share dilutions

Ticker Methods

This section covers methods for retrieving realtime ticker information.

Methods Summary

Method Description
get_ticker_share_trades Gets recent share trades for the ticker
get_ticker_last_transfers Gets recent player transfers for the ticker
get_ticker_top_player_auctions Gets top player auctions for the ticker
get_ticker_club_balances Gets top club balance information for the ticker
get_ticker_manager_agent_news Gets recent manager and agent news for the ticker
get_ticker_match_results Gets recent match results for the ticker

get_ticker_share_trades

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_ticker_share_trades",
    "params": {
      "num": 10,
      "type": "club"
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_ticker_share_trades',
  params: {
    num: 10,
    type: 'club'
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_ticker_share_trades',
    'params': {
        'num': 10,
        'type': 'club'
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "date": 1663804800,
      "share": {
        "type": "club",
        "id": 1,
      },
      "price": 105,
      "type": "buy"
    }
  ],
  "id": 1
}

Gets recent share trades for the ticker.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
num Integer Number of trades to return
type String Optional. Type of share (e.g., "club", "player")

Returns

Returns an array of share trade objects, each containing details about the trade including the share type, buyer, seller, amount, price, and total value.

Errors

Error Code Meaning
400 Bad Request - Missing required parameters
401 Unauthorized - Authentication required

get_ticker_last_transfers

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_ticker_last_transfers",
    "params": {
      "num": 10
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_ticker_last_transfers',
  params: {
    num: 10
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_ticker_last_transfers',
    'params': {
        'num': 10
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "date": 1663804800,
      "player_id": 15,
      "amount": 30000000,
      "newclub": 1
    }
  ],
  "id": 1
}

Gets recent player transfers for the ticker.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
num Integer Number of transfers to return

Returns

Returns an array of transfer objects, each containing details about the player transfer including player information, source and destination clubs, fee, and date.

Errors

Error Code Meaning
400 Bad Request - Missing required parameters
401 Unauthorized - Authentication required

get_ticker_top_player_auctions

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_ticker_top_player_auctions",
    "params": {
      "num": 10
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_ticker_top_player_auctions',
  params: {
    num: 10
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_ticker_top_player_auctions',
    'params': {
        'num': 10
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "player": 15,
    }
  ],
  "id": 1
}

Gets top player auctions for the ticker.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
num Integer Number of auctions to return

Returns

Returns an array of player auction objects, each containing player unique ID.

Errors

Error Code Meaning
400 Bad Request - Missing required parameters
401 Unauthorized - Authentication required

get_ticker_club_balances

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_ticker_club_balances",
    "params": {
      "num": 10
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_ticker_club_balances',
  params: {
    num: 10
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_ticker_club_balances',
    'params': {
        'num': 10
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "club_id": 1,
      "club_name": "Club 1",
      "balance": 15000000,
      "change_24h": 2000000,
      "season_id": 1
    },
    {
      "club_id": 3,
      "club_name": "Club 3",
      "balance": 12000000,
      "change_24h": 1500000,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets top club balance information for the ticker.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
num Integer Number of clubs to return

Returns

Returns an array of club balance objects, each containing details about the club's financial status including current balance and 24-hour change.

Errors

Error Code Meaning
400 Bad Request - Missing required parameters
401 Unauthorized - Authentication required

get_ticker_manager_agent_news

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_ticker_manager_agent_news",
    "params": {
      "num": 10
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_ticker_manager_agent_news',
  params: {
    num: 10
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_ticker_manager_agent_news',
    'params': {
        'num': 10
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "date": 1663804800,   
      "name": "User2",  
      "type": "manager",    
      "club_id": 2
    },
    {
      "date": 1663804800,   
      "name": "User2",  
      "type": "agent",  
      "player_id": 2,    
    }
  ],
  "id": 1
}

Gets recent manager and agent news for the ticker.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
num Integer Number of news items to return

Returns

Returns an array of news objects related to managers and agents, each containing news details

Errors

Error Code Meaning
400 Bad Request - Missing required parameters
401 Unauthorized - Authentication required

Vault Methods

This section covers methods for retrieving information about trading vaults.

Methods Summary

Method Description
get_vaults Gets information about specific vaults
get_vaults_by_founder Gets all vaults created by a specific founder

get_vaults

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_vaults",
    "params": {
      "controller": "user1",
      "ids": [1, 2, 3]
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_vaults',
  params: {
    controller: "user1",
    ids: [1, 2, 3]
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_vaults',
    'params': {
        'controller': "user1",
        'ids': [1, 2, 3]
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "controller": "user1",
      "id": 1,
      "founder": "user2",
      "initialbalance": 155,
      "balance": 90,
      "height": 177884,
      "checkpoint": {},
      "exists": false
    }
  ],
  "id": 1
}

Gets information about specific vaults.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
controller String Optional. Name of the vault controller to filter by
ids Array Optional. Array of vault IDs to retrieve

At least one of the parameters must be provided.

Returns

Returns an array of vault objects, each containing details about the vault

Errors

Error Code Meaning
400 Bad Request - Missing both controller and ids parameters
404 Not Found - No vaults found matching the criteria
401 Unauthorized - Authentication required to access vault information

get_vaults_by_founder

Example Request:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_vaults_by_founder",
    "params": {
      "founder": "user1"
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://gsppub.soccerverse.io/', {
  jsonrpc: '2.0',
  method: 'get_vaults_by_founder',
  params: {
    founder: "user1"
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://gsppub.soccerverse.io/', json={
    'jsonrpc': '2.0',
    'method': 'get_vaults_by_founder',
    'params': {
        'founder': "user1"
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "controller": "user1",
      "id": 1,
      "founder": "user2",
      "initialbalance": 155,
      "balance": 90,
      "height": 177884,
      "checkpoint": {},
      "exists": false
    }
  ],
  "id": 1
}

Gets all vaults created by a specific founder.

HTTP Request

POST https://gsppub.soccerverse.io/

Parameters

Parameter Type Description
founder String Name of the vault founder to retrieve vaults for

Returns

Returns an array of vault objects created by the specified founder, each containing details about the vault including its ID, name, founder, controller, balance, creation time, status, and shareholders.

Errors

Error Code Meaning
400 Bad Request - Missing required parameter
404 Not Found - No vaults found for the specified founder
401 Unauthorized - Authentication required to access vault information

History Methods

This section covers methods for retrieving historical information about seasons, competitions, and club performance.

Methods Summary

Method Description Authentication Required
get_game_world_history Gets the history of the game world for a specific season No
get_comp_history_by_club Gets the competition history for a specific club No

Get Game World History

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_game_world_history",
    "params": {
      "season_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_game_world_history',
    params: {
      season_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_game_world_history",
    "params": {
        "season_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "club_id": 11
    "manager_name": "avaloN"
    "comp_id": 4
    "type": 1
    "position": 3
    "season_id": 1,
  },
  "id": 1
}

Gets the history of the game world for a specific season

Parameters

Parameter Type Description Required
season_id number ID of the season Yes

Returns

An object containing:

Field Type Description
club_id number Unique identifier for the club
manager_name string Name of the current manager
comp_id number Unique identifier for the competition
type number Type of competition
position number Position in competition
season_id number ID of the season

Errors

Code Description
-32602 Invalid season ID
-32603 Error retrieving game world history
-32604 Season not found

Get Comp History By Club

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_comp_history_by_club",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_comp_history_by_club',
    params: {
      club_id: 1
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_comp_history_by_club",
    "params": {
        "club_id": 1
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    "club_id": 11
    "manager_name": "avaloN"
    "comp_id": 4
    "type": 1
    "position": 3
    "season_id": 1,
  ],
  "id": 1
}

Gets the competition history for a specific club, showing the club's performance in various competitions across seasons.

Parameters

Parameter Type Description Required
club_id number ID of the club Yes

Returns

An object containing:

Field Type Description
club_id number Unique identifier for the club
manager_name string Name of the current manager
comp_id number Unique identifier for the competition
type string Type of competition (e.g., "league", "cup")
position number Position in competition
season_id number ID of the season

Errors

Code Description
-32602 Invalid club ID
-32603 Error retrieving competition history
-32604 Club not found

External File Methods

This section covers methods for retrieving external files and game parameters from the system.

Methods Summary

Method Description Authentication Required
get_extfile Gets information about an external file by its hash No
get_params Gets game parameters No

Get Extfile

Request example:

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_extfile",
    "params": {
      "hash": "5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c"
    },
    "id": 1
  }'
const response = await fetch('https://gsppub.soccerverse.io/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_extfile',
    params: {
      hash: "5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c"
    },
    id: 1
  })
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://gsppub.soccerverse.io/"
payload = {
    "jsonrpc": "2.0",
    "method": "get_extfile",
    "params": {
        "hash": "5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c"
    },
    "id": 1
}

response = requests.post(url, json=payload)
data = response.json()
print(data)

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "hash": "5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c",
    "exists": true
    "present": false
    "lasttry": 0
  },
  "id": 1
}

Gets information about an external file by its hash identifier, including its content and metadata.

Parameters

Parameter Type Description Required
hash string Hash of the file Yes

Returns

An object containing:

Field Type Description
hash string Hash identifier of the file
exists boolean Does the file exist or not
present boolean Does the file present or not
lasttry number If the data is actually already present, this is set to signed-int64-max instead. That way, one can search/sort with an index for all files that are not yet present and have not been retried in some time, to retry.

Errors

Code Description
-32602 Invalid hash parameter
-32603 Error retrieving external file
-32604 File not found

Get Params

Example is without parameters, but single "name" parameter can be passed to get single entry

Request example (without parameter name):

curl -X POST "https://gsppub.soccerverse.io/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_params",
    "params": {},
    "id": 1
  }'

Response example (without parameter name):

{
  "jsonrpc": "2.0",
  "result": {
    "agent-min-bps": 500,
    "coins-to-club-multiplier-bps": 10000,
    "dilution-max-bps": 1000,
    "dilution-min-bps": 500,
    "dilution-seconds": 856800,
    "dilutions-enabled": 0,
    "economy-club-prizemoney-percentage-bp": 5000,
    "economy-club-shareholders-prizepot-amount-bp": 1000,
    "economy-club-start-balance-percentage-bp": 5000,
    "economy-cup-prizemoney-runnerup-bp": 2500,
    "economy-cup-prizemoney-winner-bp": 5000,
    "economy-league-prizemoney-percentage-bp": 1200,
    "economy-moneybase-multiplier": 50000,
    "economy-player-shareholders-prizepot-amount-bp": 5,
    "economy-season-inflation-rate-bp": 500,
    "economy-tv-percentage-bp": 5000,
    "fork-credit-bid-when-raising": 1,
    "inactive-seconds":1 209600,
    "manager-min-shares": 20,
    "manager-points-comp-runnerup": 5,
    "manager-points-comp-winner": 10,
    "manager-unlock-min-shares": 500,
    "matchday-morale-adjuster-bp": 1000,
    "matchday-tackling-style-adjuster-bp": 2000,
    "matchday-tempo-rating-adjuster-bp": 1000,
    "matchday-tempo-stamina-adjuster-bp": 3000,
    "max-leave-before-auto-renew": 2,
    "max-team-for-transfers": 32,
    "min-bid-increase-bp": 100,
    "minimum-fans": 300,
    "payout-agent-wage-bp-100": 20,
    "payout-club-influence-dividend-bp": 100,
    "payout-manager-wage-bp-100": 4,
    "payout-player-assist-bonus-bp": 10,
    "payout-player-clean-sheet-bonus-bp": 10,
    "payout-player-influence-dividend-bp": 20,
    "payout-player-playing-bonus-bp": 5,
    "payout-player-score-bonus-bp": 10,
    "player-base-value-multiplier": 75,
    "player-rating-stamina": 50,
    "proposal-upcoming-seconds": 86400,
    "proposal-voting-seconds": 259200,
    "seasonend-dilution-bp": 500,
    "set-tactics-deadline": 7200,
    "test": 42,
    "test-negative": -100,
    "transfer-auction-duration": 604800,
    "transfer-auction-duration-freebench": 604800,
    "transfer-burn-fee-bps": 500,
    "transfer-max-bid-bps": 30000,
    "transfer-min-bid-bps": 5000,
    "transfer-min-bid-bps-freebench": 5000,
    "transfers-in-per-season": 5,
    "transfers-out-per-season": 5
  },
  "id": 1
}

Gets game parameters. If a parameter set name is provided, returns all available params

Parameters

Parameter Type Description Required
name string Name of the parameter set No

Returns

If a parameter set name is provided, returns an object containing:

Field Type Description
name variable Parameter value

If no parameter set name is provided, returns an object containing:

Field Type Description
available_parameter_sets array List of available parameter set names

Errors

Code Description
-32602 Invalid parameter name
-32603 Error retrieving parameters
-32604 Parameter set not found

Data Models

This section defines the common data schemas used throughout the Soccerverse API. These schemas represent the structure of objects returned by various API endpoints.

Block

Example Block object:

{
  "hash": "7a8d3d2e1f0c9b8a7d6e5f4c3b2a1098",
  "height": 12345,
  "parent": "5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c"
}

A blockchain block that contains game state data.

Field Type Description
hash string Unique hash identifier of the block
height number Block height in the blockchain
parent string Hash of the parent block

Player

Example Player object:

{
  "player_id": 1,
  "club_id": 101,
  "retired": false,
  "contract": 2,
  "agent_name": "agent1",
  "desired": {
    "contract": 3,
    "transfer": true,
    "renew": true
  },
  "fitness": 95,
  "morale": 90,
  "injured": 0,
  "injury_id": 0,
  "wages": 10000,
  "form": "WWDWL",
  "multi_position": 0,
  "position": 1,
  "rating": 85,
  "banned": 0,
  "rating_gk": 10,
  "rating_tackling": 86,
  "rating_passing": 88,
  "rating_shooting": 84,
  "rating_aggression": 75,
  "rating_stamina": 90,
  "cup_tied": false,
  "yellow_cards": 2,
  "yellowred_cards": 0,
  "red_cards": 0,
  "dob": 946684800,
  "side": "R",
  "value": 20000000,
  "country_id": "ENG"
}

A player in the Soccerverse game.

Field Type Description
player_id number Unique identifier for the player
club_id number ID of the club the player belongs to
retired boolean Whether the player is retired
contract number Length of current contract in seasons
agent_name string Name of the player's agent
desired object Player's preferences for future contracts
fitness number Player's current fitness level (0-100)
morale number Player's current morale level (0-100)
injured number Length of current injury in days (0 if not injured)
injury_id number ID of the current injury (0 if not injured)
wages number Player's current wages per week
form string Recent form (e.g., "WWDWL" for Win-Win-Draw-Win-Loss)
multi_position number Bitmap indicating alternative positions
position number Primary position ID
rating number Overall player rating (0-100)
banned number Days remaining on ban (0 if not banned)
rating_gk number Goalkeeper ability rating (0-100)
rating_tackling number Tackling ability rating (0-100)
rating_passing number Passing ability rating (0-100)
rating_shooting number Shooting ability rating (0-100)
rating_aggression number Aggression rating (0-100)
rating_stamina number Stamina rating (0-100)
cup_tied boolean Whether player is cup-tied for current season
yellow_cards number Yellow cards received in current season
yellowred_cards number Yellow-red cards received in current season
red_cards number Red cards received in current season
dob number Date of birth (Unix timestamp)
side string Preferred side ("L", "R", or "B" for both)
value number Estimated market value
country_id string ISO country code for nationality

Club

Example Club object:

{
    "club_id": 1,
    "balance": {
      "total": 10000000,
      "available": 9000000,
      "reserved": 1000000
    },
    "form": "WDLWD",
    "fans_start": 20000,
    "fans_current": 22500,
    "stadium_size_start": 30000,
    "stadium_size_current": 30000,
    "stadium_id": 1,
    "proposed_manager": null,
    "manager_name": "manager1",
    "manager_locked": false,
    "manager_voted": true,
    "home_colour": "blue",
    "away_colour": "white",
    "default_formation": 442,
    "penalty_taker": 10,
    "country_id": "ENG",
    "transfers": {
      "in": 2,
      "out": 1
    }
  },

A club in the Soccerverse game.

Field Type Description
away_colour string Colour of the away team
balance object Player balance JSON object containing available, reserved and total
club_id number Unique identifier for the club
country_id string ID of country like "DEU"
default_formation number Default club tactics formation
fans_current number Current amount of fans
fans_start number Initial amount of fans
form string Formation description
home_colour string Colour of the home team
manager_locked boolean Variable describing if manager is locked
manager_name string Name of current manager
manager_voted boolean Boolean if describing if manager is voted in
penalty_taker number Penalty taker index
proposed_manager string Name of currently proposed manager
stadium_id number Unique ID of the stadium
stadium_size_current number Current stadium size
stadium_size_start number Initial stadium size
transfers object JSON object describing how many user were transffered in out

Club extended

Example Club extended object:

{
    "club_id": 1,
    "balance": {
      "total": 10000000,
      "available": 9000000,
      "reserved": 1000000
    },
    "form": "WDLWD",
    "fans_start": 20000,
    "fans_current": 22500,
    "stadium_size_start": 30000,
    "stadium_size_current": 30000,
    "stadium_id": 1,
    "proposed_manager": null,
    "manager_name": "manager1",
    "manager_locked": false,
    "manager_voted": true,
    "home_colour": "blue",
    "away_colour": "white",
    "default_formation": 442,
    "penalty_taker": 10,
    "country_id": "ENG",
    "transfers": {
      "in": 2,
      "out": 1,
      "pending_out": 3,
      "pending_in_nonfree": 2,
      "pending_in_freebench": 1
    },
    "squad_size": 25
  }

A club in the Soccerverse game.

Field Type Description
away_colour string Colour of the away team
balance object Player balance JSON object containing available, reserved and total
club_id number Unique identifier for the club
country_id string ID of country like "DEU"
default_formation number Default club tactics formation
fans_current number Current amount of fans
fans_start number Initial amount of fans
form string Formation description
home_colour string Colour of the home team
manager_locked boolean Variable describing if manager is locked
manager_name string Name of current manager
manager_voted boolean Boolean if describing if manager is voted in
penalty_taker number Penalty taker index
proposed_manager string Name of currently proposed manager
squad_size number Size of the squad
stadium_id number Unique ID of the stadium
stadium_size_current number Current stadium size
stadium_size_start number Initial stadium size
transfers object JSON object describing how many user were transffered in out

Tactics

Example Tactics object:

{
    "commitment": "5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c",
    "formation_id": 442,
    "play_style": 2,
    "use_playmaker": true,
    "use_target_man": false,
    "captain": 10,
    "penalty_taker": 15,
    "free_kicks": 15,
    "corner_taker": 8,
    "playmaker": 8,
    "target_man": null,
    "lineup": [
      {
        "player_id": 10,
        "tackling_style": 1,
        "tempo": 2
      },
      // Additional lineup players omitted for brevity
    ],
    "substitutions": [],
    "formation_changes": [],
    "validation": "valid"
}

Team tactics configuration.

Field Type Description
commitment string Hash commitment for the tactics
formation_id number ID of the formation
play_style number Play style (0: defensive, 1: balanced, 2: attacking, etc.)
use_playmaker boolean Whether to use a playmaker
use_target_man boolean Whether to use a target man
captain number Player ID of the captain
penalty_taker number Player ID of the penalty taker
free_kicks number Player ID of the free kick taker
corner_taker number Player ID of the corner taker
playmaker number Player ID of the playmaker (null if not used)
target_man number Player ID of the target man (null if not used)
lineup array Array of player positions (see PlayerPosition schema)
substitutions array Array of planned substitutions
formation_changes array Array of planned formation changes
validation string Validation status of the tactics

PlayerPosition

Example PlayerPosition object:

{
  "player_id": 10,
  "tackling_style": 1,
  "tempo": 2
}

A player's position within a tactical setup.

Field Type Description
player_id number ID of the player
tackling_style number Tackling style (0: none, 1: normal, 2: hard)
tempo number Playing tempo (0: slow, 1: normal, 2: fast)

Match

Example Match object:

{
"comp_type": 1
"date": 178887665
"home_club": 1,
"away_club": 2, 
"home_goals": 2,
"away_goals": 1,    
"penalties": 0,
"home_pen_score": 0,
"away_pen_score": 0,
"home_possession": 55,
"away_possession": 45,
"home_shots": 14,
"away_shots": 8,
"home_shots_on_target": 5,
"away_shots_on_target": 3,
"home_corners": 7,
"away_corners": 4,
"attendance": 28000,
"man_of_match": 15,
"number": 4
"home_manager": "manager1",
"away_manager": "manager2",
"stadium_id": 1,
"turn_id": 10,
"country_id": "ENG"
"season_id": 1
}

A match between two clubs.

League

Example League object:

{
    "league_id": 1,
    "name": "Premier League",
    "group": 1,
    "level": 1,
    "ticket_cost": 5000,
    "tv_money": 10000000,
    "comp_type": 1,
    "round": 1,
    "country_id": "ENG",
    "season_id": 1
  }

A league competition.

Cup

Example Cup object:

{
    "cup_id": 1,
    "name": "FA Cup",
    "ticket_cost": 4000,
    "prize_money": 5000000,
    "comp_type": 2,
    "round": 1,
    "country_id": "ENG",
    "season_id": 1
}

A cup competition.

Association

Example Association object:

{
  "association_data_id": 1,
  "association_type": "national",
  "country_id": "ENG",
  "num_leagues": 4,
  "num_promotion": 3,
  "num_cups": 2,
  "num_qualifiers": 4,
  "two_stages": 0,
  "league_games_per_week": 1,
  "num_league_rounds": 38,
  "match_day": 0,
  "match_time_hours": 15,
  "match_time_minutes": 0
}

A football association.

Share

Example Share object:

{
    "type": "club",
    "id": 1
}

A club share ownership record.