Skip to main content

Game Results

Fetch historical game results for your account, including winnings, return percentages, closing prices, and position-level details.

Endpoint

GET https://api.metafide.io/v1/surge/games/results

Query Parameters

ParameterTypeRequiredDescription
networkstringYesThe network to query (mainnet or testnet)
assetstringNoFilter by asset (e.g. BTC_USDT)
intervalnumberNoFilter by game interval (10, 60, 3600, or 86400)
gidstringNoFetch results for a specific game ID
limitnumberNoMaximum results to return (1-100, default 20)
offsetnumberNoPagination offset (default 0)

When gid is provided, results are returned for that specific game only. When omitted, results are returned as paginated recent history (most recent first).

Headers

HeaderValue
Accept*/*
x-api-keyYour Metafide API key

Example Requests

Recent history (last 5 settled games):

// Node 18+ has native fetch — no import needed

const url = 'https://api.metafide.io/v1/surge/games/results?network=testnet&limit=5';

const response = await fetch(url, {
headers: {
'Accept': '*/*',
'x-api-key': process.env.METAFIDE_API_KEY,
},
});
const data = await response.json();
console.log(`${data.games.length} games, ${data.pagination.total} total`);

Specific game by ID:

const url = 'https://api.metafide.io/v1/surge/games/results?network=testnet&gid=548009';

const response = await fetch(url, {
headers: {
'Accept': '*/*',
'x-api-key': process.env.METAFIDE_API_KEY,
},
});
const data = await response.json();
const game = data.games[0];
console.log(`Game ${game.gid}: staked ${game.total_staked}, won ${game.total_winnings}`);

Filter by interval:

const url = 'https://api.metafide.io/v1/surge/games/results?network=testnet&interval=60&limit=10';

Response

{
"games": [
{
"gid": "548009",
"interval": 60,
"asset": "BTC_USDT",
"network": "testnet",
"currency": "USDC",
"open_price": "68198.711600",
"closing_price": "68155.050000",
"settled_at": "2026-04-02T00:12:28.759Z",
"cancelled": false,
"positions": [
{
"sp": "68222",
"f": "0.4",
"w": "0.005554",
"r": "-98.61",
"win": false,
"variance": "66.9500",
"txid": "d2c6a6d4-e75b-4cd2-99e0-46191a4619cc",
"placed_at": "2026-04-02T00:11:30.300Z"
}
],
"total_staked": "2.300000",
"total_winnings": "0.033314",
"net_return": "-2.266686"
}
],
"pagination": {
"total": 10,
"limit": 5,
"offset": 0
}
}

Response Fields

Root

FieldTypeDescription
gamesarrayList of settled games with position results
paginationobjectPagination metadata

pagination

FieldTypeDescription
totalnumberTotal number of settled games matching the query
limitnumberMaximum results per page
offsetnumberCurrent pagination offset

games[]

FieldTypeDescription
gidstringUnique identifier of the game
intervalnumberGame interval in seconds
assetstringAsset the game was played on (e.g. BTC_USDT)
networkstringNetwork (testnet or mainnet)
currencystringStake currency (e.g. USDC)
open_pricestringPrice when the game opened
closing_pricestring | nullActual closing price at settlement. null if data unavailable
settled_atstring | nullISO 8601 timestamp of when the game settled
cancelledbooleanWhether the game was cancelled (cancelled games refund all stakes)
positionsarrayYour positions in this game with results
total_stakedstringSum of all your stakes in this game
total_winningsstringSum of all your winnings from this game
net_returnstringNet profit/loss (total_winnings - total_staked)

games[].positions[]

FieldTypeDescription
spstringYour predicted closing price
fstringYour stake amount
wstring | nullActual winnings. null if game not yet settled
rstring | nullReturn percentage. null if game not yet settled
winboolean | nullWhether this position was profitable. null if not yet settled
variancestring | nullDistance between your prediction and the closing price
txidstringUnique identifier for this position
placed_atstringISO 8601 timestamp of when the position was placed
tip

Use get_results with the MCP server for a conversational interface: "How did my last game do?" or "Show me my 60-second game history."