History Endpoints Migration
NOTE: Old endpoints will be fully removed Mon Dec 1. Please migrate to new endpoints.
Backend Global API Migration Guide
Overview
The trading history endpoints have been migrated from backend-[network] service to the new backend-global endpoints with improved caching, pagination, and new statistics endpoints.
Base URL Change:
Old:
https://backend-[network].gains.tradeNew:
https://backend-global.gains.trade
Endpoint Migration Map
24-Hour Trading History
GET /trading-history-24h
GET /api/trading-history/24h?chainId={id}
Path prefix added, chainId support
Migration:
- GET https://backend-arbitrum.gains.trade/trading-history-24h
+ GET https://backend-global.gains.trade/api/trading-history/24h?chainId=42161Response Format: Unchanged (returns array of trades)
Personal Trading History
Main History Endpoint
GET /personal-trading-history-table/:address
GET /api/personal-trading-history/:address?chainId=X
Path renamed, cursor-based pagination, limits
Migration:
- GET https://backend.gains.trade/personal-trading-history-table/0x123...
+ GET https://backend-global.gains.trade/api/personal-trading-history/0x123...?chainId=42161&limit=50Response Format:
{
"data": [...], // Array of trades (same as before)
"pagination": {
"hasMore": true, // Whether more data available
"nextCursor": 123456, // Cursor for next page (null if no more)
"limit": 50 // Limit used for this request, no higher than 200
}
}Pagination:
Old: No offset
New: Cursor-based (
?cursor=123456)
To fetch next page:
// Old (offset-based)
const page1 = await fetch(
"/personal-trading-history-table/0x123?offset=0&limit=50"
);
const page2 = await fetch(
"/personal-trading-history-table/0x123?offset=50&limit=50"
);
// New (cursor-based)
const page1 = await fetch("/api/personal-trading-history/0x123?limit=50");
const { data, pagination } = await page1.json();
if (pagination.hasMore) {
const page2 = await fetch(
`/api/personal-trading-history/0x123?cursor=${pagination.nextCursor}&limit=50`
);
}Query Parameters:
chainId(required): Chain IDcursor(optional): Pagination cursor (omit for first page)limit(optional): Max trades per request (default: 50, max: 1000)startDate(optional): ISO 8601 date filterendDate(optional): ISO 8601 date filterpair(optional): Trading pair filteraction(optional): Action type filter
Statistics Endpoint (NEW)
New endpoint for trader statistics:
GET /api/personal-trading-history/:address/stats?chainId={id}Response:
{
"totalVolume": 123456.78,
"totalTrades": 42,
"winRate": 65.5,
"thirtyDayVolume": 12345.67
}Use case: Get all-time stats without fetching full trade history.
Batch Statistics Endpoint (NEW)
New endpoint for batched trader statistics:
POST /api/personal-trading-history/stats
Content-Type: application/json
{
"addresses": ["0x123...", "0x456..."],
"chainId": 42161
}Response:
{
"0x123...": {
"totalVolume": 123456.78,
"totalTrades": 42,
"winRate": 65.5,
"thirtyDayVolume": 12345.67
},
"0x456...": {
"totalVolume": 67890.12,
"totalTrades": 12,
"winRate": 40.13,
"thirtyDayVolume": 2345.67
}
}Use case: Get all-time stats without fetching full trade history.
Batch Trading History Endpoint (NEW)
New endpoint for fetching multiple addresses:
POST /api/personal-trading-history/batch
Content-Type: application/json
{
"addresses": ["0x123...", "0x456..."],
"chainId": 42161,
"limit": 50,
"cursors": {"0x123...": 123, "0x456...": null}
}Response:
{
"0x123...": {
"data": [...],
"pagination": { "hasMore": true, "nextCursor": 123, "limit": 50 }
},
"0x456...": {
"data": [...],
"pagination": { "hasMore": false, "nextCursor": null, "limit": 50 }
}
}Deprecated Endpoints
β οΈ DO NOT USE
GET /personal-trading-history/:address
DEPRECATED
Use /api/personal-trading-history/:address
GET /personal-trading-history-table/:address
DEPRECATED
Use /api/personal-trading-history/:address
GET /trading-history-24h
DEPRECATED
Use /api/trading-history/24h
Note: The old /personal-trading-history/:address (without -table) returned a flat array and is now deprecated. Use the new cursor-based endpoint instead.
Migration Checklist
Support
For questions or issues with migration, please contact the Gains Network development team.
Last updated
Was this helpful?