Look up a ZIP code
Endpoints
| URL | Description |
|---|---|
/{zipcode}.json |
Zone, temperature range, and coordinates for one ZIP code. |
/all.json |
The entire dataset as a single JSON object, keyed by ZIP code. |
/all.csv |
The entire dataset as CSV. |
/manifest.json |
Metadata and the full list of covered ZIP codes. |
Please use the bulk files rather than iterating over every ZIP code.
Example response
GET https://phzmapi.org/20001.json
{
"zone": "8a",
"temperature_range": "10 to 15",
"coordinates": {
"lat": "38.907711",
"lon": "-77.01732"
}
}
In the per-ZIP files, coordinates are strings, for backwards
compatibility. In all.json they are numbers.
Coverage
Not every U.S. ZIP code is in this dataset. The source data
does not include every ZIP code, and ZIP codes with no known coordinates are
omitted. Requesting a ZIP code that isn't covered returns a
404. To check coverage in advance, use
manifest.json.
Data source
Derived from the USDA Plant Hardiness Zone Map, as published in bulk by the PRISM Climate Group at Oregon State University, combined with ZIP code location data.
Source vintage: 2023 release. The 2023 revision shifted much of the country by half a zone relative to the 2012 map, so check this before comparing against older data. Per PRISM's terms of service, this is not the official USDA Plant Hardiness Zone Map.
Terms
Free to use, no key or attribution required, no rate limit. Served as static files, so please cache responses where you reasonably can. The code is MIT-licensed and available on GitHub.