These developer docs are available in English only. View in English
GSP JSON-RPC
The Soccerverse GSP JSON-RPC interface: read methods and game-state envelope semantics, with request and response examples.
Purpose
The GSP API exposes Soccerverse game-state data via JSON-RPC 2.0. Use it for current or chain-indexed game data such as seasons, leagues, cups, squads, fixtures, tactics, transfers/auctions, manager history, votes, and share orderbooks.
For most client-facing applications, the Datacentre REST API and MCP wrappers provide enriched names, formatted dates, and SVC formatting. The raw GSP endpoint is lower-level: it returns numeric ids, raw integer money values, timestamps, and a blockchain state envelope.
Base URL
Preferred current base URL:
https://services.soccerverse.com/gsp/
Older public docs refer to:
https://gsppub.soccerverse.io/
The older host may be reachable but stale/catching-up for get_seasons. Prefer https://services.soccerverse.com/gsp/ unless product explicitly decides otherwise.
Protocol
- Transport: HTTPS
POST - Content type:
application/json - JSON-RPC version:
2.0 - Public read access for the documented
get_*methods. - No auth header is required.
- If a deployment later sits behind a bypass or edge rule, document placeholders only, for example
$CLOUDFLARE_BYPASS_SECRET; never include live secret values.
Request shape:
{
"jsonrpc": "2.0",
"method": "get_seasons",
"id": 1
}
Request with params:
{
"jsonrpc": "2.0",
"method": "get_squad",
"params": { "club_id": 50 },
"id": 2
}
Response shape:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"blockhash": "...",
"chain": "polygon",
"data": [ ... ],
"gameid": "sv",
"height": 88291432,
"state": "up-to-date"
}
}
Most useful payloads are in result.data. A few methods still return object payloads in result.data rather than lists. Always check the JSON-RPC error member before reading result.
State envelope fields
Every supported live GSP method returns a wrapper around the game data.
| Field | Meaning |
|---|---|
result.data | The actual method payload. Usually a list; sometimes an object. |
result.height | Chain/index height used for this response. Treat it as the consistency marker for cache/debugging, not a fixture/gameweek number. |
result.blockhash | Block hash for the indexed state behind the response. |
result.chain | Chain name. Returns polygon. |
result.gameid | Game id. Returns sv. |
result.state | Indexer state. Returns up-to-date. Older host returned catching-up; callers should display/degrade carefully when not up to date. |
Pitfall: the current MCP source wraps GSP calls and usually strips this envelope via extract_blockchain_data(). Raw JSON-RPC callers must do that themselves.
Example: list seasons
curl -sS https://services.soccerverse.com/gsp/ \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"get_seasons","id":1}'
Response shape:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"blockhash": "...",
"chain": "polygon",
"data": [
{
"end": 1783123200,
"finished": false,
"name": 0,
"number": 3,
"season_id": 3,
"start": 1767398400
}
],
"gameid": "sv",
"height": 88291430,
"state": "up-to-date"
}
}
Python example: unwrapping result.data
import json
import urllib.request
url = "https://services.soccerverse.com/gsp/"
payload = {
"jsonrpc": "2.0",
"method": "get_squad",
"params": {"club_id": 50},
"id": 1,
}
request = urllib.request.Request(
url,
data=json.dumps(payload).encode("utf-8"),
headers={"Content-Type": "application/json"},
method="POST",
)
with urllib.request.urlopen(request, timeout=20) as response:
body = json.loads(response.read().decode("utf-8"))
if "error" in body:
raise RuntimeError(body["error"])
envelope = body["result"]
players = envelope["data"]
print(envelope["height"], envelope["state"], len(players))
get_squad for club_id=50 returns a list of players. First-player keys include player_id, club_id, country_id, position, rating, rating_gk, rating_tackling, rating_passing, rating_shooting, rating_stamina, rating_aggression, fitness, morale, wages, value, loaned_to_club, injured, banned, and card counters.
Method catalogue
All methods below are public read-only JSON-RPC calls. Parameters show a representative example shape.
Methods
Tactics
| JSON-RPC method | Params | Returns |
|---|---|---|
get_club_tactics | {"club_id":1} | Returns current committed/submitted club tactics; object with keys: tactic_actions, team_sheet, validation. |
Helper/Metadata
| JSON-RPC method | Params | Returns |
|---|---|---|
get_extfile | {"hash":"foo"} | Returns external-file availability metadata for a content hash; object with keys: exists, hash. |
get_params | {"name":""} | Returns game parameter values, optionally by name; object with parameter keys such as agent-min-bps, ban-length-yellowred, coins-to-club-multiplier-bps, dilution-max-bps, and more. |
Clubs/Squads
| JSON-RPC method | Params | Returns |
|---|---|---|
get_club_ids | {} | Lists all club ids; returns a list. |
get_squad | {"club_id":42} | Returns players owned/loaned by a club; returns a list. |
get_freebench | {} | Returns free-bench players; returns a list. |
get_club_schedule | {"club_id":1,"season_id":1} | Returns club fixtures for a season; returns a list. |
get_club | {"club_id":1} | Returns club state by club id; object with keys: away_colour, balance, club_id, country_id, default_formation, fans_current, fans_start, form, home_colour, manager_locked, and more. |
get_club_extended | {"club_id":1} | Returns club state plus squad transfer/loan counters; object with keys: away_colour, balance, club_id, country_id, default_formation, fans_current, fans_start, form, home_colour, loans, and more. |
get_stadiums_club | {"stadium_id":1} | Returns club(s) for a stadium id; returns a list. |
get_managers_club | {"manager_name":"foo"} | Returns club managed by a manager name; object with keys: away_colour, balance, club_id, country_id, default_formation, fans_current, fans_start, form, home_colour, manager_locked, and more. |
get_all_clubs | {} | Returns all club rows; returns a list. |
get_club_balance_sheet | {"club_id":1,"season_id":1} | Returns balance-sheet rows for a club and season; returns a list. |
get_clubs_league | {"club_id":1} | Returns league ids associated with a club; returns a list. |
get_clubs_next_fixture | {"club_id":1} | Returns next fixture object for a club; object with keys: attendance, away_club, away_goals, away_manager, comp_type, country_id, date, fixture_id, home_club, home_goals, and more. |
get_clubs_last_fixture | {"club_id":1} | Returns last fixture object for a club; object with keys: attendance, away_club, away_goals, away_manager, away_pen_score, comp_type, country_id, date, fixture_id, home_club, and more. |
get_all_stadium_data_ids | {} | Lists all stadium_data ids; returns a list. |
get_clubs_transfer_auctions | {"club_id":1} | Returns outgoing transfer auctions for a club; returns a list. |
get_clubs_transfer_bids | {"club_id":1} | Returns transfer auctions with bids from a club; returns a list. |
get_clubs_player_loan_offers | {"club_id":1} | Returns loan offers for a club; returns a list. |
get_comp_history_by_club | {"club_id":1} | Returns competition-history rows for a club; returns a list. |
get_manager_history_by_club | {"club_id":1} | Returns manager-tenure history for a club; returns a list. |
get_all_managers | {} | Returns all manager names/rows; returns a list. |
Players
| JSON-RPC method | Params | Returns |
|---|---|---|
get_player_payouts | {"player_id":1} | Returns derived payout values for a player; returns a list. |
get_players | {"player_ids":[1,2,3]} | Returns player records for documented small batches; public/read-only example uses one sample player id; returns a list. |
get_players_by_attributes | {"age_high":50,"age_low":15,"limit":100,"nationality":"foo","offset":0,"position":4,"rating_high":99,"rating_low":20} | Searches players by country/position/rating/dob window; returns a list. |
get_agents_players | {"agent_name":"foo"} | Returns players represented by an agent name; returns a list. |
get_comp_player_data | {"player_id":1} | Returns league/cup stat rows for one player; object with keys: cups, leagues. |
get_league_top_players | {"league_id":1} | Returns player leaderboard/stat rows for a league; returns a list. |
get_player_loan_offer | {"player_id":1} | Returns a loan offer for a player. |
Users/Shares/Market
| JSON-RPC method | Params | Returns |
|---|---|---|
get_user_wages | {"id":1,"season_id":1,"wage_type":"agent"} | Returns derived agent or manager wage estimate for a player/club; returns a list. |
get_best_managers | {} | Returns best-manager leaderboard rows; returns a list. |
get_manager_history_by_manager | {"name":"name"} | Returns manager-tenure history for a manager; returns a list. |
get_user_account | {"name":"foo"} | Returns one user account row; object with keys: balance, last_active, name. |
get_users_last_active | {"names":["foo"]} | Returns last-active info for user names; returns a list. |
get_vaults | {"controller":"foo","ids":[1,2,3]} | Returns vault rows by controller and ids; returns a list. |
get_vaults_by_founder | {"founder":"foo"} | Returns vault rows by founder; returns a list. |
get_user_share_balances | {"name":"foo"} | Returns share balances for a user; returns a list. |
get_share_owners | {"share":{}} | Returns owners for a share; returns a list. |
get_user_share_orders | {"name":"foo"} | Returns active share orders for a user; returns a list. |
get_share_orderbook | {"share":{}} | Returns current orderbook for a share; object with keys: ask, bid, share. |
get_share_overview | {"type":"club","id":42,"since":123} | Returns share overview data by type/id/since; returns a list. |
get_share_dilutions | {"user":"foo","type":"club","id":42,"state":"active"} | Returns share-dilution rows for user/type/id/state; returns a list. |
Competitions/Fixtures
| JSON-RPC method | Params | Returns |
|---|---|---|
get_all_turns | {"comp_id":1} | Returns turns/gameweeks for a competition id; returns a list. |
get_fixture | {"fixture_id":1} | Returns fixture details/stats for a fixture id; returns a list. |
get_league_table | {"league_id":1} | Returns table rows for a league id; returns a list. |
get_turn_fixtures | {"turn_id":1} | Returns fixtures in a turn; returns a list. |
get_associations | {"association_type":"world"} | Returns association config rows by type; returns a list. |
get_association | {"country_id":"WOR"} | Returns association config rows by country id; returns a list. |
get_association_qualifiers | {"association_id":1} | Returns qualifier country/count rows for an association; returns a list. |
get_leagues | {"season_id":1} | Returns leagues for a season; returns a list. |
get_leagues_by_country | {"season_id":1,"country_id":"WOR"} | Returns leagues for country and season; returns a list. |
get_league | {"league_id":1} | Returns league details; returns a list. |
get_cups | {"season_id":1} | Returns cups for a season; returns a list. |
get_cups_by_country | {"season_id":1,"country_id":"WOR"} | Returns cups for country and season; returns a list. |
get_cup | {"cup_id":1} | Returns cup details; returns a list. |
get_seasons | {} | Returns available seasons; returns a list. |
get_season | {"season_id":1} | Returns one season row; returns a list. |
get_comp_history_by_manager | {"name":"name"} | Returns competition-history rows for a manager; returns a list. |
Other
| JSON-RPC method | Params | Returns |
|---|---|---|
get_match_subs | {"fixture_id":1} | Returns substitutions for a fixture; returns a list. |
get_game_world_history | {"season_id":1} | Returns game-world history rows for a season; returns a list. |
Votes/Proposals
| JSON-RPC method | Params | Returns |
|---|---|---|
get_all_votes | {} | Returns all proposal/vote rows; returns a list. |
get_votes_for_shareholder | {"name":"foo"} | Returns votes relevant to a shareholder name; returns a list. |
get_share_proposals | {"share":{}} | Returns proposals for a share; returns a list. |
Transfers/Loans
| JSON-RPC method | Params | Returns |
|---|---|---|
get_top_transfer_auctions | {"num":1} | Returns top active transfer auctions; returns a list. |
get_transfer_auction_details | {"player_id":1} | Returns an active auction detail and bids for a player; object with keys: agent_name, bids, club_id, concerns, contract, country_id, dob, free_with_no_bids, high_bid, injured, and more. |
Request examples
Every method uses the same envelope — POST the JSON below to the base URL with a Content-Type: application/json header. Examples use the standard sample identifiers (club 50, player 1100, user snailbrain, season 3) where a value is needed.
Tactics
{ "jsonrpc": "2.0", "method": "get_club_tactics", "params": { "club_id": 50 }, "id": 1 }
Helper/Metadata
{"jsonrpc":"2.0","method":"get_extfile","params":{"hash":"0000000000000000000000000000000000000000000000000000000000000000"},"id":1}
{"jsonrpc":"2.0","method":"get_params","params":{"name":""},"id":1}
Clubs/Squads
{"jsonrpc":"2.0","method":"get_club_ids","params":{},"id":1}
{"jsonrpc":"2.0","method":"get_squad","params":{"club_id":50},"id":1}
{"jsonrpc":"2.0","method":"get_freebench","params":{},"id":1}
{"jsonrpc":"2.0","method":"get_club_schedule","params":{"club_id":50,"season_id":3},"id":1}
{"jsonrpc":"2.0","method":"get_club","params":{"club_id":50},"id":1}
{"jsonrpc":"2.0","method":"get_club_extended","params":{"club_id":50},"id":1}
{"jsonrpc":"2.0","method":"get_stadiums_club","params":{"stadium_id":555},"id":1}
{"jsonrpc":"2.0","method":"get_managers_club","params":{"manager_name":"snailbrain"},"id":1}
{"jsonrpc":"2.0","method":"get_all_clubs","params":{},"id":1}
{"jsonrpc":"2.0","method":"get_club_balance_sheet","params":{"club_id":50,"season_id":3},"id":1}
{"jsonrpc":"2.0","method":"get_clubs_league","params":{"club_id":50},"id":1}
{"jsonrpc":"2.0","method":"get_clubs_next_fixture","params":{"club_id":50},"id":1}
{"jsonrpc":"2.0","method":"get_clubs_last_fixture","params":{"club_id":50},"id":1}
{"jsonrpc":"2.0","method":"get_all_stadium_data_ids","params":{},"id":1}
{"jsonrpc":"2.0","method":"get_clubs_transfer_auctions","params":{"club_id":50},"id":1}
{"jsonrpc":"2.0","method":"get_clubs_transfer_bids","params":{"club_id":50},"id":1}
{"jsonrpc":"2.0","method":"get_clubs_player_loan_offers","params":{"club_id":50},"id":1}
{"jsonrpc":"2.0","method":"get_comp_history_by_club","params":{"club_id":50},"id":1}
{"jsonrpc":"2.0","method":"get_manager_history_by_club","params":{"club_id":50},"id":1}
{"jsonrpc":"2.0","method":"get_all_managers","params":{},"id":1}
Players
{"jsonrpc":"2.0","method":"get_player_payouts","params":{"player_id":1100},"id":1}
{"jsonrpc":"2.0","method":"get_players","params":{"player_ids":[1100]},"id":1}
{"jsonrpc":"2.0","method":"get_players_by_attributes","params":{"age_high":50,"age_low":15,"limit":5,"nationality":"ENG","offset":0,"position":4,"rating_high":99,"rating_low":20},"id":1}
{"jsonrpc":"2.0","method":"get_agents_players","params":{"agent_name":"snailbrain"},"id":1}
{"jsonrpc":"2.0","method":"get_comp_player_data","params":{"player_id":1100},"id":1}
{"jsonrpc":"2.0","method":"get_league_top_players","params":{"league_id":1151},"id":1}
{"jsonrpc":"2.0","method":"get_player_loan_offer","params":{"player_id":1100},"id":1}
Users/Shares/Market
{"jsonrpc":"2.0","method":"get_user_wages","params":{"id":1100,"season_id":3,"wage_type":"agent"},"id":1}
{"jsonrpc":"2.0","method":"get_best_managers","params":{},"id":1}
{"jsonrpc":"2.0","method":"get_manager_history_by_manager","params":{"name":"snailbrain"},"id":1}
{"jsonrpc":"2.0","method":"get_user_account","params":{"name":"snailbrain"},"id":1}
{"jsonrpc":"2.0","method":"get_users_last_active","params":{"names":["snailbrain"]},"id":1}
{"jsonrpc":"2.0","method":"get_vaults","params":{"controller":"snailbrain","ids":[1,2,3]},"id":1}
{"jsonrpc":"2.0","method":"get_vaults_by_founder","params":{"founder":"snailbrain"},"id":1}
{"jsonrpc":"2.0","method":"get_user_share_balances","params":{"name":"snailbrain"},"id":1}
{"jsonrpc":"2.0","method":"get_share_owners","params":{"share":{"club":50}},"id":1}
{"jsonrpc":"2.0","method":"get_user_share_orders","params":{"name":"snailbrain"},"id":1}
{"jsonrpc":"2.0","method":"get_share_orderbook","params":{"share":{"club":50}},"id":1}
{"jsonrpc":"2.0","method":"get_share_overview","params":{"id":50,"since":0,"type":"club"},"id":1}
{"jsonrpc":"2.0","method":"get_share_dilutions","params":{"id":50,"state":"active","type":"club","user":"snailbrain"},"id":1}
Competitions/Fixtures
{"jsonrpc":"2.0","method":"get_all_turns","params":{"comp_id":1151},"id":1}
{"jsonrpc":"2.0","method":"get_fixture","params":{"fixture_id":251966},"id":1}
{"jsonrpc":"2.0","method":"get_league_table","params":{"league_id":1151},"id":1}
{"jsonrpc":"2.0","method":"get_turn_fixtures","params":{"turn_id":31439},"id":1}
{"jsonrpc":"2.0","method":"get_associations","params":{"association_type":"national"},"id":1}
{"jsonrpc":"2.0","method":"get_association","params":{"country_id":"ENG"},"id":1}
{"jsonrpc":"2.0","method":"get_association_qualifiers","params":{"association_id":41},"id":1}
{"jsonrpc":"2.0","method":"get_leagues","params":{"season_id":3},"id":1}
{"jsonrpc":"2.0","method":"get_leagues_by_country","params":{"country_id":"ENG","season_id":3},"id":1}
{"jsonrpc":"2.0","method":"get_league","params":{"league_id":1151},"id":1}
{"jsonrpc":"2.0","method":"get_cups","params":{"season_id":3},"id":1}
{"jsonrpc":"2.0","method":"get_cups_by_country","params":{"country_id":"ENG","season_id":3},"id":1}
{"jsonrpc":"2.0","method":"get_cup","params":{"cup_id":1161},"id":1}
{"jsonrpc":"2.0","method":"get_seasons","params":{},"id":1}
{"jsonrpc":"2.0","method":"get_season","params":{"season_id":3},"id":1}
{"jsonrpc":"2.0","method":"get_comp_history_by_manager","params":{"name":"snailbrain"},"id":1}
Other
{"jsonrpc":"2.0","method":"get_match_subs","params":{"fixture_id":251966},"id":1}
{"jsonrpc":"2.0","method":"get_game_world_history","params":{"season_id":3},"id":1}
Votes/Proposals
{"jsonrpc":"2.0","method":"get_all_votes","params":{},"id":1}
{"jsonrpc":"2.0","method":"get_votes_for_shareholder","params":{"name":"snailbrain"},"id":1}
{"jsonrpc":"2.0","method":"get_share_proposals","params":{"share":{"club":50}},"id":1}
Transfers/Loans
{"jsonrpc":"2.0","method":"get_top_transfer_auctions","params":{"num":3},"id":1}
{"jsonrpc":"2.0","method":"get_transfer_auction_details","params":{"player_id":306},"id":1}
Worked examples (with responses)
Preserve the result envelope in raw clients; MCP wrappers often unwrap result.data.
get_seasons example
Lists seasons.
{
"jsonrpc": "2.0",
"method": "get_seasons",
"id": 1
}
get_squad example
Returns squad/player rows for club 50.
{
"jsonrpc": "2.0",
"method": "get_squad",
"id": 2,
"params": {
"club_id": 50
}
}
get_club_schedule example
Returns club fixtures for season 3.
{
"jsonrpc": "2.0",
"method": "get_club_schedule",
"id": 3,
"params": {
"club_id": 50,
"season_id": 3
}
}
get_all_turns example
Returns turns/gameweeks for competition 1151.
{
"jsonrpc": "2.0",
"method": "get_all_turns",
"id": 4,
"params": {
"comp_id": 1151
}
}
get_comp_player_data example
Returns cup/league stat arrays for player 1100.
{
"jsonrpc": "2.0",
"method": "get_comp_player_data",
"id": 5,
"params": {
"player_id": 1100
}
}
Sample result.data shape:
{
"cups": [
{
"Active": 1,
"apearances": 1,
"assists": 0,
"ave_rating": 7.0,
"clean_sheets": 0,
"club_id": 50,
"comp_id": 1536,
"comp_type": 4,
"country_id": "EUR",
"goals": 0,
"key_passes": 0,
"key_tackles": 0,
"minutes_played": 90,
"mom": 0,
"player_id": 1100,
"red_cards": 0,
"saves": 0,
"season_id": 3,
"shots": 0,
"sub_apearances": 0,
"yellow_cards": 0,
"yellowred_cards": 0
},
{
"Active": 1,
"apearances": 4,
"assists": 2,
"ave_rating": 8.0,
"clean_sheets": 0,
"club_id": 50,
"comp_id": 1023,
"comp_type": 6,
"country_id": "EUR",
"goals": 6,
"key_passes": 0,
"key_tackles": 0,
"minutes_played": 360,
"mom": 0,
"player_id": 1100,
"red_cards": 0,
"saves": 0,
"season_id": 2,
"shots": 0,
"sub_apearances": 0,
"yellow_cards": 1,
"yellowred_cards": 0
},
{
"Active": 1,
"apearances": 0,
"assists": 0,
"ave_rating": 0.0,
"clean_sheets": 0,
"club_id": 50,
"comp_id": 485,
"comp_type": 4,
"country_id": "EUR",
"goals": 0,
"key_passes": 0,
"key_tackles": 0,
"minutes_played": 0,
"mom": 0,
"player_id": 1100,
...
get_top_transfer_auctions example
Returns active auction rows.
{
"jsonrpc": "2.0",
"method": "get_top_transfer_auctions",
"id": 6,
"params": {
"num": 3
}
}
get_manager_history_by_manager example
Returns manager tenure history.
{
"jsonrpc": "2.0",
"method": "get_manager_history_by_manager",
"id": 7,
"params": {
"name": "snailbrain"
}
}
get_share_orderbook example
Returns orderbook object with singular bid and ask arrays.
{
"jsonrpc": "2.0",
"method": "get_share_orderbook",
"id": 8,
"params": {
"share": {
"club": 50
}
}
}
Sample result.data shape:
{
"ask": [
{
"mint": false,
"name": "Theramoe",
"num": 82,
"price": 390000
}
],
"bid": [
{
"mint": false,
"name": "Johnelo",
"num": 958,
"price": 157600
},
{
"mint": false,
"name": "OrtechoOscar",
"num": 1,
"price": 33400
},
{
"mint": false,
"name": "Cthulhu",
"num": 1000,
"price": 11000
},
{
"mint": false,
"name": "Connor7",
"num": 5,
"price": 10000
},
{
"mint": false,
"name": "sem2001",
"num": 1,
"price": 10000
},
{
"mint": false,
"name": "RendaNFT",
"num": 44,
"price": 10000
},
{
"mint": false,
"name": "Kimsoner",
"num": 10,
"price": 5000
},
{
"mint": false,
"name": "Enoch",
"num": 1000,
"price": 100
},
{
"mint": false,
"name": "salman777",
"num": 1,
"price": 10
},
{
"mint": false,
"name": "salman777",
"num": 1,
"price": 9
},
{
"mint": false,
"name": "Iyke",
"num": 10,
"price": 2
},
{
"mint": false,
"name": "Phesi",
"num": 500,
"price": 1
},
{
"mint": false,
"name": "UncDinho",
"num": 1000,
"price": 1
},
{
...
get_share_proposals example
Returns proposal rows for a share.
{
"jsonrpc": "2.0",
"method": "get_share_proposals",
"id": 9,
"params": {
"share": {
"club": 50
}
}
}
Error handling
JSON-RPC method-not-found example for unsupported/stale names:
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32601,
"message": "METHOD_NOT_FOUND: The method being requested is not available on this server"
}
}
Callers should:
- Check HTTP status.
- Parse JSON.
- If top-level
errorexists, handle it and do not readresult. - If
result.stateis notup-to-date, warn or avoid making strong current-state claims. - Read
result.datafor the payload.
Notes
- Raw GSP does not enrich names. Expect ids such as
club_id,player_id,league_id,stadium_id; join via Datacentre/MCP/resolver data for display names. - Unix timestamps in payloads are seconds, not milliseconds.
dateappears on fixtures and turns; do not assume a generictimestampfield.- Empty arrays are valid for no active bids, auctions, orders, manager history, share dilutions, or qualifiers.
null/Noneis also valid for no single loan offer. get_all_votes,get_all_clubs,get_all_managers,get_freebench, andget_best_managerscan be large; prefer narrower methods where possible.- Raw stat rows use upstream spellings such as
apearancesandsub_apearances; preserve raw field names in GSP docs and alias only in higher-level wrappers. - Raw money-like values are integer upstream values. MCP/Datacentre may format these for display; raw clients should not assume formatted SVC strings.
- Share params are objects such as
{"club": 50}or{"player": 1100}. MCP schemas may expose friendlier strings likeclub_50, but raw GSP expects the object form. - The raw endpoint can return a 200 response while JSON-RPC returns an
error; application logic must check the JSON body. - Use polite, low-rate access with read-only POSTs only.