LawnBySeason Public API
Free lawn care data for developers. No API key. No rate limit signup. Just JSON.
Quick start - get frost dates for Houston, TX:
curl "https://lawnbyseason.com/api/v1/frost-dates?city=houston-tx&state=texas"Base URL
https://lawnbyseason.com/api/v1All responses include CORS headers (Access-Control-Allow-Origin: *). Rate limit: 100 requests/hour per IP.
Frost Dates
GET/api/v1/frost-datesLast spring frost and first fall frost dates, frost-free days, and planting calendar by city or USDA zone.
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| city | string | No | City slug | houston-tx |
| state | string | No | State slug | texas |
| zone | string | No | USDA zone | 6a |
City lookup:
curl "https://lawnbyseason.com/api/v1/frost-dates?city=houston-tx&state=texas"Zone lookup:
curl "https://lawnbyseason.com/api/v1/frost-dates?zone=6a"All zones:
curl "https://lawnbyseason.com/api/v1/frost-dates"Sample response:
{
"success": true,
"data": {
"city": "Houston",
"state": "Texas",
"stateAbbr": "TX",
"usdaZone": "9a",
"lastSpringFrost": "January 30",
"firstFallFrost": "December 15",
"frostFreeDays": 319,
"plantingCalendar": { ... }
}
}Mowing Calendar
GET/api/v1/mowing-calendarMonthly mowing schedule with heights, frequencies, and seasonal adjustments by city and grass type.
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| city | string | No | City slug | chicago-il |
| state | string | No | State slug | illinois |
| zone | string | No | USDA zone | 5b |
| grass | string | No | Grass type slug | kentucky-bluegrass |
City lookup:
curl "https://lawnbyseason.com/api/v1/mowing-calendar?city=chicago-il&state=illinois"Zone + grass:
curl "https://lawnbyseason.com/api/v1/mowing-calendar?zone=8a&grass=bermuda"Available types:
curl "https://lawnbyseason.com/api/v1/mowing-calendar"Sample response:
{
"success": true,
"data": {
"city": "Chicago",
"usdaZone": "5b",
"grassType": "Kentucky Bluegrass",
"monthlySchedule": [
{ "month": "March", "mowingNeeded": true, "heightMm": 76, "notes": "First mow" },
...
],
"annualSummary": { "activeMowingMonths": 7, "peakMowingMonths": ["May","Jun","Jul","Aug"] }
}
}Watering Schedule
GET/api/v1/watering-scheduleLawn watering frequency, duration, best time of day, and seasonal adjustments by city and USDA zone.
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| city | string | No | City slug | phoenix-az |
| state | string | No | State slug | arizona |
| zone | string | No | USDA zone | 9b |
City lookup:
curl "https://lawnbyseason.com/api/v1/watering-schedule?city=phoenix-az&state=arizona"Zone lookup:
curl "https://lawnbyseason.com/api/v1/watering-schedule?zone=9b"Sample response:
{
"success": true,
"data": {
"city": "Phoenix",
"usdaZone": "9b",
"currentSeason": "spring",
"weeklySchedule": {
"frequencyLabel": "2-3 times per week",
"bestTimeOfDay": "3:00 AM - 7:00 AM",
"depth": "1-1.5 inches total per week"
},
"restrictionInfo": "Arizona cities enforce tiered water conservation plans..."
}
}Cities
GET/api/v1/citiesSearch and filter available cities. Use for autocomplete or to discover valid city slugs for other endpoints.
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| state | string | No | Filter by state slug | texas |
| zone | string | No | Filter by USDA zone | 9a |
| q | string | No | Search by city name | hous |
| limit | number | No | Max results (1-100, default 20) | 10 |
Search:
curl "https://lawnbyseason.com/api/v1/cities?q=houston"By state:
curl "https://lawnbyseason.com/api/v1/cities?state=texas&limit=10"By zone:
curl "https://lawnbyseason.com/api/v1/cities?zone=9a&limit=5"Sample response:
{
"success": true,
"data": {
"cities": [
{ "slug": "houston-tx", "name": "Houston", "state": "Texas", "stateAbbr": "TX", "usdaZone": "9a", "population": 2304580 }
],
"total": 500,
"returned": 1
}
}Response Format
All responses follow this envelope:
{
"success": true,
"data": { ... },
"meta": {
"source": "lawnbyseason.com",
"sourceUrl": "https://lawnbyseason.com/...",
"timestamp": "2026-03-30T12:00:00.000Z",
"version": "1.0"
}
}Error responses return success: false with an error message and appropriate HTTP status code (400, 404).
Attribution
If you use this API in your project or app, we appreciate a credit link to lawnbyseason.com. It helps us keep this API free for everyone. All responses include X-Source: lawnbyseason.com and X-Docs headers.