API Key: Difference between revisions
WolfPlay013 (talk | contribs) Added information about Error 425 with Downtime curse |
reword the words |
||
| (5 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
{{Relic infobox}} | {{Relic infobox}} | ||
'''API Key''' is a unique [[Relics|relic]] unlocked by sending a | '''API Key''' is a unique [[Relics|relic]] unlocked by sending a request to a "secret" endpoint. | ||
==Obtaining== | ==Obtaining== | ||
The player must have at least three other relics in order to obtain API Key. | The player must have at least three other relics in order to obtain API Key.<ref name="3relics"/> | ||
API Key is obtained by sending a [[wikipedia:POST request|POST request]] to the following endpoint: https://gdcolon.com/zoo/api/zooKey. This can be done using a desktop browser's [[wikipedia:Web development tools|developer tools]]. The request body must contain a [[wikipedia:JSON|JSON]] object, with the player's Discord ID | API Key is obtained by sending a [[wikipedia:POST request|POST request]] to the following endpoint: <code>https://gdcolon.com/zoo/api/zooKey</code>. This can be done using a desktop browser's [[wikipedia:Web development tools|developer tools]]. The request body must contain a [[wikipedia:JSON|JSON]] object, with the player's Discord ID as an <code>id</code> parameter. The player must also provide their [[wikipedia:session token|session token]], either as a [[wikipedia:HTTP cookie|cookie]] or as a <code>Token</code> [[wikipedia:HTTP header|header]]. | ||
The server responds with an error, asking for | The server responds with an error, asking for an additional, randomly-selected password (e.g. public IP address / last 3 digits of your token) in the response body. The random selection changes per player. When resending the request with the password included, the API Key is granted. | ||
Below is a working Python example: | |||
Below is Python | |||
<syntaxhighlight lang="python" line=""> | <syntaxhighlight lang="python" line=""> | ||
| Line 276: | Line 274: | ||
|+ | |+ | ||
!colspan=2|Zoo Bot | !colspan=2|Zoo Bot | ||
|- | |||
|v1.0.1 | |||
|Now displays cooldowns for {{cmd|pull}} and {{cmd|pet}}.<ref>{{cite changelog|1.0.1|Added card and pet cooldowns to the API, if you have the right permissions}}</ref> | |||
|- | |||
|v1.3.1 | |||
|Now displays more info.<ref>{{cite changelog|1.3.1|Added more terminal related info to API Key}}</ref> | |||
|- | |- | ||
|v1.4.5 | |v1.4.5 | ||
| | |Now requires 3 other relics to unlock instead of just 1.<ref name="3relics">{{cite changelog|1.4.5|Tweaked a certain secret relic to require having 3 relics first (previously 1)}}</ref> | ||
|} | |} | ||
Latest revision as of 23:20, 4 April 2026
API Key
|
“Nerd.”
|
API Key is a unique relic unlocked by sending a request to a "secret" endpoint.
Obtaining[edit | edit source]
The player must have at least three other relics in order to obtain API Key.[1]
API Key is obtained by sending a POST request to the following endpoint: https://gdcolon.com/zoo/api/zooKey. This can be done using a desktop browser's developer tools. The request body must contain a JSON object, with the player's Discord ID as an id parameter. The player must also provide their session token, either as a cookie or as a Token header.
The server responds with an error, asking for an additional, randomly-selected password (e.g. public IP address / last 3 digits of your token) in the response body. The random selection changes per player. When resending the request with the password included, the API Key is granted.
Below is a working Python example:
import requests
url = "https://gdcolon.com/zoo/api/zooKey" #endpoint
headers = {"Content-Type": "application/json", "Accept": "application/json", "Token": ""} #request headers, insert authentication token into the Token header
#id refers to your Discord User ID
#password can be a few things (usually it's your public IP address/last 3 digits of your token). Leave blank at first and see the response to know which password it wants
params = {"id": "", "password": ""}
response = requests.post(url, headers=headers, json=params)
print(response.status_code)
print(response.text)
The authentication token is obtained by
1. Logging into gdcolon.com/zoo
2. Going into the Application tab in the Developer Tools
3. Finding https://gdcolon.com under 'Cookies', which is located in 'Storage'.
4. Find the Cookie Value for 'zoo', which is the authentication token.
Here's a website that allows you to run python code. https://reqbin.com/code/python
Troubleshooting[edit | edit source]
If you encounter an error while running the code via the aforementioned website, follow these steps:
- Install Python
- Save your code in a Python (.py) file, you can use Python itself, Notepad, Visual Studio, anything you want. Save it in your user folder under an easy name (e.g. zoo.py)
- Open CMD (Win+R -> cmd), If you are on MacOS open Terminal from the Launchpad. If you are on Linux you know how to open the terminal already...
- Run the following command: python [name of the file with the code you saved]
- If you did everything correctly, you should now have the API Key relic!
If python says the "requests" library is not installed, run this command in your terminal:
python -m pip install requests
Effects[edit | edit source]
Reveals cooldown, timestamps, and other hidden info on the online zoo API.
— In-game description
The player's profile on the Zoo API gains a secretInfo field with the following data:
| Key | Explanation | Data type | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sort
|
How the player's animals are sorted | 0: Sorted by amount
| ||||||||||||||||||||||||||||
1: Sorted by name
| ||||||||||||||||||||||||||||||
color
|
Zoo color | Decimal number representing a hex triplet | ||||||||||||||||||||||||||||
promise
|
Things guaranteed for the next rescue |
| ||||||||||||||||||||||||||||
questEnd
|
When the current quest ends | Unix timestamp | ||||||||||||||||||||||||||||
curseEnd
|
When the player's curse ends | Unix timestamp | ||||||||||||||||||||||||||||
mechanicEnd
|
When the current mechanic upgrade finishes | Unix timestamp | ||||||||||||||||||||||||||||
questBoosts
|
Bonuses for the current quest |
| ||||||||||||||||||||||||||||
shop
|
Shop info |
| ||||||||||||||||||||||||||||
cooldowns
|
Most time-based cooldowns |
| ||||||||||||||||||||||||||||
terminal
|
Terminal data |
| ||||||||||||||||||||||||||||
garden
|
Garden data |
|
History[edit | edit source]
| RoboTop | |
|---|---|
| v93.22 | Added API Key.[2] |
| Zoo Bot | |
| v1.0.1 | Now displays cooldowns for $ pull and $ pet.[3]
|
| v1.3.1 | Now displays more info.[4] |
| v1.4.5 | Now requires 3 other relics to unlock instead of just 1.[1] |
API Key was the first relic to have a unique unlock method other than through quests.
References[edit | edit source]
- ↑ 1.0 1.1 Zoo changelog, v1.4.5 (released 8 September 2023):
“Tweaked a certain secret relic to require having 3 relics first (previously 1)”
- ↑ RoboTop changelog, v93.22 (released 2 February 2022):
“added a secret new relic, may or may not be hidden in the console of the zoo site”
- ↑ Zoo changelog, v1.0.1 (released 18 February 2023):
“Added card and pet cooldowns to the API, if you have the right permissions”
- ↑ Zoo changelog, v1.3.1 (released 11 June 2023):
“Added more terminal related info to API Key”
