NAV
cURL JavaScript Python

GSP API Documentation

This documentation covers the GSP (Game Service Provider) 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://api.soccerverse.io/gsp/

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://services.soccerverse.com/gsp

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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "method_name",
    "params": {
      "param1": "value1",
      "param2": "value2"
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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)
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://services.soccerverse.com/gsp")
payload = {
  jsonrpc: "2.0",
  method: "method_name",
  params: {
    param1: "value1",
    param2: "value2"
  },
  id: 1
}

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.request_uri, 'Content-Type' => 'application/json')
request.body = payload.to_json

response = http.request(request)
data = JSON.parse(response.body)
puts data
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

class Program
{
    static async Task Main()
    {
        var client = new HttpClient();

        var payload = new
        {
            jsonrpc = "2.0",
            method = "method_name",
            @params = new
            {
                param1 = "value1",
                param2 = "value2"
            },
            id = 1
        };

        var content = new StringContent(
            JsonConvert.SerializeObject(payload),
            Encoding.UTF8,
            "application/json");

        var response = await client.PostAsync(
            "https://services.soccerverse.com/gsp", 
            content);

        var responseString = await response.Content.ReadAsStringAsync();
        var data = JsonConvert.DeserializeObject(responseString);
        Console.WriteLine(data);
    }
}
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    type Params struct {
        Param1 string `json:"param1"`
        Param2 string `json:"param2"`
    }

    type RequestBody struct {
        JsonRpc string `json:"jsonrpc"`
        Method  string `json:"method"`
        Params  Params `json:"params"`
        ID      int    `json:"id"`
    }

    requestBody := RequestBody{
        JsonRpc: "2.0",
        Method:  "method_name",
        Params: Params{
            Param1: "value1",
            Param2: "value2",
        },
        ID: 1,
    }

    jsonData, err := json.Marshal(requestBody)
    if err != nil {
        fmt.Println("Error marshalling JSON:", err)
        return
    }

    resp, err := http.Post(
        "https://services.soccerverse.com/gsp",
        "application/json",
        bytes.NewBuffer(jsonData),
    )
    if err != nil {
        fmt.Println("Error making request:", err)
        return
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println("Error reading response:", err)
        return
    }

    var result map[string]interface{}
    json.Unmarshal(body, &result)
    fmt.Println(result)
}

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.

Rate Limiting

API requests are rate limited to protect server resources. Excessive requests may be temporarily blocked.

The following rate limits apply: - 60 requests per minute for unauthenticated requests - 300 requests per minute for authenticated requests

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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "stop",
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "getcurrentstate",
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "getnullstate",
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "getpendingstate",
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "hashcurrentstate",
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "getstatehash",
    "params": ["7a8d3d2e1f0c9b8a7d6e5f4c3b2a1098"],
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'getstatehash',
    params: ["7a8d3d2e1f0c9b8a7d6e5f4c3b2a1098"],
    id: 1
  })
});

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

url = "https://services.soccerverse.com/gsp"
payload = {
    "jsonrpc": "2.0",
    "method": "getstatehash",
    "params": ["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

SetTargetBlock

Request example:

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

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

url = "https://services.soccerverse.com/gsp"
payload = {
    "jsonrpc": "2.0",
    "method": "settargetblock",
    "params": ["7a8d3d2e1f0c9b8a7d6e5f4c3b2a1098"],
    "id": 1
}

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

Response example:

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

Sets the target block for the server to sync to. This can be used to roll back to a previous state or to set a target for forward syncing.

Authentication

Admin-level authorization required.

Parameters

Parameter Type Description Required
block string Block hash or height Yes

Returns

true if the target block was successfully set, false otherwise.

Errors

Code Description
-32600 Insufficient permissions
-32602 Invalid block specifier
-32603 Error setting target block

WaitForChange

Request example:

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

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

url = "https://services.soccerverse.com/gsp"
payload = {
    "jsonrpc": "2.0",
    "method": "waitforchange",
    "params": ["7a8d3d2e1f0c9b8a7d6e5f4c3b2a1098"],
    "id": 1
}

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

Response example:

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

This method blocks until the current block changes from the specified known block. This is useful for polling applications that need to detect state changes.

Parameters

Parameter Type Description Required
known_block string Hash of the known block Yes

Returns

A string containing the hash of the new current block after the change.

Errors

Code Description
-32602 Invalid block hash
-32603 Error waiting for block change

WaitForPendingChange

Request example:

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

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

url = "https://services.soccerverse.com/gsp"
payload = {
    "jsonrpc": "2.0",
    "method": "waitforpendingchange",
    "params": [42],
    "id": 1
}

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

Response example:

{
  "jsonrpc": "2.0",
  "result": {
    "changed": true,
    "block": {
      "hash": "pending",
      "height": 12346,
      "parent": "7a8d3d2e1f0c9b8a7d6e5f4c3b2a1098"
    }
  },
  "id": 1
}

This method blocks until there is a change in the pending state or until the specified timeout is reached. This is useful for applications that need to detect pending changes.

Parameters

Parameter Type Description Required
timeout number Timeout in seconds Yes

Returns

Field Type Description
changed boolean Whether the pending state changed before the timeout
block object Information about the pending block if changed
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

Errors

Code Description
-32602 Invalid timeout value
-32603 Error waiting for pending state change

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

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_player_ids",
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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

Request example:

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

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

url = "https://services.soccerverse.com/gsp"
payload = {
    "jsonrpc": "2.0",
    "method": "get_players",
    "params": {
        "player_ids": [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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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_rating_history_id": 1,
      "player_id": 42,
      "old_rating": 82,
      "new_rating": 83,
      "reason": "Good performance",
      "date": 1662595200,
      "season_id": 1
    },
    {
      "player_rating_history_id": 2,
      "player_id": 42,
      "old_rating": 83,
      "new_rating": 85,
      "reason": "Excellent performance",
      "date": 1663804800,
      "season_id": 1
    }
  ],
  "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_rating_history_id number Unique ID for the rating change record
player_id number ID of the player
old_rating number Previous player rating
new_rating number New player rating
reason string Reason for the rating change
date number Unix timestamp of when the change occurred
season_id number ID of the season when the change occurred

Errors

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

Get Player Rating Latest Changes

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_player_rating_latest_changes",
    "params": {
      "limit": 100,
      "offset": 0
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_player_rating_latest_changes',
    params: {
      limit: 100,
      offset: 0
    },
    id: 1
  })
});

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

url = "https://services.soccerverse.com/gsp"
payload = {
    "jsonrpc": "2.0",
    "method": "get_player_rating_latest_changes",
    "params": {
        "limit": 100,
        "offset": 0
    },
    "id": 1
}

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

Response example:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "player_rating_history_id": 156,
      "player_id": 25,
      "old_rating": 75,
      "new_rating": 77,
      "reason": "Good performance",
      "date": 1663891200,
      "season_id": 1
    },
    {
      "player_rating_history_id": 155,
      "player_id": 18,
      "old_rating": 83,
      "new_rating": 82,
      "reason": "Poor performance",
      "date": 1663804800,
      "season_id": 1
    }
  ],
  "id": 1
}

Retrieves a list of the most recent player rating changes across all players, sorted by date in descending order.

Parameters

Parameter Type Description Required
limit number Maximum number of results to return Yes
offset number Number of results to skip Yes

Returns

An array of player rating change objects, each containing:

Field Type Description
player_rating_history_id number Unique ID for the rating change record
player_id number ID of the player
old_rating number Previous player rating
new_rating number New player rating
reason string Reason for the rating change
date number Unix timestamp of when the change occurred
season_id number ID of the season when the change occurred

Errors

Code Description
-32602 Invalid parameters
-32603 Error retrieving player rating changes

Get Players By Attributes

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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,
      "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
}

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. Each player object contains the fields defined in the Player schema.

Errors

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

Get Player Payouts

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_player_payouts",
    "params": {
      "player_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "payout_id": 1,
      "player_id": 1,
      "amount": 10000,
      "season_id": 1,
      "date": 1662595200,
      "type": "wage"
    },
    {
      "payout_id": 2,
      "player_id": 1,
      "amount": 5000,
      "season_id": 1,
      "date": 1663200000,
      "type": "bonus"
    }
  ],
  "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
