Rootfast
A free, public-domain plant API — and the website that browses it — joining USDA, GBIF, and iNaturalist data into one queryable surface that answers 'I live here, what should I plant?'
Rootfast answers a simple question — I live here, what should I plant? — with data, not opinion. It joins several pieces of public infrastructure (USDA PLANTS, the USDA Plant Hardiness Zone Map, the GBIF backbone taxonomy, and iNaturalist photos) into one free, queryable API and a website that browses it. Everything is public domain or CC0: no keys, no commercial gating, no terms beyond attribution.
By the Numbers
27,678
Plant taxa
2.5M
Distribution records
3,230
U.S. counties
40,502
Hardiness ZIP codes
55 / 56
States & territories
100%
GBIF match coverage
26,125
iNaturalist photos
$0
Cost to use
Key Features
Query by state, county FIPS, or ZIP code to find what grows where — complete with native vs. introduced status drawn from 2.5 million county-level distribution records.
ZIP-to-zone and county-to-zone resolution from the USDA-ARS 2023 Plant Hardiness Zone Map, covering 40,502 ZIP codes and 3,199 counties.
Every plant carries a gbif_taxon_key from the GBIF backbone taxonomy (100% match coverage), so downstream tools can join rootfast to the rest of the biodiversity ecosystem.
26,125 species photos (94% coverage) sourced from iNaturalist, with each photo's individual Creative Commons license preserved and attributed.
Data Sources
Rootfast doesn't generate data — it joins beautiful public infrastructure into one surface so downstream tools don't have to. Everything is public domain or CC0.
USDA PLANTS Database
Taxonomy, county-level distribution, native/introduced status, and cultivation characteristics
USDA-ARS Plant Hardiness Zone Map (2023)
ZIP → zone and county → zone lookups
GBIF Backbone Taxonomy
The cross-source join key present on every plant
iNaturalist
Hot-linked, CC-licensed species photos
Using the API
The API is live at api.rootfast.org — no authentication required. A few examples:
Full detail on ponderosa pine (by USDA symbol):
curl https://api.rootfast.org/v1/plants/PIPOHardiness zone for a ZIP code (Bozeman, MT):
curl https://api.rootfast.org/v1/hardiness/zip/59715Search across the taxonomy:
curl 'https://api.rootfast.org/v1/search?q=ponderosa'Every plant recorded in a county (by FIPS):
curl https://api.rootfast.org/v1/counties/30031/plantsInteractive documentation lives at /v1/docs, with the full OpenAPI 3.0 spec at /v1/openapi.json.
How It's Built
Each upstream has its own Python ETL pipeline that emits a SQLite chunk matching a shared schema. A build job merges those chunks on gbif_taxon_key, runs foreign-key and integrity checks, and produces a data-only SQL dump split into ~4 MB pieces for Cloudflare D1's import path. The API serves it all from a single dependency-free Cloudflare Worker.
USDA PLANTS ─┐
├─→ build.py ─→ rootfast.db ─→ Cloudflare D1
USDA PHZM ───┘ │
▼
Worker API ──→ Astro site (Pages)A raw-fetch TypeScript Cloudflare Worker (no framework) over D1, with a hand-maintained OpenAPI spec and rate-limit middleware.
Astro 4 SSR on Cloudflare Pages, browsing plants, counties, states, and hardiness zones straight from the live API.
Python fetchers cache raw responses and resume from where they left off — re-running only pulls what's missing.
The whole thing runs on Cloudflare's free tier — Workers, D1, and Pages.
Resources
Code is MIT-licensed; data is released under CC0 1.0. Rootfast is a quiet public-interest project — corrections and region requests are welcome via GitHub issues.