---
title: "Climate normals and comfortable days, by city or ranked"
method: GET
path: "/api/climate.json"
---

# Climate normals and comfortable days, by city or ranked

`GET /api/climate.json`

## Request

- Base URL: `https://geo-parity.com`
- URL: `https://geo-parity.com/api/climate.json`
- Auth: one of:
  - none
  - HTTP bearer
  - API key in query parameter `key`

Monthly normals from ERA5 reanalysis (2015-2024) via Open-Meteo. `city` or `country` returns one place's twelve months; otherwise cities are ranked by comfortable days for a `month` or across the year. The comfort band (max 18-27 C, under 1 mm rain) is a stated preference and is temperate-biased; mean maximum and rainfall are returned alongside so callers can rank on those instead.

## Query parameters

- `city` string
- `country` string
- `month` number
- `minComfortDays` number
- `limit` number

## Response `200`

City normals or a ranking, with an attribution block

## Other responses

- `400`: month outside 1-12 (code INVALID_MONTH)
- `422`: No climate data for that city or country

---

[API](https://skmtc.dev/geo-parity/apis/geo-parity-api.md) · [All operations](https://skmtc.dev/geo-parity/apis/geo-parity-api/llms.txt) · [OpenAPI document](https://skmtc.dev/geo-parity/apis/geo-parity-api/revisions/8ddff47a0806?raw)
