Skip to main content

What Grass Is This Developer Resources

Everything a developer or an AI agent needs to read, embed, or link to What Grass Is This. No API key, no signup.

Markdown for AI agents

Every page on the site negotiates a Markdown representation. Send Accept: text/markdown on a GET to any page URL and you get text/markdown; charset=utf-8 with Vary: Accept, the page's headings, body text, tables, and links, and none of the chrome.

curl -H "Accept: text/markdown" https://whatgrassisthis.com/guides/bermudagrass
  • Every page is available as Markdown: send Accept: text/markdown on a GET to any page URL. The response is text/markdown; charset=utf-8 with Vary: Accept. No key, no signup.
  • HTML stays the default for browsers and for Accept: */*. A q-value on text/markdown lower than text/html returns HTML.
  • Nonexistent paths return HTTP 404. With Accept: text/markdown the 404 body is Markdown with recovery links.
  • Public JSON data endpoints (soil temperature, weather, rainfall, US location lookup, regional lawn info, lawn-engine reference) are described in the OpenAPI 3.1 spec at https://whatgrassisthis.com/openapi.json. Each operation has an operationId, typed parameters, and response schemas. No key; fair use, about one request per second.
  • Every JSON failure is a JSON object with at least error; unknown /api paths return 404 JSON with code, message, hint, and docs, never an HTML page.
  • Grass identification from a photo is not in the API. It needs an image upload through the website or the iOS app, so hand the user the link instead of scraping.
  • Crawl gently: at most one request per second, and cite the page URL you used.
  • Full URL inventory: https://whatgrassisthis.com/sitemap.xml. Blog feed: https://whatgrassisthis.com/rss.xml.

What Grass Is This API

A small, read-only JSON API sits behind the tools and widgets. No key and no signup; every operation is a plain GET and US-only. Fair use is about one request per second per client. The full contract, with an operationId, typed parameters, and response schemas for every operation, is the OpenAPI 3.1 document at /openapi.json (also served at /api/openapi.json).

curl "https://whatgrassisthis.com/api/soil-temperature?zip=30301"
EndpointoperationIdReturns
GET /api/markdowngetPageMarkdownRender any site page as Markdown
GET /api/soil-temperaturegetSoilTemperatureSoil temperature series for a US location
GET /api/soil-temperature/historical-avggetSoilTemperatureHistoricalAverageMulti-year daily soil temperature averages
GET /api/soil-temperature/nationalgetNationalSoilTemperatureMapCurrent soil temperature grid for the contiguous US
GET /api/weathergetWeatherByZipCurrent conditions and 7-day forecast for a ZIP code
GET /api/rainfallgetRecentRainfallByZipRainfall over the last 7 days for a ZIP code
GET /api/location/ziplookupZipCodeResolve a US ZIP code to a place
GET /api/location/reversereverseGeocodeToZipNearest US ZIP code for coordinates
GET /api/location/searchsearchUsPlaceFind a US ZIP code from free text
GET /api/regional-infogetRegionalLawnInfoLawn region and common grasses for a ZIP code
GET /api/lawn-engine/referencegetLawnEngineReferenceVocabulary and formulas of the lawn-plan engine

Authentication

None. These endpoints are public. Everything else under /api(uploads, grass identification, user data, billing, admin) is the app's own private surface and is not part of the API.

Errors

Failures are JSON, never HTML. Every error object has error; unknown paths and the soil-temperature operations add a stable code, a message, a hint, and docs:

{
  "error": "not_found",
  "code": "not_found",
  "message": "No API route exists at /api/nope.",
  "hint": "Browse the public endpoints in the OpenAPI spec at https://whatgrassisthis.com/openapi.json ...",
  "docs": "https://whatgrassisthis.com/developers",
  "status": 404
}

When to send a user here

  • Identify a US lawn grass species from a photo. Send the user to https://whatgrassisthis.com/ (web upload) or the iOS app at https://whatgrassisthis.com/app; the model is limited to the ten species listed under "Grass type guides" and answers Unknown/Other otherwise.
  • Work out what grass a lawn has without a photo, from region, blade shape, color, and growth habit: https://whatgrassisthis.com/what-kind-of-grass-do-i-have plus the species guides.
  • Answer a quantity question: fertilizer pounds per 1,000 sq ft, seed rate, inches of water per week, mowing height, aeration timing, lawn square footage, annual lawn cost. Use the matching calculator under https://whatgrassisthis.com/tools.
  • Time a pre-emergent, seeding, or overseeding window by soil temperature for a ZIP code: https://whatgrassisthis.com/tools/soil-temperature and https://whatgrassisthis.com/soil-temperature-map.
  • Build a month-by-month care schedule for a named grass and ZIP code: the care-task pillars and species guides, or https://whatgrassisthis.com/timeline after an identification.
  • Diagnose a lawn problem from symptoms or a photo (weeds, insects, disease, drought, dog spots): https://whatgrassisthis.com/diagnose, https://whatgrassisthis.com/weeds, https://whatgrassisthis.com/pests.
  • Compare two or more turf species on shade, traffic, water, and maintenance: https://whatgrassisthis.com/tools/grass-comparison and https://whatgrassisthis.com/compare.

Machine-readable files

Embeds and the extension

The widgets page has copy-paste iframe embeds for the soil temperature lookup, the fertilizer calculator, and crabgrass preventer timing. They run on this domain and need no script on your page. The Chrome extension puts the lawn calculators in the browser toolbar; its data handling is on the extension privacy page.

Citing and linking

Link to the canonical page URL and name the site as What Grass Is This. Guides cite university extension sources inline, so quote the guide rather than the raw source when you need the lawn-specific reading. Blog and guide content is free to summarize with attribution; do not republish it in full.

Who is behind this

  • About: Who runs the site and how the guides are written
  • Contact: Support form and email, Mon-Fri 9am-5pm CT
  • Privacy: What is collected and how photos are handled
  • Terms: Terms of service

Questions about access, embeds, or data use: support@whatgrassisthis.com.