payout_id number Unique ID for the payout record
player_id number ID of the player
amount number Amount of the payout
season_id number ID of the season when the payout occurred
date number Unix timestamp of when the payout occurred
type string Type of payout (e.g., "wage", "bonus")

Errors

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

Get Player Injury History

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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_id": 1,
      "player_id": 1,
      "club_id": 101,
      "start_date": 1662595200,
      "end_date": 1663200000,
      "type": "hamstring",
      "severity": "medium",
      "season_id": 1
    },
    {
      "injury_id": 2,
      "player_id": 1,
      "club_id": 101,
      "start_date": 1665792000,
      "end_date": 1667001600,
      "type": "ankle",
      "severity": "major",
      "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_id number Unique ID for the injury record
player_id number ID of the injured player
club_id number ID of the player's club at time of injury
start_date number Injury start date (Unix timestamp)
end_date number Expected recovery date (Unix timestamp)
type string Type of injury (e.g., "hamstring", "ankle")
severity string Severity ("minor", "medium", "major")
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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "transfer_id": 1,
      "player_id": 1,
      "from_club_id": 102,
      "to_club_id": 101,
      "fee": 15000000,
      "date": 1660406400,
      "season_id": 1
    },
    {
      "transfer_id": 2,
      "player_id": 1,
      "from_club_id": 103,
      "to_club_id": 102,
      "fee": 8000000,
      "date": 1628870400,
      "season_id": 1
    }
  ],
  "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
transfer_id number Unique ID for the transfer record
player_id number ID of the transferred player
from_club_id number ID of the selling club
to_club_id number ID of the buying club
fee number Transfer fee
date number Date of the transfer (Unix timestamp)
season_id number ID of the season when the transfer occurred

Errors

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

Get League Player Data

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "player_id": 1,
      "league_id": 1,
      "appearances": 12,
      "goals": 5,
      "assists": 3,
      "yellow_cards": 2,
      "red_cards": 0,
      "average_rating": 7.8,
      "minutes_played": 1043,
      "season_id": 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
player_id number ID of the player
league_id number ID of the league
appearances number Number of matches played
goals number Number of goals scored
assists number Number of assists provided
yellow_cards number Number of yellow cards received
red_cards number Number of red cards received
average_rating number Average match rating
minutes_played number Total minutes played
season_id number ID of the season

Errors

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

Get Cup Player Data

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "player_id": 1,
      "cup_id": 1,
      "appearances": 4,
      "goals": 2,
      "assists": 1,
      "yellow_cards": 0,
      "red_cards": 0,
      "average_rating": 7.6,
      "minutes_played": 360,
      "season_id": 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
player_id number ID of the player
cup_id number ID of the cup competition
appearances number Number of matches played
goals number Number of goals scored
assists number Number of assists provided
yellow_cards number Number of yellow cards received
red_cards number Number of red cards received
average_rating number Average match rating
minutes_played number Total minutes played
season_id number ID of the season

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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_club_ids",
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_all_stadium_data_ids",
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_club",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_club_extended",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_all_clubs",
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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,
      "agent_wages": 80000,
      "managers_wage": 100000,
      "shareholder_payouts": 500000,
      "shareholder_prize_money": 0,
      "ground_maintenance": 50000,
      "transfers_out": 8000000,
      "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,
      "agent_wages": 80000,
      "managers_wage": 100000,
      "shareholder_payouts": 500000,
      "shareholder_prize_money": 50000,
      "ground_maintenance": 50000,
      "transfers_out": 0,
      "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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_stadiums_club",
    "params": {
      "stadium_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_managers_club",
    "params": {
      "manager_name": "manager1"
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_agents_players",
    "params": {
      "agent_name": "agent1"
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "fixture_id": 1,
      "home_club": 1,
      "away_club": 2,
      "date": 1662595200,
      "competition_id": 1,
      "competition_type": "league",
      "played": true,
      "home_goals": 2,
      "away_goals": 1,
      "season_id": 1
    },
    {
      "fixture_id": 10,
      "home_club": 3,
      "away_club": 1,
      "date": 1663200000,
      "competition_id": 1,
      "competition_type": "league",
      "played": true,
      "home_goals": 1,
      "away_goals": 1,
      "season_id": 1
    },
    {
      "fixture_id": 15,
      "home_club": 1,
      "away_club": 4,
      "date": 1663804800,
      "competition_id": 2,
      "competition_type": "cup",
      "played": false,
      "home_goals": null,
      "away_goals": null,
      "season_id": 1
    }
  ],
  "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
date number Date of the fixture (Unix timestamp)
competition_id number ID of the competition
competition_type string Type of competition (e.g., "league", "cup")
played boolean Whether the fixture has been played
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)
season_id number ID of the season

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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": {
    "fixture_id": 15,
    "home_club": 1,
    "away_club": 4,
    "date": 1663804800,
    "competition_id": 2,
    "competition_type": "cup",
    "played": false,
    "home_goals": null,
    "away_goals": null,
    "season_id": 1
  },
  "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 with the same structure as the fixture objects in the get_club_schedule method.

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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": {
    "fixture_id": 10,
    "home_club": 3,
    "away_club": 1,
    "date": 1663200000,
    "competition_id": 1,
    "competition_type": "league",
    "played": true,
    "home_goals": 1,
    "away_goals": 1,
    "season_id": 1
  },
  "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_club_schedule 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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_squad",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_freebench",
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -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,
            "position": 1,
            "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://services.soccerverse.com/gsp', {
  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,
            position: 1,
            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://services.soccerverse.com/gsp"
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,
                    "position": 1,
                    "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": {
    "valid": true,
    "hash": "5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c",
    "errors": [],
    "warnings": [
      "Player 8 has low stamina for high tempo",
      "Player 15 is not in optimal position"
    ],
    "rating_estimate": 85
  },
  "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
valid boolean Whether the tactics are valid
hash string Hash of the tactics for commitment
errors array Array of error messages (empty if valid)
warnings array Array of warning messages
rating_estimate number Estimated team rating with these tactics

Errors

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

Get Club Tactics

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_club_tactics",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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,
        "position": 1,
        "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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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,
        "position": 1,
        "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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_fixture',
  params: {
    fixture_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://api.soccerverse.io/gsp/', json={
    'jsonrpc': '2.0',
    'method': 'get_fixture',
    'params': {
        'fixture_id': 1
    },
    '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,
    "turn_id": 10,
    "home_manager": "manager1",
    "away_manager": "manager2",
    "stadium_id": 1,
    "season_id": 1
  },
  "id": 1
}

Gets information about a specific fixture.

HTTP Request

POST https://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_turn_fixtures',
  params: {
    turn_id: 10
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://api.soccerverse.io/gsp/', 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://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_match_events',
  params: {
    fixture_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://api.soccerverse.io/gsp/', 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": "open_play",
      "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": "open_play",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets events that occurred during a match.

HTTP Request

POST https://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_match_commentary',
  params: {
    fixture_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "comm_sub_event_id": 1,
      "category": "kickoff",
      "player_one_id": 0,
      "player_two_id": 0,
      "club_one_id": 1,
      "club_two_id": 2,
      "data_one": "First Half",
      "season_id": 1,
      "comm_event_id": 1,
      "time": 0,
      "fixture_id": 1
    },
    {
      "comm_sub_event_id": 2,
      "category": "attack",
      "player_one_id": 15,
      "player_two_id": 0,
      "club_one_id": 1,
      "club_two_id": 0,
      "data_one": "Attacking move",
      "season_id": 1,
      "comm_event_id": 2,
      "time": 20,
      "fixture_id": 1
    },
    {
      "comm_sub_event_id": 3,
      "category": "goal",
      "player_one_id": 15,
      "player_two_id": 14,
      "club_one_id": 1,
      "club_two_id": 0,
      "data_one": "Goal scored",
      "season_id": 1,
      "comm_event_id": 3,
      "time": 23,
      "fixture_id": 1
    }
  ],
  "id": 1
}

