Lawn by Season

LawnBySeason Public API

Free lawn care data for developers. No API key. No rate limit signup. Just JSON.

FreeNo Auth RequiredJSONCORS Enabled500+ Cities

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/v1

All responses include CORS headers (Access-Control-Allow-Origin: *). Rate limit: 100 requests/hour per IP.

Frost Dates

GET
/api/v1/frost-dates

Last spring frost and first fall frost dates, frost-free days, and planting calendar by city or USDA zone.

ParameterTypeRequiredDescriptionExample
citystringNoCity slughouston-tx
statestringNoState slugtexas
zonestringNoUSDA zone6a

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-calendar

Monthly mowing schedule with heights, frequencies, and seasonal adjustments by city and grass type.

ParameterTypeRequiredDescriptionExample
citystringNoCity slugchicago-il
statestringNoState slugillinois
zonestringNoUSDA zone5b
grassstringNoGrass type slugkentucky-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-schedule

Lawn watering frequency, duration, best time of day, and seasonal adjustments by city and USDA zone.

ParameterTypeRequiredDescriptionExample
citystringNoCity slugphoenix-az
statestringNoState slugarizona
zonestringNoUSDA zone9b

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/cities

Search and filter available cities. Use for autocomplete or to discover valid city slugs for other endpoints.

ParameterTypeRequiredDescriptionExample
statestringNoFilter by state slugtexas
zonestringNoFilter by USDA zone9a
qstringNoSearch by city namehous
limitnumberNoMax 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.

Get alerted when restrictions change

Free email alerts for your city – know before you water.

No spam, ever. Unsubscribe anytime.