Add real-time global leaderboards to any game in minutes. REST API, webhooks, seasons, teams, and analytics — everything you need, nothing you don't.
From a casual Godot jam game to a published title — LightLeaderboard scales with you without the complexity.
Words per minute, high score, personal bests — all stored and ranked in real time. Built with LightLeaderboard and a single REST call per score.
A complete, open-source game showing how to wire LightLeaderboard into a real Kaboom.js game using Node.js and Express on the backend.
lightleaderboard npm SDKkeysCollected)First-class SDKs for JavaScript and Godot 4 — same REST API underneath, tailored for each environment. Submit a score and get rank, personal-best flag, and total player count back in a single call.
TypeScript-first. Works with Node.js, browsers, Bun, Deno, and Cloudflare Workers. Zero dependencies.
GDScript addon for Godot 4 with full async await API. HMAC score signing built in. One-click install from the official Asset Library.
// npm install lightleaderboard
import { LightLeaderboard } from 'lightleaderboard';
const lb = new LightLeaderboard({
apiKey: process.env.LLB_API_KEY,
gameId: 'my_game',
});
// Submit score — rank returned immediately
const result = await lb.submitScore({
score: 42000,
playerRefId: 'player_001',
playerName: 'Alice',
submissionId: crypto.randomUUID(),
metadata: { level: 5, combo: 12 },
});
// → { rank: 3, isPersonalBest: true, totalPlayers: 1024 }
// Fetch top 10 this week — best score per player
const { entries } = await lb.getLeaderboard({
limit: 10, period: 'weekly',
});A step-by-step video showing how to add a leaderboard to your game
using the lightleaderboard SDK.
Submit a score with a single HTTP POST. Retrieve a full ranked leaderboard with a GET. Works from any language, any engine, any platform.
npm SDK · Godot plugin · raw REST. Your choice.
// npm install lightleaderboard
import { LightLeaderboard } from 'lightleaderboard';
const lb = new LightLeaderboard({
apiKey: 'YOUR_API_KEY',
gameId: 'my_game',
});
// Submit score and get rank back in one call
const { rank, isPersonalBest, totalPlayers } = await lb.submitScore({
score: 42000,
playerRefId: 'player_001',
playerName: 'Alice',
submissionId: crypto.randomUUID(),
});
// Show "Rank #3 of 1024!" — no extra API call needed
console.log(`Rank #${rank} of ${totalPlayers}!`); { "id": 1847, "rank": 3, "isPersonalBest": true, "totalPlayers": 1024 }No credit card required to start. Upgrade to Pro when you need more games.
Both plans include all features. Upgrade or cancel anytime from the developer portal.
Free plan. No credit card. All features included from day one.