{"openapi":"3.1.0","info":{"title":"Documentation for your Free plan","description":"\n\n<div id=\"interactive-only\">\n\nThis interactive documentation lets you try real API requests. Select an endpoint on the left and read its description for details about the available parameters. Click `Test Request` to open the interactive API client, fill in the parameters, and press `Send` to view a full API response. You can then inspect the JSON response, copy the `curl` command to run it on your machine, or obtain a URL of the request.\n\n</div>\n\nThe Meteosource API is a RESTful API. Requests are made with `GET` and query parameters; responses are JSON-encoded, except where noted (e.g. the weather map endpoints return `image/png`).\n\n### Base URL\nThe base URL for this documentation is `https://www.meteosource.com/api/v1/free`.\n\n### Authentication\nRequests are authenticated with your unique API key, supplied in one of these ways:\n* the `key` query parameter\n* the `X-API-Key` header\n* the `Authorization: Bearer <key>` header\n\nSpecifying the `key` query parameter together with either header is rejected with a `403` error, as is specifying none of them. If both headers are present, `X-API-Key` takes precedence and `Authorization` is ignored. You can find and manage your API key in [your dashboard](https://www.meteosource.com/client).\n\n### Errors\nThe API returns standard HTTP status codes. Error responses include a JSON body with a `detail` field describing the problem:\n```json\n{ \"detail\": \"explanation of what went wrong\" }\n```\nCommon error codes: `400` (invalid parameter), `402` (daily request limit exceeded), `403` (API key missing, invalid, or specified twice), `429` (per-minute rate limit exceeded).\n\n### Pagination\nThe Meteosource API does not use pagination - all results for a request are returned at once.\n\n### Important notes\n\n* For a detailed description of the response variables, consult the response `Schema`\n* Don't assume a fixed set or order of variables and sections - new ones may be added over time. Always check a field is present before using it.\n* The response includes an `Expires` header marking when the data will next change. Use it to avoid unnecessary requests and improve your app's performance.\n* HTTP compression is supported - add an `Accept-Encoding: gzip` header to enable it.\n","version":"v1"},"servers":[{"url":"https://www.meteosource.com/api/v1/free"}],"paths":{"/point":{"get":{"tags":["Weather"],"summary":"Get weather data","description":"Get current weather and forecast data for a single location (specified either by geographic coordinates or by a place ID).\n\n### Sections\nThe response is split into following sections (request only the ones you need for the best performance):\n\n* `current`: Current weather situation\n* `hourly`: Hourly forecast (24 hours)\n* `daily`: Daily forecast (7 days)\n\nBy default, only the current and hourly sections are returned. See the parameter list below for how to request each section.\n\n### Notes\n* Variables can be instantaneous, averaged, or accumulated over certain time. For example, `precipitation` forecast provides the precipitation accumulated until the next hour (data with timestamp as `12:00:00` is rain accumulated from `12:00:00` to `13:00:00`).","operationId":"point_point_get","security":[{"APIKeyHeader":[]},{"AuthorizationHeader":[]}],"parameters":[{"name":"place_id","in":"query","required":false,"schema":{"type":"string","description":"Identifier of a place. To obtain the `place_id` for the location you want, please use endpoints `/find_places_prefix` (search by prefix) or `/find_places` (search by full name)."},"description":"Identifier of a place. To obtain the `place_id` for the location you want, please use endpoints `/find_places_prefix` (search by prefix) or `/find_places` (search by full name)."},{"name":"lat","in":"query","required":false,"schema":{"type":"string","description":"Latitude in format 12N, 12.3N, 12.3, or 13S, 13.2S, -13.4"},"description":"Latitude in format 12N, 12.3N, 12.3, or 13S, 13.2S, -13.4"},{"name":"lon","in":"query","required":false,"schema":{"type":"string","description":"Longitude in format 12E, 12.3E, 12.3, or 13W, 13.2W, -13.4"},"description":"Longitude in format 12E, 12.3E, 12.3, or 13W, 13.2W, -13.4"},{"name":"sections","in":"query","required":false,"schema":{"type":"string","description":"Sections to be included in the response. You can specify more section by separating the values with a comma. The available values are:\n\n* ``current``: Current weather situation\n* ``daily``: Forecasts for each whole day\n* ``hourly``: Forecasts with hourly resolution\n* ``all``: All sections\n","default":"current,hourly"},"description":"Sections to be included in the response. You can specify more section by separating the values with a comma. The available values are:\n\n* ``current``: Current weather situation\n* ``daily``: Forecasts for each whole day\n* ``hourly``: Forecasts with hourly resolution\n* ``all``: All sections\n"},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","description":"Timezone to be used for the date fields. If not specified, local timezone of the forecast location will be used.\nThe format is according to the tzinfo database, so values like `Europe/Prague` or `UTC` can be used.\nAlternatively you may use the value ``auto`` in which case the local timezone of the location is used.\nThe full list of valid timezone strings can be found [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List).\n"},"description":"Timezone to be used for the date fields. If not specified, local timezone of the forecast location will be used.\nThe format is according to the tzinfo database, so values like `Europe/Prague` or `UTC` can be used.\nAlternatively you may use the value ``auto`` in which case the local timezone of the location is used.\nThe full list of valid timezone strings can be found [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List).\n"},{"name":"language","in":"query","required":false,"schema":{"type":"string","enum":["en"],"description":"The language of text summaries and place names (variable names are never translated). For the free tier,\nonly ``en`` (English) is available.\n","default":"en"},"description":"The language of text summaries and place names (variable names are never translated). For the free tier,\nonly ``en`` (English) is available.\n"},{"name":"units","in":"query","required":false,"schema":{"type":"string","enum":["auto","metric","us","uk","ca"],"x-enumDescriptions":{"auto":"Select the system automatically, based on the forecast location.","ca":"Same as `metric`, except that wind speeds are in `km/h` and pressure is in `kPa`.","metric":"Metric (SI) units (`°C`, `mm/h`, `m/s`, `cm`, `km`, `hPa`).","uk":"Same as `metric`, except that visibility is in `miles` and wind speeds are in `mph`.","us":"Imperial units (`°F`, `in/h`, `mph`, `in`, `mi`, `Hg`)."},"description":"Unit system to be used.\n","default":"auto"},"description":"Unit system to be used.\n"},{"name":"key","in":"query","required":false,"schema":{"type":"string","description":"Your unique API key. You can either specify it in this parameter, or set it in `X-API-Key` header."},"description":"Your unique API key. You can either specify it in this parameter, or set it in `X-API-Key` header."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Point_PointData"},{"type":"null"}]}}}},"400":{"description":"Error in passed parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"403":{"description":"API key not specified or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"402":{"description":"Maximum requests per day limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"429":{"description":"Maximum requests per minute limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/find_places":{"get":{"tags":["Locations"],"summary":"Search for places","description":"You can use this endpoint to obtain `place_id` of the location you want, to be used in the [Weather](#tag/weather) endpoints.\nThe response also contains detailed information about the location, such as coordinates, timezone and the country the place belongs to.\n\nUnlike the [Search for places by prefix](#tag/locations/GET/find_places_prefix) endpoint, complete words are required here. You can search for cities,\nmountains, lakes, countries, ZIP codes, etc. The response can contain multiple places, sorted by relevance.\nYou can then identify the one you want by coordinates, country, or the administrative area.","operationId":"find_places_find_places_get","security":[{"APIKeyHeader":[]},{"AuthorizationHeader":[]}],"parameters":[{"name":"text","in":"query","required":true,"schema":{"type":"string","description":"Place name or ZIP code"},"description":"Place name or ZIP code"},{"name":"language","in":"query","required":false,"schema":{"type":"string","enum":["en"],"description":"The language of text summaries and place names (variable names are never translated). For the free tier,\nonly ``en`` (English) is available.\n","default":"en"},"description":"The language of text summaries and place names (variable names are never translated). For the free tier,\nonly ``en`` (English) is available.\n"},{"name":"key","in":"query","required":false,"schema":{"type":"string","description":"Your unique API key. You can either specify it in this parameter, or set it in `X-API-Key` header."},"description":"Your unique API key. You can either specify it in this parameter, or set it in `X-API-Key` header."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FindPlacesModel"}}}}},"400":{"description":"Error in passed parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"403":{"description":"API key not specified or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"402":{"description":"Maximum requests per day limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"429":{"description":"Maximum requests per minute limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/find_places_prefix":{"get":{"tags":["Locations"],"summary":"Search for places by prefix","description":"You can use this endpoint to obtain `place_id` of the location you want, to be used in the [Weather](#tag/weather) endpoints.\nThe response also contains detailed information about the location, such as coordinates, timezone and the country the place belongs to.\n\nUnlike the [Search for places](#tag/locations/GET/find_places) endpoint, you should only specify the prefix of the place you are looking for. This is particularly useful for autocomplete forms. You can search for cities, mountains, lakes, countries, ZIP codes, etc. The response can contain multiple places, sorted by relevance. You can then identify the one you want by coordinates, country, or the administrative area.","operationId":"find_places_prefix_find_places_prefix_get","security":[{"APIKeyHeader":[]},{"AuthorizationHeader":[]}],"parameters":[{"name":"text","in":"query","required":true,"schema":{"type":"string","description":"Place name or ZIP code"},"description":"Place name or ZIP code"},{"name":"language","in":"query","required":false,"schema":{"type":"string","enum":["en"],"description":"The language of text summaries and place names (variable names are never translated). For the free tier,\nonly ``en`` (English) is available.\n","default":"en"},"description":"The language of text summaries and place names (variable names are never translated). For the free tier,\nonly ``en`` (English) is available.\n"},{"name":"key","in":"query","required":false,"schema":{"type":"string","description":"Your unique API key. You can either specify it in this parameter, or set it in `X-API-Key` header."},"description":"Your unique API key. You can either specify it in this parameter, or set it in `X-API-Key` header."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FindPlacesModel"}}}}},"400":{"description":"Error in passed parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"403":{"description":"API key not specified or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"402":{"description":"Maximum requests per day limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"429":{"description":"Maximum requests per minute limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/nearest_place":{"get":{"tags":["Locations"],"summary":"Search for nearest place by coordinates","description":"You can use this endpoint to find the nearest place from given coordinates.\n\n### Notes\n* If you specify coordinates of a secluded place (e.g. middle of the ocean), the nearest point can be very far from the coordinates.","operationId":"nearest_place_nearest_place_get","security":[{"APIKeyHeader":[]},{"AuthorizationHeader":[]}],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"string","description":"Latitude in format 12N, 12.3N, 12.3, or 13S, 13.2S, -13.4"},"description":"Latitude in format 12N, 12.3N, 12.3, or 13S, 13.2S, -13.4"},{"name":"lon","in":"query","required":true,"schema":{"type":"string","description":"Longitude in format 12E, 12.3E, 12.3, or 13W, 13.2W, -13.4"},"description":"Longitude in format 12E, 12.3E, 12.3, or 13W, 13.2W, -13.4"},{"name":"language","in":"query","required":false,"schema":{"type":"string","enum":["en"],"description":"The language of text summaries and place names (variable names are never translated). For the free tier,\nonly ``en`` (English) is available.\n","default":"en"},"description":"The language of text summaries and place names (variable names are never translated). For the free tier,\nonly ``en`` (English) is available.\n"},{"name":"key","in":"query","required":false,"schema":{"type":"string","description":"Your unique API key. You can either specify it in this parameter, or set it in `X-API-Key` header."},"description":"Your unique API key. You can either specify it in this parameter, or set it in `X-API-Key` header."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindPlacesModel"}}}},"400":{"description":"Error in passed parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"403":{"description":"API key not specified or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"402":{"description":"Maximum requests per day limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"429":{"description":"Maximum requests per minute limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralRequestError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"FindPlacesModel":{"properties":{"name":{"type":"string","description":"name of the place","default":"London"},"place_id":{"type":"string","description":"unique identifier of the place, which can be used in /point and /map endpoints","default":"london"},"adm_area1":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"first-level administrative area (a US state, for example)","default":"England"},"adm_area2":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"second-level administrative area (a US county, for example)","default":"Greater London"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"name of the country","default":"United Kingdom"},"lat":{"type":"string","description":"Latitude of the point, always in the format \\<float><N/S>, for example ``23.5S``","default":"23.2N"},"lon":{"type":"string","description":"Longitude of the point, always in format \\<float><E/W>, for example ``23.5W``","default":"15.3E"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Timezone of the point in tzinfo format.","default":"Europe/London"},"type":{"type":"string","description":"The character of the place. May be one of the following values:\n\n* administrative areas (states, counties, districts...): ``administrative_area``\n* country: ``country``\n* a different political entity from a country (for example, a dependent teritory): ``political_entity``\n* villages, towns and cities: ``settlement``\n* air industry locations: ``airbase``, ``airfield``, ``heliport``, ``airport``, ``airport_terminal``\n* places related to water: ``bay``, ``channel``, ``fjord``, ``lake``, ``pond``, ``falls``, ``gulf``,\n    ``harbor``, ``reservoir``, ``sea``, ``dam``, ``cape``, ``island``, ``peninsula``\n* places related to mountain areas: ``hill``, ``mountain``, ``peak``, ``valley``, ``volcano``, ``canyon``\n* other places related to nature: ``park``, ``reserve``, ``resort``, ``desert``\n* places based on postcodes: ``postcode``\n        ","default":"settlement"}},"type":"object","title":"FindPlacesModel"},"GeneralRequestError":{"properties":{"detail":{"type":"string"}},"type":"object","required":["detail"],"title":"GeneralRequestError"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array"}},"type":"object","title":"HTTPValidationError"},"LanguageFree":{"type":"string","enum":["en"],"title":"LanguageFree"},"Point_PointCurrentData":{"properties":{"icon":{"type":"string","description":"String identifier of current weather icon, e.g. `light_rain`."},"icon_num":{"$ref":"#/components/schemas/WeatherIconCode","description":"Numeric identifier of current weather icon. See the [`WeatherIconCode`](#models/WeatherIconCode) schema description for the full list of possible values."},"summary":{"type":"string","description":"Short text summary of current weather, e.g. `Light rain`."},"temperature":{"type":"number","description":"Current temperature 2 metres above ground.\nUnits: metric = °C, us = °F, uk = °C, ca = °C"},"wind":{"anyOf":[{"$ref":"#/components/schemas/Point_PointCurrentWindData"},{"type":"null"}]},"precipitation":{"anyOf":[{"$ref":"#/components/schemas/Point_PointCurrentPrecipitationData"},{"type":"null"}]},"cloud_cover":{"type":"number","description":"Percentage of sky covered by clouds.\nUnit: \\%"}},"type":"object","title":"Point_PointCurrentData"},"Point_PointCurrentPrecipitationData":{"properties":{"total":{"type":"number","description":"Current amount of precipitation.\nUnits: metric = mm/h, us = inches per hour, uk = mm/h, ca = mm/h"},"type":{"type":"string","description":"Precipitation type, may be one of:\n\n* `none`, it there is no precipitation\n* `rain`\n* `snow`\n* `rain_snow`\n* `ice pellets`\n* `frozen rain`\n\nUnit: precipitation type"}},"type":"object","title":"Point_PointCurrentPrecipitationData"},"Point_PointCurrentWindData":{"properties":{"speed":{"type":"number","description":"Wind speed 10 metres above the ground.\nUnits: metric = m/s, us = mph, uk = mph, ca = km/h"},"angle":{"type":"number","description":"Wind direction angle in degrees, 180° means wind from the south.\nUnit: degrees"},"dir":{"type":"string","description":"Wind direction in `N`, `NNE`, `NE`, ..., `NNW` format.\nUnit: 16-point compass direction (N, NNE, NE, ..., NNW)"}},"type":"object","title":"Point_PointCurrentWindData"},"Point_PointDaily":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Point_PointDailyData"},"type":"array"}},"type":"object","title":"Point_PointDaily"},"Point_PointDailyAllDayCloudCoverData":{"properties":{"total":{"type":"number","description":"Percentage of sky covered by clouds. (allday avg)\nUnit: \\%"}},"type":"object","title":"Point_PointDailyAllDayCloudCoverData"},"Point_PointDailyAllDayData":{"properties":{"weather":{"type":"string","description":"All day string identifier of the weather icon, e.g. `light_rain`."},"icon":{"$ref":"#/components/schemas/WeatherIconCode","description":"Numeric identifier of the weather icon. See the [`WeatherIconCode`](#models/WeatherIconCode) schema description for the full list of possible values."},"temperature":{"type":"number","description":"Temperature 2 metres above ground. (allday avg)\nUnits: metric = °C, us = °F, uk = °C, ca = °C"},"temperature_min":{"type":"number","description":"Temperature 2 metres above ground. (allday min)\nUnits: metric = °C, us = °F, uk = °C, ca = °C"},"temperature_max":{"type":"number","description":"Temperature 2 metres above ground. (allday max)\nUnits: metric = °C, us = °F, uk = °C, ca = °C"},"wind":{"anyOf":[{"$ref":"#/components/schemas/Point_PointDailyAllDayWindData"},{"type":"null"}]},"cloud_cover":{"anyOf":[{"$ref":"#/components/schemas/Point_PointDailyAllDayCloudCoverData"},{"type":"null"}]},"precipitation":{"anyOf":[{"$ref":"#/components/schemas/Point_PointDailyAllDayPrecipitationData"},{"type":"null"}]}},"type":"object","title":"Point_PointDailyAllDayData"},"Point_PointDailyAllDayPrecipitationData":{"properties":{"total":{"type":"number","description":"Total precipitation amount accumulated since last hour. (allday sum)\nUnits: metric = mm/h, us = inches per hour, uk = mm/h, ca = mm/h"},"type":{"type":"string","description":"Precipitation type, may be one of:\n\n* `none`, it there is no precipitation\n* `rain`\n* `snow`\n* `rain_snow`\n* `ice pellets`\n* `frozen rain`\n\nUnit: precipitation type"}},"type":"object","title":"Point_PointDailyAllDayPrecipitationData"},"Point_PointDailyAllDayWindData":{"properties":{"speed":{"type":"number","description":"Units: metric = m/s, us = mph, uk = mph, ca = km/h"},"dir":{"type":"string","description":"All day wind direction in `N`, `NNE`, `NE`, ..., `NNW` format.\nUnit: 16-point compass direction (N, NNE, NE, ..., NNW)"},"angle":{"type":"number","description":"All day wind direction angle in degrees, 180° means wind from the south.\nUnit: degrees"}},"type":"object","title":"Point_PointDailyAllDayWindData"},"Point_PointDailyData":{"properties":{"day":{"type":"string","description":"Datetime in YYYY-MM-DDTHH:MM:SS format."},"weather":{"type":"string","description":"All day string identifier of the weather icon, e.g. `light_rain`."},"icon":{"$ref":"#/components/schemas/WeatherIconCode","description":"Numeric identifier of the weather icon. See the [`WeatherIconCode`](#models/WeatherIconCode) schema description for the full list of possible values."},"summary":{"type":"string","description":"Short text summary of the weather, e.g. `Light rain`."},"all_day":{"anyOf":[{"$ref":"#/components/schemas/Point_PointDailyAllDayData"},{"type":"null"}]},"morning":{},"afternoon":{},"evening":{}},"type":"object","title":"Point_PointDailyData"},"Point_PointData":{"properties":{"lat":{"type":"string","description":"Latitude of the point, always in the format <float><N/S>, for example ``23.5S``"},"lon":{"type":"string","description":"Longitude of the point, always in the format <float><E/W>, for example ``23.5W``"},"elevation":{"type":"integer","description":"Elevation above sea level in metres (for units 'metric', 'uk', 'ca') or feet (for units 'us')"},"timezone":{"type":"string","description":"Name of the timezone in format like 'Europe/London'."},"units":{"type":"string","description":"Unit system (metric, uk, ca or us)"},"current":{"anyOf":[{"$ref":"#/components/schemas/Point_PointCurrentData"},{"type":"null"}]},"hourly":{"anyOf":[{"$ref":"#/components/schemas/Point_PointHourly"},{"type":"null"}]},"daily":{"anyOf":[{"$ref":"#/components/schemas/Point_PointDaily"},{"type":"null"}]}},"type":"object","title":"Point_PointData"},"Point_PointHourly":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Point_PointHourlyData"},"type":"array"}},"type":"object","title":"Point_PointHourly"},"Point_PointHourlyCloudCoverData":{"properties":{"total":{"type":"number","description":"Percentage of the sky covered by clouds (total).\nUnit: \\%"}},"type":"object","title":"Point_PointHourlyCloudCoverData"},"Point_PointHourlyData":{"properties":{"date":{"type":"string","format":"date-time","description":"Datetime in YYYY-MM-DDTHH:MM:SS format.","example":"2022-03-30T18:00:00"},"weather":{"type":"string","description":"String identifier of the weather icon, e.g. `light_rain`."},"icon":{"$ref":"#/components/schemas/WeatherIconCode","description":"Numeric identifier of the weather icon. See the [`WeatherIconCode`](#models/WeatherIconCode) schema description for the full list of possible values."},"summary":{"type":"string","description":"Short text summary of the weather, e.g. `Light rain`."},"temperature":{"type":"number","description":"Temperature 2 metres above ground.\nUnits: metric = °C, us = °F, uk = °C, ca = °C"},"wind":{"anyOf":[{"$ref":"#/components/schemas/Point_PointHourlyWindData"},{"type":"null"}]},"cloud_cover":{"anyOf":[{"$ref":"#/components/schemas/Point_PointHourlyCloudCoverData"},{"type":"null"}]},"precipitation":{"anyOf":[{"$ref":"#/components/schemas/Point_PointHourlyPrecipitationData"},{"type":"null"}]}},"type":"object","title":"Point_PointHourlyData"},"Point_PointHourlyPrecipitationData":{"properties":{"total":{"type":"number","description":"Total precipitation amount accumulated since last hour.\nUnits: metric = mm/h, us = inches per hour, uk = mm/h, ca = mm/h"},"type":{"type":"string","description":"Precipitation type, may be one of:\n\n* `none`, it there is no precipitation\n* `rain`\n* `snow`\n* `rain_snow`\n* `ice pellets`\n* `frozen rain`\n\nUnit: precipitation type"}},"type":"object","title":"Point_PointHourlyPrecipitationData"},"Point_PointHourlyWindData":{"properties":{"speed":{"type":"number","description":"Wind speed at 10 metres above ground.\nUnits: metric = m/s, us = mph, uk = mph, ca = km/h"},"dir":{"type":"string","description":"Wind direction in `N`, `NNE`, `NE`, ..., `NNW` format.\nUnit: 16-point compass direction (N, NNE, NE, ..., NNW)"},"angle":{"type":"number","description":"Wind direction angle in degrees, 180° means wind from the south.\nUnit: degrees"}},"type":"object","title":"Point_PointHourlyWindData"},"Units":{"type":"string","enum":["auto","metric","us","uk","ca"],"title":"Units","x-enumDescriptions":{"auto":"Select the system automatically, based on the forecast location.","ca":"Same as `metric`, except that wind speeds are in `km/h` and pressure is in `kPa`.","metric":"Metric (SI) units (`°C`, `mm/h`, `m/s`, `cm`, `km`, `hPa`).","uk":"Same as `metric`, except that visibility is in `miles` and wind speeds are in `mph`.","us":"Imperial units (`°F`, `in/h`, `mph`, `in`, `mi`, `Hg`)."}},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array"},"msg":{"type":"string"},"type":{"type":"string"},"input":{},"ctx":{"type":"object"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WeatherIconCode":{"type":"integer","title":"WeatherIconCode","description":"Numeric identifier of the weather icon. The following values can appear:\n\n* <span class=\"icon-1\">1 - `not_available` - Not available</span>\n* <span class=\"icon-2\">2 - `sunny` - Sunny</span>\n* <span class=\"icon-3\">3 - `mostly_sunny` - Mostly sunny</span>\n* <span class=\"icon-4\">4 - `partly_sunny` - Partly sunny</span>\n* <span class=\"icon-5\">5 - `mostly_cloudy` - Mostly cloudy</span>\n* <span class=\"icon-6\">6 - `cloudy` - Cloudy</span>\n* <span class=\"icon-7\">7 - `overcast` - Overcast</span>\n* <span class=\"icon-8\">8 - `overcast_w_low_clds` - Overcast with low clouds</span>\n* <span class=\"icon-9\">9 - `fog` - Fog</span>\n* <span class=\"icon-10\">10 - `light_rain` - Light rain</span>\n* <span class=\"icon-11\">11 - `rain` - Rain</span>\n* <span class=\"icon-12\">12 - `psbl_rain` - Possible rain</span>\n* <span class=\"icon-13\">13 - `rain_shower` - Rain shower</span>\n* <span class=\"icon-14\">14 - `tstorm` - Thunderstorm</span>\n* <span class=\"icon-15\">15 - `tstorm_shower` - Local thunderstorms</span>\n* <span class=\"icon-16\">16 - `light_snow` - Light snow</span>\n* <span class=\"icon-17\">17 - `snow` - Snow</span>\n* <span class=\"icon-18\">18 - `psbl_snow` - Possible snow</span>\n* <span class=\"icon-19\">19 - `snow_shower` - Snow shower</span>\n* <span class=\"icon-20\">20 - `rain_and_snow` - Rain and snow</span>\n* <span class=\"icon-21\">21 - `psbl_rain_and_snow` - Possible rain and snow</span>\n* <span class=\"icon-22\">22 - `rain_and_snow` - Rain and snow</span>\n* <span class=\"icon-23\">23 - `fr_rain` - Freezing rain</span>\n* <span class=\"icon-24\">24 - `psbl_fr_rain` - Possible freezing rain</span>\n* <span class=\"icon-25\">25 - `hail` - Hail</span>\n* <span class=\"icon-26\">26 - `clear` - Clear (night)</span>\n* <span class=\"icon-27\">27 - `mostly_clear` - Mostly clear (night)</span>\n* <span class=\"icon-28\">28 - `partly_clear` - Partly clear (night)</span>\n* <span class=\"icon-29\">29 - `mostly_cloudy` - Mostly cloudy (night)</span>\n* <span class=\"icon-30\">30 - `cloudy` - Cloudy (night)</span>\n* <span class=\"icon-31\">31 - `overcast_w_low_clds` - Overcast with low clouds (night)</span>\n* <span class=\"icon-32\">32 - `rain_shower` - Rain shower (night)</span>\n* <span class=\"icon-33\">33 - `tstorm_shower` - Local thunderstorms (night)</span>\n* <span class=\"icon-34\">34 - `snow_shower` - Snow shower (night)</span>\n* <span class=\"icon-35\">35 - `rain_and_snow` - Rain and snow (night)</span>\n* <span class=\"icon-36\">36 - `psbl_fr_rain` - Possible freezing rain (night)</span>\n\nYou can [download our set of icons](https://meteosource.com/static/img/weather_icons.zip)"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"},"AuthorizationHeader":{"type":"apiKey","in":"header","name":"Authorization"}}},"tags":[{"name":"Weather","description":"This section contains endpoints for retrieving current, forecast, and historical weather data for a single [location](#tag/locations).\n\nFor every endpoint in this section, location is a required parameter (some endpoints also\nrequire other parameters, e.g. `date`), and can be specified in one of two ways:\n\n1. GPS coordinates, using the `lat` and `lon` parameters.\n2. **OR** A place name, using the `place_id` parameter. Obtain a `place_id` from one of the endpoints in the [Locations](#tag/locations) section in this API documentation.\n\n### Notes\n* When daylight saving time starts, one hourly record will be missing (typically `2:00:00 AM`). When daylight saving time ends, the hourly data will contain two records with duplicate times (typically `2:00:00 AM`).\n* For mountains, it is usually better to specify the `place_id` rather than the `lat` and `lon`. When you use `place_id`, you are guaranteed to receive data for the precise elevation of the peak. When you specify the coordinates, the elevation can be less precise.\n* **Weather icon fields** (e.g. `status_num`) return a numeric code; see the [`WeatherIconCode`](#models/WeatherIconCode) schema description for the full mapping of codes to their icon names and descriptions.\n"},{"name":"Locations","description":"Search for places and resolve place IDs, for use as the `place_id` parameter in [Weather](#tag/weather) endpoints."}]}