Weather at an airport

This endpoint allows requesting METAR and TAF weather reports at a certain airport.

Weather reports are provided in their coded version and decoded as convenient to use JSON objects.

It is additionally possible to specify a fallback policy in case no reports are available at the requested location. If NEAREST is used, the API will search for the nearest airport with a valid report and will return it.

Some airports, that are known to never have weather reports available, may always return weather reports for a specified reference station.

Such behaviour is controlled by the referenceStation property in the Airport object.

When referenceStation is specified, if the requested location does not have valid weather reports, the weather reports of the referenceStation are returned.

Get weather report for an airport

GET https://api.aviowiki.com/airports/{aid}/weather/full

Path Parameters

Query Parameters

Headers

{
	"taf": {
		"reference": "APT-KS1J-8E0L",
		"endTime": "2022-07-27T18:00:00",
		"forecast": [
			{
				"clouds": [
					"SCT050",
					"BKN070",
					"BKN250"
				],
				"endTime": "2022-07-26T16:00:00",
				"flightRules": "VFR",
				"icing": [],
				"other": [],
				"raw": "2615/2718 02006KT P6SM SCT050 BKN070 BKN250",
				"sanitized": "2615/2718 02006KT P6SM SCT050 BKN070 BKN250",
				"startTime": "2022-07-26T15:00:00",
				"summary": "Winds NNE-020 at 6kt, Vis greater than 6sm, Scattered clouds at 5000ft, Broken layer at 7000ft, Broken layer at 25000ft",
				"turbulance": [],
				"type": "FROM",
				"visibility": "P6",
				"windDirection": 20,
				"windSpeed": 6,
				"wx_codes": [],
				"transition_start": null,
				"turbulence": []
			},
			{
				"clouds": [
					"SCT050",
					"SCT070",
					"BKN250"
				],
				"endTime": "2022-07-26T18:00:00",
				"flightRules": "VFR",
				"icing": [],
				"other": [],
				"raw": "FM261600 27010KT P6SM SCT050 SCT070 BKN250",
				"sanitized": "FM261600 27010KT P6SM SCT050 SCT070 BKN250",
				"startTime": "2022-07-26T16:00:00",
				"summary": "Winds W-270 at 10kt, Vis greater than 6sm, Scattered clouds at 5000ft, Scattered clouds at 7000ft, Broken layer at 25000ft",
				"turbulance": [],
				"type": "FROM",
				"visibility": "P6",
				"windDirection": 270,
				"windSpeed": 10,
				"wx_codes": [],
				"transition_start": null,
				"turbulence": []
			},
			{
				"clouds": [
					"FEW050",
					"SCT070",
					"BKN250"
				],
				"endTime": "2022-07-27T00:00:00",
				"flightRules": "VFR",
				"icing": [],
				"other": [],
				"raw": "FM261800 22012G18KT P6SM FEW050 SCT070 BKN250",
				"sanitized": "FM261800 22012G18KT P6SM FEW050 SCT070 BKN250",
				"startTime": "2022-07-26T18:00:00",
				"summary": "Winds SW-220 at 12kt gusting to 18kt, Vis greater than 6sm, Few clouds at 5000ft, Scattered clouds at 7000ft, Broken layer at 25000ft",
				"turbulance": [],
				"type": "FROM",
				"visibility": "P6",
				"windDirection": 220,
				"windGust": 18,
				"windSpeed": 12,
				"wx_codes": [],
				"transition_start": null,
				"turbulence": []
			},
			{
				"clouds": [
					"FEW050",
					"SCT250"
				],
				"endTime": "2022-07-27T02:00:00",
				"flightRules": "VFR",
				"icing": [],
				"other": [],
				"raw": "FM270000 24010KT P6SM FEW050 SCT250",
				"sanitized": "FM270000 24010KT P6SM FEW050 SCT250",
				"startTime": "2022-07-27T00:00:00",
				"summary": "Winds WSW-240 at 10kt, Vis greater than 6sm, Few clouds at 5000ft, Scattered clouds at 25000ft",
				"turbulance": [],
				"type": "FROM",
				"visibility": "P6",
				"windDirection": 240,
				"windSpeed": 10,
				"wx_codes": [],
				"transition_start": null,
				"turbulence": []
			},
			{
				"clouds": [
					"FEW050",
					"FEW250"
				],
				"endTime": "2022-07-27T05:00:00",
				"flightRules": "VFR",
				"icing": [],
				"other": [],
				"raw": "FM270200 25007KT P6SM FEW050 FEW250",
				"sanitized": "FM270200 25007KT P6SM FEW050 FEW250",
				"startTime": "2022-07-27T02:00:00",
				"summary": "Winds WSW-250 at 7kt, Vis greater than 6sm, Few clouds at 5000ft, Few clouds at 25000ft",
				"turbulance": [],
				"type": "FROM",
				"visibility": "P6",
				"windDirection": 250,
				"windSpeed": 7,
				"wx_codes": [],
				"transition_start": null,
				"turbulence": []
			},
			{
				"clouds": [
					"FEW050",
					"FEW100",
					"SCT250"
				],
				"endTime": "2022-07-27T15:00:00",
				"flightRules": "VFR",
				"icing": [],
				"other": [],
				"raw": "FM270500 VRB05KT P6SM FEW050 FEW100 SCT250",
				"sanitized": "FM270500 VRB05KT P6SM FEW050 FEW100 SCT250",
				"startTime": "2022-07-27T05:00:00",
				"summary": "Winds Variable at 5kt, Vis greater than 6sm, Few clouds at 5000ft, Few clouds at 10000ft, Scattered clouds at 25000ft",
				"turbulance": [],
				"type": "FROM",
				"visibility": "P6",
				"windDirection": 0,
				"windSpeed": 5,
				"wx_codes": [],
				"transition_start": null,
				"turbulence": []
			},
			{
				"clouds": [
					"FEW050",
					"SCT100",
					"SCT250"
				],
				"endTime": "2022-07-27T18:00:00",
				"flightRules": "VFR",
				"icing": [],
				"other": [],
				"raw": "FM271500 18007KT P6SM FEW050 SCT100 SCT250",
				"sanitized": "FM271500 18007KT P6SM FEW050 SCT100 SCT250",
				"startTime": "2022-07-27T15:00:00",
				"summary": "Winds S-180 at 7kt, Vis greater than 6sm, Few clouds at 5000ft, Scattered clouds at 10000ft, Scattered clouds at 25000ft",
				"turbulance": [],
				"type": "FROM",
				"visibility": "P6",
				"windDirection": 180,
				"windSpeed": 7,
				"wx_codes": [],
				"transition_start": null,
				"turbulence": []
			}
		],
		"raw": "KJFK 261431Z 2615/2718 02006KT P6SM SCT050 BKN070 BKN250 FM261600 27010KT P6SM SCT050 SCT070 BKN250 FM261800 22012G18KT P6SM FEW050 SCT070 BKN250 FM270000 24010KT P6SM FEW050 SCT250 FM270200 25007KT P6SM FEW050 FEW250 FM270500 VRB05KT P6SM FEW050 FEW100 SCT250 FM271500 18007KT P6SM FEW050 SCT100 SCT250",
		"remarks": "",
		"startTime": "2022-07-26T15:00:00",
		"station": "KJFK",
		"time": "2022-07-26T14:31:00",
		"units": {
			"altimeter": "inHg",
			"altitude": "ft",
			"temperature": "C",
			"visibility": "sm",
			"windSpeed": "kt",
			"accumulation": "in"
		}
	},
	"metar": {
		"reference": "APT-KS1J-8E0L",
		"altimeter": 30,
		"clouds": [
			"FEW050",
			"FEW095",
			"FEW180",
			"BKN240"
		],
		"dewpoint": 13,
		"flightRules": "VFR",
		"other": [],
		"raw": "KJFK 261451Z 00000KT 10SM FEW050 FEW095 FEW180 BKN240 26/13 A3002 RMK AO2 SLP165 T02610128 58003",
		"remarks": "RMK AO2 SLP165 T02610128 58003",
		"remarksInfo": {
			"dewpointDecimal": "0128",
			"temperatureDecimal": "0261",
			"codes": [
				{
					"repr": "AO2",
					"value": "Automated with precipitation sensor"
				}
			],
			"maximum_temperature_6": null,
			"minimum_temperature_24": null,
			"precip_hourly": null,
			"sunshine_minutes": null,
			"precip_24_hours": null,
			"precip_36_hours": null,
			"minimum_temperature_6": null,
			"snow_depth": null,
			"sea_level_pressure": {
				"repr": "SLP165",
				"value": 1016.5,
				"spoken": "one zero one six point five"
			},
			"maximum_temperature_24": null,
			"pressure_tendency": {
				"repr": "58003",
				"tendency": "Steady or increasing, then decreasing",
				"change": 0.3
			}
		},
		"runwayVisibility": [],
		"sanitized": "KJFK 261451Z 00000KT 10SM FEW050 FEW095 FEW180 BKN240 26/13 A3002 RMK AO2 SLP165 T02610128 58003",
		"station": "KJFK",
		"summary": "Winds Calm, Vis 10sm, Temp 26°C, Dew 13°C, Alt 30.02 inHg, Few clouds at 5000ft, Few clouds at 9500ft, Few clouds at 18000ft, Broken layer at 24000ft",
		"temperature": 26,
		"time": "2022-07-26T14:51:00",
		"units": {
			"altimeter": "inHg",
			"altitude": "ft",
			"temperature": "C",
			"visibility": "sm",
			"windSpeed": "kt",
			"accumulation": "in"
		},
		"visibility": "10",
		"windDirection": 0,
		"windSpeed": 0,
		"windVariableDirection": [],
		"density_altitude": 1248,
		"pressure_altitude": -87,
		"wx_codes": [],
		"relative_humidity": 0.4368486805231886,
		"isaDeviation": 12
	}
}

