Skip to content

Sending Requests

Requirements

To make a successful request to the Geometry Dash servers, there are a couple factors to consider:

  • Cloudflare
  • Request Type
  • Rate Limits

Cloudflare

The Geometry Dash servers are protected using a service called Cloudflare. In order to send a successful request, bypassing cloudflare is essential. In order to that, you must:

  • send the request to the www. subdomain,
  • send the request with an empty user-agent.

If you don't follow these steps, cloudflare will block the request and you will recieve error 1020.

Request Type

In 99% of cases, Geometry Dash requires you to send an HTTP POST request. The request parameters require the following header: Content-Type: application/x-www-form-urlencoded.

Rate Limits

Sending too many requests at a given time will result in you becoming rate limited and not being able to send any more requests for a certain duration. As the number of requests required to start a rate limit changes, we are unable to provide exact numbers, but as of November 3rd, 2023, they are roughly:

  • 20x downloadGJLevel per minute, all other data-retrieval endpoints - 2 per second

However, there are some longer-term limits applied on top of that as well.

Common Parameters

Several POST params are common across many or almost all requests. Here's a list of them:

ParamTypeDescription
secretstringA constant string that is required for a request to go through. See list of secrets
gameVersionintegerA number representing the game's version. The current value is 22 for 2.2
binaryVersionintegerA number representing the game's small version. The current value is 48 for 2.2081 on PC and 47 for 2.208 on mobile
uuidintegerIn modern versions, this is sent as the player's user ID
udidstringThe player's UDID (Unique Device Identifier). Used to identify unregistered users
accountIDintegerThe player's account ID (not to be confused with user ID). Used for authorization
gjp2stringThe player's account password, encoded with GJP2. Used for authorization
dvsintegerA number added in 2.208 representing the device the player is using. Corresponds to the Cocos2d CC_TARGET_PLATFORM macro: 1 for iOS, 2 for Android, 3 for Windows, 8 for macOS
gdwbooleanWhether the request is coming from GD World. This used to block some requests if set to 1, and used to be sent as 0 in full GD 2.1, but is no longer sent at all outside of GDW
gdlbooleanWhether the request is coming from GD Lite