Gets commentary for a specific match.

HTTP Request

POST https://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_match_subs',
  params: {
    fixture_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://api.soccerverse.io/gsp/', 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://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_fixture_player_data',
  params: {
    fixture_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://api.soccerverse.io/gsp/', 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://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_all_turns',
  params: {
    comp_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://api.soccerverse.io/gsp/', 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,
      "comp_id": 1,
      "date": 1662595200,
      "turn_number": 1,
      "is_complete": true,
      "season_id": 1
    },
    {
      "turn_id": 11,
      "comp_id": 1,
      "date": 1663200000,
      "turn_number": 2,
      "is_complete": true,
      "season_id": 1
    },
    {
      "turn_id": 12,
      "comp_id": 1,
      "date": 1663804800,
      "turn_number": 3,
      "is_complete": false,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets all turns for a specific competition.

HTTP Request

POST https://api.soccerverse.io/gsp/

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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_league_table",
    "params": {
      "league_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "table_row_id": 1,
      "position": 1,
      "club_id": 3,
      "played": 10,
      "won": 8,
      "drawn": 1,
      "lost": 1,
      "goals_for": 22,
      "goals_against": 7,
      "goal_difference": 15,
      "points": 25,
      "form": "WWWDW",
      "league_id": 1,
      "season_id": 1
    },
    {
      "table_row_id": 2,
      "position": 2,
      "club_id": 1,
      "played": 10,
      "won": 7,
      "drawn": 2,
      "lost": 1,
      "goals_for": 18,
      "goals_against": 8,
      "goal_difference": 10,
      "points": 23,
      "form": "WDWWW",
      "league_id": 1,
      "season_id": 1
    },
    {
      "table_row_id": 3,
      "position": 3,
      "club_id": 2,
      "played": 10,
      "won": 6,
      "drawn": 1,
      "lost": 3,
      "goals_for": 15,
      "goals_against": 9,
      "goal_difference": 6,
      "points": 19,
      "form": "LWWDW",
      "league_id": 1,
      "season_id": 1
    }
  ],
  "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
table_row_id number Unique identifier for the table row
position number Current position in the league table
club_id number ID of the club
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
goal_difference number Goal difference (goals_for - goals_against)
points number Total points
form string Recent form (e.g., "WWWDW" for Win-Win-Win-Draw-Win)
league_id number ID of the league
season_id number ID of the season

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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_leagues",
    "params": {
      "season_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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,
      "group": 1,
      "level": 2,
      "ticket_cost": 3000,
      "tv_money": 5000000,
      "comp_type": 1,
      "round": 1,
      "country_id": "ENG",
      "season_id": 1
    },
    {
      "league_id": 3,
      "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
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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_league",
    "params": {
      "league_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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,
    "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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_cups",
    "params": {
      "season_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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,
      "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
    },
    {
      "cup_id": 3,
      "name": "Copa del Rey",
      "ticket_cost": 3500,
      "prize_money": 4000000,
      "comp_type": 2,
      "round": 1,
      "country_id": "ESP",
      "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
ticket_cost number Base ticket cost for matches
prize_money number Prize money for the cup winner
comp_type number Competition type (2 for cup)
round number Current round of the 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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_cup",
    "params": {
      "cup_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_clubs_league",
    "params": {
      "club_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": {
    "top_scorers": [
      {
        "player_id": 15,
        "club_id": 1,
        "goals": 12,
        "position": 4
      },
      {
        "player_id": 25,
        "club_id": 3,
        "goals": 10,
        "position": 4
      }
    ],
    "top_assists": [
      {
        "player_id": 18,
        "club_id": 1,
        "assists": 8,
        "position": 3
      },
      {
        "player_id": 32,
        "club_id": 2,
        "assists": 7,
        "position": 3
      }
    ],
    "top_ratings": [
      {
        "player_id": 15,
        "club_id": 1,
        "average_rating": 8.5,
        "position": 4
      },
      {
        "player_id": 10,
        "club_id": 1,
        "average_rating": 8.3,
        "position": 1
      }
    ]
  },
  "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 object containing three categories of top players:

Field Type Description
top_scorers array Array of players with the most goals
top_assists array Array of players with the most assists
top_ratings array Array of players with the highest average ratings

Each player object contains:

Field Type Description
player_id number ID of the player
club_id number ID of the player's club
goals/assists/average_rating number The relevant statistic
position number Position ID of the player

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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_associations",
    "params": {
      "association_type": "national"
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'get_associations',
    params: {
      association_type: "national"
    },
    id: 1
  })
});

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

url = "https://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_association",
    "params": {
      "country_id": "ENG"
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_association_qualifiers",
    "params": {
      "association_id": 1
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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://api.soccerverse.io/gsp/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_seasons",
    "id": 1
  }'
const axios = require('axios');

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

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "season_id": 1,
      "start_date": 1661990400,
      "end_date": 1685577600,
      "current": true
    },
    {
      "season_id": 2,
      "start_date": 1688169600,
      "end_date": 1711843200,
      "current": false
    }
  ],
  "id": 1
}

Gets information about all seasons in the system.

HTTP Request

POST https://api.soccerverse.io/gsp/

Parameters

None required.

Returns

Returns an array of season objects, each containing the season ID, 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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_season',
  params: {
    season_id: 1
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://api.soccerverse.io/gsp/', 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,
    "start_date": 1661990400,
    "end_date": 1685577600,
    "current": true
  },
  "id": 1
}

Gets information about a specific season by ID.

HTTP Request

POST https://api.soccerverse.io/gsp/

Parameters

Parameter Type Description
season_id Integer ID of the season to retrieve

Returns

Returns a single season object containing the season ID, 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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_news_feed',
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "news_id": 1,
      "date": 1662595200,
      "category": "transfer",
      "season_id": 1
    },
    {
      "news_id": 2,
      "date": 1662508800,
      "category": "injury",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets the latest news feed from the game.

HTTP Request

POST https://api.soccerverse.io/gsp/

Parameters

None required.

Returns

Returns an array of news articles with details such as news ID, date, category, and season ID.

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  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://api.soccerverse.io/gsp/', 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,
      "club_id": 1,
      "date": 1662595200,
      "season_id": 1
    },
    {
      "message_id": 2,
      "club_id": 1,
      "date": 1663200000,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets messages for a specific club.

HTTP Request

POST https://api.soccerverse.io/gsp/

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 club ID, 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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  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://api.soccerverse.io/gsp/', 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,
      "player_id": 1,
      "date": 1662595200,
      "season_id": 1
    },
    {
      "message_id": 2,
      "player_id": 1,
      "date": 1663200000,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets messages for a specific player.

HTTP Request

POST https://api.soccerverse.io/gsp/

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, including player ID, date, and message ID.

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  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://api.soccerverse.io/gsp/', 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,
      "association_id": "ENG",
      "date": 1661990400,
      "season_id": 1
    },
    {
      "message_id": 2,
      "association_id": "ENG",
      "date": 1662595200,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets messages for a specific association.

HTTP Request

POST https://api.soccerverse.io/gsp/

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, including association ID, date, and message ID.

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  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://api.soccerverse.io/gsp/', 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,
      "comp_id": 1,
      "date": 1661990400,
      "season_id": 1
    },
    {
      "message_id": 2,
      "comp_id": 1,
      "date": 1663200000,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets messages for a specific competition.

HTTP Request

POST https://api.soccerverse.io/gsp/

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, including competition ID, date, and message ID.

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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_top_transfer_auctions",
    "params": {
      "num": 2
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "auction_id": 1,
      "player_id": 15,
      "selling_club_id": 1,
      "min_price": 25000000,
      "current_bid": 30000000,
      "bidding_club_id": 2,
      "end_date": 1663804800,
      "season_id": 1
    },
    {
      "auction_id": 2,
      "player_id": 22,
      "selling_club_id": 3,
      "min_price": 18000000,
      "current_bid": 20000000,
      "bidding_club_id": 1,
      "end_date": 1663891200,
      "season_id": 1
    }
  ],
  "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