Get weather report for a list of airports

GET https://api.aviowiki.com/weather/full

Query Parameters

Headers

{
	"APT-KS1J-8E0L": {
		"taf": {
			"reference": "APT-KS1J-8E0L",
			"endTime": "2022-07-27T18:00:00",
			"forecast": [
				{
					"clouds": [
						"SCT050",
						"BKN070",
						"BKN250"
					],
					"endTime": "2022-07-26T16:00:00",
					"flightRules": "VFR",
					"icing": [],
					"other": [],
					"raw": "2615/2718 02006KT P6SM SCT050 BKN070 BKN250",
					"sanitized": "2615/2718 02006KT P6SM SCT050 BKN070 BKN250",
					"startTime": "2022-07-26T15:00:00",
					"summary": "Winds NNE-020 at 6kt, Vis greater than 6sm, Scattered clouds at 5000ft, Broken layer at 7000ft, Broken layer at 25000ft",
					"turbulance": [],
					"type": "FROM",
					"visibility": "P6",
					"windDirection": 20,
					"windSpeed": 6,
					"wx_codes": [],
					"transition_start": null,
					"turbulence": []
				},
				{
					"clouds": [
						"SCT050",
						"SCT070",
						"BKN250"
					],
					"endTime": "2022-07-26T18:00:00",
					"flightRules": "VFR",
					"icing": [],
					"other": [],
					"raw": "FM261600 27010KT P6SM SCT050 SCT070 BKN250",
					"sanitized": "FM261600 27010KT P6SM SCT050 SCT070 BKN250",
					"startTime": "2022-07-26T16:00:00",
					"summary": "Winds W-270 at 10kt, Vis greater than 6sm, Scattered clouds at 5000ft, Scattered clouds at 7000ft, Broken layer at 25000ft",
					"turbulance": [],
					"type": "FROM",
					"visibility": "P6",
					"windDirection": 270,
					"windSpeed": 10,
					"wx_codes": [],
					"transition_start": null,
					"turbulence": []
				},
				{
					"clouds": [
						"FEW050",
						"SCT070",
						"BKN250"
					],
					"endTime": "2022-07-27T00:00:00",
					"flightRules": "VFR",
					"icing": [],
					"other": [],
					"raw": "FM261800 22012G18KT P6SM FEW050 SCT070 BKN250",
					"sanitized": "FM261800 22012G18KT P6SM FEW050 SCT070 BKN250",
					"startTime": "2022-07-26T18:00:00",
					"summary": "Winds SW-220 at 12kt gusting to 18kt, Vis greater than 6sm, Few clouds at 5000ft, Scattered clouds at 7000ft, Broken layer at 25000ft",
					"turbulance": [],
					"type": "FROM",
					"visibility": "P6",
					"windDirection": 220,
					"windGust": 18,
					"windSpeed": 12,
					"wx_codes": [],
					"transition_start": null,
					"turbulence": []
				},
				{
					"clouds": [
						"FEW050",
						"SCT250"
					],
					"endTime": "2022-07-27T02:00:00",
					"flightRules": "VFR",
					"icing": [],
					"other": [],
					"raw": "FM270000 24010KT P6SM FEW050 SCT250",
					"sanitized": "FM270000 24010KT P6SM FEW050 SCT250",
					"startTime": "2022-07-27T00:00:00",
					"summary": "Winds WSW-240 at 10kt, Vis greater than 6sm, Few clouds at 5000ft, Scattered clouds at 25000ft",
					"turbulance": [],
					"type": "FROM",
					"visibility": "P6",
					"windDirection": 240,
					"windSpeed": 10,
					"wx_codes": [],
					"transition_start": null,
					"turbulence": []
				},
				{
					"clouds": [
						"FEW050",
						"FEW250"
					],
					"endTime": "2022-07-27T05:00:00",
					"flightRules": "VFR",
					"icing": [],
					"other": [],
					"raw": "FM270200 25007KT P6SM FEW050 FEW250",
					"sanitized": "FM270200 25007KT P6SM FEW050 FEW250",
					"startTime": "2022-07-27T02:00:00",
					"summary": "Winds WSW-250 at 7kt, Vis greater than 6sm, Few clouds at 5000ft, Few clouds at 25000ft",
					"turbulance": [],
					"type": "FROM",
					"visibility": "P6",
					"windDirection": 250,
					"windSpeed": 7,
					"wx_codes": [],
					"transition_start": null,
					"turbulence": []
				},
				{
					"clouds": [
						"FEW050",
						"FEW100",
						"SCT250"
					],
					"endTime": "2022-07-27T15:00:00",
					"flightRules": "VFR",
					"icing": [],
					"other": [],
					"raw": "FM270500 VRB05KT P6SM FEW050 FEW100 SCT250",
					"sanitized": "FM270500 VRB05KT P6SM FEW050 FEW100 SCT250",
					"startTime": "2022-07-27T05:00:00",
					"summary": "Winds Variable at 5kt, Vis greater than 6sm, Few clouds at 5000ft, Few clouds at 10000ft, Scattered clouds at 25000ft",
					"turbulance": [],
					"type": "FROM",
					"visibility": "P6",
					"windDirection": 0,
					"windSpeed": 5,
					"wx_codes": [],
					"transition_start": null,
					"turbulence": []
				},
				{
					"clouds": [
						"FEW050",
						"SCT100",
						"SCT250"
					],
					"endTime": "2022-07-27T18:00:00",
					"flightRules": "VFR",
					"icing": [],
					"other": [],
					"raw": "FM271500 18007KT P6SM FEW050 SCT100 SCT250",
					"sanitized": "FM271500 18007KT P6SM FEW050 SCT100 SCT250",
					"startTime": "2022-07-27T15:00:00",
					"summary": "Winds S-180 at 7kt, Vis greater than 6sm, Few clouds at 5000ft, Scattered clouds at 10000ft, Scattered clouds at 25000ft",
					"turbulance": [],
					"type": "FROM",
					"visibility": "P6",
					"windDirection": 180,
					"windSpeed": 7,
					"wx_codes": [],
					"transition_start": null,
					"turbulence": []
				}
			],
			"raw": "KJFK 261431Z 2615/2718 02006KT P6SM SCT050 BKN070 BKN250 FM261600 27010KT P6SM SCT050 SCT070 BKN250 FM261800 22012G18KT P6SM FEW050 SCT070 BKN250 FM270000 24010KT P6SM FEW050 SCT250 FM270200 25007KT P6SM FEW050 FEW250 FM270500 VRB05KT P6SM FEW050 FEW100 SCT250 FM271500 18007KT P6SM FEW050 SCT100 SCT250",
			"remarks": "",
			"startTime": "2022-07-26T15:00:00",
			"station": "KJFK",
			"time": "2022-07-26T14:31:00",
			"units": {
				"altimeter": "inHg",
				"altitude": "ft",
				"temperature": "C",
				"visibility": "sm",
				"windSpeed": "kt",
				"accumulation": "in"
			}
		},
		"metar": {
			"reference": "APT-KS1J-8E0L",
			"altimeter": 30,
			"clouds": [
				"FEW060",
				"BKN210",
				"OVC260"
			],
			"dewpoint": 14,
			"flightRules": "VFR",
			"other": [],
			"raw": "KJFK 261551Z 23005KT 10SM FEW060 BKN210 OVC260 26/14 A3002 RMK AO2 SLP164 T02610144",
			"remarks": "RMK AO2 SLP164 T02610144",
			"remarksInfo": {
				"dewpointDecimal": "0144",
				"temperatureDecimal": "0261",
				"codes": [
					{
						"repr": "AO2",
						"value": "Automated with precipitation sensor"
					}
				],
				"maximum_temperature_6": null,
				"minimum_temperature_24": null,
				"precip_hourly": null,
				"sunshine_minutes": null,
				"precip_24_hours": null,
				"precip_36_hours": null,
				"minimum_temperature_6": null,
				"snow_depth": null,
				"sea_level_pressure": {
					"repr": "SLP164",
					"value": 1016.4,
					"spoken": "one zero one six point four"
				},
				"maximum_temperature_24": null,
				"pressure_tendency": null
			},
			"runwayVisibility": [],
			"sanitized": "KJFK 261551Z 23005KT 10SM FEW060 BKN210 OVC260 26/14 A3002 RMK AO2 SLP164 T02610144",
			"station": "KJFK",
			"summary": "Winds SW-230 at 5kt, Vis 10sm, Temp 26°C, Dew 14°C, Alt 30.02 inHg, Few clouds at 6000ft, Broken layer at 21000ft, Overcast layer at 26000ft",
			"temperature": 26,
			"time": "2022-07-26T15:51:00",
			"units": {
				"altimeter": "inHg",
				"altitude": "ft",
				"temperature": "C",
				"visibility": "sm",
				"windSpeed": "kt",
				"accumulation": "in"
			},
			"visibility": "10",
			"windDirection": 230,
			"windSpeed": 5,
			"windVariableDirection": [],
			"density_altitude": 1248,
			"pressure_altitude": -87,
			"wx_codes": [],
			"relative_humidity": 0.4847997761540694,
			"isaDeviation": 12
		}
	},
	"APT-CQ9K-5CIO": {
		"taf": {
			"reference": "APT-CQ9K-5CIO",
			"endTime": "2022-07-27T18:00:00",
			"forecast": [
				{
					"clouds": [
						"FEW050",
						"SCT070",
						"BKN250"
					],
					"endTime": "2022-07-26T22:00:00",
					"flightRules": "VFR",
					"icing": [],
					"other": [],
					"raw": "2615/2718 26009KT P6SM FEW050 SCT070 BKN250",
					"sanitized": "2615/2718 26009KT P6SM FEW050 SCT070 BKN250",
					"startTime": "2022-07-26T15:00:00",
					"summary": "Winds W-260 at 9kt, Vis greater than 6sm, Few clouds at 5000ft, Scattered clouds at 7000ft, Broken layer at 25000ft",
					"turbulance": [],
					"type": "FROM",
					"visibility": "P6",
					"windDirection": 260,
					"windSpeed": 9,
					"wx_codes": [],
					"transition_start": null,
					"turbulence": []
				},
				{
					"clouds": [
						"SCT050",
						"SCT250"
					],
					"endTime": "2022-07-27T02:00:00",
					"flightRules": "VFR",
					"icing": [],
					"other": [],
					"raw": "FM262200 26007KT P6SM SCT050 SCT250",
					"sanitized": "FM262200 26007KT P6SM SCT050 SCT250",
					"startTime": "2022-07-26T22:00:00",
					"summary": "Winds W-260 at 7kt, Vis greater than 6sm, Scattered clouds at 5000ft, Scattered clouds at 25000ft",
					"turbulance": [],
					"type": "FROM",
					"visibility": "P6",
					"windDirection": 260,
					"windSpeed": 7,
					"wx_codes": [],
					"transition_start": null,
					"turbulence": []
				},
				{
					"clouds": [
						"FEW050",
						"FEW100",
						"SCT250"
					],
					"endTime": "2022-07-27T16:00:00",
					"flightRules": "VFR",
					"icing": [],
					"other": [],
					"raw": "FM270200 VRB04KT P6SM FEW050 FEW100 SCT250",
					"sanitized": "FM270200 VRB04KT P6SM FEW050 FEW100 SCT250",
					"startTime": "2022-07-27T02:00:00",
					"summary": "Winds Variable at 4kt, Vis greater than 6sm, Few clouds at 5000ft, Few clouds at 10000ft, Scattered clouds at 25000ft",
					"turbulance": [],
					"type": "FROM",
					"visibility": "P6",
					"windDirection": 0,
					"windSpeed": 4,
					"wx_codes": [],
					"transition_start": null,
					"turbulence": []
				},
				{
					"clouds": [
						"FEW050",
						"SCT100",
						"SCT250"
					],
					"endTime": "2022-07-27T18:00:00",
					"flightRules": "VFR",
					"icing": [],
					"other": [],
					"raw": "FM271600 24007KT P6SM FEW050 SCT100 SCT250",
					"sanitized": "FM271600 24007KT P6SM FEW050 SCT100 SCT250",
					"startTime": "2022-07-27T16:00:00",
					"summary": "Winds WSW-240 at 7kt, Vis greater than 6sm, Few clouds at 5000ft, Scattered clouds at 10000ft, Scattered clouds at 25000ft",
					"turbulance": [],
					"type": "FROM",
					"visibility": "P6",
					"windDirection": 240,
					"windSpeed": 7,
					"wx_codes": [],
					"transition_start": null,
					"turbulence": []
				}
			],
			"raw": "KTEB 261459Z 2615/2718 26009KT P6SM FEW050 SCT070 BKN250 FM262200 26007KT P6SM SCT050 SCT250 FM270200 VRB04KT P6SM FEW050 FEW100 SCT250 FM271600 24007KT P6SM FEW050 SCT100 SCT250",
			"remarks": "",
			"startTime": "2022-07-26T15:00:00",
			"station": "KTEB",
			"time": "2022-07-26T14:59:00",
			"units": {
				"altimeter": "inHg",
				"altitude": "ft",
				"temperature": "C",
				"visibility": "sm",
				"windSpeed": "kt",
				"accumulation": "in"
			}
		},
		"metar": {
			"reference": "APT-CQ9K-5CIO",
			"altimeter": 30,
			"clouds": [],
			"dewpoint": 13,
			"flightRules": "VFR",
			"other": [],
			"raw": "KTEB 261551Z 27006KT 10SM CLR 25/13 A3001 RMK AO2 SLP161 T02500133",
			"remarks": "RMK AO2 SLP161 T02500133",
			"remarksInfo": {
				"dewpointDecimal": "0133",
				"temperatureDecimal": "0250",
				"codes": [
					{
						"repr": "AO2",
						"value": "Automated with precipitation sensor"
					}
				],
				"maximum_temperature_6": null,
				"minimum_temperature_24": null,
				"precip_hourly": null,
				"sunshine_minutes": null,
				"precip_24_hours": null,
				"precip_36_hours": null,
				"minimum_temperature_6": null,
				"snow_depth": null,
				"sea_level_pressure": {
					"repr": "SLP161",
					"value": 1016.1,
					"spoken": "one zero one six point one"
				},
				"maximum_temperature_24": null,
				"pressure_tendency": null
			},
			"runwayVisibility": [],
			"sanitized": "KTEB 261551Z 27006KT 10SM 25/13 A3001 RMK AO2 SLP161 T02500133",
			"station": "KTEB",
			"summary": "Winds W-270 at 6kt, Vis 10sm, Temp 25°C, Dew 13°C, Alt 30.01 inHg, Sky clear",
			"temperature": 25,
			"time": "2022-07-26T15:51:00",
			"units": {
				"altimeter": "inHg",
				"altitude": "ft",
				"temperature": "C",
				"visibility": "sm",
				"windSpeed": "kt",
				"accumulation": "in"
			},
			"visibility": "10",
			"windDirection": 270,
			"windSpeed": 6,
			"windVariableDirection": [],
			"density_altitude": 1121,
			"pressure_altitude": -81,
			"wx_codes": [],
			"relative_humidity": 0.4818610292851609,
			"isaDeviation": 11
		}
	}
}

Get weather flag for an airports

GET https://api.aviowiki.com/airports/{aid}/weather

Path Parameters

Query Parameters

Headers

{
	"reference": "APT-KS1J-8E0L",
	"report": "VFR"
}

Last updated