Simple leaderboard API for indie games
All endpoints require your API key, which you receive when creating a leaderboard.
All API endpoints are relative to this base URL.
Integrate ScoreDrop in less than a minute:
API key.player_id inside your game (UUID recommended)./api/add endpoint./api/top endpoint.ScoreDrop works with any engine or language capable of making HTTP requests.
Each player must have a unique player_id. This identifier is generated by your game
and must remain the same for that player across sessions.
We recommend using a UUID (Universally Unique Identifier). Many engines (Unity, Godot, Unreal) and most programming languages can generate UUIDs easily.
The player_id should be stored locally on the device or linked to your game's account system.
ScoreDrop uses this ID to update scores and player names correctly.
You can test the API directly in your browser or using tools like Postman or curl.
Replace YOUR_API_KEY with your leaderboard key to retrieve scores instantly.
Send a player score to your leaderboard. Each player is identified by a unique player_id generated by your game.
| Parameter | Description |
|---|---|
key |
Your API key (required) |
player_id |
Unique identifier for the player (required) |
player |
Display name of the player (required) |
score |
Player's score (required) |
When you send a score with an existing player_id:
Example: If "Ana" (e5e27da1-d3a7-4cca-b991-2802f356be41) with 500 pts wants to change her name to "AnaPro", she can send any score (even 0) and the name will update instantly!
Returns the top scores of your leaderboard.
| Parameter | Description |
|---|---|
limit |
Number of scores to return (default: 10, max depends on your plan) |
page |
Leaderboard page number (default: 1) |
period |
Time filter: today, week, month, or all (default: all) |
Delete a player's score from the leaderboard. Available on paid plans only.
| Parameter | Description |
|---|---|
key |
Your API key (required) |
player_id |
ID of the player to delete (required unless all=true) |
all |
Set to true to delete all scores (paid plans only) |
When adding a score, the API returns one of these messages:
| Message | Meaning |
|---|---|
"Name updated (score unchanged)" |
Same player, lower score → only name changed |
"Score updated (same score)" |
Same player, equal score → name and score updated |
"Score updated (new score is higher)" |
Same player, higher score → new personal best |
"Score added successfully" |
New player added within limits |
"Score added (replaced lowest score in top)" |
New player added, replaced the lowest score |
ℹ️ The player_id field is used to uniquely identify players.
You should generate this ID in your game and send it with every score.
If the request fails, the API may return one of the following errors:
| Error | Meaning |
|---|---|
Missing parameters |
Required parameters were not provided in the request |
Leaderboard not found |
The API key is invalid or the leaderboard does not exist |
Rate limit exceeded |
The player exceeded the allowed number of requests per minute (returns HTTP 429) |
Score limit reached... |
The leaderboard is full and the new score doesn't beat the lowest (returns HTTP 403) |
Daily limit reached... |
You've used all your allowed deletes for today (paid plans) |
The API returns only the top scores based on your plan. All scores are stored (up to your plan's limit), but only the best are visible.
To ensure fair usage and maintain server performance, the API enforces request limits per player (per IP), not per leaderboard.
If the rate limit is exceeded, the API will return a 429 Too Many Requests response.
| Plan | Max Scores | Rate Limit (per player) | Deletes/day |
|---|---|---|---|
| Free | 20 | 30/min | 0 |
| Basic ($5) | 50 | 60/min | 1 |
| Pro ($20) | 100 | 120/min | 5 |
| Unlimited ($50+) | 500 | 300/min | ∞ |
⚠️ Keep your API key private. Anyone with access to it can submit or retrieve scores from your leaderboard. Do not expose it in public repositories or client builds when possible.
Are you a YouTuber, blogger, or game dev educator? We'd love to feature your tutorials!
Official package available
Example in docs, need tutorial!
Example in docs, need tutorial!
Example in docs
Example in docs
Example in docs
If you create a tutorial (video, blog, or code example) for ScoreDrop in any platform, we'll feature it here and promote it on our social media. Your content will help the community and give you exposure!
The API is the same for all platforms. Only the HTTP request code changes. If you know how to make HTTP requests in your favorite engine, you already know how to use ScoreDrop!
ScoreDrop is currently in beta.
If this project gains traction and we secure sponsors, we'll move to a custom domain and roll out exciting improvements. Want to support the journey? Every donation helps us grow. Thank you!