auction_id number Unique identifier for the auction
player_id number ID of the player being auctioned
selling_club_id number ID of the club selling the player
min_price number Minimum asking price for the player
current_bid number Current highest bid amount
bidding_club_id number ID of the club with the highest bid (null if no bids)
end_date number Auction end date (Unix timestamp)
season_id number ID of the season when the auction is taking place

Errors

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

Get Clubs Transfer Auctions

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "auction_id": 1,
      "player_id": 15,
      "selling_club_id": 1,
      "min_price": 25000000,
      "current_bid": 30000000,
      "bidding_club_id": 2,
      "end_date": 1663804800,
      "season_id": 1
    },
    {
      "auction_id": 3,
      "player_id": 18,
      "selling_club_id": 1,
      "min_price": 15000000,
      "current_bid": 15000000,
      "bidding_club_id": null,
      "end_date": 1663977600,
      "season_id": 1
    }
  ],
  "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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "bid_id": 1,
      "auction_id": 2,
      "player_id": 22,
      "selling_club_id": 3,
      "bidding_club_id": 1,
      "bid_amount": 20000000,
      "bid_date": 1663632000,
      "end_date": 1663891200,
      "season_id": 1
    },
    {
      "bid_id": 2,
      "auction_id": 4,
      "player_id": 30,
      "selling_club_id": 2,
      "bidding_club_id": 1,
      "bid_amount": 12000000,
      "bid_date": 1663718400,
      "end_date": 1664064000,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets all active transfer bids made by a specific club (auctions the club is bidding on).

Parameters

Parameter Type Description Required
club_id number ID of the club Yes

Returns

An array of bid objects, each containing:

Field Type Description
bid_id number Unique identifier for the bid
auction_id number ID of the auction
player_id number ID of the player being bid on
selling_club_id number ID of the club selling the player
bidding_club_id number ID of the club making the bid
bid_amount number Amount of the bid
bid_date number Date the bid was placed (Unix timestamp)
end_date number Auction end date (Unix timestamp)
season_id number ID of the season when the bid was placed

Errors

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

Get Transfer Auction Details

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": {
    "auction_id": 1,
    "player_id": 15,
    "selling_club_id": 1,
    "min_price": 25000000,
    "current_bid": 30000000,
    "bidding_club_id": 2,
    "end_date": 1663804800,
    "bids": [
      {
        "bid_id": 1,
        "club_id": 2,
        "amount": 30000000,
        "time": 1663632000
      },
      {
        "bid_id": 2,
        "club_id": 4,
        "amount": 28000000,
        "time": 1663545600
      }
    ],
    "player_info": {
      "name": "Player 15",
      "position": 4,
      "rating": 88,
      "age": 25,
      "country_id": "ENG"
    },
    "season_id": 1
  },
  "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
auction_id number Unique identifier for the auction
player_id number ID of the player being auctioned
selling_club_id number ID of the club selling the player
min_price number Minimum asking price for the player
current_bid number Current highest bid amount
bidding_club_id number ID of the club with the highest bid (null if no bids)
end_date number Auction end date (Unix timestamp)
bids array Array of bid objects for this auction
bids[].bid_id number Unique identifier for the bid
bids[].club_id number ID of the club that placed the bid
bids[].amount number Amount of the bid
bids[].time number Time the bid was placed (Unix timestamp)
player_info object Basic information about the player
player_info.name string Player's name
player_info.position number Player's position ID
player_info.rating number Player's overall rating
player_info.age number Player's age
player_info.country_id string Player's nationality (country code)
season_id number ID of the season

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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "transfer_id": 1,
      "player_id": 15,
      "from_club_id": 2,
      "to_club_id": 1,
      "fee": 30000000,
      "date": 1661990400,
      "season_id": 1
    },
    {
      "transfer_id": 2,
      "player_id": 22,
      "from_club_id": 1,
      "to_club_id": 3,
      "fee": 22000000,
      "date": 1662076800,
      "season_id": 1
    }
  ],
  "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
transfer_id number Unique identifier for the transfer
player_id number ID of the transferred player
from_club_id number ID of the selling club
to_club_id number ID of the buying club
fee number Transfer fee
date number Date of the transfer (Unix timestamp)
season_id number ID of the season when the transfer occurred

Errors

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

Get Club Transfer History

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "transfer_id": 1,
      "player_id": 15,
      "from_club_id": 2,
      "to_club_id": 1,
      "fee": 30000000,
      "date": 1661990400,
      "type": "in",
      "season_id": 1
    },
    {
      "transfer_id": 2,
      "player_id": 22,
      "from_club_id": 1,
      "to_club_id": 3,
      "fee": 22000000,
      "date": 1662076800,
      "type": "out",
      "season_id": 1
    }
  ],
  "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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "transfer_id": 1,
      "player_id": 15,
      "from_club_id": 2,
      "to_club_id": 1,
      "fee": 30000000,
      "date": 1661990400,
      "season_id": 1
    },
    {
      "transfer_id": 3,
      "player_id": 15,
      "from_club_id": 4,
      "to_club_id": 2,
      "fee": 18000000,
      "date": 1630368000,
      "season_id": 1
    }
  ],
  "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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_user_account',
  params: {
    name: "user1"
  },
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": {
    "name": "user1",
    "balance": 5000000,
    "last_active": 1663804800,
    "club_id": 1,
    "is_manager": true,
    "is_agent": false,
    "season_id": 1
  },
  "id": 1
}

Gets information about a specific user account.

HTTP Request

POST https://api.soccerverse.io/gsp/

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, club affiliation, and role information.

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

Example Request:

curl -X POST "https://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_all_users',
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "name": "user1",
      "balance": 5000000,
      "last_active": 1663804800,
      "club_id": 1,
      "is_manager": true,
      "is_agent": false,
      "season_id": 1
    },
    {
      "name": "user2",
      "balance": 3000000,
      "last_active": 1663718400,
      "club_id": 2,
      "is_manager": true,
      "is_agent": false,
      "season_id": 1
    },
    {
      "name": "user3",
      "balance": 2000000,
      "last_active": 1663632000,
      "club_id": null,
      "is_manager": false,
      "is_agent": true,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets a list of all users in the system.

HTTP Request

POST https://api.soccerverse.io/gsp/

Parameters

None required.

Returns

Returns an array of user objects, each containing account details including name, balance, last active time, club affiliation, and role information.

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_all_managers',
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

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

Gets a list of all managers in the system.

HTTP Request

POST https://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_users_last_active",
    "params": {
      "names": ["user1", "user2"]
    },
    "id": 1
  }'
const axios = require('axios');

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

console.log(response.data);
import requests

response = requests.post('https://api.soccerverse.io/gsp/', 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://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_best_managers',
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "name": "user1",
      "club_id": 1,
      "club_name": "Club 1",
      "wins": 8,
      "draws": 2,
      "losses": 1,
      "points": 26,
      "season_id": 1
    },
    {
      "name": "user2",
      "club_id": 2,
      "club_name": "Club 2",
      "wins": 7,
      "draws": 3,
      "losses": 1,
      "points": 24,
      "season_id": 1
    }
  ],
  "id": 1
}

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

HTTP Request

POST https://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  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://api.soccerverse.io/gsp/', 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_id": 1,
      "user_id": 1,
      "amount": 50000,
      "date": 1662595200,
      "season_id": 1,
      "wage_type": "manager"
    },
    {
      "wage_id": 2,
      "user_id": 1,
      "amount": 50000,
      "date": 1663200000,
      "season_id": 1,
      "wage_type": "manager"
    }
  ],
  "id": 1
}

Gets wage information for a specific user.

HTTP Request

POST https://api.soccerverse.io/gsp/

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, each containing details about the payment amount, date, and type.

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_comp_history_by_manager',
  params: {
    name: "user1"
  },
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "comp_id": 1,
      "comp_name": "Premier League",
      "comp_type": "league",
      "season_id": 1,
      "position": 1,
      "wins": 8,
      "draws": 2,
      "losses": 1,
      "points": 26,
      "club_id": 1,
      "club_name": "Club 1"
    },
    {
      "comp_id": 2,
      "comp_name": "FA Cup",
      "comp_type": "cup",
      "season_id": 1,
      "position": 2,
      "wins": 4,
      "draws": 1,
      "losses": 1,
      "points": null,
      "club_id": 1,
      "club_name": "Club 1"
    }
  ],
  "id": 1
}

