Skip to content

getGJLevels21.php ​

This endpoint is used to search levels by name and or filter

Parameters ​

ParameterDescription
secret *Common Secret: Wmfd2893gb7
gameVersion aA number representing the game's version. The current value is 22 for 2.2
binaryVersion aA number representing the game's small version. The current value is 51 for 2.209 on PC and mobile
accountID aThe player's account ID (not to be confused with user ID). Used for authorization
gjp2 aThe player's account password, encoded with GJP2. Used for authorization
type aSearch type, see values. Defaults to most liked
str ? aSearch query, user ID or level list depending on type
Required when: type is 5 or 10
diff aComma-separated list of difficulty values, see values
len aLevel length, see values
page aWhich page to request, defaults to 0
total aProbably the cached total number of levels, default is 0
uncompleted aUncompleted filter, either 0 or 1
onlyCompleted aCompleted filter, either 0 or 1
featured aFeatured filter, either 0 or 1
original aOriginal filter, either 0 or 1
twoPlayer aTwo Player Mode filter, either 0 or 1
coins aIf a level has been granted verified/silver coins (which does not require the level to have coins), either 0 or 1
epic cEpic filter
Sent when: value is 1
legendary cMythic filter (swapped with mythic)
Sent when: value is 1
mythic cLegendary filter (swapped with legendary)
Sent when: value is 1
local cWhether to fetch "My Online Levels"
Sent when: value is 1 and type is 5 and str is the sender's user ID
song cOfficial (or custom) song ID (Stereo Madness = 1)
Sent when: non-zero or customSong is 1
customSong cWhether the song is a Newgrounds song. Levels with Newgrounds songs will not be removed, even if this parameter is 0/not present.
Sent when: value is 1
star cRated filter
Sent when: value is 1; mutually exclusive with noStar
noStar cUnrated filter
Sent when: value is 1; mutually exclusive with star
demonFilter cSelects which demon difficulty to search, see values. If not sent will search all demon types
Sent when: a demon difficulty is selected
hypeSecret cSent as 1 for hyped searches. Does not seem to do anything though
Sent when: type is 31
followed ? cComma-separated list of the followed account IDs
Required when: type is 12
Sent when required
completedLevels ? cComma-separated list of completed level IDs surrounded by ()
Required when: uncompleted is 1 or onlyCompleted is 1
Sent when required
type
TypeDescription
0Search query (used when opening the original level)
1Most downloaded
2Most liked
3Trending
4Recent
5User's levels, uses str as the user ID
6Featured
7Magic
8Moderator sent levels
10List of levels (not to be confused with type 25, which is for in-game lists), uses str as a comma separated list of level IDs
11Awarded
12Followed (see followed parameter)
13Friends (login required)
15Most liked in GD World
16Hall of fame
17Featured in GD World
18Unknown (always empty, perhaps robtop only?)
19Unknown (same as type 10 but this type has pagination and no star rate filter)
21Daily history
22Weekly history
23Event history
24Reported levels (Elder Moderator only)
25Level list, uses str as the list ID
26Local level list (same as type 19 but can return up to 100 levels)
27Sent
28GD Lite weekly levels
29GD Lite bonus levels (platformer)
31Hyped
32Daily history (without the current daily)
33Weekly history (without the current weekly)
34Event history (without the current event level)
diff
diffDescription
-None
-1N/A
-2Demons (see demonFilter for specifying demon difficulty)
-3Auto
1Easy
2Normal
3Hard
4Harder
5Insane
demonFilter
demonFilterDescription
1Easy demon
2Medium demon
3Hard demon
4Insane demon
5Extreme demon
len
lenValue
-Any
0Tiny
1Short
2Medium
3Long
4XL
5Platformer

Response ​

A successful level search will return the data in the format

levels#creators#songs#page info#hash

where:

  • levels is a list of Level Objects separated by |
  • creators is a list of creators separated by |, each in the format userID:username:accountID
  • songs is a list of Song Objects separated by :
  • page info is in the format total:offset:amount where:
    • total - total number of levels for the query
    • offset - offset from which the current page starts
    • amount - number of levels per page (always 10 for the gd servers)
  • hash is a hash of every level, see Hashes

If the request is not successful, it will return -1

Python ​

py
import requests

headers = {
    "User-Agent": ""
}

