Growing Guides
Growing guides provide zone-specific planting schedules, germination and harvest timelines, soil temperature thresholds, and succession planting intervals for vegetables, herbs, and fruits. On this page, you will find the full reference for every growing guide endpoint, including listing, filtering by zone and category, lookup by plant type, and zipcode-based planting calendars.
The growing guide model
The growing guide model contains planting timing relative to frost dates, germination and harvest windows, soil temperature requirements, and zone-specific growing tips for each plant type and hardiness zone combination.
Properties
- Name
id- Type
- string
- Description
Unique identifier for the growing guide record (UUID).
- Name
plantType- Type
- string
- Description
The plant type this guide covers (e.g., "tomato", "basil", "blueberry").
- Name
category- Type
- string
- Description
Broad grouping:
vegetable,herb, orfruit.
- Name
zone- Type
- integer
- Description
USDA hardiness zone this guide applies to (e.g., 7).
- Name
startIndoorsWeeksBeforeFrost- Type
- integer | null
- Description
Number of weeks before the last frost date to start seeds indoors. Null if not applicable.
- Name
transplantWeeksAfterFrost- Type
- integer | null
- Description
Number of weeks after the last frost date to transplant seedlings outdoors. Null if direct sow only.
- Name
directSowWeeksAfterFrost- Type
- integer | null
- Description
Number of weeks after the last frost date to direct sow seeds outdoors. Null if indoor start only.
- Name
fallPlantingWeeksBeforeFrost- Type
- integer | null
- Description
Number of weeks before the first fall frost date to plant for a fall harvest. Null if not applicable.
- Name
daysToGerminationMin- Type
- integer | null
- Description
Minimum days from sowing to germination. Null when data is unavailable.
- Name
daysToGerminationMax- Type
- integer | null
- Description
Maximum days from sowing to germination. Null when data is unavailable.
- Name
daysToHarvestMin- Type
- integer | null
- Description
Minimum days from transplanting (or direct sow) to first harvest. Null when data is unavailable.
- Name
daysToHarvestMax- Type
- integer | null
- Description
Maximum days from transplanting (or direct sow) to first harvest. Null when data is unavailable.
- Name
soilTempMin- Type
- integer | null
- Description
Minimum soil temperature for germination, in degrees Fahrenheit. Null when data is unavailable.
- Name
soilTempOptimalMin- Type
- integer | null
- Description
Lower bound of the optimal soil temperature range for germination, in degrees Fahrenheit. Null when data is unavailable.
- Name
soilTempOptimalMax- Type
- integer | null
- Description
Upper bound of the optimal soil temperature range for germination, in degrees Fahrenheit. Null when data is unavailable.
- Name
successionPlantingIntervalDays- Type
- integer | null
- Description
Recommended number of days between successive plantings for continuous harvest. Null if succession planting is not applicable.
- Name
growingTips- Type
- string | null
- Description
Zone-specific growing advice and tips. Null when no tips are available.
- Name
zoneNotes- Type
- string | null
- Description
Additional notes specific to the hardiness zone. Null when no notes are available.
- Name
source- Type
- string | null
- Description
Attribution for the guide data (e.g., "Cooperative Extension"). Null when source is unspecified.
List all growing guides
Retrieve a paginated list of growing guides, optionally filtered by hardiness zone and category. Returns 10 items per page by default.
Optional attributes
- Name
zone- Type
- integer
- Description
Filter by USDA hardiness zone (e.g.,
7).
- Name
category- Type
- string
- Description
Filter by category:
vegetable,herb, orfruit.
- Name
page- Type
- integer
- Description
Page number. Defaults to
1.
- Name
perPage- Type
- integer
- Description
Results per page. Defaults to
10, max50.
Request
curl -G "https://verdantly-gardening-api.p.rapidapi.com/v2/growing-guides" \
--data-urlencode "zone=7" \
--data-urlencode "category=vegetable" \
--data-urlencode "perPage=5" \
-H "X-RapidAPI-Host: verdantly-gardening-api.p.rapidapi.com" \
-H "X-RapidAPI-Key: {apiKey}"
Response
{
"data": [
{
"id": "a3f1b2c4-d5e6-7890-abcd-ef1234567890",
"plantType": "tomato",
"category": "vegetable",
"zone": 7,
"startIndoorsWeeksBeforeFrost": 6,
"transplantWeeksAfterFrost": 2,
"directSowWeeksAfterFrost": null,
"fallPlantingWeeksBeforeFrost": null,
"daysToGerminationMin": 5,
"daysToGerminationMax": 10,
"daysToHarvestMin": 60,
"daysToHarvestMax": 85,
"soilTempMin": 50,
"soilTempOptimalMin": 65,
"soilTempOptimalMax": 85,
"successionPlantingIntervalDays": null,
"growingTips": "Start seeds indoors under grow lights 6 weeks before last frost. Harden off transplants for a week before moving outdoors. Mulch heavily to retain moisture and suppress weeds.",
"zoneNotes": "Zone 7 last frost averages mid-April. Transplant outdoors by early May once nighttime temps stay above 50\u00b0F consistently.",
"source": "Cooperative Extension"
},
{
"id": "b4c2d3e5-f6a7-8901-bcde-f23456789012",
"plantType": "pepper",
"category": "vegetable",
"zone": 7,
"startIndoorsWeeksBeforeFrost": 8,
"transplantWeeksAfterFrost": 3,
"directSowWeeksAfterFrost": null,
"fallPlantingWeeksBeforeFrost": null,
"daysToGerminationMin": 7,
"daysToGerminationMax": 14,
"daysToHarvestMin": 60,
"daysToHarvestMax": 90,
"soilTempMin": 60,
"soilTempOptimalMin": 70,
"soilTempOptimalMax": 85,
"successionPlantingIntervalDays": null,
"growingTips": "Peppers need warm soil. Use black plastic mulch to raise soil temperature. Do not rush transplanting — cold soil stunts growth.",
"zoneNotes": "Wait until late May for transplanting in zone 7. Soil temperatures need to be consistently above 65\u00b0F.",
"source": "Cooperative Extension"
}
],
"meta": {
"totalCount": 42,
"page": 1,
"perPage": 5,
"pages": 9
}
}
List plant types
Returns a list of all plant types that have growing guides available. Use these values with the get by plant type or planting calendar endpoints.
Request
curl "https://verdantly-gardening-api.p.rapidapi.com/v2/growing-guides/plant-types" \
-H "X-RapidAPI-Host: verdantly-gardening-api.p.rapidapi.com" \
-H "X-RapidAPI-Key: {apiKey}"
Response
{
"data": [
"arugula", "basil", "bean", "beet", "blueberry",
"broccoli", "cabbage", "carrot", "cauliflower", "celery",
"cilantro", "corn", "cucumber", "dill", "eggplant",
"garlic", "kale", "lavender", "lettuce", "melon",
"mint", "okra", "onion", "oregano", "parsley",
"pea", "pepper", "potato", "pumpkin", "radish",
"raspberry", "rosemary", "spinach", "squash", "strawberry",
"thyme", "tomato", "turnip", "watermelon", "zucchini"
],
"meta": {
"totalCount": 40
}
}
List categories
Returns the list of all growing guide categories. Use these values to filter the list endpoint.
Request
curl "https://verdantly-gardening-api.p.rapidapi.com/v2/growing-guides/categories" \
-H "X-RapidAPI-Host: verdantly-gardening-api.p.rapidapi.com" \
-H "X-RapidAPI-Key: {apiKey}"
Response
{
"data": ["vegetable", "herb", "fruit"],
"meta": {
"totalCount": 3
}
}
Get growing guide by ID
Retrieve a single growing guide record by its UUID.
Required attributes
- Name
id- Type
- string
- Description
The UUID of the growing guide record.
Request
curl "https://verdantly-gardening-api.p.rapidapi.com/v2/growing-guides/a3f1b2c4-d5e6-7890-abcd-ef1234567890" \
-H "X-RapidAPI-Host: verdantly-gardening-api.p.rapidapi.com" \
-H "X-RapidAPI-Key: {apiKey}"
Response
{
"data": {
"id": "a3f1b2c4-d5e6-7890-abcd-ef1234567890",
"plantType": "tomato",
"category": "vegetable",
"zone": 7,
"startIndoorsWeeksBeforeFrost": 6,
"transplantWeeksAfterFrost": 2,
"directSowWeeksAfterFrost": null,
"fallPlantingWeeksBeforeFrost": null,
"daysToGerminationMin": 5,
"daysToGerminationMax": 10,
"daysToHarvestMin": 60,
"daysToHarvestMax": 85,
"soilTempMin": 50,
"soilTempOptimalMin": 65,
"soilTempOptimalMax": 85,
"successionPlantingIntervalDays": null,
"growingTips": "Start seeds indoors under grow lights 6 weeks before last frost. Harden off transplants for a week before moving outdoors. Mulch heavily to retain moisture and suppress weeds.",
"zoneNotes": "Zone 7 last frost averages mid-April. Transplant outdoors by early May once nighttime temps stay above 50\u00b0F consistently.",
"source": "Cooperative Extension"
},
"meta": {
"version": "v2"
}
}
Get growing guide by plant type
Retrieve a growing guide by plant type name. Optionally filter by zone to get the guide for a specific hardiness zone. If no zone is provided, returns the default guide for the plant type.
Required attributes
- Name
plantType- Type
- string
- Description
The plant type to look up (e.g., "tomato", "basil", "strawberry").
Optional attributes
- Name
zone- Type
- integer
- Description
USDA hardiness zone to get zone-specific timing (e.g.,
7).
Request
curl -G "https://verdantly-gardening-api.p.rapidapi.com/v2/growing-guides/plant/tomato" \
--data-urlencode "zone=7" \
-H "X-RapidAPI-Host: verdantly-gardening-api.p.rapidapi.com" \
-H "X-RapidAPI-Key: {apiKey}"
Response
{
"data": {
"id": "a3f1b2c4-d5e6-7890-abcd-ef1234567890",
"plantType": "tomato",
"category": "vegetable",
"zone": 7,
"startIndoorsWeeksBeforeFrost": 6,
"transplantWeeksAfterFrost": 2,
"directSowWeeksAfterFrost": null,
"fallPlantingWeeksBeforeFrost": null,
"daysToGerminationMin": 5,
"daysToGerminationMax": 10,
"daysToHarvestMin": 60,
"daysToHarvestMax": 85,
"soilTempMin": 50,
"soilTempOptimalMin": 65,
"soilTempOptimalMax": 85,
"successionPlantingIntervalDays": null,
"growingTips": "Start seeds indoors under grow lights 6 weeks before last frost. Harden off transplants for a week before moving outdoors. Mulch heavily to retain moisture and suppress weeds.",
"zoneNotes": "Zone 7 last frost averages mid-April. Transplant outdoors by early May once nighttime temps stay above 50\u00b0F consistently.",
"source": "Cooperative Extension"
},
"meta": {
"version": "v2"
}
}
Get planting calendar
Returns an aggregated planting calendar for a given zipcode. Resolves the zipcode to a hardiness zone and last/first frost dates, then computes planting dates (start indoors, transplant, direct sow, fall planting) for every plant type in that zone.
Dates are display strings like "May 14" in the current year. Each date is when that action can start. An outdoor planting window ends on the plant's lastPlantingDate: the last day it can go in and still be harvested in time.
The dates are estimates from the ZIP's local frost dates, and the response says so: datesInfo carries a short note to show with them and a link to the state extension service's planting publication. In frost-free ZIPs the planting dates are withheld (null) rather than counted from a frost that never comes, and fruit and berry crops are left out of plants until their planting times are checked by region.
Required attributes
- Name
zipcode- Type
- string
- Description
US zipcode to compute the planting calendar for (e.g., "55401").
Response fields
- Name
location- Type
- object
- Description
zipcode,zone(e.g.,"5a"),zoneTitle, andtempRange.
- Name
frostDates- Type
- object
- Description
lastSpringFrostandfirstFallFrostdisplay dates,growingSeasonDays, andfrostStatus("dates","frost-free"or"unknown"). In a frost-free zone both dates read"Frost-free zone"and every planting date is null, except dates from an approved regional source (seedatesInfostatus"sourced"). WhenfrostStatusis"unknown", the dates are null andplantsholds only crops with dated windows from an approved regional source (seedatesInfostatus"sourced"), so it is usually empty; this is not a frost-free claim.
- Name
datesInfo- Type
- object
- Description
What the planting dates are.
status:"estimate"(from local frost dates),"withheld"(left out on purpose),"unavailable"(no frost dates found) or"sourced"(dates from an approved regional source, served where the estimate is withheld or no frost dates were found; the note names the sources). Treat any other status like"sourced": show its note with the dates.reason:"frost-free"or"crop-not-yet-supported"when withheld,"frost-free"or null when sourced, otherwise null.note: a plain-language sentence to show with the dates.localSource: the state extension service's planting publication (state,stateName,organization,title,edition,url), or null outside the 50 states and DC.
- Name
plants[].plantingCalendar- Type
- object
- Description
startIndoors,transplantOutdoors,directSowandfallPlantingdates, eachstring | null. A date is null when a planting on it couldn't be harvested in time (it would fall afterlastPlantingDate).directSowis null for crops set out only as transplants or slips (tomato, pepper, eggplant, sweet potato), andstartIndoorsis null without a spring transplant.fallPlantingis null for perennials where fall planting isn't supported: strawberry is fall-planted in zones 9 and warmer, blueberry, raspberry and blackberry never. Garlic'sfallPlantingis its overwintering planting, timed by zone (a week after first frost in zones 6 and colder, weeks before it in warmer zones).
- Name
plants[].lastPlantingDate- Type
- string | null
- Description
Last day to plant outdoors (transplant, direct sow or fall planting) and still harvest in time, counted back from the first fall frost by days to harvest and frost tolerance: tender crops must be ready 4 weeks before frost (slow end of the days-to-harvest range), semi-hardy crops by frost, and hardy crops up to 2 weeks after it (fast end). Never later than the day before first frost, which is also the date for perennials and when days to harvest are unknown or a year or more. Null in a frost-free zone, when frost dates are unknown, when dates are withheld, and for overwintering crops (garlic).
- Name
plants[].perennial- Type
- boolean
- Description
True for berries, fruit and perennial herbs: their plantings set out plants to establish, not to harvest before winter.
- Name
plants[].harvest- Type
- object
- Description
estimatedStartandestimatedEnddates, anddaysToHarvest(e.g.,"60-85 days").
- Name
plants[].growingConditions- Type
- object
- Description
soilTempMin,soilTempOptimal,daysToGerminationandsuccessionPlanting.
Request
curl -G "https://verdantly-gardening-api.p.rapidapi.com/v2/growing-guides/calendar" \
--data-urlencode "zipcode=55401" \
-H "X-RapidAPI-Host: verdantly-gardening-api.p.rapidapi.com" \
-H "X-RapidAPI-Key: {apiKey}"
Response
{
"data": {
"location": {
"zipcode": "55401",
"zone": "5a",
"zoneTitle": "5a: -20 to -15",
"tempRange": "-20 to -15"
},
"frostDates": {
"lastSpringFrost": "April 30",
"firstFallFrost": "October 10",
"growingSeasonDays": 162,
"frostStatus": "dates"
},
"plants": [
{
"plantType": "tomato",
"category": "vegetable",
"plantingCalendar": {
"startIndoors": "March 19",
"transplantOutdoors": "May 14",
"directSow": null,
"fallPlanting": null
},
"lastPlantingDate": "June 19",
"perennial": false,
"recommendedDates": null,
"harvest": {
"estimatedStart": "July 13",
"estimatedEnd": "August 7",
"daysToHarvest": "60-85 days"
},
"growingConditions": {
"soilTempMin": "50°F",
"soilTempOptimal": "65-85°F",
"daysToGermination": "5-10 days",
"successionPlanting": null
},
"tips": "Plant deep, burying 2/3 of the stem to encourage root development. Stake or cage indeterminate varieties. Water consistently at base to prevent blossom end rot. Mulch to maintain soil moisture.",
"zoneNotes": "Zone 6: transplant mid-May to mid-June. Zone 7: transplant late April to late June. Zone 8: transplant mid-April to early July. Fall crop possible in zones 7-8."
},
{
"plantType": "garlic",
"category": "vegetable",
"plantingCalendar": {
"startIndoors": null,
"transplantOutdoors": null,
"directSow": null,
"fallPlanting": "October 17"
},
"lastPlantingDate": null,
"perennial": false,
"recommendedDates": null,
"harvest": {
"estimatedStart": null,
"estimatedEnd": null,
"daysToHarvest": "240-270 days"
},
"growingConditions": {
"soilTempMin": "32°F",
"soilTempOptimal": "50-65°F",
"daysToGermination": "7-14 days",
"successionPlanting": null
},
"tips": "Plant individual cloves in fall, 4-6 weeks before ground freezes. Mulch heavily. Harvest when lower leaves brown. Cure 2-3 weeks before storage.",
"zoneNotes": "Zone 6: plant Sep-Oct. Zone 7: plant Oct-Nov. Zone 8: plant Oct-Nov. Hardneck varieties for zones 3-6, softneck for zones 7-9."
}
],
"datesInfo": {
"status": "estimate",
"reason": null,
"note": "These dates are estimates based on your local frost dates, and timing where you live can differ. Your state's extension service has planting advice for your area.",
"localSource": {
"state": "MN",
"stateName": "Minnesota",
"organization": "University of Minnesota Extension",
"title": "Planting the vegetable garden",
"edition": "Reviewed in 2026",
"url": "https://extension.umn.edu/garden-and-home/yard-and-garden/gardening-in-minnesota/planting-the-vegetable-garden"
}
},
"generatedAt": "2026-10-17T16:37:09.738Z"
},
"meta": { "version": "v2" }
}
Get planting calendar for a plant
Returns the planting calendar for a single plant type at a given zipcode. Resolves the zipcode to a hardiness zone and frost dates, then computes that plant's planting dates. The response carries the same location, frostDates, plantingCalendar, lastPlantingDate, perennial, harvest and growingConditions fields as one entry of the aggregated calendar, plus plantType, category, datesInfo, tips, zoneNotes and source. A fruit or berry crop answers with null planting dates and datesInfo.reason: "crop-not-yet-supported". Where frost-based dates are withheld or unavailable but an approved regional source dates the crop, datesInfo.status is "sourced", as on the aggregated calendar.
Required attributes
- Name
plantType- Type
- string
- Description
The plant type to get calendar data for (e.g., "tomato"). Matched case-insensitively; a few spellings of the same crop find each other:
collardsandcollard greens,chivesandchive,swiss chardandchard.
- Name
zipcode- Type
- string
- Description
US zipcode to compute the planting calendar for (e.g., "55401").
Request
curl -G "https://verdantly-gardening-api.p.rapidapi.com/v2/growing-guides/calendar/tomato" \
--data-urlencode "zipcode=55401" \
-H "X-RapidAPI-Host: verdantly-gardening-api.p.rapidapi.com" \
-H "X-RapidAPI-Key: {apiKey}"
Response
{
"data": {
"plantType": "tomato",
"category": "vegetable",
"location": {
"zipcode": "55401",
"zone": "5a",
"zoneTitle": "5a: -20 to -15",
"tempRange": "-20 to -15"
},
"frostDates": {
"lastSpringFrost": "April 30",
"firstFallFrost": "October 10",
"growingSeasonDays": 162,
"frostStatus": "dates"
},
"plantingCalendar": {
"startIndoors": "March 19",
"transplantOutdoors": "May 14",
"directSow": null,
"fallPlanting": null
},
"lastPlantingDate": "June 19",
"perennial": false,
"harvest": {
"estimatedStart": "July 13",
"estimatedEnd": "August 7",
"daysToHarvest": "60-85 days"
},
"growingConditions": {
"soilTempMin": "50°F",
"soilTempOptimal": "65-85°F",
"daysToGermination": "5-10 days",
"successionPlanting": null
},
"tips": "Plant deep, burying 2/3 of the stem to encourage root development. Stake or cage indeterminate varieties. Water consistently at base to prevent blossom end rot. Mulch to maintain soil moisture.",
"zoneNotes": "Zone 6: transplant mid-May to mid-June. Zone 7: transplant late April to late June. Zone 8: transplant mid-April to early July. Fall crop possible in zones 7-8.",
"source": "Virginia Tech Extension, University of Maryland Extension, NC State Extension, Texas A&M AgriLife Extension"
},
"meta": { "version": "v2" }
}