# Climate Projections API
> Long-term climate projections as an API — daily, downscaled output from high-resolution CMIP6 global climate models for any location on Earth, from 1950 all the way to 2050. See how temperature, precipitation, wind and humidity are projected to change under a warming climate: get the daily projection over any date range (choose your variables and climate model), or per-year aggregates — annual mean temperature and total precipitation — that reveal the warming trend at a place over the coming decades. Seven HighResMIP models are available (EC_Earth3P_HR, MPI_ESM1_2_XR, MRI_AGCM3_2_S, CMCC_CM2_VHR4 and more). From planning and agriculture to risk assessment, sustainability and climate research, it turns climate-model data into a simple coordinate-in, projection-out call. A climate-projection resource — distinct from real-time weather forecasts, historical weather observations and Köppen climate classification. Open data from Open-Meteo (CC BY 4.0), based on the CMIP6 HighResMIP ensemble.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/climateprojections-api/..."
```

## Pricing
- **Free** (Free) — 2,350 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 47,000 calls/Mo, 8 req/s
- **Pro** ($22/Mo) — 235,000 calls/Mo, 20 req/s
- **Mega** ($58/Mo) — 845,000 calls/Mo, 50 req/s

## Endpoints

### Climate

#### `GET /v1/annual` — Per-year temperature & precipitation trend

**Parameters:**
- `lat` (query, optional, string) — Latitude Example: `52.52`
- `lon` (query, optional, string) — Longitude Example: `13.41`
- `from_year` (query, optional, string) — Start year (1950-2050) Example: `2025`
- `to_year` (query, optional, string) — End year (<=50 years span) Example: `2050`
- `model` (query, optional, string) — CMIP6 model (default EC_Earth3P_HR)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/climateprojections-api/v1/annual?lat=52.52&lon=13.41&from_year=2025&to_year=2050"
```

**Response:**
```json
{
    "data": {
        "model": "EC_Earth3P_HR",
        "years": [
            {
                "year": 2025,
                "mean_temperature_c": 10.8,
                "total_precipitation_mm": 888
            },
            {
                "year": 2026,
                "mean_temperature_c": 11.4,
                "total_precipitation_mm": 529
            },
            {
                "year": 2027,
                "mean_temperature_c": 10.5,
                "total_precipitation_mm": 801
            },
            {
                "year": 2028,
                "mean_temperature_c": 11,
                "total_precipitation_mm": 630
            },
            {
                "year": 2029,
                "mean_temperature_c": 10.3,
                "total_precipitation_mm": 636
            },
            {
                "year": 2030,
                "mean_temperature_c": 12.4,
                "total_precipitation_mm": 538
            },
            {
                "year": 2031,
                "mean_temperature_c": 11.6,
                "total_precipitation_mm": 570
            },
            {
                "year": 2032,
                "mean_temperature_c": 11,
                "total_precipitation_mm": 635
            },
            {
                "year": 2033,
                "mean_temperature_c": 10.9,
                "total_precipitation_mm": 552
            },
            {
                "year": 2034,
                "mean_temperature_c": 10.9,
      
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/projection` — Daily climate projection over a date range

**Parameters:**
- `lat` (query, optional, string) — Latitude Example: `52.52`
- `lon` (query, optional, string) — Longitude Example: `13.41`
- `from` (query, optional, string) — Start date YYYY-MM-DD (1950-2050) Example: `2035-06-01`
- `to` (query, optional, string) — End date YYYY-MM-DD (<=366 days) Example: `2035-06-30`
- `variables` (query, optional, string) — Daily variables (comma-separated)
- `model` (query, optional, string) — CMIP6 model (default EC_Earth3P_HR)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/climateprojections-api/v1/projection?lat=52.52&lon=13.41&from=2035-06-01&to=2035-06-30"
```

**Response:**
```json
{
    "data": {
        "to": "2035-06-30",
        "from": "2035-06-01",
        "daily": {
            "time": [
                "2035-06-01",
                "2035-06-02",
                "2035-06-03",
                "2035-06-04",
                "2035-06-05",
                "2035-06-06",
                "2035-06-07",
                "2035-06-08",
                "2035-06-09",
                "2035-06-10",
                "2035-06-11",
                "2035-06-12",
                "2035-06-13",
                "2035-06-14",
                "2035-06-15",
                "2035-06-16",
                "2035-06-17",
                "2035-06-18",
                "2035-06-19",
                "2035-06-20",
                "2035-06-21",
                "2035-06-22",
                "2035-06-23",
                "2035-06-24",
                "2035-06-25",
                "2035-06-26",
                "2035-06-27",
                "2035-06-28",
                "2035-06-29",
                "2035-06-30"
            ],
            "precipitation_sum": [
                20.56,
                0.1,
                0,
                0,
                6.18,
                0.31,
                5.15,
                0.53,
                0,
                0.32,
                9.12,
                1.06,
                4.05,
                0,
                0,
                0,
                0,
                4.3,
                9.16,
                0.43,
                4.
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Models, variables, range & notes

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/climateprojections-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "Climate Projections serves daily, downscaled output from high-resolution CMIP6 global climate models for any location, from 1950 to 2050 — how temperature, precipitation, wind and humidity are projected to change under a warming climate. /v1/projection?lat=52.52&lon=13.41&from=2035-06-01&to=2035-06-30 returns the daily projection over a date range (up to 366 days); choose variables (variables=temperature_2m_max,precipitation_sum,…) and a climate model (model=EC_Earth3P_HR by default; also CMCC_CM2_VHR4, MRI_AGCM3_2_S, MPI_ESM1_2_XR, …). /v1/annual?lat=52.52&lon=13.41&from_year=2020&to_year=2050 returns per-year aggregates — annual mean temperature and total precipitation — perfect for visualising the warming trend at a place (up to 50 years). Coordinates are decimal degrees. Data from Open-Meteo (CC BY 4.0), based on CMIP6 HighResMIP models. A climate-projection resource — distinct from real-time weather forecasts, historical weather observations and Köppen climate classification. Ideal for climate, agriculture, planning, risk and sustainability applications.",
        "models": [
            "CMCC_CM2_VHR4",
            "FGOALS_f3_H",
            "HiRAM_SIT_HR",
            "MRI_AGCM3_2_S",
            "EC_Earth3P_HR",
            "MPI_ESM1_2_XR",
            "NICAM16_8S"
        ],
        "source": "Open-Meteo Climate API — CMIP6 downscaled climate projections (open-meteo.com)",
        "endpoints": [
            "/v1/project
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/climateprojections-api
OpenAPI spec: https://www.oanor.com/api/climateprojections-api/openapi.json