Gets competition history for a specific manager.

HTTP Request

POST https://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_manager_history_by_manager',
  params: {
    name: "user1"
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://api.soccerverse.io/gsp/', 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,
      "club_name": "Club 1",
      "start_date": 1661990400,
      "end_date": null,
      "is_current": true,
      "reason": null,
      "season_id": 1
    },
    {
      "club_id": 3,
      "club_name": "Club 3",
      "start_date": 1630368000,
      "end_date": 1661904000,
      "is_current": false,
      "reason": "resigned",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets the career history for a specific manager.

HTTP Request

POST https://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  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://api.soccerverse.io/gsp/', 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": [
    {
      "manager_name": "user1",
      "start_date": 1661990400,
      "end_date": null,
      "is_current": true,
      "reason": null,
      "season_id": 1
    },
    {
      "manager_name": "user4",
      "start_date": 1630368000,
      "end_date": 1661904000,
      "is_current": false,
      "reason": "resigned",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets the history of managers for a specific club.

HTTP Request

POST https://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_all_votes',
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "vote_id": 1,
      "share_type": "club",
      "share_id": 1,
      "proposal_id": 1,
      "proposal_type": "manager",
      "proposed_value": "user5",
      "start_time": 1663632000,
      "end_time": 1664064000,
      "yes_votes": 6000,
      "no_votes": 4000,
      "total_eligible_votes": 10000,
      "status": "active",
      "season_id": 1
    },
    {
      "vote_id": 2,
      "share_type": "club",
      "share_id": 2,
      "proposal_id": 2,
      "proposal_type": "dilution",
      "proposed_value": "2000",
      "start_time": 1663718400,
      "end_time": 1664150400,
      "yes_votes": 5500,
      "no_votes": 3500,
      "total_eligible_votes": 9000,
      "status": "active",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets all active votes in the system.

HTTP Request

POST https://api.soccerverse.io/gsp/

Parameters

None required.

Returns

Returns an array of vote objects, each containing details about the vote including its ID, associated share, proposal information, voting statistics, and status.

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_votes_for_shareholder',
  params: {
    name: "user1"
  },
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "vote_id": 1,
      "share_type": "club",
      "share_id": 1,
      "proposal_id": 1,
      "proposal_type": "manager",
      "proposed_value": "user5",
      "start_time": 1663632000,
      "end_time": 1664064000,
      "yes_votes": 6000,
      "no_votes": 4000,
      "total_eligible_votes": 10000,
      "user_shares": 1000,
      "user_vote_direction": "yes",
      "status": "active",
      "season_id": 1
    },
    {
      "vote_id": 2,
      "share_type": "club",
      "share_id": 2,
      "proposal_id": 2,
      "proposal_type": "dilution",
      "proposed_value": "2000",
      "start_time": 1663718400,
      "end_time": 1664150400,
      "yes_votes": 5500,
      "no_votes": 3500,
      "total_eligible_votes": 9000,
      "user_shares": 800,
      "user_vote_direction": "no",
      "status": "active",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets all votes relevant to a specific shareholder.

HTTP Request

POST https://api.soccerverse.io/gsp/

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, including standard vote information plus the shareholder's specific vote data (shares owned and vote direction).

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  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://api.soccerverse.io/gsp/', 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": [
    {
      "proposal_id": 1,
      "share_type": "club",
      "share_id": 1,
      "proposal_type": "manager",
      "proposed_value": "user5",
      "proposer": "user3",
      "status": "voting",
      "time_created": 1663632000,
      "vote_id": 1,
      "season_id": 1
    },
    {
      "proposal_id": 3,
      "share_type": "club",
      "share_id": 1,
      "proposal_type": "dilution",
      "proposed_value": "1500",
      "proposer": "user2",
      "status": "pending",
      "time_created": 1663804800,
      "vote_id": null,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets all proposals for a specific share.

HTTP Request

POST https://api.soccerverse.io/gsp/

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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_user_share_balances",
    "params": {
      "name": "user1"
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "owner": "user1",
      "share": {
        "type": "club",
        "id": 1
      },
      "balance": 1000,
      "diluted_balance": 900,
      "voting_rights": true
    },
    {
      "owner": "user1",
      "share": {
        "type": "club",
        "id": 3
      },
      "balance": 500,
      "diluted_balance": 500,
      "voting_rights": false
    },
    {
      "owner": "user1",
      "share": {
        "type": "player",
        "id": 15
      },
      "balance": 2000,
      "diluted_balance": 2000,
      "voting_rights": true
    }
  ],
  "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
owner string Name of the share owner (same as requested user)
share object Share identifier
share.type string Type of share (e.g., "club", "player")
share.id number ID of the entity (club or player)
balance number Total number of shares owned
diluted_balance number Number of shares after dilution
voting_rights boolean Whether the shares carry voting rights

Errors

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

Get User Share Transactions

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_user_share_transactions",
    "params": {
      "name": "user1"
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "transaction_id": 1,
      "share": {
        "type": "club",
        "id": 1
      },
      "buyer": "user1",
      "seller": "user2",
      "amount": 500,
      "price": 100,
      "total_value": 50000,
      "time": 1662595200,
      "season_id": 1
    },
    {
      "transaction_id": 2,
      "share": {
        "type": "club",
        "id": 3
      },
      "buyer": "user1",
      "seller": "user3",
      "amount": 300,
      "price": 90,
      "total_value": 27000,
      "time": 1663200000,
      "season_id": 1
    }
  ],
  "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
transaction_id number Unique identifier for the transaction
share object Share identifier
share.type string Type of share (e.g., "club", "player")
share.id number ID of the entity (club or player)
buyer string Name of the buyer
seller string Name of the seller
amount number Number of shares traded
price number Price per share
total_value number Total transaction value (amount * price)
time number Transaction time (Unix timestamp)
season_id number ID of the season when the transaction occurred

Errors

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

Get Share Owners

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "owner": "user1",
      "balance": 1000,
      "diluted_balance": 900,
      "voting_rights": true
    },
    {
      "owner": "user2",
      "balance": 500,
      "diluted_balance": 450,
      "voting_rights": false
    },
    {
      "owner": "user3",
      "balance": 2000,
      "diluted_balance": 1800,
      "voting_rights": true
    }
  ],
  "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
owner string Name of the share owner
balance number Total number of shares owned
diluted_balance number Number of shares after dilution
voting_rights boolean Whether the shares carry voting rights

Errors

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

Get User Share Orders

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_user_share_orders",
    "params": {
      "name": "user1"
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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,
      "share": {
        "type": "club",
        "id": 2
      },
      "type": "bid",
      "price": 95,
      "amount": 200,
      "filled": 0,
      "time_created": 1663632000,
      "season_id": 1
    },
    {
      "order_id": 2,
      "share": {
        "type": "club",
        "id": 1
      },
      "type": "ask",
      "price": 120,
      "amount": 100,
      "filled": 0,
      "time_created": 1663718400,
      "season_id": 1
    }
  ],
  "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
share object Share identifier
share.type string Type of share (e.g., "club", "player")
share.id number ID of the entity (club or player)
type string Order type ("bid" for buy orders, "ask" for sell orders)
price number Price per share
amount number Number of shares to buy/sell
filled number Number of shares already filled
time_created number Order creation time (Unix timestamp)
season_id number ID of the season when the order was placed

Errors

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

Get Share Orderbook

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": {
    "bids": [
      {
        "price": 100,
        "amount": 50,
        "creator": "user4"
      },
      {
        "price": 95,
        "amount": 100,
        "creator": "user5"
      }
    ],
    "asks": [
      {
        "price": 110,
        "amount": 30,
        "creator": "user1"
      },
      {
        "price": 115,
        "amount": 75,
        "creator": "user3"
      }
    ]
  },
  "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 object containing:

