Beta Open the map

Where the data comes from

We bring public sources together in one place: flag services, weather services, town halls and camera networks. Each publishes on its own schedule, so a beach can be current on one line and a couple of hours behind on the next.

Every source below is named, and linked to the page that publishes it - which is where the reading is kept up to date. At the beach itself, the flag on the mast is the one that counts.

What comes from where

Flags, water temperature, jellyfish. SafeBeach for 73 towns from the Costa Blanca to the Balearics and the Canaries, typed in at the lifeguard post, roughly 1 June to 15 September. Protecció Civil, Generalitat de Catalunya for all 64 Catalan coastal municipalities, with jellyfish species, water clarity and sea state on top of the flag; every reading carries the time the post logged it. And the Diputación Foral de Bizkaia for 28 beaches in 19 municipalities, live through the lifeguard shift - the only source here that names the beaches it does not staff. And the Principado de Asturias for all 229 Asturian beaches in 20 municipalities: the flag, how full the beach is as their own cameras count it, and which way the tide is running.

The beaches nobody publishes a flag for. Names and coordinates for the 1570 beaches on the coasts with no flag service come from OpenStreetMap contributors, under the ODbL. They ship with the app rather than being fetched, and they carry no flag and no description - only a name and a place on the map.

What the beach is. The same Catalan catalogue - sand, slope, length, facilities, and the hours the lifeguards work. Filled in by 64 town halls.

Sea and weather. Open-Meteo - waves, swell, wind, gusts, UV, air and sea temperature, from a forecast model on a ~9 km grid. A calculation, not a buoy.

Official forecast. AEMET, the state met agency, for 591 named beaches: water temperature, the day's UV maximum, a comfort verdict and tide times. Also a forecast, but for a beach with a name rather than a grid cell - so it only appears where one of their points is within 3 km of the beach you opened, and the block says which point it is quoting and how far away that is.

Cameras. Turisme Comunitat Valenciana, 35 live cameras on the Valencian coast; 3Cat "El Temps", 8 Catalan stations sending periodic stills rather than video, each with its own thermometer; 17 stills from MeteoGalicia, the first cameras Galicia has had here - 521 beaches whose nearest one was 767 km away; and 17 public YouTube streams run by local operators, which can go private or disappear without notice; 145 stills from the Windy.com registry, one per local operator where no network of our own reaches - they gave a camera to 405 beaches that had none.

Map. OpenFreeMap and CARTO tiles drawn from OpenStreetMap data; satellite imagery by Esri, Maxar and Earthstar Geographics.

How current this is

Flags are updated every five minutes at most. The forecast is re-read every time you open a town or a beach, the official forecast at most every half hour, and a camera shows whatever its operator is publishing right now. The refresh button fetches the current state of the flags from the town's system. The clock in the header is Spanish time, which is what the hour beside a flag should be read against.

When the official forecast cannot be fetched at all, a copy read earlier today is shown with the time it was read printed on it. A copy from any other day is thrown away rather than shown: yesterday's tide times are wrong by about fifty minutes.

Worth keeping in mind

Grey means nobody published a flag - out of season, out of hours, or a post that has not checked in yet. It never means the water is safe.

A camera is often not your beach. The sheet says how far away it is; read that before you read the picture.

Facilities come from a town hall's spreadsheet. A field nobody filled in looks exactly like a genuine "no" upstream, which is why this app only ever says "not listed".

An empty cell is not a zero. If a reading is missing altogether, nobody publishes it here. A zero is written as a number: "rain 0.0 mm" means there is no rain.

Lifeguard hours are typed by hand at 64 town halls, and sometimes typed wrong. Seasons that cannot be true are dropped rather than guessed at.

Model numbers cover several coves at once. One 9 km cell can hold two bays that do not feel alike.

The list opens with the beaches nearest you. The order comes from your IP address: approximate, asked of nobody, and the coordinates go to your browser and no further.