{"code": "XF001", "name": "Pelabuhan Tanjung Api-Api Asli", "issued": "2025-12-18 12:00 UTC", "valid_from": "2025-12-19 00:00 UTC", "valid_to": "2025-12-22 00:00 UTC", "forecast_day1": [{"time": "2025-12-19 00:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 96, "wind_from": "Barat Laut", "wind_speed": 7, "wind_gust": 12, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 104, "tides": 0.95}, {"time": "2025-12-19 01:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 91, "wind_from": "Barat Laut", "wind_speed": 7, "wind_gust": 17, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 103, "tides": 1.39}, {"time": "2025-12-19 02:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 85, "wind_from": "Barat Laut", "wind_speed": 8, "wind_gust": 19, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 105, "tides": 1.69}, {"time": "2025-12-19 03:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 80, "wind_from": "Barat Laut", "wind_speed": 8, "wind_gust": 20, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 93, "tides": 1.92}, {"time": "2025-12-19 04:00 UTC", "weather": "Hujan Ringan", "visibility": 10, "temp_avg": null, "rh_avg": 78, "wind_from": "Barat Laut", "wind_speed": 8, "wind_gust": 21, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 53, "tides": 1.97}, {"time": "2025-12-19 05:00 UTC", "weather": "Hujan Ringan", "visibility": 10, "temp_avg": null, "rh_avg": 77, "wind_from": "Barat Laut", "wind_speed": 7, "wind_gust": 20, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 57, "tides": 1.84}, {"time": "2025-12-19 06:00 UTC", "weather": "Hujan Ringan", "visibility": 10, "temp_avg": null, "rh_avg": 77, "wind_from": "Barat Laut", "wind_speed": 7, "wind_gust": 21, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 94, "tides": 1.6}, {"time": "2025-12-19 07:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 76, "wind_from": "Barat Laut", "wind_speed": 7, "wind_gust": 21, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 100, "tides": 1.23}, {"time": "2025-12-19 08:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 81, "wind_from": "Barat Laut", "wind_speed": 5, "wind_gust": 20, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 91, "tides": 0.9}, {"time": "2025-12-19 09:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 88, "wind_from": "Barat Laut", "wind_speed": 5, "wind_gust": 16, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 77, "tides": 0.56}, {"time": "2025-12-19 10:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 91, "wind_from": "Barat Laut", "wind_speed": 5, "wind_gust": 14, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 76, "tides": 0.29}, {"time": "2025-12-19 11:00 UTC", "weather": "Berawan Tebal", "visibility": 7, "temp_avg": null, "rh_avg": 93, "wind_from": "Barat", "wind_speed": 4, "wind_gust": 15, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 78, "tides": 0.06}, {"time": "2025-12-19 12:00 UTC", "weather": "Berawan Tebal", "visibility": 7, "temp_avg": null, "rh_avg": 95, "wind_from": "Barat", "wind_speed": 4, "wind_gust": 8, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 85, "tides": -0.15}, {"time": "2025-12-19 13:00 UTC", "weather": "Berawan Tebal", "visibility": 7, "temp_avg": null, "rh_avg": 95, "wind_from": "Barat", "wind_speed": 4, "wind_gust": 8, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 92, "tides": -0.37}, {"time": "2025-12-19 14:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 96, "wind_from": "Barat Laut", "wind_speed": 4, "wind_gust": 8, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 95, "tides": -0.6}, {"time": "2025-12-19 15:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 97, "wind_from": "Barat Laut", "wind_speed": 4, "wind_gust": 9, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 91, "tides": -0.81}, {"time": "2025-12-19 16:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 98, "wind_from": "Barat Laut", "wind_speed": 4, "wind_gust": 8, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 89, "tides": -0.98}, {"time": "2025-12-19 17:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 98, "wind_from": "Barat", "wind_speed": 5, "wind_gust": 7, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 83, "tides": -1.07}, {"time": "2025-12-19 18:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 98, "wind_from": "Barat", "wind_speed": 5, "wind_gust": 8, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 56, "tides": -0.97}, {"time": "2025-12-19 19:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 98, "wind_from": "Barat", "wind_speed": 5, "wind_gust": 9, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 57, "tides": -0.75}, {"time": "2025-12-19 20:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 98, "wind_from": "Barat", "wind_speed": 4, "wind_gust": 9, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 114, "tides": -0.55}, {"time": "2025-12-19 21:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 98, "wind_from": "Barat", "wind_speed": 4, "wind_gust": 8, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 131, "tides": -0.28}, {"time": "2025-12-19 22:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 98, "wind_from": "Barat", "wind_speed": 4, "wind_gust": 8, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 123, "tides": 0.01}, {"time": "2025-12-19 23:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 98, "wind_from": "Barat", "wind_speed": 7, "wind_gust": 7, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 112, "tides": 0.36}], "forecast_day2-4": [{"time": "2025-12-20 00:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 95, "wind_speed": 7, "wind_gust": 9, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 103, "tides": 0.79, "wind_from": "Barat"}, {"time": "2025-12-20 03:00 UTC", "weather": "Berawan", "visibility": 10, "temp_avg": null, "rh_avg": 79, "wind_speed": 7, "wind_gust": 20, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 101, "tides": 1.91, "wind_from": "Barat"}, {"time": "2025-12-20 06:00 UTC", "weather": "Cerah Berawan", "visibility": 10, "temp_avg": null, "rh_avg": 73, "wind_speed": 7, "wind_gust": 20, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 64, "tides": 1.64, "wind_from": "Barat Laut"}, {"time": "2025-12-20 09:00 UTC", "weather": "Hujan Ringan", "visibility": 10, "temp_avg": null, "rh_avg": 87, "wind_speed": 7, "wind_gust": 15, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 100, "tides": 0.63, "wind_from": "Barat Laut"}, {"time": "2025-12-20 12:00 UTC", "weather": "Hujan Ringan", "visibility": 10, "temp_avg": null, "rh_avg": 94, "wind_speed": 3, "wind_gust": 10, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 98, "tides": -0.17, "wind_from": "Barat Laut"}, {"time": "2025-12-20 15:00 UTC", "weather": "Hujan Ringan", "visibility": 10, "temp_avg": null, "rh_avg": 97, "wind_speed": 3, "wind_gust": 4, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 100, "tides": -0.84, "wind_from": "Barat Laut"}, {"time": "2025-12-20 18:00 UTC", "weather": "Hujan Ringan", "visibility": 10, "temp_avg": null, "rh_avg": 98, "wind_speed": 5, "wind_gust": 6, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 88, "tides": -1.16, "wind_from": "Barat"}, {"time": "2025-12-20 21:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 97, "wind_speed": 5, "wind_gust": 10, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 122, "tides": -0.43, "wind_from": "Barat"}, {"time": "2025-12-21 00:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 95, "wind_speed": 7, "wind_gust": 11, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 148, "tides": 0.62, "wind_from": "Barat"}, {"time": "2025-12-21 03:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 78, "wind_speed": 7, "wind_gust": 21, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 124, "tides": 1.94, "wind_from": "Barat"}, {"time": "2025-12-21 06:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 72, "wind_speed": 7, "wind_gust": 22, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 62, "tides": 1.97, "wind_from": "Barat Laut"}, {"time": "2025-12-21 09:00 UTC", "weather": "Hujan Ringan", "visibility": 10, "temp_avg": null, "rh_avg": 90, "wind_speed": 7, "wind_gust": 14, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 110, "tides": 0.86, "wind_from": "Barat Laut"}, {"time": "2025-12-21 12:00 UTC", "weather": "Hujan Ringan", "visibility": 10, "temp_avg": null, "rh_avg": 96, "wind_speed": 2, "wind_gust": 7, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 101, "tides": -0.06, "wind_from": "Barat Laut"}, {"time": "2025-12-21 15:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 97, "wind_speed": 2, "wind_gust": 9, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 106, "tides": -0.23, "wind_from": "Barat Laut"}, {"time": "2025-12-21 18:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 98, "wind_speed": 3, "wind_gust": 6, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Timur Laut", "current_speed": 102, "tides": -1.04, "wind_from": "Barat"}, {"time": "2025-12-21 21:00 UTC", "weather": "Berawan", "visibility": 10, "temp_avg": null, "rh_avg": 99, "wind_speed": 3, "wind_gust": 8, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 95, "tides": -0.7, "wind_from": "Barat"}, {"time": "2025-12-22 00:00 UTC", "weather": "Berawan Tebal", "visibility": 10, "temp_avg": null, "rh_avg": 94, "wind_speed": 6, "wind_gust": 11, "wave_cat": "Tenang", "wave_height": 0.1, "current_to": "Barat Daya", "current_speed": 152, "tides": 0.81, "wind_from": "Barat Laut"}]}