Public API
All endpoints are read-only, CORS-enabled, and free to use. Build Discord bots, overlays, spreadsheets, or any tool on top of shared builds.
Base URL: https://gms-upgrade-tracker.vercel.app
All responses are JSON. No authentication required. Rate limits are generous (Vercel serverless defaults). Players must save their build on the website before it can be accessed via API.
Builds
/api/share?id={IGN}Fetch a shared build by character name. Returns full gear, stats, class, and server type.
Response:
{ id, selectedClass, serverType, characterStats, gear }/api/build/{IGN}/summaryGet a summary of a build including power score, gear overview, and set effects.
Response:
{ id, selectedClass, serverType, powerScore, gear, sets }/api/build/{IGN}/recommendGet upgrade recommendations ranked by meso efficiency. Supports query params for limit, mesoRate, sfDiscount, feverTime, cubeSale.
Parameters:
limit(int, default: 5)Number of recommendations (1-20)mesoRate(int, default: 300000)Meso market rate (meso per NX)sfDiscount(bool, default: false)Star Force 30% discount eventfeverTime(bool, default: false)Spell Trace Fever Time eventcubeSale(bool, default: false)Cube 25% off eventResponse:
{ recommendations: [{ description, upgradeType, expectedMesoCost, expectedDamageGainPercent, ... }], powerScore }/api/build/{IGN}/rankGet a player's leaderboard rank (overall and class-specific).
Response:
{ overallRank, classRank, totalPlayers, className }Calculators
/api/calc/starforceCalculate Star Force expected cost and booms.
Parameters:
itemLevel(int)Item level (required)from(int, default: 0)Current starto(int, default: 17)Target starreplacementCost(int, default: 0)Cost per boom replacement (meso)Response:
{ expectedCost, expectedBooms, statGain }/api/calc/cubeCalculate expected cubes for tier-up or specific potential targets.
Response:
{ expectedCubes, expectedMesoCost, description }/api/calc/flameCalculate expected flames to reach a target score.
Response:
{ expectedFlames, expectedCost, description }/api/calc/powerscoreCalculate converted stat from raw character stats.
Response:
{ totalScore, breakdown }Leaderboard
/api/leaderboardGet the top players ranked by converted stat. Filter by server type and class.
Parameters:
type(string, default: interactive)Server type: interactive or heroicclass(string)Filter by class (e.g. Hero, Demon Slayer)limit(int, default: 50)Number of entries (1-100)Response:
{ entries: [{ rank, name, displayName, selectedClass, score }], serverType }