Field Type Description
bids array Array of bid orders (buy orders)
bids[].price number Bid price per share
bids[].amount number Number of shares to buy
bids[].creator string Name of the bidder
asks array Array of ask orders (sell orders)
asks[].price number Ask price per share
asks[].amount number Number of shares to sell
asks[].creator string Name of the seller

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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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
      },
      "last_price": 105,
      "last_time": 1663632000,
      "price_change": 5,
      "volume_24h": 1500
    },
    {
      "share": {
        "type": "club",
        "id": 2
      },
      "last_price": 90,
      "last_time": 1663718400,
      "price_change": -2,
      "volume_24h": 800
    }
  ],
  "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)
last_price number Last traded price per share
last_time number Time of the last trade (Unix timestamp)
price_change number 24-hour price change
volume_24h number 24-hour trading volume (number of shares)

Errors

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

Get Share Overview

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": {
    "share": {
      "type": "club",
      "id": 1
    },
    "price_history": [
      {
        "time": 1661990400,
        "price": 100
      },
      {
        "time": 1662595200,
        "price": 103
      },
      {
        "time": 1663200000,
        "price": 102
      },
      {
        "time": 1663632000,
        "price": 105
      }
    ],
    "volume_history": [
      {
        "time": 1661990400,
        "volume": 500
      },
      {
        "time": 1662595200,
        "volume": 800
      },
      {
        "time": 1663200000,
        "volume": 600
      },
      {
        "time": 1663632000,
        "volume": 750
      }
    ],
    "current_price": 105,
    "total_volume": 2650,
    "total_value": 10500000,
    "total_shares": 100000
  },
  "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
price_history array Array of price data points
price_history[].time number Timestamp for the price data point
price_history[].price number Share price at that time
volume_history array Array of volume data points
volume_history[].time number Timestamp for the volume data point
volume_history[].volume number Trading volume at that time
current_price number Current share price
total_volume number Total trading volume in the period
total_value number Total market value (price * total shares)
total_shares number Total number of shares issued

Errors

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

Get Share Trade History

Request example:

curl -X POST "https://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "trade_id": 1,
      "share": {
        "type": "club",
        "id": 1
      },
      "buyer": "user1",
      "seller": "user2",
      "amount": 500,
      "price": 100,
      "total_value": 50000,
      "time": 1662595200,
      "season_id": 1
    },
    {
      "trade_id": 2,
      "share": {
        "type": "club",
        "id": 1
      },
      "buyer": "user3",
      "seller": "user4",
      "amount": 300,
      "price": 103,
      "total_value": 30900,
      "time": 1663200000,
      "season_id": 1
    }
  ],
  "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
trade_id number Unique identifier for the trade
share object Share identifier
share.type string Type of share
share.id number ID of the entity
buyer string Name of the buyer
seller string Name of the seller
amount number Number of shares traded
price number Price per share
total_value number Total trade value (amount * price)
time number Trade time (Unix timestamp)
season_id number ID of the season when the trade occurred

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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "dilution_id": 1,
      "share": {
        "type": "club",
        "id": 1
      },
      "amount": 1000,
      "price": 100,
      "start_time": 1663632000,
      "end_time": 1664236800,
      "sold": 600,
      "status": "active",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets information about share dilutions, which occur when new shares are issued by a club or for a player.

Parameters

Parameter Type Description Required
user string Filter by user name 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", "completed", "cancelled") No

Returns

An array of dilution objects, each containing:

Field Type Description
dilution_id number Unique identifier for the dilution
share object Share identifier
share.type string Type of share
share.id number ID of the entity
amount number Total number of new shares to issue
price number Price per share for the new issuance
start_time number Start time of the dilution (Unix timestamp)
end_time number End time of the dilution (Unix timestamp)
sold number Number of new shares already sold
status string Current status ("active", "completed", "cancelled")
season_id number ID of the season when the dilution was initiated

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  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://api.soccerverse.io/gsp/', 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": [
    {
      "trade_id": 5,
      "share": {
        "type": "club",
        "id": 1,
        "name": "Club 1"
      },
      "buyer": "user1",
      "seller": "user2",
      "amount": 500,
      "price": 105,
      "total_value": 52500,
      "time": 1663804800,
      "season_id": 1
    },
    {
      "trade_id": 4,
      "share": {
        "type": "club",
        "id": 2,
        "name": "Club 2"
      },
      "buyer": "user3",
      "seller": "user4",
      "amount": 300,
      "price": 90,
      "total_value": 27000,
      "time": 1663718400,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets recent share trades for the ticker.

HTTP Request

POST https://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_ticker_last_transfers',
  params: {
    num: 10
  },
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "transfer_id": 5,
      "player_id": 15,
      "player_name": "Player 15",
      "from_club_id": 2,
      "from_club_name": "Club 2",
      "to_club_id": 1,
      "to_club_name": "Club 1",
      "fee": 30000000,
      "date": 1663804800,
      "season_id": 1
    },
    {
      "transfer_id": 4,
      "player_id": 22,
      "player_name": "Player 22",
      "from_club_id": 1,
      "from_club_name": "Club 1",
      "to_club_id": 3,
      "to_club_name": "Club 3",
      "fee": 22000000,
      "date": 1663718400,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets recent player transfers for the ticker.

HTTP Request

POST https://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_ticker_top_player_auctions',
  params: {
    num: 10
  },
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "auction_id": 1,
      "player_id": 15,
      "player_name": "Player 15",
      "position": 4,
      "rating": 88,
      "selling_club_id": 1,
      "selling_club_name": "Club 1",
      "current_bid": 30000000,
      "bidding_club_id": 2,
      "bidding_club_name": "Club 2",
      "end_date": 1663891200,
      "time_remaining": 86400,
      "season_id": 1
    },
    {
      "auction_id": 2,
      "player_id": 22,
      "player_name": "Player 22",
      "position": 3,
      "rating": 85,
      "selling_club_id": 3,
      "selling_club_name": "Club 3",
      "current_bid": 25000000,
      "bidding_club_id": 1,
      "bidding_club_name": "Club 1",
      "end_date": 1664064000,
      "time_remaining": 172800,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets top player auctions for the ticker.

HTTP Request

POST https://api.soccerverse.io/gsp/

Parameters

Parameter Type Description
num Integer Number of auctions to return

Returns

Returns an array of player auction objects, each containing details about the auction including player information, selling and bidding clubs, current bid, and time remaining.

Errors

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

get_ticker_club_balances

Example Request:

curl -X POST "https://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_ticker_club_balances',
  params: {
    num: 10
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://api.soccerverse.io/gsp/', 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://api.soccerverse.io/gsp/

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_ticker_manager_agent_news',
  params: {
    num: 10
  },
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "news_id": 5,
      "title": "New Manager",
      "content": "Club 2 appoints User2 as new manager",
      "type": "manager",
      "club_id": 2,
      "club_name": "Club 2",
      "user_name": "User2",
      "date": 1663804800,
      "season_id": 1
    },
    {
      "news_id": 4,
      "title": "Agent Signs Player",
      "content": "Agent User3 signs Player 30",
      "type": "agent",
      "player_id": 30,
      "player_name": "Player 30",
      "user_name": "User3",
      "date": 1663718400,
      "season_id": 1
    }
  ],
  "id": 1
}

Gets recent manager and agent news for the ticker.

HTTP Request

POST https://api.soccerverse.io/gsp/

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 including title, content, and related entities.

Errors

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

get_ticker_match_results

Example Request:

curl -X POST "https://api.soccerverse.io/gsp/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_ticker_match_results",
    "params": {
      "league_name": "Premier League"
    },
    "id": 1
  }'
const axios = require('axios');

const response = await axios.post('https://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_ticker_match_results',
  params: {
    league_name: "Premier League"
  },
  id: 1
});

console.log(response.data);
import requests

