USL Open API
Public endpoints for levels, leaderboards, players, records and country statistics. Every response is JSON.
https://ultimateshittylist.space/api
No token or registration is required for any documented endpoint.
Every endpoint answers with a JSON body and the matching HTTP status code.
120 requests per minute per IP. Be kind and cache responses.
Levels
/api/levels
Full list of ranked levels with position, creator, verifier, difficulty and points.
{
"ok": true,
"count": 2,
"levels": [
{
"id": 1,
"rank": 1,
"name": "Shitty Grief",
"creator": "icedcave",
"verifier": "wPopoff",
"difficulty": "Extreme",
"requirement": 68,
"points": 1000,
"video_url": "https://www.youtube.com/watch?v=...",
"banner_url": "/uploads/banners/...",
"level_id": "110192585"
}
]
}
/api/demons
Paginated plain-text level list, one level per line. Useful for Discord bots and terminal tools.
Parameters
page
number
Page index, starts at 0 (default 0).
limit
number
Levels per page, 1-100 (default 10).
{
"ok": true,
"page": 1,
"pages": 8,
"count": 10,
"total": 75,
"levels": "1. #1 Shitty Grief (Extreme) - icedcave - 68% - Slaughterhouse\n2. #2 Shitty Flamewall (Extreme) - Narwall - 72% - Acheron"
}
/api/demons/search
Search ranked levels by name or creator. Returns the same plain-text format as /api/demons.
Parameters
q
string
required
Search query, minimum 1 character.
{
"ok": true,
"query": "flame",
"total": 1,
"levels": "1. #2 Shitty Flamewall (Extreme) - Narwall - 72% - Acheron"
}
/api/demons/:id
Single level with points, comparable Geometry Dash level and verified records.
Parameters
id
number
required
Numeric USL level id.
format
string
Set to json to receive a JSON body instead of HTML.
{
"ok": true,
"demon": {
"id": 2,
"position": 2,
"name": "Shitty Flamewall",
"creator": "Narwall",
"verifier": "Zoink",
"difficulty": "Extreme",
"requirement": 72,
"points": 960,
"shittylist_equiv": "Acheron"
},
"records": [
{ "username": "Zoink", "progress": 100, "points": 960 }
]
}
Leaderboards
/api/leaderboard
Global player ranking by rating, with records, completions and hardest completion.
{
"ok": true,
"count": 2,
"players": [
{
"rank": 1,
"id": 1,
"username": "wPopoff",
"registered": true,
"country": "US",
"score": 3720,
"records": 6,
"verifications": 2,
"completions": 5,
"hardest": "Shitty Grief"
}
]
}
/api/players/:id
Player profile by numeric id with full record and verification lists.
Parameters
id
number
required
Numeric player profile id.
format
string
Set to json to receive a JSON body instead of HTML.
{
"ok": true,
"player": {
"id": 1,
"user_id": 3,
"username": "wPopoff",
"registered": true,
"role": "admin",
"country": "US",
"rating": 3720,
"rank": 1,
"hardest": {
"demon_id": 1,
"demon_name": "Shitty Grief",
"position": 1,
"source": "verification"
}
},
"records": [
{ "id": 12, "demon_id": 1, "demon_name": "Shitty Grief", "progress": 100, "points": 1000, "youtube_url": "https://youtu.be/..." }
],
"verifications": [
{ "id": 1, "name": "Shitty Grief", "position": 1 }
]
}
/api/records
Latest verified records across all levels.
Parameters
limit
number
Maximum records to return (default all).
{
"ok": true,
"count": 2,
"records": [
{
"id": 12,
"player": "wPopoff",
"level": "Shitty Grief",
"progress": 100,
"score": 1000,
"video_url": "https://youtu.be/...",
"platform": "PC",
"created_at": "2026-07-01T12:00:00.000Z"
}
]
}
Countries
/api/countries
Country ranking. Main mode sums every player score, unique mode counts each level once.
Parameters
mode
string
main (default) or unique.
{
"ok": true,
"mode": "main",
"count": 2,
"countries": [
{
"country": "US",
"name": "United States",
"flag": "🇺🇸",
"rank": 1,
"players": 12,
"points": 12340.5,
"unique_points": 5320,
"unique_levels": 8
}
]
}
/api/countries/:name
Single country with flag, rank and member players.
Parameters
name
string
required
ISO 3166-1 alpha-2 country code.
format
string
Set to json to receive a JSON body instead of HTML.
{
"ok": true,
"country": {
"country": "US",
"name": "United States",
"flag": "🇺🇸",
"rank": 1,
"players": 12,
"points": 12340.5,
"members": [
{ "id": 1, "username": "wPopoff", "rating": 3720, "registered": true }
]
}
}
Site
/api/position-history
Recent list movements: new levels, position changes and removals.
Parameters
limit
number
Events to return, 1-200 (default 30).
{
"ok": true,
"count": 30,
"history": [
{
"id": 55,
"event_type": "move",
"demon_id": 3,
"level_name": "Shitty Society",
"old_position": 2,
"new_position": 1,
"reason": "New #1 verified",
"actor_username": "admin",
"is_primary": true,
"created_at": "2026-07-02T10:00:00.000Z"
}
]
}
/api/site-summary
Site statistics plus top players, top levels, latest records and news.
{
"ok": true,
"stats": {
"players": 120,
"levels": 75,
"records": 340,
"countries": 32
},
"topPlayers": [
{ "rank": 1, "username": "wPopoff", "rating": 3720 }
],
"topLevels": [
{ "id": 1, "rank": 1, "name": "Shitty Grief", "points": 1000 }
],
"latestRecords": [
{ "player": "wPopoff", "level": "Shitty Grief", "progress": 100 }
],
"latestNews": [
{ "id": 3, "title": "New #1 verified", "author": "admin" }
]
}