API Key: Difference between revisions
No edit summary |
reword the words |
||
| (24 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
== | {{Relic infobox}} | ||
The API Key is | '''API Key''' is a unique [[Relics|relic]] unlocked by sending a request to a "secret" endpoint. | ||
==Obtaining== | |||
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: <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 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: | |||
<syntaxhighlight lang="python" line=""> | |||
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) | |||
</syntaxhighlight> | |||
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=== | |||
'''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 <span style="color: #666666">[name of the file with the code you saved]</span> | |||
# 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:'''<syntaxhighlight lang="batch"> | |||
python -m pip install requests | |||
</syntaxhighlight> | |||
==Effects== | |||
{{Description}} | |||
The player's profile on the [[Zoo API]] gains a <code>secretInfo</code> field with the following data: | |||
{| class="wikitable sortable mw-collapsible mw-collapsed" | |||
|+ | |||
!Key | |||
!Explanation | |||
!Data type | |||
|- | |||
|rowspan=2|<code>sort</code> | |||
|rowspan=2|How the player's animals are sorted | |||
|<code>0</code>: Sorted by amount | |||
|- | |||
|<code>1</code>: Sorted by name | |||
|- | |||
|<code>color</code> | |||
|Zoo color | |||
|Decimal number representing a [[wikipedia:hex triplet|hex triplet]] | |||
|- | |||
|<code>promise</code> | |||
|Things guaranteed for the next rescue | |||
| | |||
{| class="wikitable sortable mw-collapsible" | |||
|+ | |||
!Key | |||
!Explanation | |||
!Data type | |||
|- | |||
|<code>pair</code> | |||
|Whether a pair is guaranteed | |||
|Boolean | |||
|- | |||
|rowspan=8|<code>type</code> | |||
|rowspan=8|The guaranteed [[animal type]] | |||
|<code>arctic</code>: Arctic animal | |||
|- | |||
|<code>bird</code>: Bird | |||
|- | |||
|<code>bug</code>: Bug | |||
|- | |||
|<code>farm</code>: Farm animal | |||
|- | |||
|<code>favorite</code>: Leader's favorite animal | |||
|- | |||
|<code>jungle</code>: Jungle animal | |||
|- | |||
|<code>pet</code>: Pet | |||
|- | |||
|<code>water</code>: Aquatic animal | |||
|- | |||
|<code>animal</code> | |||
|The guaranteed animal | |||
|Internal name of the animal (equivalent to the shortcode of its emoji) | |||
|- | |||
|<code>debuffImmunity</code> | |||
|Cooldown raises will be divided by this number | |||
|Integer | |||
|- | |||
|<code>buffBoost</code> | |||
|Cooldown reductions will be multiplied by this number | |||
|Integer | |||
|- | |||
|<code>luckyRelics | |||
|Whether the best outcome is guaranteed for luck-based effects | |||
|Boolean | |||
|} | |||
|- | |||
|<code>questEnd</code> | |||
|When the current [[quest]] ends | |||
|[[wikipedia:Unix timestamp|Unix timestamp]] | |||
|- | |||
|<code>curseEnd</code> | |||
|When the player's [[curse]] ends | |||
|Unix timestamp | |||
|- | |||
|<code>mechanicEnd</code> | |||
|When the current [[mechanic]] upgrade finishes | |||
|Unix timestamp | |||
|- | |||
|<code>questBoosts</code> | |||
|Bonuses for the current quest | |||
| | |||
{| class="wikitable sortable mw-collapsible" | |||
|+ | |||
!Key | |||
!Explanation | |||
!Data type | |||
|- | |||
|<code>rareCurse</code> | |||
|Whether [[Safety Pin]] was used | |||
|Boolean | |||
|- | |||
|<code>extraRewards</code> | |||
|Number of extra rewards guaranteed by [[Telescope]] | |||
|Integer | |||
|- | |||
|<code>length</code> | |||
|Length increase | |||
|Number of hours | |||
|} | |||
|- | |||
|<code>shop</code> | |||
|Shop info | |||
| | |||
{| class="wikitable sortable mw-collapsible | |||
|+ | |||
!Key | |||
!Explanation | |||
!Data type | |||
|- | |||
|<code>credits</code> | |||
|Shop credits | |||
|Integer | |||
|- | |||
|rowspan=2|<code>maxCredits</code> | |||
|rowspan=2|Maximum credits | |||
|<code>6</code> if [[Sack]] is equipped | |||
|- | |||
|<code>4</code> otherwise | |||
|- | |||
|<code>nextCredit</code> | |||
|When the next credit will be given | |||
|Unix timestamp | |||
|- | |||
|<code>lastPurchase | |||
|Time of last purchase | |||
|Unix timestamp | |||
|} | |||
|- | |||
|<code>cooldowns</code> | |||
|Most time-based cooldowns | |||
| | |||
{| class="wikitable sortable mw-collapsible" | |||
|+ | |||
!Key | |||
!Explanation | |||
!Data type | |||
|- | |||
|<code>rescue</code> | |||
|Rescue cooldown | |||
|rowspan=7|Unix timestamp | |||
|- | |||
|<code>relic</code> | |||
|Relic cooldown | |||
|- | |||
|<code>leader</code> | |||
|Leader cooldown | |||
|- | |||
|<code>cardPull</code> | |||
|{{cmd|pull}} cooldown | |||
|- | |||
|<code>pet</code> | |||
|{{cmd|pet}} cooldown | |||
|- | |||
|<code>fishy</code> | |||
|{{cmd|fishy}} cooldown | |||
|- | |||
|<code>sisyphus</code> | |||
|{{cmd|sisyphus}} cooldown | |||
|- | |||
|rowspan=2|<code>profile</code> | |||
|rowspan=2|Profile cooldown | |||
|<code>null</code> if player only has one profile | |||
|- | |||
|Unix timestamp otherwise | |||
|} | |||
|- | |||
|<code>terminal</code> | |||
|[[Terminal]] data | |||
| | |||
{| class="wikitable sortable mw-collapsible" | |||
|+ | |||
!Key | |||
!Explanation | |||
!Data type | |||
|- | |||
|<code>directory</code> | |||
|Current directory | |||
|String | |||
|- | |||
|<code>commands</code> | |||
|Commands listed in {{cmd|help}} | |||
|Array | |||
|- | |||
|<code>nextFusion</code> | |||
|{{cmd|fuse}} cooldown | |||
|Number of rescues until {{cmd|fuse}} can be used (<code>0</code> if no cooldown) | |||
|} | |||
|- | |||
|<code>garden</code> | |||
|[[Garden]] data | |||
| | |||
{| class="wikitable sortable mw-collapsible" | |||
|+ | |||
!Key | |||
!Explanation | |||
!Data type | |||
|- | |||
|<code>nextPlant</code> | |||
|When the next seedling can be planted | |||
|Unix timestamp | |||
|- | |||
|rowspan=2|<code>watered</code> | |||
|rowspan=2|Whether the garden was watered | |||
|<code>false</code>: A plant can be watered | |||
|- | |||
|<code>true</code>: Cannot water until rescuing again | |||
|- | |||
|<code>longestPlant</code> | |||
|Longest lasting plant | |||
|Milliseconds | |||
|} | |||
|} | |||
==History== | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
! | !colspan=2|[[RoboTop]] | ||
! | |- | ||
|v93.22 | |||
|Added API Key.<ref>{{cite changelog|93.22|added a secret new relic, may or may not be hidden in the console of the zoo site|robotop=1}}</ref> | |||
|+ | |||
!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 | |||
|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> | |||
| | |||
|} | |||
|} | |} | ||
API Key was the first relic to have a unique unlock method other than through quests. | |||
==References== | |||
<references/> | |||
[[Category:Relics]] | |||
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”