response = requests.post('https://api.soccerverse.io/gsp/', json={
    'jsonrpc': '2.0',
    'method': 'get_ticker_match_results',
    'params': {
        'league_name': "Premier League"
    },
    'id': 1
})

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "fixture_id": 15,
      "home_club_id": 1,
      "home_club_name": "Club 1",
      "away_club_id": 2,
      "away_club_name": "Club 2",
      "home_goals": 2,
      "away_goals": 1,
      "date": 1663804800,
      "competition_id": 1,
      "competition_name": "Premier League",
      "season_id": 1
    },
    {
      "fixture_id": 16,
      "home_club_id": 3,
      "home_club_name": "Club 3",
      "away_club_id": 4,
      "away_club_name": "Club 4",
      "home_goals": 3,
      "away_goals": 0,
      "date": 1663804800,
      "competition_id": 1,
      "competition_name": "Premier League",
      "season_id": 1
    }
  ],
  "id": 1
}

Gets recent match results for the ticker.

HTTP Request

POST https://api.soccerverse.io/gsp/

Parameters

Parameter Type Description
league_name String Optional. Name of the league to filter results

Returns

Returns an array of match result objects, each containing details about the match including clubs, score, date, and competition.

Errors

Error Code Meaning
400 Bad Request - Invalid 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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  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://api.soccerverse.io/gsp/', 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": [
    {
      "vault_id": 1,
      "name": "Vault 1",
      "founder": "user1",
      "controller": "user1",
      "chi_balance": 5000000,
      "created_time": 1662595200,
      "status": "active",
      "shareholders": [
        {
          "name": "user1",
          "share_percentage": 60
        },
        {
          "name": "user2",
          "share_percentage": 40
        }
      ],
      "season_id": 1
    },
    {
      "vault_id": 2,
      "name": "Vault 2",
      "founder": "user3",
      "controller": "user1",
      "chi_balance": 3000000,
      "created_time": 1663200000,
      "status": "active",
      "shareholders": [
        {
          "name": "user1",
          "share_percentage": 70
        },
        {
          "name": "user3",
          "share_percentage": 30
        }
      ],
      "season_id": 1
    }
  ],
  "id": 1
}

Gets information about specific vaults.

HTTP Request

POST https://api.soccerverse.io/gsp/

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 including its ID, name, founder, controller, balance, creation time, status, and shareholders.

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://api.soccerverse.io/gsp/" \
  -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://api.soccerverse.io/gsp/', {
  jsonrpc: '2.0',
  method: 'get_vaults_by_founder',
  params: {
    founder: "user1"
  },
  id: 1
});

console.log(response.data);
import requests

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

print(response.json())

Example Response:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "vault_id": 1,
      "name": "Vault 1",
      "founder": "user1",
      "controller": "user1",
      "chi_balance": 5000000,
      "created_time": 1662595200,
      "status": "active",
      "shareholders": [
        {
          "name": "user1",
          "share_percentage": 60
        },
        {
          "name": "user2",
          "share_percentage": 40
        }
      ],
      "season_id": 1
    },
    {
      "vault_id": 3,
      "name": "Vault 3",
      "founder": "user1",
      "controller": "user2",
      "chi_balance": 2000000,
      "created_time": 1663804800,
      "status": "active",
      "shareholders": [
        {
          "name": "user1",
          "share_percentage": 40
        },
        {
          "name": "user2",
          "share_percentage": 60
        }
      ],
      "season_id": 1
    }
  ],
  "id": 1
}

Gets all vaults created by a specific founder.

HTTP Request

POST https://api.soccerverse.io/gsp/

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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": {
    "season_id": 1,
    "name": "2022-2023",
    "start_date": 1661990400,
    "end_date": 1685577600,
    "current": true,
    "events": [
      {
        "event_id": 1,
        "event_type": "season_start",
        "date": 1661990400,
        "description": "Season 2022-2023 has started",
        "season_id": 1
      },
      {
        "event_id": 2,
        "event_type": "transfer_window",
        "date": 1662595200,
        "description": "Summer transfer window has closed",
        "season_id": 1
      },
      {
        "event_id": 3,
        "event_type": "competition_start",
        "date": 1662595200,
        "description": "League competitions have started",
        "competition_id": 1,
        "competition_name": "Premier League",
        "season_id": 1
      }
    ]
  },
  "id": 1
}

Gets the history of the game world for a specific season, including key events that occurred during that season.

Parameters

Parameter Type Description Required
season_id number ID of the season Yes

Returns

An object containing:

Field Type Description
season_id number ID of the season
name string Name of the season (e.g., "2022-2023")
start_date number Start date of the season (Unix timestamp)
end_date number End date of the season (Unix timestamp)
current boolean Whether this is the current season
events array Array of event objects

Each event object in the events array contains:

Field Type Description
event_id number Unique identifier for the event
event_type string Type of event (e.g., "season_start", "transfer_window", "competition_start")
date number Date of the event (Unix timestamp)
description string Human-readable description of the event
season_id number ID of the season
competition_id number ID of the related competition (if applicable)
competition_name string Name of the related competition (if applicable)

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://services.soccerverse.com/gsp" \
  -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://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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": [
    {
      "comp_id": 1,
      "comp_name": "Premier League",
      "comp_type": "league",
      "season_id": 1,
      "season_name": "2022-2023",
      "position": 1,
      "wins": 25,
      "draws": 8,
      "losses": 5,
      "points": 83,
      "goals_for": 78,
      "goals_against": 32
    },
    {
      "comp_id": 1,
      "comp_name": "Premier League",
      "comp_type": "league",
      "season_id": 2,
      "season_name": "2021-2022",
      "position": 2,
      "wins": 23,
      "draws": 7,
      "losses": 8,
      "points": 76,
      "goals_for": 70,
      "goals_against": 40
    },
    {
      "comp_id": 3,
      "comp_name": "FA Cup",
      "comp_type": "cup",
      "season_id": 1,
      "season_name": "2022-2023",
      "position": 1,
      "wins": 6,
      "draws": 0,
      "losses": 0,
      "points": null,
      "goals_for": 18,
      "goals_against": 4
    }
  ],
  "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 array of competition history objects, each containing:

Field Type Description
comp_id number ID of the competition
comp_name string Name of the competition
comp_type string Type of competition (e.g., "league", "cup")
season_id number ID of the season
season_name string Name of the season
position number Final position in the competition (1 for winner in cup competitions)
wins number Number of wins
draws number Number of draws
losses number Number of losses
points number Total points (for league competitions, null for cup competitions)
goals_for number Total goals scored
goals_against number Total goals conceded

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://services.soccerverse.com/gsp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "get_extfile",
    "params": {
      "hash": "5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c"
    },
    "id": 1
  }'
const response = await fetch('https://services.soccerverse.com/gsp', {
  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://services.soccerverse.com/gsp"
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",
    "data": "base64-encoded-content-here",
    "size": 1024,
    "mime_type": "application/json",
    "created": 1662595200
  },
  "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
data string Base64-encoded content of the file
size number Size of the file in bytes
mime_type string MIME type of the file
created number Creation timestamp (Unix timestamp)

Errors

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

Get Params

Request example (with parameter name):

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

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

url = "https://services.soccerverse.com/gsp"
payload = {
    "jsonrpc": "2.0",
    "method": "get_params",
    "params": {
        "name": "transfers"
    },
    "id": 1
}

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

Response example (with parameter name):

{
  "jsonrpc": "2.0",
  "result": {
    "name": "transfers",
    "parameters": {
      "min_transfer_fee": 100000,
      "max_players_per_club": 25,
      "max_foreign_players": 17,
      "transfer_window_start": 1661990400,
      "transfer_window_end": 1662595200,
      "auction_duration_days": 3,
      "min_bid_increment_percentage": 5
    },
    "last_updated": 1661990400
  },
  "id": 1
}

Request example (without parameter name):

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

Response example (without parameter name):

{
  "jsonrpc": "2.0",
  "result": {
    "available_parameter_sets": ["transfers", "gameplay", "economy", "player_development", "club_management"]
  },
  "id": 1
}

Gets game parameters. If a parameter set name is provided, returns the specific parameters for that set. If no name is provided, returns a list of available parameter sets.

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 string Name of the parameter set
parameters object Key-value pairs of parameters
last_updated number Last update timestamp (Unix timestamp)

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,
  "name": "Arsenal FC",
  "manager": "John Smith",
  "founded": 1886,
  "country_id": "ENG",
  "association_id": 1,
  "stadium_name": "Emirates Stadium",
  "stadium_capacity": 60704,
  "balance": "15000000",
  "wage_budget": "2000000",
  "transfer_budget": "50000000",
  "total_shares": "1000000",
  "unissued_shares": "100000",
  "level": 1
}

