{"openapi":"3.1.0","info":{"title":"Weather Calculator API","version":"1.0.0","description":"Meteorological formulas as an API — the derived weather figures, computed from your own readings, with no data feed or key needed. The wind-chill endpoint gives the \"feels like\" cold using the Environment Canada formula in metric (°C, km/h) or the US NWS formula in imperial (°F, mph), and flags when the reading is outside the valid range. The heat-index endpoint gives the apparent temperature from heat and humidity using the NWS Rothfusz regression with the standard low- and high-humidity adjustments. The dew-point endpoint uses the Magnus formula to turn temperature and relative humidity into the dew point, and also returns the vapour pressure and the absolute humidity. The beaufort endpoint maps a wind speed (m/s, km/h, mph or knots) to its Beaufort force and description, or a force back to its speed range. Everything is computed locally and deterministically, so it is instant and private. Ideal for weather apps and dashboards, agriculture and HVAC, marine and aviation, and outdoor and safety tools. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 5 endpoints. This computes weather formulas from your own readings; for live forecasts and observations use a weather data API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/weathercalc-api","description":"oanor gateway"}],"tags":[{"name":"Weather"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/beaufort":{"get":{"operationId":"get_v1_beaufort","tags":["Weather"],"summary":"Beaufort scale","description":"","parameters":[{"name":"speed","in":"query","required":false,"description":"Wind speed","schema":{"type":"string"},"example":"10"},{"name":"speed_unit","in":"query","required":false,"description":"m/s|km/h|mph|knots","schema":{"type":"string"},"example":"m/s"},{"name":"force","in":"query","required":false,"description":"Or a force 0-12","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"Fresh breeze","force":5,"speed":10,"speed_ms":10,"speed_unit":"m/s"},"meta":{"timestamp":"2026-06-03T17:42:11.282Z","request_id":"cbe8b71d-aa46-4815-9135-0c4a75e36521"},"status":"ok","message":"Beaufort","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/dew-point":{"get":{"operationId":"get_v1_dew_point","tags":["Weather"],"summary":"Dew point + humidity","description":"","parameters":[{"name":"temp","in":"query","required":true,"description":"Temperature","schema":{"type":"string"},"example":"25"},{"name":"humidity","in":"query","required":true,"description":"Relative humidity %","schema":{"type":"string"},"example":"50"},{"name":"unit","in":"query","required":false,"description":"metric|imperial","schema":{"type":"string"},"example":"metric"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"temp":25,"unit":"metric","humidity":50,"dew_point":13.86,"vapour_pressure_hpa":15.82,"absolute_humidity_g_m3":11.5},"meta":{"timestamp":"2026-06-03T17:42:11.393Z","request_id":"5d823395-b9d3-4021-9715-dd1bf787e9a8"},"status":"ok","message":"Dew point","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/heat-index":{"get":{"operationId":"get_v1_heat_index","tags":["Weather"],"summary":"Heat index (apparent temp)","description":"","parameters":[{"name":"temp","in":"query","required":true,"description":"Temperature","schema":{"type":"string"},"example":"32"},{"name":"humidity","in":"query","required":true,"description":"Relative humidity %","schema":{"type":"string"},"example":"70"},{"name":"unit","in":"query","required":false,"description":"metric|imperial","schema":{"type":"string"},"example":"metric"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Rothfusz regression","temp":32,"unit":"metric","humidity":70,"heat_index":40.41},"meta":{"timestamp":"2026-06-03T17:42:11.496Z","request_id":"8db58af5-8692-4f56-9d55-a6d1157add49"},"status":"ok","message":"Heat index","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/wind-chill":{"get":{"operationId":"get_v1_wind_chill","tags":["Weather"],"summary":"Wind chill (feels-like cold)","description":"","parameters":[{"name":"temp","in":"query","required":true,"description":"Temperature","schema":{"type":"string"},"example":"-10"},{"name":"wind","in":"query","required":true,"description":"Wind speed","schema":{"type":"string"},"example":"30"},{"name":"unit","in":"query","required":false,"description":"metric|imperial","schema":{"type":"string"},"example":"metric"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"within the valid range","temp":-10,"unit":"metric","wind":30,"applicable":true,"wind_chill":-19.52},"meta":{"timestamp":"2026-06-03T17:42:11.589Z","request_id":"8c4ad443-5c38-48fa-8ac1-db9a05e102ad"},"status":"ok","message":"Wind chill","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"Weather Calculator API","notes":"Wind chill: Environment Canada (metric) / NWS 2001 (imperial). Heat index: NWS Rothfusz. Dew point: Magnus (a=17.625, b=243.04°C). Nothing is stored.","version":"v1","endpoints":[{"path":"/v1/wind-chill","params":{"temp":"temperature","unit":"metric (°C,km/h) | imperial (°F,mph)","wind":"wind speed"},"returns":"the wind-chill temperature"},{"path":"/v1/heat-index","params":{"temp":"temperature","unit":"metric|imperial","humidity":"relative humidity %"},"returns":"the heat index (apparent temperature)"},{"path":"/v1/dew-point","params":{"temp":"temperature","unit":"metric|imperial","humidity":"relative humidity %"},"returns":"dew point, vapour pressure and absolute humidity"},{"path":"/v1/beaufort","params":{"force":"or a Beaufort force 0-12","speed":"wind speed","speed_unit":"m/s|km/h|mph|knots"},"returns":"the Beaufort force and description (or speed range)"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"Meteorological formulas as an API — the derived weather figures, computed from your own readings, with no data feed or key needed. The wind-chill endpoint gives the \"feels like\" cold using the Environment Canada formula in metric (°C, km/h) or the US NWS formula in imperial (°F, mph), and flags when it is outside the valid range. The heat-index endpoint gives the apparent temperature from heat and humidity using the NWS Rothfusz regression with the standard low- and high-humidity adjustments. The dew-point endpoint uses the Magnus formula to turn temperature and relative humidity into the dew point, and also returns the vapour pressure and absolute humidity. The beaufort endpoint maps a wind speed (m/s, km/h, mph or knots) to its Beaufort force and description, or a force back to its speed range. Everything is computed locally and deterministically, so it is instant and private. Ideal for weather apps and dashboards, agriculture and HVAC, marine and aviation, and outdoor and safety tools. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 5 endpoints. This computes weather formulas; for live forecasts and observations use a weather data API."},"meta":{"timestamp":"2026-06-03T17:42:11.691Z","request_id":"807d6395-70a3-4b25-b995-8368a93641de"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":6835,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":835,"monthly_call_quota":16350,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2825,"monthly_call_quota":214500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6625,"monthly_call_quota":1115000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/weathercalc-api"}