Introduction
Public REST API for the Grow a Garden 2 stock predictor, weather forecaster, and rarest pets index. All data is derived from live in-game shop cycles. Responses are JSON. No authentication required. No rate limiting.
https://growagarden2.xnoid.studio
Returns the full raw data object containing all seeds, gears, weather cycles, anchors, and metadata. This is the complete dataset used by the frontend.
Example Request
curl https://growagarden2.xnoid.studio/api/dataCopy
Response
{
"period" : 300 ,
"seedAnchor" : 1748121600 ,
"gearAnchor" : 1748121600 ,
"count" : 2016 ,
"generatedAt" : 1748227200 ,
"seeds" : [
{
"name" : "Carrot" ,
"price" : 500 ,
"rarity" : "Common" ,
"q" : [0 ,0 ,25 ,0 ,...]
}
],
"gears" : [ ... ],
"weather" : {
"clen" : 720 ,
"startCycle" : 0 ,
"phases" : [
{ "name" : "Day" , "offset" : 0 },
{ "name" : "Sunset" , "offset" : 450 },
{ "name" : "Night" , "offset" : 465 }
],
"seq" : [ ... ]
}
}Copy
Key Fields
Field Type Description
period number Shop restock period in seconds (typically 300)
seedAnchor / gearAnchor number Unix timestamp anchor for the current cycle window
seeds / gears array Array of items with name, price, rarity, and quantity history (q[])
weather object Weather cycle config: cycle length (clen), phases, and sequence array
Returns the current stock status and next restock predictions for the given shop tab.
Path Parameters
Parameter Type Description
tab string Shop tab — seeds or gears
Example Request
curl https://growagarden2.xnoid.studio/api/shop/seeds
curl https://growagarden2.xnoid.studio/api/shop/gearsCopy
Response
{
"tab" : "seeds" ,
"anchor" : 1748121600 ,
"period" : 300 ,
"generatedAt" : 1748227200 ,
"items" : [
{
"name" : "Carrot" ,
"price" : 500 ,
"rarity" : "Common" ,
"inStock" : 0 ,
"nextRestock" : {
"timestamp" : 1748227500 ,
"quantity" : 25 ,
"in" : 180
},
"timeUntilNext" : 180
}
],
"status" : {
"label" : "Restock in" ,
"countdown" : "3m 0s" ,
"nextTimestamp" : 1748227500
}
}Copy
Response Fields
Field Type Description
items[].inStock number Current stock quantity (0 if out of stock)
items[].nextRestock object|null Next predicted restock with timestamp, quantity, and seconds until
items[].timeUntilNext number|null Seconds until next restock
status.countdown string Formatted countdown to next global restock (e.g. "3m 0s")
Returns the current weather phase, time remaining, and upcoming weather forecasts for the next several cycles.
Example Request
curl https://growagarden2.xnoid.studio/api/weatherCopy
Response
{
"current" : {
"name" : "Day" ,
"phase" : "Day" ,
"secondsLeft" : 225 ,
"formatted" : "03:45"
},
"upcoming" : [
{ "name" : "Sunset" , "seconds" : 225 , "formatted" : "4m" },
{ "name" : "Night" , "seconds" : 240 , "formatted" : "4m" }
],
"cycleLength" : 720 ,
"status" : {
"label" : "Next phase in" ,
"countdown" : "03:45"
}
}Copy
Weather Names
Name Phase Description
Day Day Clear daytime
Sunset Sunset Transition to night
Moon Night Clear night with moon
Goldmoon Night Golden tinted moon
Rainbow Moon Night Iridescent moon
Bloodmoon Night Crimson red moon
Rain Day Heavy storm
Snowfall Day Blizzard
Rainbow Day Pastel rainbow sky
Lightning Night Thunderstorm with bolts
Returns the rarest pets index, ranked by scarcity. Includes name, rarity, size, rainbow status, estimated existence count, and rarity odds.
Example Request
curl https://growagarden2.xnoid.studio/api/petsCopy
Response (truncated)
[
{
"rank" : "\u2726" ,
"name" : "Mega Rainbow Ice Serpent" ,
"rarity" : "Super" ,
"size" : "Mega" ,
"rainbow" : true ,
"exist" : null ,
"odds" : "???,???,???,???"
},
{
"rank" : "1" ,
"name" : "Mega Rainbow Bee" ,
"rarity" : "Legendary" ,
"size" : "Mega" ,
"rainbow" : true ,
"exist" : 1 ,
"odds" : "50,000,000"
}
]
Response Fields
Field Type Description
rank string Rank number or "\u2726" for the top unconfirmed pet
name string Pet name
rarity string Rarity tier (Common through Super)
size string Size variant: Normal, Big, or Mega
rainbow boolean Whether the pet has the rainbow variant
exist number|null Estimated number in existence (null = unconfirmed)
odds string Rarity odds (e.g. "50,000,000")
Returns seed restock history — when each seed was last in stock and how long ago. Useful for tracking which seeds are due to appear next.
Example Request
curl https://growagarden2.xnoid.studio/api/restockCopy
Response (truncated)
{
"seeds" : [
{
"name" : "Tulip" ,
"slug" : "tulip" ,
"rarity" : "Uncommon" ,
"color" : "#5ad15a" ,
"inStock" : false ,
"stockQuantity" : 0 ,
"status" : "5h 23m ago" ,
"lastSeen" : 1748200800
}
],
"anchor" : 1748121600 ,
"period" : 300
}Copy
Response Fields
Field Type Description
seeds[].inStock boolean Whether this seed is currently in stock
seeds[].stockQuantity number Current quantity (0 if out of stock)
seeds[].status string Human-readable time since last seen
seeds[].lastSeen number|null Unix timestamp of last stock appearance
Returns the global countdown status for a given tab. Lightweight endpoint for polling the next restock or weather phase change.
Path Parameters
Parameter Type Description
tab string Tab — seeds, gears, or weather
Example Request
curl https://growagarden2.xnoid.studio/api/status/seeds
curl https://growagarden2.xnoid.studio/api/status/weatherCopy
Response
{
"label" : "Restock in" ,
"countdown" : "3m 0s" ,
"nextTimestamp" : 1748227500
}
{
"label" : "Next phase in" ,
"countdown" : "03:45"
}Copy
Response Fields
Field Type Description
label string Context label ("Restock in" or "Next phase in")
countdown string Formatted time remaining
nextTimestamp number Unix timestamp of next event (seeds/gears only)