Weather in Surabaya
Indonesia • Population: 3,018,022
Best Months to Visit
Based on temperature, precipitation, and humidity data
Surabaya is in Indonesia at 7.2°S. The 2001–2020 NASA POWER daily record describes a monsoon climate with a sharp wet-dry split. October is the warmest month (average 30.2°C, high 33.6°C) and February is the coolest (average 27.1°C, low 25.5°C).
Rain is the monsoon runs from November to May, inside an annual total of 1881 mm. The wettest month is January at 337 mm; the driest is August at 11 mm. On this site the months that score closest to a 22°C day, lighter rain, and moderate humidity are July, August, and September.
When the score favours a visit
The three months with the highest comfort score are July, August, and September: July (27.9°C average, 35 mm, 72% humidity); August (28.5°C average, 11 mm, 65% humidity); September (29.6°C average, 18 mm, 61% humidity). They fall in calendar order. The score rewards averages near 22°C, lower rainfall, and humidity near 60%. It is a climate score, not a festival or price calendar.
If you want the monsoon itself — fewer crowds, greener landscape, heavier rain — aim at November–May instead of the score.
How warm Surabaya gets
Surabaya has a 3.1°C gap between its coolest monthly average (27.1°C in February) and its warmest (30.2°C in October). That is a southern-hemisphere pattern.
Across the year the mean afternoon high is 30.8°C. If you want the smallest day–night shock, look at months where the high and low sit close together; October nights still hold 26.7°C.
Rainfall pattern
The monsoon in Surabaya starts in November and ends in May (November, December, January, February, March, April, and May). January is the core of it at 337 mm. August is the other extreme, with 11 mm.
Humidity peaks near 86%. That usually lines up with the wetter months rather than the hottest ones.
What stands out month by month
January is the wettest month — 337 mm and 29 rainy days, with 85% humidity. The year bottoms out in February. Plan for 25.5°C at night and 28.7°C in the afternoon. In April, Surabaya averages 29.7°C by day and 26.3°C at night, with 193 mm of rain. By May the monsoon is ending. Surabaya still sees about 123 mm, but the next month is usually leaner.
August is the driest month, averaging only 11 mm across 2 rainy days. Highs sit near 32.4°C. Peak heat arrives in October: 33.6°C by day, 26.7°C at night, and 64% humidity. November is when the monsoon typically starts in Surabaya: highs near 31.8°C, and rainfall jumps to 139 mm (21 rainy days). December: 29.7°C high, 26.0°C low, 300 mm rain, 82% humidity.
Surabaya and other cities in Indonesia
Jepara is about 241 km away: Surabaya is 1.7°C warmer than Jepara in its hottest month and 256 mm drier over the year than Jepara. Jepara’s wettest month is January (382 mm) versus January here.
Semarang is about 259 km away: Surabaya is 1.0°C warmer than Semarang in its hottest month and 176 mm drier over the year than Semarang. Semarang’s wettest month is January (354 mm) versus January here.
Bali is about 313 km away: Surabaya is 3.3°C warmer than Bali in its hottest month and 289 mm wetter over the year than Bali. Bali’s wettest month is January (316 mm) versus January here.
Temperature and rainfall
Monthly Weather Overview
| Month | High | Low | Rain (mm) | Rainy Days |
|---|---|---|---|---|
| January | 29.0°C | 25.6°C | 337 | 29 |
| February | 28.7°C | 25.5°C | 316 | 27 |
| March | 29.1°C | 25.8°C | 272 | 28 |
| April | 29.7°C | 26.3°C | 193 | 24 |
| May | 30.1°C | 26.0°C | 123 | 18 |
| June | 30.5°C | 25.3°C | 74 | 11 |
| July | 31.2°C | 24.6°C | 35 | 6 |
| August | 32.4°C | 24.6°C | 11 | 2 |
| September | 33.7°C | 25.6°C | 18 | 4 |
| October | 33.6°C | 26.7°C | 63 | 10 |
| November | 31.8°C | 26.9°C | 139 | 21 |
| December | 29.7°C | 26.0°C | 300 | 29 |
Monthly Details
Click on any month for detailed weather information: