We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect
The USDA scale is American, but several countries publish their own hardiness systems that
do not map onto it one-for-one. Australia uses a 7-band ANBG scale, the United Kingdom a
9-tier H1a–H7 rating, Sweden and Norway a 1–8 scale that runs backwards
from USDA (higher means colder), and Germany a Z-prefixed relabel of the
USDA bands. Everywhere else, USDA 1a–13b is the usual fallback. The
/api/v1/zone
endpoint returns both the USDA zone and the local one for any coordinate, and no API key is
required to try it.
Latitude 59.33, longitude 18.06 — central Stockholm:
curl "https://coords.zone/api/v1/zone?lat=59.33&lng=18.06"
{
"lat": 59.33,
"lng": 18.06,
"usda_zone": "7b",
"local_zone": "3"
}
local_zone
is null
for coordinates in
countries with no separate system — including the United States, where the USDA scale
already is the local one.
Every row below is a live response from the endpoint:
| Location | lat, lng | usda_zone | local_zone |
|---|---|---|---|
| Sydney, Australia | −33.87, 151.21 | 11a | 5 |
| London, United Kingdom | 51.51, −0.13 | 9a | H3 |
| Stockholm, Sweden | 59.33, 18.06 | 7b | 3 |
| Munich, Germany | 48.14, 11.58 | 7b | Z7b |
| Cape Town, South Africa | −33.92, 18.42 | 11a | 2 |
| Boston, United States | 42.36, −71.06 | 6b | null |
local_zone value
Each scale has its own range, direction, and notation. What you need to know to render or compare a value:
Seven bands rather than the USDA's twenty-six, and higher still means warmer. Sydney returns 5.
Nine tiers written with an H
prefix, so the value is a string, not a number. H7 is the hardiest end and H1a the most
tender; the H1 band is subdivided into H1a, H1b, and H1c, which is why sorting these
alphabetically will not give you the right order. London returns H3.
The one most likely to trip up an integration: 1 is the mildest and 8 the harshest, the opposite direction from USDA. A Swedish zone 3 is not "colder than zone 7" — it is considerably milder. Do not carry a comparison written against USDA numbers over to these values unchanged.
The German zones are a renumbering of the USDA bands with a
Z
prefix, so the two line up exactly: Z7b
means what USDA 7b
means. Munich returns 7b
and Z7b
together.
Five bands, higher meaning warmer. Winter cold alone describes South African growing conditions poorly — the country's summer- and winter-rainfall regions differ sharply in what they will support — so a South African zone and a USDA zone answer different questions. Cape Town returns 2.
To populate a dropdown, /api/v1/country
returns the full set of
zone values in use at that coordinate's country:
curl "https://coords.zone/api/v1/country?lat=51.51&lng=-0.13"
{
"lat": 51.51,
"lng": -0.13,
"name": "United Kingdom",
"iso_code": "GB",
"zones": ["H7", "H6", "H5", "H4", "H3", "H2", "H1c", "H1b", "H1a"]
}
For a country with no local system, zones contains the full
USDA list, 1a through 13b — so the field is always safe to render without special-casing.
Every zone is computed from ERA5-Land, the highest-resolution reanalysis in ECMWF's ERA5 family, over decades of record. Coverage is therefore consistent worldwide rather than stitched together from national maps of differing vintage and quality — the same call works for any land coordinate on Earth.
The local zones are approximations of each country's published system, not licensed reproductions of its official maps. Germany's aligns exactly, since its bands are a relabel of USDA's own. The Scandinavian one is the loosest fit, because the official Swedish map was hand-surveyed and folds in local factors that no global climate grid resolves. Use these for programmatic filtering and defaults; do not present them as a country's authoritative published zone.