Levels
Query parameters
pageinteger · min: 1OptionalDefault:
1limitinteger · min: 1OptionalDefault:
10sortstring · enumOptionalDefault:
playsPossible values: reversed_orderstring · enumOptionalDefault:
falsePossible values: authorstringOptional
Filter by author name (partial match)
is_waterstring · enumOptionalPossible values:
versionintegerOptional
tokenstringOptional
One-time token to fetch a specific level by ID. Ignores all other filters when provided.
Responses
200
Paginated list of levels
application/json
429
Too many requests
application/json
get
/api/levelsQuery parameters
authorstring · max: 11Required
Author name (max 11 characters)
turnstileResponsestringOptional
Cloudflare Turnstile CAPTCHA token (required if Turnstile is enabled)
Responses
201
Level created successfully
application/json
400
Invalid input or validation failure
application/json
415
Unsupported media type (Content-Type must be application/octet-stream)
application/json
429
Too many requests
application/json
post
/api/levelsPath parameters
idintegerRequired
Level ID
Responses
200
Level details
application/json
idintegerRequired
namestringRequired
authorstringRequired
created_atintegerRequired
Unix timestamp
sunintegerRequired
is_waterbooleanRequired
favoritesintegerRequired
playsintegerRequired
difficultyintegerRequired
versionintegerRequired
featuredinteger · enumRequiredPossible values:
featured_atinteger · nullableRequired
Unix timestamp
400
Invalid input or validation failure
application/json
404
Resource not found
application/json
get
/api/levels/{id}Path parameters
idintegerRequired
Level ID
Responses
200
Favorite toggled
application/json
successbooleanRequiredExample:
true400
Invalid input or validation failure
application/json
404
Resource not found
application/json
429
Too many requests
application/json
post
/api/levels/{id}/favoriteLast updated