{"openapi":"3.1.0","info":{"title":"Site Climate","version":"1.0.0","description":"Solar, wind, rainfall and temperature normals for any coordinates, plus daylength, altitude effects and Koppen class. One call, one computed answer, no accounts or API keys. Machine-payable over x402.","x-guidance":"Site Climate: Solar, wind, rainfall and temperature normals for any coordinates, plus daylength, altitude effects and Koppen class. Site Climate: /solar-resource, /climate-normals, /degree-days, /wind-resource, /rainfall-pattern, /koppen-class, /daylength, /altitude-effects, /daily-history, /climate-compare Each paid GET returns a computed verdict with the reasons, the source and what was NOT checked. A verdict of UNVERIFIED means a lookup failed: treat it as unknown. No account or key: pay per call in USDC over x402."},"servers":[{"url":"https://site-climate.x402tookit.com"}],"paths":{"/altitude-effects":{"get":{"operationId":"altitude_effects","summary":"Elevation at a location and what it does: air pressure, boiling point of water, air density and oxygen versus sea level.","description":"Elevation at a location and what it does: air pressure, boiling point of water, air density and oxygen versus sea level.","tags":["elevation","altitude","pressure","boiling-point"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude, -90 to 90","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude, -180 to 180","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"latitude":{"type":["null","number"]},"longitude":{"type":["null","number"]},"elevationM":{"type":["null","number"]},"elevationFt":{"type":["null","number"]},"elevationSource":{"type":["null","string"]},"nasaGridElevationM":{"type":["null","number"]},"pressureKpa":{"type":["null","number"]},"oxygenAvailabilityPct":{"type":["null","number"]},"boilingPointWaterC":{"type":["null","number"]},"boilingPointWaterF":{"type":["null","number"]},"airDensityKgM3":{"type":["null","number"]},"isaTemperatureC":{"type":["null","number"]},"attribution":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"Elevation about 1596 m (USGS terrain model): pressure 83.6 kPa (82% of sea level), water boils near 94.7 C, air density 1.048 kg/m3.","reasons":["Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","Elevation from the USGS 3D Elevation Program point service (US public-domain data).","…1 more"],"latitude":39.74,"longitude":-104.99,"elevationM":1595.9,"elevationFt":5236,"elevationSource":"USGS 3DEP point query","nasaGridElevationM":2095,"pressureKpa":83.57,"oxygenAvailabilityPct":82,"boilingPointWaterC":94.71,"boilingPointWaterF":202.5,"airDensityKgM3":1.048,"isaTemperatureC":4.627,"attribution":"Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","degraded":false,"notChecked":["weather: real pressure moves a few percent with the weather, and the boiling point with it","ground elevation outside the United States: there the figure is the average height of a roughly 50 km NASA grid cell, which can be hundreds of metres off in mountains","…2 more"],"source":"NASA POWER and USGS 3DEP","sourceUrl":"https://power.larc.nasa.gov/","asOf":"2026-10-11T14:45:34.338Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0300"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/altitude-effects"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/altitude-effects"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/altitude-effects"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/altitude-effects"}}]}}},"/climate-compare":{"get":{"operationId":"climate_compare","summary":"Compare the climate of two places by coordinates: temperature, rainfall, sunshine, wind, humidity and Koppen class side by side.","description":"Compare the climate of two places by coordinates: temperature, rainfall, sunshine, wind, humidity and Koppen class side by side.","tags":["climate","compare","relocation","site-selection"],"parameters":[{"name":"lat1","in":"query","required":true,"description":"First place latitude","schema":{"type":"number"}},{"name":"lon1","in":"query","required":true,"description":"First place longitude","schema":{"type":"number"}},{"name":"lat2","in":"query","required":true,"description":"Second place latitude","schema":{"type":"number"}},{"name":"lon2","in":"query","required":true,"description":"Second place longitude","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"first":{"type":["null","object"],"properties":{"latitude":{"type":["null","number"]},"longitude":{"type":["null","number"]},"elevationM":{"type":["null","number"]},"meanTempC":{"type":["null","number"]},"coldestMonthC":{"type":["null","number"]},"warmestMonthC":{"type":["null","number"]},"rainfallMm":{"type":["null","number"]},"peakSunHours":{"type":["null","number"]},"windMs10m":{"type":["null","number"]},"humidityPct":{"type":["null","number"]},"koppen":{"type":["null","string"]}}},"second":{"type":["null","object"],"properties":{"latitude":{"type":["null","number"]},"longitude":{"type":["null","number"]},"elevationM":{"type":["null","number"]},"meanTempC":{"type":["null","number"]},"coldestMonthC":{"type":["null","number"]},"warmestMonthC":{"type":["null","number"]},"rainfallMm":{"type":["null","number"]},"peakSunHours":{"type":["null","number"]},"windMs10m":{"type":["null","number"]},"humidityPct":{"type":["null","number"]},"koppen":{"type":["null","string"]}}},"difference":{"type":["null","object"],"properties":{"meanTempC":{"type":["null","number"]},"rainfallMm":{"type":["null","number"]},"peakSunHours":{"type":["null","number"]},"windMs10m":{"type":["null","number"]},"humidityPct":{"type":["null","number"]}}},"warmer":{"type":["null","string"]},"wetter":{"type":["null","string"]},"sunnier":{"type":["null","string"]},"windier":{"type":["null","string"]},"attribution":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"DIFFERENT_CLIMATE_CLASS","summary":"First: 11.01 C, 986 mm, 3.86 sun hours (Dfa). Second: 22.35 C, 256 mm, 5.85 sun hours (BWh). The second is warmer by 11.3 C; the first is wetter; the second is sunnier.","reasons":["Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","Differences are first minus second.","…1 more"],"first":{"latitude":40,"longitude":-83,"elevationM":292,"meanTempC":11.01,"coldestMonthC":-2.62,"warmestMonthC":23.41,"rainfallMm":986,"peakSunHours":3.86,"windMs10m":4.26,"humidityPct":78,"koppen":"Dfa"},"second":{"latitude":33.45,"longitude":-112.07,"elevationM":494,"meanTempC":22.35,"coldestMonthC":10.98,"warmestMonthC":33.91,"rainfallMm":256,"peakSunHours":5.85,"windMs10m":3,"humidityPct":33,"koppen":"BWh"},"difference":{"meanTempC":-11.34,"rainfallMm":730,"peakSunHours":-1.99,"windMs10m":1.26,"humidityPct":45},"warmer":"second","wetter":"first","sunnier":"second","windier":"first","attribution":"Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","degraded":false,"notChecked":["microclimate, urban heat and elevation differences inside each roughly 50 km grid cell","extreme weather, air quality, cost of living or anything that is not a 2001-2025 average"],"source":"NASA POWER","sourceUrl":"https://power.larc.nasa.gov/","asOf":"2026-10-11T14:45:35.196Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0500"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/climate-compare"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/climate-compare"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/climate-compare"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/climate-compare"}}]}}},"/climate-normals":{"get":{"operationId":"climate_normals","summary":"Monthly average temperature, rainfall, humidity and wind for any coordinates, with hottest, coldest and wettest months.","description":"Monthly average temperature, rainfall, humidity and wind for any coordinates, with hottest, coldest and wettest months.","tags":["climate","temperature","rainfall","normals"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude, -90 to 90","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude, -180 to 180","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"latitude":{"type":["null","number"]},"longitude":{"type":["null","number"]},"gridElevationM":{"type":["null","number"]},"annualMeanTempC":{"type":["null","number"]},"annualRainfallMm":{"type":["null","number"]},"hottestMonth":{"type":["null","string"]},"coldestMonth":{"type":["null","string"]},"wettestMonth":{"type":["null","string"]},"driestMonth":{"type":["null","string"]},"temperatureRangeC":{"type":["null","number"]},"months":{"type":["array","null"],"items":{"type":"object","properties":{"month":{"type":["null","string"]},"meanTempC":{"type":["null","number"]},"rainfallMm":{"type":["null","number"]},"humidityPct":{"type":["null","number"]},"windMs10m":{"type":["null","number"]}}}},"period":{"type":["null","string"]},"attribution":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"NORMALS","summary":"Mean 11 C a year (January -2.6 to July 23.4), about 986 mm of rain (wettest May, driest February), average wind 4.3 m/s.","reasons":["Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","Temperatures are monthly means of the daily average at 2 m, rainfall is the bias-corrected monthly total, wind is at 10 m.","…1 more"],"latitude":40,"longitude":-83,"gridElevationM":291.64,"annualMeanTempC":11.01,"annualRainfallMm":986,"hottestMonth":"July","coldestMonth":"January","wettestMonth":"May","driestMonth":"February","temperatureRangeC":26.03,"months":[{"month":"January","meanTempC":-2.62,"rainfallMm":65,"humidityPct":85,"windMs10m":5.23},{"month":"February","meanTempC":-1.42,"rainfallMm":62,"humidityPct":84,"windMs10m":5.12}],"period":"25-year Meteorological and Solar Monthly & Annual Climatologies (January 2001 - December 2025)","attribution":"Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","degraded":false,"notChecked":["microclimate: city, hill, lake and coastal effects finer than the roughly 50 km grid","weather on any given day or year-to-year swings","…1 more"],"source":"NASA POWER","sourceUrl":"https://power.larc.nasa.gov/","asOf":"2026-10-11T14:45:35.449Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/climate-normals"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/climate-normals"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/climate-normals"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/climate-normals"}}]}}},"/daily-history":{"get":{"operationId":"daily_history","summary":"Daily weather history for a location and date range (up to a year): temperature, rain, wind, sunlight and summary stats.","description":"Daily weather history for a location and date range (up to a year): temperature, rain, wind, sunlight and summary stats.","tags":["weather-history","daily","temperature","rainfall"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude, -90 to 90","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude, -180 to 180","schema":{"type":"number"}},{"name":"start","in":"query","required":true,"description":"First day, YYYY-MM-DD (1984 or later)","schema":{"type":"string"}},{"name":"end","in":"query","required":true,"description":"Last day, YYYY-MM-DD, within 366 days of the start","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"latitude":{"type":["null","number"]},"longitude":{"type":["null","number"]},"start":{"type":["null","string"]},"end":{"type":["null","string"]},"days":{"type":["null","number"]},"daysWithData":{"type":["null","number"]},"daysMissing":{"type":["null","number"]},"meanTempC":{"type":["null","number"]},"hottestDayMaxC":{"type":["null","number"]},"hottestDate":{"type":["null","string"]},"coldestDayMinC":{"type":["null","number"]},"coldestDate":{"type":["null","string"]},"totalRainfallMm":{"type":["null","number"]},"rainyDays":{"type":["null","number"]},"wettestDay":{"type":["null","object"],"properties":{"date":{"type":["null","string"]},"mm":{"type":["null","number"]}}},"meanWindMs10m":{"type":["null","number"]},"meanSunlightKwhM2Day":{"type":["null","number"]},"daysAbove30C":{"type":["null","number"]},"daysBelowFreezing":{"type":["null","number"]},"attribution":{"type":["null","string"]},"daily":{"type":["array","null"],"items":{"type":"object","properties":{"date":{"type":["null","string"]},"meanC":{"type":["null","number"]},"maxC":{"type":["null","number"]},"minC":{"type":["null","number"]},"rainMm":{"type":["null","number"]},"windMs":{"type":["null","number"]},"sunKwhM2":{"type":["null","number"]}}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"HISTORY","summary":"2024-01-01 to 2024-01-31: mean -2.2 C (high 12.5, low -16.3), 107.6 mm of rain on 11 rainy day(s).","reasons":["Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","Every requested day has data.","…1 more"],"latitude":40,"longitude":-83,"start":"2024-01-01","end":"2024-01-31","days":31,"daysWithData":31,"daysMissing":0,"meanTempC":-2.198,"hottestDayMaxC":12.53,"hottestDate":"2024-01-26","coldestDayMinC":-16.35,"coldestDate":"2024-01-15","totalRainfallMm":107.6,"rainyDays":11,"wettestDay":{"date":"2024-01-09","mm":31},"meanWindMs10m":5,"meanSunlightKwhM2Day":1.27,"daysAbove30C":0,"daysBelowFreezing":26,"attribution":"Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","daily":[{"date":"2024-01-01","meanC":-0.72,"maxC":3.72,"minC":-3.41,"rainMm":0.33,"windMs":3.95,"sunKwhM2":0.7886},{"date":"2024-01-02","meanC":-1.48,"maxC":3.55,"minC":-4.08,"rainMm":0.01,"windMs":3.93,"sunKwhM2":1.0661}],"degraded":false,"notChecked":["station-measured weather: these are satellite and reanalysis values for a roughly 50 km grid cell, not a weather station reading","the last few days before today, which are usually still missing and are counted as missing, not as zero","…2 more"],"source":"NASA POWER","sourceUrl":"https://power.larc.nasa.gov/","asOf":"2026-10-11T14:45:36.305Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0500"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/daily-history"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/daily-history"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/daily-history"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/daily-history"}}]}}},"/daylength":{"get":{"operationId":"daylength","summary":"Day length, sunrise, sunset (UTC) and solar noon for a latitude, longitude and date, including polar day and night.","description":"Day length, sunrise, sunset (UTC) and solar noon for a latitude, longitude and date, including polar day and night.","tags":["daylength","sunrise","sunset","solar-noon"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude, -90 to 90","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude, -180 to 180","schema":{"type":"number"}},{"name":"date","in":"query","required":true,"description":"Date as YYYY-MM-DD","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"date":{"type":["null","string"]},"latitude":{"type":["null","number"]},"longitude":{"type":["null","number"]},"daylengthHours":{"type":["null","number"]},"daylengthHm":{"type":["null","string"]},"sunriseUtc":{"type":["null","string"]},"solarNoonUtc":{"type":["null","string"]},"sunsetUtc":{"type":["null","string"]},"solarDeclinationDeg":{"type":["null","number"]},"dayOfYear":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"2026-06-21 at 40, -83: 15 h 1 min of daylight; sunrise 10:03 UTC, solar noon 17:33 UTC, sunset 01:04 UTC.","reasons":["Computed with the NOAA solar position approximation; sunrise is when the sun's centre is 0.833 degrees below the horizon.","Times are UTC and may fall on the previous or next UTC date for far-east or far-west longitudes."],"date":"2026-06-21","latitude":40,"longitude":-83,"daylengthHours":15.017,"daylengthHm":"15h 01m","sunriseUtc":"10:03","solarNoonUtc":"17:33","sunsetUtc":"01:04","solarDeclinationDeg":23.45,"dayOfYear":172,"degraded":false,"notChecked":["your local time zone and daylight saving: times are UTC, so add your offset","terrain, buildings and atmospheric conditions that move the visible sunrise","…2 more"],"source":"computed locally","asOf":"2026-10-11T14:45:36.556Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/daylength"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/daylength"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/daylength"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/daylength"}}]}}},"/degree-days":{"get":{"operationId":"degree_days","summary":"Estimated heating and cooling degree days by month for a location from NASA temperature normals, in Celsius and Fahrenheit.","description":"Estimated heating and cooling degree days by month for a location from NASA temperature normals, in Celsius and Fahrenheit.","tags":["degree-days","hvac","heating","cooling"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude, -90 to 90","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude, -180 to 180","schema":{"type":"number"}},{"name":"baseTempC","in":"query","required":false,"description":"Balance-point temperature in C, default 18.3 (65 F)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"latitude":{"type":["null","number"]},"longitude":{"type":["null","number"]},"baseTempC":{"type":["null","number"]},"annualHddC":{"type":["null","number"]},"annualCddC":{"type":["null","number"]},"annualHddF":{"type":["null","number"]},"annualCddF":{"type":["null","number"]},"dominant":{"type":["null","string"]},"months":{"type":["array","null"],"items":{"type":"object","properties":{"month":{"type":["null","string"]},"meanTempC":{"type":["null","number"]},"hddC":{"type":["null","number"]},"cddC":{"type":["null","number"]}}}},"attribution":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"ESTIMATE","summary":"About 3085 heating and 422 cooling degree-days C a year (5553 HDD and 760 CDD in Fahrenheit) at a 18.3 C base; heating dominates.","reasons":["Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","Estimated from monthly mean temperatures x days in the month, so treat them as a lower bound for real daily-based totals.","…1 more"],"latitude":40,"longitude":-83,"baseTempC":18.3,"annualHddC":3085,"annualCddC":422,"annualHddF":5553,"annualCddF":760,"dominant":"heating","months":[{"month":"January","meanTempC":-2.6,"hddC":649,"cddC":0},{"month":"February","meanTempC":-1.4,"hddC":557,"cddC":0}],"attribution":"Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","degraded":false,"notChecked":["daily temperature swings: degree days from MONTHLY means understate the true totals, especially in shoulder months, because a cold night and a warm afternoon both count in real degree-day sums","your building's real balance point and any utility's own degree-day figures","…1 more"],"source":"NASA POWER","sourceUrl":"https://power.larc.nasa.gov/","asOf":"2026-10-11T14:45:36.820Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/degree-days"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/degree-days"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/degree-days"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/degree-days"}}]}}},"/koppen-class":{"get":{"operationId":"koppen_class","summary":"Koppen-Geiger climate class (such as Cfa or BSk) for a location, computed from its monthly temperature and rainfall normals.","description":"Koppen-Geiger climate class (such as Cfa or BSk) for a location, computed from its monthly temperature and rainfall normals.","tags":["koppen","climate-zone","classification","geography"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude, -90 to 90","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude, -180 to 180","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"latitude":{"type":["null","number"]},"longitude":{"type":["null","number"]},"koppenCode":{"type":["null","string"]},"description":{"type":["null","string"]},"firstLetter":{"type":["null","string"]},"meanAnnualTempC":{"type":["null","number"]},"annualRainfallMm":{"type":["null","number"]},"coldestMonthC":{"type":["null","number"]},"warmestMonthC":{"type":["null","number"]},"aridityThresholdMm":{"type":["null","number"]},"attribution":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"CLASSIFIED","summary":"Koppen-Geiger class Dfa: Continental, no dry season, hot summer (mean 10.95 C, 986 mm a year, coldest month -2.62 C, warmest 23.41 C).","reasons":["Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","Rules follow the standard Koppen-Geiger scheme: E by warmest month under 10 C, B by the aridity threshold, A by coldest month at 18 C or above, then C or D by coldest month versus 0 C.","…1 more"],"latitude":40,"longitude":-83,"koppenCode":"Dfa","description":"Continental, no dry season, hot summer","firstLetter":"D","meanAnnualTempC":10.95,"annualRainfallMm":986,"coldestMonthC":-2.62,"warmestMonthC":23.41,"aridityThresholdMm":35.9,"attribution":"Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","degraded":false,"notChecked":["published Koppen maps: classes here are computed from a 25-year, roughly 50 km grid and can differ from the standard 1991-2020 maps near zone boundaries","elevation and microclimate within the grid cell","…1 more"],"source":"NASA POWER","sourceUrl":"https://power.larc.nasa.gov/","asOf":"2026-10-11T14:45:37.072Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/koppen-class"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/koppen-class"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/koppen-class"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/koppen-class"}}]}}},"/rainfall-pattern":{"get":{"operationId":"rainfall_pattern","summary":"Monthly rainfall totals for a location, wettest and driest months, and how seasonal the rain is (Walsh-Lawler index).","description":"Monthly rainfall totals for a location, wettest and driest months, and how seasonal the rain is (Walsh-Lawler index).","tags":["rainfall","precipitation","seasonality","wet-season"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude, -90 to 90","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude, -180 to 180","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"latitude":{"type":["null","number"]},"longitude":{"type":["null","number"]},"annualRainfallMm":{"type":["null","number"]},"aridityClass":{"type":["null","string"]},"wettestMonth":{"type":["null","string"]},"driestMonth":{"type":["null","string"]},"wetMonths":{"type":["array","null"],"items":{"type":"string"}},"dryMonths":{"type":["array","null"]},"seasonalityIndex":{"type":["null","number"]},"seasonalityClass":{"type":["null","string"]},"monthlyMm":{"type":["null","object"],"properties":{"January":{"type":["null","number"]},"February":{"type":["null","number"]},"March":{"type":["null","number"]},"April":{"type":["null","number"]},"May":{"type":["null","number"]},"June":{"type":["null","number"]},"July":{"type":["null","number"]},"August":{"type":["null","number"]},"September":{"type":["null","number"]},"October":{"type":["null","number"]},"November":{"type":["null","number"]},"December":{"type":["null","number"]}}},"attribution":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"MODERATE","summary":"986 mm a year (moderate); wettest May 105 mm, driest February 62 mm; seasonality index 0.14: spread throughout the year.","reasons":["Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","Seasonality index SI = sum of |monthly - average month| / annual total (Walsh and Lawler 1981); 0 is perfectly even.","…1 more"],"latitude":40,"longitude":-83,"annualRainfallMm":986,"aridityClass":"moderate","wettestMonth":"May","driestMonth":"February","wetMonths":["May","June"],"dryMonths":[],"seasonalityIndex":0.143,"seasonalityClass":"spread throughout the year","monthlyMm":{"January":65,"February":62,"March":85,"April":95,"May":105,"June":104,"July":93,"August":78,"September":77,"October":77,"November":71,"December":74},"attribution":"Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","degraded":false,"notChecked":["extreme storms, drought years and floods: this is an average","snowfall water-equivalent accuracy in cold regions (satellite-blended precipitation is weakest there)","…1 more"],"source":"NASA POWER","sourceUrl":"https://power.larc.nasa.gov/","asOf":"2026-10-11T14:45:37.323Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/rainfall-pattern"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/rainfall-pattern"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/rainfall-pattern"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/rainfall-pattern"}}]}}},"/solar-resource":{"get":{"operationId":"solar_resource","summary":"Monthly sunlight (peak sun hours) at a latitude and longitude, resource class, and optional solar PV yield for a system size.","description":"Monthly sunlight (peak sun hours) at a latitude and longitude, resource class, and optional solar PV yield for a system size.","tags":["solar","pv","irradiance","peak-sun-hours"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude, -90 to 90","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude, -180 to 180","schema":{"type":"number"}},{"name":"systemKw","in":"query","required":false,"description":"PV system size in kW, for a yield estimate","schema":{"type":"number"}},{"name":"performanceRatio","in":"query","required":false,"description":"System losses factor 0.5 to 0.95 (default 0.75)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"latitude":{"type":["null","number"]},"longitude":{"type":["null","number"]},"gridElevationM":{"type":["null","number"]},"annualPeakSunHours":{"type":["null","number"]},"monthlyPeakSunHours":{"type":["null","object"],"properties":{"January":{"type":["null","number"]},"February":{"type":["null","number"]},"March":{"type":["null","number"]},"April":{"type":["null","number"]},"May":{"type":["null","number"]},"June":{"type":["null","number"]},"July":{"type":["null","number"]},"August":{"type":["null","number"]},"September":{"type":["null","number"]},"October":{"type":["null","number"]},"November":{"type":["null","number"]},"December":{"type":["null","number"]}}},"bestMonth":{"type":["null","string"]},"worstMonth":{"type":["null","string"]},"bestToWorstRatio":{"type":["null","number"]},"resourceClass":{"type":["null","string"]},"period":{"type":["null","string"]},"attribution":{"type":["null","string"]},"unit":{"type":["null","string"]},"pvEstimate":{"type":["null","object"],"properties":{"systemKw":{"type":["null","number"]},"performanceRatio":{"type":["null","number"]},"annualKwh":{"type":["null","number"]},"averageKwhPerDay":{"type":["null","number"]},"monthlyKwh":{"type":["null","object"],"properties":{"January":{"type":["null","number"]},"February":{"type":["null","number"]},"March":{"type":["null","number"]},"April":{"type":["null","number"]},"May":{"type":["null","number"]},"June":{"type":["null","number"]},"July":{"type":["null","number"]},"August":{"type":["null","number"]},"September":{"type":["null","number"]},"October":{"type":["null","number"]},"November":{"type":["null","number"]},"December":{"type":["null","number"]}}},"kwhPerKwYear":{"type":["null","number"]}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"MODERATE","summary":"3.86 peak sun hours a day on average (moderate resource); best June 6.1, worst December 1.4. A 6 kW system at 0.75 performance ratio would make about 6,347 kWh a year.","reasons":["Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","Peak sun hours are the daily kWh/m2 of sunlight, equivalent to hours at 1 kW/m2; yield = kW x sun hours x performance ratio.","…1 more"],"latitude":40,"longitude":-83,"gridElevationM":291.64,"annualPeakSunHours":3.862,"monthlyPeakSunHours":{"January":1.604,"February":2.442,"March":3.439,"April":4.713,"May":5.551,"June":6.119,"July":6.106,"August":5.491,"September":4.439,"October":2.981,"November":2.028,"December":1.362},"bestMonth":"June","worstMonth":"December","bestToWorstRatio":4.49,"resourceClass":"MODERATE","period":"25-year Meteorological and Solar Monthly & Annual Climatologies (January 2001 - December 2025)","attribution":"Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","unit":"kWh/m2/day on a horizontal surface, equal to peak sun hours","pvEstimate":{"systemKw":6,"performanceRatio":0.75,"annualKwh":6347,"averageKwhPerDay":17.4,"monthlyKwh":{"January":224,"February":310,"March":480,"April":636,"May":774,"June":826,"July":852,"August":766,"September":599,"October":416,"November":274,"December":190},"kwhPerKwYear":1058},"degraded":false,"notChecked":["shading, roof tilt and orientation: the data is irradiance on a flat horizontal surface, and tilted or tracking arrays usually collect more","local cloud or smoke patterns finer than the roughly 50 km grid","…2 more"],"source":"NASA POWER","sourceUrl":"https://power.larc.nasa.gov/","asOf":"2026-10-11T14:45:37.650Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/solar-resource"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/solar-resource"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/solar-resource"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/solar-resource"}}]}}},"/wind-resource":{"get":{"operationId":"wind_resource","summary":"Average wind speed at 10 m scaled to a turbine hub height, with approximate wind power density and NREL class for a location.","description":"Average wind speed at 10 m scaled to a turbine hub height, with approximate wind power density and NREL class for a location.","tags":["wind","turbine","power-density","renewable"],"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude, -90 to 90","schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"description":"Longitude, -180 to 180","schema":{"type":"number"}},{"name":"hubHeightM","in":"query","required":false,"description":"Hub height in metres, 10 to 200 (default 80)","schema":{"type":"number"}},{"name":"shearExponent","in":"query","required":false,"description":"Power-law exponent, 0.1 to 0.4 (default 0.143, open terrain)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"latitude":{"type":["null","number"]},"longitude":{"type":["null","number"]},"meanWind10mMs":{"type":["null","number"]},"meanWindHubMs":{"type":["null","number"]},"hubHeightM":{"type":["null","number"]},"shearExponent":{"type":["null","number"]},"powerDensityHubWm2":{"type":["null","number"]},"powerDensity50mWm2":{"type":["null","number"]},"nrelClass50m":{"type":["null","number"]},"windiestMonth":{"type":["null","string"]},"calmestMonth":{"type":["null","string"]},"monthlyHubMs":{"type":["null","object"],"properties":{"January":{"type":["null","number"]},"February":{"type":["null","number"]},"March":{"type":["null","number"]},"April":{"type":["null","number"]},"May":{"type":["null","number"]},"June":{"type":["null","number"]},"July":{"type":["null","number"]},"August":{"type":["null","number"]},"September":{"type":["null","number"]},"October":{"type":["null","number"]},"November":{"type":["null","number"]},"December":{"type":["null","number"]}}},"attribution":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"WEAK","summary":"Mean wind 4.3 m/s at 10 m scales to 5.7 m/s at 80 m (power density about 221 W/m2); NREL class 1 at 50 m (poor for utility scale).","reasons":["Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","Power law v(h) = v10 x (h/10)^0.143; power density = 0.5 x 1.225 x (6/pi) x v^3, assuming a Rayleigh distribution.","…1 more"],"latitude":40,"longitude":-83,"meanWind10mMs":4.26,"meanWindHubMs":5.735,"hubHeightM":80,"shearExponent":0.143,"powerDensityHubWm2":221,"powerDensity50mWm2":180,"nrelClass50m":1,"windiestMonth":"January","calmestMonth":"August","monthlyHubMs":{"January":7.04,"February":6.89,"March":6.73,"April":6.79,"May":5.52,"June":4.85,"July":4.16,"August":4.08,"September":4.55,"October":5.68,"November":6.17,"December":6.45},"attribution":"Data: NASA Langley Research Center POWER Project (power.larc.nasa.gov), funded through the NASA Earth Science Directorate Applied Science Program.","degraded":false,"notChecked":["actual terrain, trees and buildings: the power-law shear exponent is a stand-in, and real shear varies with surface roughness and stability","local turbulence, gusts and extreme winds that decide turbine siting and safety","…2 more"],"source":"NASA POWER","sourceUrl":"https://power.larc.nasa.gov/","asOf":"2026-10-11T14:45:37.915Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/wind-resource"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/wind-resource"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/wind-resource"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://site-climate.x402tookit.com/wind-resource"}}]}}}}}