A club in the Soccerverse game.

Field Type Description
club_id number Unique identifier for the club
name string Club name
manager string Current manager's name
founded number Year the club was founded
country_id string ISO country code for country
association_id number ID of the football association the club belongs to
stadium_name string Name of the club's stadium
stadium_capacity number Capacity of the club's stadium
balance string Current financial balance
wage_budget string Current wage budget
transfer_budget string Current transfer budget
total_shares string Total number of shares issued
unissued_shares string Number of unissued (treasury) shares
level number Club level/division

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,
      "position": 1,
      "tackling_style": 1,
      "tempo": 2
    }
  ],
  "substitutions": [
    {
      "player_off_id": 15,
      "player_on_id": 18,
      "condition": {
        "type": "score",
        "trigger": "losing",
        "min_time": 60,
        "max_time": 80
      }
    }
  ],
  "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,
  "position": 1,
  "tackling_style": 1,
  "tempo": 2
}

A player's position within a tactical setup.

Field Type Description
player_id number ID of the player
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)

Match

Example Match object:

{
  "match_id": 123,
  "home_club_id": 1,
  "away_club_id": 2,
  "competition_id": 1,
  "season_id": 1,
  "date": 1620000000,
  "home_score": 2,
  "away_score": 1,
  "status": "completed",
  "attendance": 45000,
  "referee": "Mike Dean",
  "stage": "group",
  "group": "A",
  "leg": 1
}

A match between two clubs.

Field Type Description
match_id number Unique identifier for the match
home_club_id number ID of the home club
away_club_id number ID of the away club
competition_id number ID of the competition
season_id number ID of the season
date number Date and time of the match (Unix timestamp)
home_score number Goals scored by home team
away_score number Goals scored by away team
status string Match status (scheduled, live, completed, postponed)
attendance number Number of spectators at the match
referee string Name of the referee
stage string Stage of the competition (e.g., "group", "quarterfinal")
group string Group in group stage (if applicable)
leg number Leg number for two-legged ties

League

Example League object:

{
  "league_id": 1,
  "name": "Premier League",
  "association_id": 1,
  "level": 1,
  "promotion_spots": 0,
  "playoff_spots": 0,
  "relegation_spots": 3,
  "teams": 20
}

A league competition.

Field Type Description
league_id number Unique identifier for the league
name string Name of the league
association_id number ID of the association the league belongs to
level number League level/tier in the hierarchy
promotion_spots number Number of automatic promotion spots
playoff_spots number Number of playoff spots
relegation_spots number Number of relegation spots
teams number Number of teams in the league

Cup

Example Cup object:

{
  "cup_id": 1,
  "name": "FA Cup",
  "association_id": 1,
  "rounds": 6,
  "teams": 64,
  "qualifying_rounds": 2,
  "group_stage": false,
  "knockout_legs": 1,
  "seeded": true
}

A cup competition.

Field Type Description
cup_id number Unique identifier for the cup
name string Name of the cup
association_id number ID of the association the cup belongs to
rounds number Number of rounds in the cup
teams number Maximum number of teams in the cup
qualifying_rounds number Number of qualifying rounds
group_stage boolean Whether the cup has a group stage
knockout_legs number Number of legs in knockout rounds (1 or 2)
seeded boolean Whether the cup uses seeding

Association

Example Association object:

{
  "association_id": 1,
  "name": "Football Association",
  "country_id": "ENG",
  "continent_id": 1,
  "ranking": 4,
  "coefficient": 88.462
}

A football association.

Field Type Description
association_id number Unique identifier for the association
name string Name of the association
country_id string ISO country code
continent_id number ID of the continent
ranking number World ranking of the association
coefficient number Association coefficient for international competitions

Season

Example Season object:

{
  "season_id": 1,
  "name": "2023/2024",
  "start_date": 1627776000,
  "end_date": 1654041600,
  "current": true,
  "phase": "mid-season",
  "transfer_window_open": false
}

A game season.

Field Type Description
season_id number Unique identifier for the season
name string Name of the season (e.g., "2023/2024")
start_date number Start date (Unix timestamp)
end_date number End date (Unix timestamp)
current boolean Whether this is the current season
phase string Current phase of the season
transfer_window_open boolean Whether the transfer window is open

Transfer

Example Transfer object:

{
  "transfer_id": 1,
  "player_id": 1,
  "from_club_id": 102,
  "to_club_id": 101,
  "fee": 15000000,
  "date": 1660406400,
  "season_id": 1
}

A player transfer between clubs.

Field Type Description
transfer_id number Unique identifier for the transfer
player_id number ID of the transferred player
from_club_id number ID of the selling club
to_club_id number ID of the buying club
fee number Transfer fee
date number Date of the transfer (Unix timestamp)
season_id number ID of the season when the transfer occurred

Share

Example Share object:

{
  "share_id": 123,
  "club_id": 1,
  "owner": "john_doe",
  "amount": "10000",
  "percentage": 10.5,
  "voting_power": 12,
  "acquisition_date": 1620000000
}

A club share ownership record.

Field Type Description
share_id number Unique identifier for the share record
club_id number ID of the club
owner string Name of the share owner
amount string Number of shares owned
percentage number Percentage of total shares
voting_power number Voting power (0-100)
acquisition_date number Date shares were acquired (Unix timestamp)

Injury

Example Injury object:

{
  "injury_id": 1,
  "player_id": 1,
  "club_id": 101,
  "start_date": 1662595200,
  "end_date": 1663200000,
  "type": "hamstring",
  "severity": "medium",
  "season_id": 1
}

A player injury record.

Field Type Description
injury_id number Unique identifier for the injury
player_id number ID of the injured player
club_id number ID of the player's club at time of injury
start_date number Injury start date (Unix timestamp)
end_date number Expected recovery date (Unix timestamp)
type string Type of injury (e.g., "hamstring", "ankle")
severity string Severity ("minor", "medium", "major")
season_id number ID of the season when the injury occurred

Proposal

Example Proposal object:

{
  "proposal_id": 1,
  "club_id": 1,
  "title": "New Stadium Construction",
  "description": "Build a new stadium with 75,000 capacity",
  "proposer": "john_doe",
  "creation_date": 1620000000,
  "end_date": 1620604800,
  "status": "active",
  "type": "stadium",
  "votes_for": "550000",
  "votes_against": "300000",
  "votes_abstain": "150000",
  "action_params": {
    "capacity": 75000,
    "cost": 450000000
  }
}

A club governance proposal.

Field Type Description
proposal_id number Unique identifier for the proposal
club_id number ID of the club
title string Title of the proposal
description string Detailed description of the proposal
proposer string Name of the user who made the proposal
creation_date number Creation date (Unix timestamp)
end_date number Voting end date (Unix timestamp)
status string Status ("active", "passed", "failed")
type string Type of proposal (e.g., "manager", "stadium")
votes_for string Number of votes in favor
votes_against string Number of votes against
votes_abstain string Number of abstentions
action_params object Parameters for the action if proposal passes

Message

Example Message object:

{
  "message_id": 1,
  "sender": "system",
  "recipient": "john_doe",
  "club_id": 1,
  "subject": "Transfer Offer",
  "content": "You have received a transfer offer for Player X",
  "date": 1620000000,
  "read": false,
  "type": "system"
}

An in-game message.

Field Type Description
message_id number Unique identifier for the message
sender string Name of the sender
recipient string Name of the recipient (or null for broadcast)
club_id number Related club ID (if applicable)
subject string Message subject
content string Message content
date number Date sent (Unix timestamp)
read boolean Whether the message has been read
type string Message type (e.g., "personal", "news", "system")

Error

Example Error object:

{
  "code": -32602,
  "message": "Invalid parameters",
  "data": {
    "details": "Missing required parameter: player_id"
  }
}

An error response.

Field Type Description
code number Error code
message string Error message
data object Additional error data (optional)