data = {
    "str": "bloodbath",
    "star": 1,
    "type": 0,
    "secret": "Wmfd2893gb7",
}

url = "https://www.boomlings.com/database/getGJLevels21.php"

req = requests.post(url=url, data=data, headers=headers)
print(req.text)

curl ​

plain
curl https://www.boomlings.com/database/getGJLevels21.php -A "" -d "str=bloodbath&star=1&type=0&secret=Wmfd2893gb7"

Output ​

plain
1:10565740:2:Bloodbath:5:3:6:503085:8:10:9:50:10:44138442:12:0:13:21:14:2375318:17:1:43:6:25::18:10:19:10330:42:0:45:24746:3:V2hvc2UgYmxvb2Qgd2lsbCBiZSBzcGlsdCBpbiB0aGUgQmxvb2RiYXRoPyBXaG8gd2lsbCB0aGUgdmljdG9ycyBiZT8gSG93IG1hbnkgd2lsbCBzdXJ2aXZlPyBHb29kIGx1Y2suLi4=:15:3:30:7679228:31:0:37:0:38:0:39:0:46:1:47:2:35:467339|1:21761387:2:Bloodbath Z:5:1:6:3277407:8:10:9:20:10:4556435:12:0:13:20:14:200369:17:1:43:4:25::18:10:19:17840:42:0:45:0:3:UmVtYWtlIG9mIEJCLCBidXQgU2hvcnRlciBhbmQgbXVjaCBlYXNpZXIgWEQgTW9yZSBvZiBhIGdhbWVwbGF5IGxldmVsISAgSnVzdCBhIGZ1biBlYXN5IGRlbW9uLiBWZXJpZmllZCBCeSBYaW9kYXplciEgRW5qb3kgOkQ=:15:3:30:0:31:0:37:3:38:1:39:10:46:1:47:2:35:223469|1:64968478:2:Bloodbath but no:5:1:6:19747356:8:10:9:50:10:652130:12:0:13:21:14:51559:17::43:6:25::18:8:19:24992:42:0:45:23233:3:Qmxvb2RiYXRoLCBJdCdzIG5vdCBldmVuIHRoaXM=:15:3:30:0:31:0:37:0:38:1:39:8:46:1:47:2:35:706340|1:75795864:2:Bloodbath:5:2:6:12348083:8:10:9:40:10:88763:12:0:13:21:14:4326:17::43:5:25::18:7:19:25025:42:0:45:55947:3:VGhhbmtzIHRvIGV2ZXJ5b25lIGluIG15IGRpc2NvcmQgc2VydmVyIHRoYXQgY29udHJpYnV0ZWQ=:15:3:30:0:31:0:37:0:38:1:39:6:46:1:47:2:35:513064#503085:Riot:37415|3277407:Zyzyx:88354|12348083:KNOEPPEL:3009121|19747356:Texic:6152129#1~|~223469~|~2~|~ParagonX9 - HyperioxX~|~3~|~31~|~4~|~ParagonX9~|~5~|~3.77~|~6~|~~|~10~|~http%3A%2F%2Faudio.ngfiles.com%2F223000%2F223469_ParagonX9___HyperioxX.mp3~|~7~|~~|~8~|~1~:~1~|~467339~|~2~|~At the Speed of Light~|~3~|~52~|~4~|~Dimrain47~|~5~|~9.56~|~6~|~~|~10~|~http%3A%2F%2Fgeometrydashcontent.com%2Fsongs%2F467339.mp3~|~7~|~~|~8~|~1~:~1~|~513064~|~2~|~EnV - Uprise~|~3~|~149~|~4~|~Envy~|~5~|~8.71~|~6~|~~|~10~|~http%3A%2F%2Faudio.ngfiles.com%2F513000%2F513064_EnV---Uprise.mp3~|~7~|~UCaRqE7rKwJl1BvMRU4FFVJQ~|~8~|~1~:~1~|~706340~|~2~|~-At the Speed of Light- (8 bit Remix)~|~3~|~46724~|~4~|~ThaPredator~|~5~|~4.78~|~6~|~~|~10~|~http%3A%2F%2Faudio.ngfiles.com%2F706000%2F706340_-At-the-Speed-of-Light--8-.mp3~|~7~|~~|~8~|~1#4:0:10#1664b8bb919b0822a4408752c37a9fb5f651f813