Windy
App · Weather & Space · 16 actions
Read Windy's weather in a workflow. Get a point forecast for any coordinates from 21 models (temperature, wind and gusts, rain and snow, cloud, humidity and pressure), a marine forecast with waves, swell and ocean currents, and an air quality forecast with the US AQI, pollutants and European pollen. Also search Windy's worldwide webcam collection by place or category and get each camera's still image, live stream and timelapse links.
Actions
| Action | What it does |
|---|---|
| Find webcams in an area | Find the webcams inside a rectangle on the map, given its north, east, south and west edges. |
| Find webcams nearby | Find the webcams around a point, within a radius you choose. |
| Get a webcam | Get one webcam by its id, with its current still image, its live and timelapse player links, where it is and when it last refreshed. |
| Get air quality forecast | Get the air quality forecast for a point: the US Air Quality Index with the band it falls in, fine and coarse particulates, nitrogen dioxide, ozone, sulfur dioxide, carbon monoxide and dust. |
| Get current weather | Get the conditions at a point right now, or at a time you choose. |
| Get marine forecast | Get the sea forecast for a point: wave height, period and direction, wind waves, primary and secondary swell, and (with the Copernicus model) ocean surface and tidal currents. |
| Get raw point forecast | Get raw forecast values for a point: pick any of Windy's 21 models, any of its 39 parameters and, for temperature, dew point, humidity, wind and geopotential height, any pressure level. |
| Get several webcams | Get up to 50 webcams at once by their ids, each with its location, still image and player links. |
| Get weather forecast | Get the weather forecast for a point on the map, step by step: temperature, wind speed and direction, gusts, rain and snow, cloud cover, humidity and pressure. |
| Get webcams for a map | Get webcams spread evenly across a map view, for a rectangle and a zoom level, so pins do not pile up on top of each other. |
| List webcam categories | List the categories a webcam can be filed under, with their names in the language you choose. |
| List webcam cities | List the city codes the webcam filters accept, with their localised names. |
| List webcam continents | List the continent codes the webcam filters accept, with their localised names. |
| List webcam countries | List the country codes the webcam filters accept, with their localised names. |
| List webcam regions | List the region codes the webcam filters accept, with their localised names. |
| Search webcams | Search Windy's worldwide webcam collection by category and place. |
Find webcams in an area
Find the webcams inside a rectangle on the map, given its north, east, south and west edges. Use it to cover a region, a coastline or a mountain range rather than a single point.
Inputs
- North edge (latitude)
north_latitudenumberRequired - Latitude of the top edge of the area, between -90 and 90.From -90 to 90.
- East edge (longitude)
east_longitudenumberRequired - Longitude of the right edge of the area, between -180 and 180.From -180 to 180.
- South edge (latitude)
south_latitudenumberRequired - Latitude of the bottom edge of the area, between -90 and 90.From -90 to 90.
- West edge (longitude)
west_longitudenumberRequired - Longitude of the left edge of the area, between -180 and 180.From -180 to 180.
- Categories
categoriestext - Only return webcams in these categories, at most 10.One or more of:
airport,beach,building,city,coast,forest,indoor,lake,landscape,meteo(Weather station), and 8 more. - How many webcams
limitnumber - How many webcams to return, from 1 to 50.From 1 to 50. Default:
10. - Skip this many
offsetnumber - Where to start in the result list, for paging. The free Webcams plan stops at 1000 and the professional plan at 10000.From 0 to 100000. Default:
0. - Details to include
includetext - Which parts of each webcam record to fetch. Everything is included when nothing is chosen.One or more of:
categories,images(Still images),location,player(Live and timelapse players),urls(Links). - Language
languagetext - Language for webcam titles, category names and place names. Defaults to English.
Outputs
bounding_boxobject- The area that was searched
limitnumber- The limit that was applied
returnednumber- How many are in this result
totalnumber- How many webcams are in the box
webcamslist- The webcams inside the area
Example output
{
"bounding_box": {
"east_longitude": 13.0,
"north_latitude": 47.9,
"south_latitude": 45.8,
"west_longitude": 6.0
},
"limit": 10,
"returned": 1,
"total": 340,
"webcams": [
{
"categories": [
{
"id": "landscape",
"name": "Landscape"
}
],
"category_ids": [
"landscape"
],
"detail_url": "https://www.windy.com/webcams/1179853135",
"images": {
"current": {
"preview": "https://images-webcams.windy.com/35/1179853135/current/preview/1179853135.jpg",
"thumbnail": "https://images-webcams.windy.com/35/1179853135/current/thumbnail/1179853135.jpg"
},
"daylight": {},
"sizes": {
"preview": {
"height": 224,
"width": 400
}
}
},
"last_updated_on": "2026-08-19T14:52:11.000Z",
"latitude": -33.84903,
"live_stream_url": "https://webcams.windy.com/webcams/public/embed/player/1179853135/live",
"location": {
"city": "Sydney",
"city_code": "AU.02.Sydney",
"continent": "Oceania",
"continent_code": "OC",
"country": "Australia",
"country_code": "AU",
"latitude": -33.84903,
"longitude": 151.21559,
"region": "New South Wales",
"region_code": "AU.02"
},
"longitude": 151.21559,
"place": "Sydney, Australia",
"player": {
"day": "https://webcams.windy.com/webcams/public/embed/player/1179853135/day",
"lifetime": "https://webcams.windy.com/webcams/public/embed/player/1179853135/lifetime",
"live": "https://webcams.windy.com/webcams/public/embed/player/1179853135/live",
"month": "https://webcams.windy.com/webcams/public/embed/player/1179853135/month",
"year": "https://webcams.windy.com/webcams/public/embed/player/1179853135/year"
},
"preview_image_url": "https://images-webcams.windy.com/35/1179853135/current/preview/1179853135.jpg",
"provider_url": "https://www.example-webcam-owner.com/",
"status": "active",
"title": "Sydney: Sydney Harbour Bridge - Sydney Opera House",
"view_count": 1282618,
"webcam_id": 1179853135
}
]
}Find webcams nearby
Find the webcams around a point, within a radius you choose. Give it the coordinates of a place and it answers with the cameras looking at it, each with its location, still image and player links.
Inputs
- Latitude
latitudenumberRequired - Latitude of the point, between -90 and 90.From -90 to 90.
- Longitude
longitudenumberRequired - Longitude of the point, between -180 and 180.From -180 to 180.
- Radius (km)
radius_kmnumber - How far around the point to search, in kilometres.From 0.1 to 500.0. Default:
25.0. - Categories
categoriestext - Only return webcams in these categories, at most 10.One or more of:
airport,beach,building,city,coast,forest,indoor,lake,landscape,meteo(Weather station), and 8 more. - How many webcams
limitnumber - How many webcams to return, from 1 to 50.From 1 to 50. Default:
10. - Details to include
includetext - Which parts of each webcam record to fetch. Everything is included when nothing is chosen.One or more of:
categories,images(Still images),location,player(Live and timelapse players),urls(Links). - Language
languagetext - Language for webcam titles, category names and place names. Defaults to English.
Outputs
latitudenumber- Latitude searched around
limitnumber- The limit that was applied
longitudenumber- Longitude searched around
radius_kmnumber- Radius searched, in km
returnednumber- How many are in this result
totalnumber- How many webcams are in range
webcamslist- The webcams in range
Example output
{
"latitude": -33.8688,
"limit": 10,
"longitude": 151.2093,
"radius_km": 25.0,
"returned": 1,
"total": 12,
"webcams": [
{
"categories": [
{
"id": "landscape",
"name": "Landscape"
}
],
"category_ids": [
"landscape"
],
"detail_url": "https://www.windy.com/webcams/1179853135",
"images": {
"current": {
"preview": "https://images-webcams.windy.com/35/1179853135/current/preview/1179853135.jpg",
"thumbnail": "https://images-webcams.windy.com/35/1179853135/current/thumbnail/1179853135.jpg"
},
"daylight": {},
"sizes": {
"preview": {
"height": 224,
"width": 400
}
}
},
"last_updated_on": "2026-08-19T14:52:11.000Z",
"latitude": -33.84903,
"live_stream_url": "https://webcams.windy.com/webcams/public/embed/player/1179853135/live",
"location": {
"city": "Sydney",
"city_code": "AU.02.Sydney",
"continent": "Oceania",
"continent_code": "OC",
"country": "Australia",
"country_code": "AU",
"latitude": -33.84903,
"longitude": 151.21559,
"region": "New South Wales",
"region_code": "AU.02"
},
"longitude": 151.21559,
"place": "Sydney, Australia",
"player": {
"day": "https://webcams.windy.com/webcams/public/embed/player/1179853135/day",
"lifetime": "https://webcams.windy.com/webcams/public/embed/player/1179853135/lifetime",
"live": "https://webcams.windy.com/webcams/public/embed/player/1179853135/live",
"month": "https://webcams.windy.com/webcams/public/embed/player/1179853135/month",
"year": "https://webcams.windy.com/webcams/public/embed/player/1179853135/year"
},
"preview_image_url": "https://images-webcams.windy.com/35/1179853135/current/preview/1179853135.jpg",
"provider_url": "https://www.example-webcam-owner.com/",
"status": "active",
"title": "Sydney: Sydney Harbour Bridge - Sydney Opera House",
"view_count": 1282618,
"webcam_id": 1179853135
}
]
}Get a webcam
Get one webcam by its id, with its current still image, its live and timelapse player links, where it is and when it last refreshed. Image links are signed and expire (15 minutes on the free plan), so read this action again when you need a fresh one.
Inputs
- Webcam id
webcam_idnumberRequired - Windy's id for the webcam, from any of the search actions.
- Details to include
includetext - Which parts of each webcam record to fetch. Everything is included when nothing is chosen.One or more of:
categories,images(Still images),location,player(Live and timelapse players),urls(Links). - Language
languagetext - Language for webcam titles, category names and place names. Defaults to English.
Outputs
categorieslist- Categories the webcam is filed under
category_idslist- Just the category ids
cluster_sizenumber- On the map action only: how many webcams this one stands in for
detail_urltext- The webcam's page on windy.com
imagesobject- Windy's image URLs by size, as returned
last_updated_ontext- When the image last refreshed
latitudenumber- Latitude of the webcam
live_stream_urltext- Embeddable live player link, when the webcam has a live stream
locationobjectlongitudenumber- Longitude of the webcam
placetext- Readable place, for example 'Sydney, Australia'
playerobject- Embeddable player links: live, day, month, year and lifetime
preview_image_urltext- Still image URL. Signed and short-lived, so fetch it when you need it
provider_urltext- The webcam owner's own page
statustext- active, inactive or another Windy status
titletext- Webcam title
view_countnumber- Views since the webcam was added
webcam_idnumber- Windy's id for this webcam
Example output
{
"categories": [
{
"id": "landscape",
"name": "Landscape"
}
],
"category_ids": [
"landscape"
],
"detail_url": "https://www.windy.com/webcams/1179853135",
"images": {
"current": {
"preview": "https://images-webcams.windy.com/35/1179853135/current/preview/1179853135.jpg",
"thumbnail": "https://images-webcams.windy.com/35/1179853135/current/thumbnail/1179853135.jpg"
},
"daylight": {},
"sizes": {
"preview": {
"height": 224,
"width": 400
}
}
},
"last_updated_on": "2026-08-19T14:52:11.000Z",
"latitude": -33.84903,
"live_stream_url": "https://webcams.windy.com/webcams/public/embed/player/1179853135/live",
"location": {
"city": "Sydney",
"city_code": "AU.02.Sydney",
"continent": "Oceania",
"continent_code": "OC",
"country": "Australia",
"country_code": "AU",
"latitude": -33.84903,
"longitude": 151.21559,
"region": "New South Wales",
"region_code": "AU.02"
},
"longitude": 151.21559,
"place": "Sydney, Australia",
"player": {
"day": "https://webcams.windy.com/webcams/public/embed/player/1179853135/day",
"lifetime": "https://webcams.windy.com/webcams/public/embed/player/1179853135/lifetime",
"live": "https://webcams.windy.com/webcams/public/embed/player/1179853135/live",
"month": "https://webcams.windy.com/webcams/public/embed/player/1179853135/month",
"year": "https://webcams.windy.com/webcams/public/embed/player/1179853135/year"
},
"preview_image_url": "https://images-webcams.windy.com/35/1179853135/current/preview/1179853135.jpg",
"provider_url": "https://www.example-webcam-owner.com/",
"status": "active",
"title": "Sydney: Sydney Harbour Bridge - Sydney Opera House",
"view_count": 1282618,
"webcam_id": 1179853135
}Get air quality forecast
Get the air quality forecast for a point: the US Air Quality Index with the band it falls in, fine and coarse particulates, nitrogen dioxide, ozone, sulfur dioxide, carbon monoxide and dust. The European model (camsEu) adds the six pollen counts.
Inputs
- Latitude
latitudenumberRequired - Latitude of the point, between -90 and 90.From -90 to 90.
- Longitude
longitudenumberRequired - Longitude of the point, between -180 and 180.From -180 to 180.
- Air quality model
modeltext - Which air quality model to read. CAMS covers the whole world; the European model adds pollen.One of:
cams(Global air quality (cams, free key)),camsEu(Europe, air quality including pollen (camsEu)). Default:cams. - Hours ahead
hours_aheadnumber - How far into the future to return, in hours. The models run from about 2 days (high resolution) to about 10 days out; anything past the end of the run simply returns fewer steps.From 1 to 384. Default:
24.
Outputs
forecast_endtext- Time of the last step (UTC)
forecast_starttext- Time of the first step (UTC)
hours_aheadnumber- Requested window, in hours
latitudenumber- Latitude the forecast is for
longitudenumber- Longitude the forecast is for
modeltext- Forecast model used
model_coveragetext- What the model covers, for example 'Global'
row_countnumber- How many forecast steps returned
rowslist- One entry per forecast step, earliest first
unitsobject- Windy's own unit for each raw response key
Example output
{
"forecast_end": "2026-08-20T15:00:00Z",
"forecast_start": "2026-08-19T15:00:00Z",
"hours_ahead": 24,
"latitude": 50.088,
"longitude": 14.42,
"model": "cams",
"model_coverage": "Global air quality",
"row_count": 1,
"rows": [
{
"aqi": 42.0,
"aqi_category": "Good",
"carbon_monoxide": 118.2,
"dust": 2.4,
"nitrogen_dioxide": 12.1,
"ozone": 61.3,
"pm10": 16.4,
"pm2_5": 9.8,
"sulfur_dioxide": 1.7,
"time": "2026-08-19T15:00:00Z",
"timestamp_ms": 1787151600000
}
],
"units": {
"pm2p5-surface": "\u00b5g*m-3"
}
}Get current weather
Get the conditions at a point right now, or at a time you choose. Windy publishes forecast runs rather than live observations, so this returns the forecast step nearest the moment asked for and says how far from it that step is.
Inputs
- Latitude
latitudenumberRequired - Latitude of the point, between -90 and 90.From -90 to 90.
- Longitude
longitudenumberRequired - Longitude of the point, between -180 and 180.From -180 to 180.
- Forecast model
modeltext - Which weather model to read. GFS covers the whole world; the others are sharper but regional.One of:
arome(France and surrounding areas (arome, free key)),aromeAntilles(French Antilles (aromeAntilles)),aromeFrance(Metropolitan France (aromeFrance)),aromeReunion(Réunion island (aromeReunion)),icon(Global (ICON-Global) (icon)),iconD2(Germany, Austria and Switzerland, high resolution (iconD2)),iconEu(Europe and surrounding areas (iconEu, free key)),gfs(Global (gfs, free key)),namConus(Continental USA and surrounding areas (namConus, free key)),namHawaii(Hawaii (namHawaii, free key)), and 4 more. Default:gfs. - At this time
at_timedate and time - The moment to report on. Leave empty for right now. Times are handled in UTC.
Outputs
conditionsobjectforecast_timetext- The forecast step returned, in UTC
latitudenumber- Latitude reported on
longitudenumber- Longitude reported on
modeltext- Forecast model used
model_coveragetext- What the model covers
offset_minutesnumber- How far the step is from the moment asked for
requested_timetext- The moment asked for, in UTC
unitsobject- Windy's own units
Example output
{
"conditions": {
"cape_j_per_kg": 118.0,
"convective_precipitation_mm": 0.0,
"dew_point_c": 12.1,
"dew_point_f": 53.8,
"high_cloud_percent": 21.0,
"humidity_percent": 47.0,
"low_cloud_percent": 12.0,
"medium_cloud_percent": 3.0,
"precipitation_mm": 0.0,
"precipitation_type": "No precipitation",
"pressure_hpa": 1016.4,
"snow_mm": 0.0,
"temperature_c": 24.3,
"temperature_f": 75.7,
"time": "2026-08-19T15:00:00Z",
"timestamp_ms": 1787151600000,
"wind_direction": "WSW",
"wind_direction_degrees": 245.0,
"wind_gust_kmh": 29.5,
"wind_gust_knots": 15.9,
"wind_gust_ms": 8.2,
"wind_speed_kmh": 16.6,
"wind_speed_knots": 8.9,
"wind_speed_ms": 4.6
},
"forecast_time": "2026-08-19T15:00:00Z",
"latitude": 50.088,
"longitude": 14.42,
"model": "gfs",
"model_coverage": "Global",
"offset_minutes": -12,
"requested_time": "2026-08-19T15:12:00Z",
"units": {
"temp-surface": "K"
}
}Get marine forecast
Get the sea forecast for a point: wave height, period and direction, wind waves, primary and secondary swell, and (with the Copernicus model) ocean surface and tidal currents.
Inputs
- Latitude
latitudenumberRequired - Latitude of the point, between -90 and 90.From -90 to 90.
- Longitude
longitudenumberRequired - Longitude of the point, between -180 and 180.From -180 to 180.
- Sea model
modeltext - Which sea model to read. The wave models carry waves and swell; the Copernicus model (cmems) carries ocean currents instead.One of:
gfsWave(Global waves (excludes parts of Hudson Bay, the Black and Caspian Seas and most of the Arctic Ocean) (gfsWave, free key)),iconWave(Global waves (ICON-GWAM) (iconWave)),iconEuWave(European seas (ICON-EWAM) (iconEuWave)),canRdwpsWave(Canadian waters (canRdwpsWave)),cmems(Global ocean currents (Copernicus Marine Service) (cmems)). Default:gfsWave. - Hours ahead
hours_aheadnumber - How far into the future to return, in hours. The models run from about 2 days (high resolution) to about 10 days out; anything past the end of the run simply returns fewer steps.From 1 to 384. Default:
24.
Outputs
forecast_endtext- Time of the last step (UTC)
forecast_starttext- Time of the first step (UTC)
hours_aheadnumber- Requested window, in hours
latitudenumber- Latitude the forecast is for
longitudenumber- Longitude the forecast is for
modeltext- Forecast model used
model_coveragetext- What the model covers, for example 'Global'
row_countnumber- How many forecast steps returned
rowslist- One entry per forecast step, earliest first
unitsobject- Windy's own unit for each raw response key
Example output
{
"forecast_end": "2026-08-20T15:00:00Z",
"forecast_start": "2026-08-19T15:00:00Z",
"hours_ahead": 24,
"latitude": 36.0,
"longitude": -9.5,
"model": "gfsWave",
"model_coverage": "Global waves",
"row_count": 1,
"rows": [
{
"swell_direction": "WNW",
"swell_direction_degrees": 301.0,
"swell_height_m": 1.28,
"swell_period_s": 9.1,
"time": "2026-08-19T15:00:00Z",
"timestamp_ms": 1787151600000,
"wave_direction": "WNW",
"wave_direction_degrees": 292.0,
"wave_height_m": 1.42,
"wave_period_s": 7.4,
"wave_power": 8.6,
"wave_power_unit": "kW*m-1",
"wind_wave_direction": "W",
"wind_wave_direction_degrees": 268.0,
"wind_wave_height_m": 0.61,
"wind_wave_period_s": 3.9
}
],
"units": {
"waves_height-surface": "m"
}
}Get raw point forecast
Get raw forecast values for a point: pick any of Windy's 21 models, any of its 39 parameters and, for temperature, dew point, humidity, wind and geopotential height, any pressure level. Values come back under Windy's own keys with the units it reports them in. Use this when the weather, marine and air quality actions do not carry the value you need.
Inputs
- Latitude
latitudenumberRequired - Latitude of the point, between -90 and 90.From -90 to 90.
- Longitude
longitudenumberRequired - Longitude of the point, between -180 and 180.From -180 to 180.
- Model
modeltextRequired - Which of Windy's models to read. Each publishes its own set of parameters; anything the model does not publish is reported back as skipped.
- Parameters
parameterslistRequired - Which values to fetch. Pick as many as the model publishes.
- Altitude levels
levelstext - Which pressure levels to read, for the parameters that have them (temperature, dew point, humidity, wind and geopotential height). Surface is used when nothing is chosen, and for every other parameter.One or more of:
surface,1000h(1000 hPa),950h(950 hPa),925h(925 hPa),900h(900 hPa),850h(850 hPa),800h(800 hPa),700h(700 hPa),600h(600 hPa),500h(500 hPa), and 4 more. - Hours ahead
hours_aheadnumber - How far into the future to return, in hours. The models run from about 2 days (high resolution) to about 10 days out; anything past the end of the run simply returns fewer steps.From 1 to 384. Default:
24.
Outputs
forecast_endtext- Time of the last step (UTC)
forecast_starttext- Time of the first step (UTC)
hours_aheadnumber- Requested window, in hours
latitudenumber- Latitude the forecast is for
levelslist- Levels that were requested
longitudenumber- Longitude the forecast is for
modeltext- Forecast model used
model_coveragetext- What the model covers, for example 'Global'
parameters_returnedlist- Parameters this model publishes and returned
parameters_skippedlist- Requested parameters this model does not publish
row_countnumber- How many forecast steps returned
rowslist- One entry per forecast step, carrying 'time', 'timestamp_ms' and one field per value key
unitsobject- Windy's own unit for each raw response key
value_keyslist- The keys each row carries, for example 'temp-surface'
Example output
{
"forecast_end": "2026-08-20T15:00:00Z",
"forecast_start": "2026-08-19T15:00:00Z",
"hours_ahead": 24,
"latitude": 50.088,
"levels": [
"surface",
"800h"
],
"longitude": 14.42,
"model": "gfs",
"model_coverage": "Global",
"parameters_returned": [
"temp",
"rh"
],
"parameters_skipped": [
"waves"
],
"row_count": 1,
"rows": [
{
"rh-800h": 38.0,
"rh-surface": 47.0,
"temp-800h": 285.12,
"temp-surface": 297.45,
"time": "2026-08-19T15:00:00Z",
"timestamp_ms": 1787151600000
}
],
"units": {
"rh-surface": "%",
"temp-surface": "K"
},
"value_keys": [
"temp-surface",
"temp-800h",
"rh-surface",
"rh-800h"
]
}Get several webcams
Get up to 50 webcams at once by their ids, each with its location, still image and player links. Windy ignores every other filter when ids are given, so this is a lookup rather than a search.
Inputs
- Webcam ids
webcam_idslistRequired - The ids to fetch, at most 50. Accepts a list or a comma-separated string.
- Details to include
includetext - Which parts of each webcam record to fetch. Everything is included when nothing is chosen.One or more of:
categories,images(Still images),location,player(Live and timelapse players),urls(Links). - Language
languagetext - Language for webcam titles, category names and place names. Defaults to English.
Outputs
limitnumber- How many ids were asked for
requested_idslist- The ids that were asked for
returnednumber- How many are in this result
totalnumber- How many Windy matched
webcamslist- The webcams found
Example output
{
"limit": 1,
"requested_ids": [
1179853135
],
"returned": 1,
"total": 1,
"webcams": [
{
"categories": [
{
"id": "landscape",
"name": "Landscape"
}
],
"category_ids": [
"landscape"
],
"detail_url": "https://www.windy.com/webcams/1179853135",
"images": {
"current": {
"preview": "https://images-webcams.windy.com/35/1179853135/current/preview/1179853135.jpg",
"thumbnail": "https://images-webcams.windy.com/35/1179853135/current/thumbnail/1179853135.jpg"
},
"daylight": {},
"sizes": {
"preview": {
"height": 224,
"width": 400
}
}
},
"last_updated_on": "2026-08-19T14:52:11.000Z",
"latitude": -33.84903,
"live_stream_url": "https://webcams.windy.com/webcams/public/embed/player/1179853135/live",
"location": {
"city": "Sydney",
"city_code": "AU.02.Sydney",
"continent": "Oceania",
"continent_code": "OC",
"country": "Australia",
"country_code": "AU",
"latitude": -33.84903,
"longitude": 151.21559,
"region": "New South Wales",
"region_code": "AU.02"
},
"longitude": 151.21559,
"place": "Sydney, Australia",
"player": {
"day": "https://webcams.windy.com/webcams/public/embed/player/1179853135/day",
"lifetime": "https://webcams.windy.com/webcams/public/embed/player/1179853135/lifetime",
"live": "https://webcams.windy.com/webcams/public/embed/player/1179853135/live",
"month": "https://webcams.windy.com/webcams/public/embed/player/1179853135/month",
"year": "https://webcams.windy.com/webcams/public/embed/player/1179853135/year"
},
"preview_image_url": "https://images-webcams.windy.com/35/1179853135/current/preview/1179853135.jpg",
"provider_url": "https://www.example-webcam-owner.com/",
"status": "active",
"title": "Sydney: Sydney Harbour Bridge - Sydney Opera House",
"view_count": 1282618,
"webcam_id": 1179853135
}
]
}Get weather forecast
Get the weather forecast for a point on the map, step by step: temperature, wind speed and direction, gusts, rain and snow, cloud cover, humidity and pressure. Values arrive in everyday units (°C and °F, km/h and knots, mm, hPa), and the forecast model decides the coverage and resolution.
Inputs
- Latitude
latitudenumberRequired - Latitude of the point, between -90 and 90.From -90 to 90.
- Longitude
longitudenumberRequired - Longitude of the point, between -180 and 180.From -180 to 180.
- Forecast model
modeltext - Which weather model to read. GFS covers the whole world; the others are sharper but regional. Models marked 'free key' are the ones a free Windy Point Forecast key can request.One of:
arome(France and surrounding areas (arome, free key)),aromeAntilles(French Antilles (aromeAntilles)),aromeFrance(Metropolitan France (aromeFrance)),aromeReunion(Réunion island (aromeReunion)),icon(Global (ICON-Global) (icon)),iconD2(Germany, Austria and Switzerland, high resolution (iconD2)),iconEu(Europe and surrounding areas (iconEu, free key)),gfs(Global (gfs, free key)),namConus(Continental USA and surrounding areas (namConus, free key)),namHawaii(Hawaii (namHawaii, free key)), and 4 more. Default:gfs. - Hours ahead
hours_aheadnumber - How far into the future to return, in hours. The models run from about 2 days (high resolution) to about 10 days out; anything past the end of the run simply returns fewer steps.From 1 to 384. Default:
24.
Outputs
forecast_endtext- Time of the last step (UTC)
forecast_starttext- Time of the first step (UTC)
hours_aheadnumber- Requested window, in hours
latitudenumber- Latitude the forecast is for
longitudenumber- Longitude the forecast is for
modeltext- Forecast model used
model_coveragetext- What the model covers, for example 'Global'
row_countnumber- How many forecast steps returned
rowslist- One entry per forecast step, earliest first
unitsobject- Windy's own unit for each raw response key
Example output
{
"forecast_end": "2026-08-20T15:00:00Z",
"forecast_start": "2026-08-19T15:00:00Z",
"hours_ahead": 24,
"latitude": 50.088,
"longitude": 14.42,
"model": "gfs",
"model_coverage": "Global",
"row_count": 1,
"rows": [
{
"cape_j_per_kg": 118.0,
"convective_precipitation_mm": 0.0,
"dew_point_c": 12.1,
"dew_point_f": 53.8,
"high_cloud_percent": 21.0,
"humidity_percent": 47.0,
"low_cloud_percent": 12.0,
"medium_cloud_percent": 3.0,
"precipitation_mm": 0.0,
"precipitation_type": "No precipitation",
"pressure_hpa": 1016.4,
"snow_mm": 0.0,
"temperature_c": 24.3,
"temperature_f": 75.7,
"time": "2026-08-19T15:00:00Z",
"timestamp_ms": 1787151600000,
"wind_direction": "WSW",
"wind_direction_degrees": 245.0,
"wind_gust_kmh": 29.5,
"wind_gust_knots": 15.9,
"wind_gust_ms": 8.2,
"wind_speed_kmh": 16.6,
"wind_speed_knots": 8.9,
"wind_speed_ms": 4.6
}
],
"units": {
"pressure-surface": "Pa",
"temp-surface": "K"
}
}Get webcams for a map
Get webcams spread evenly across a map view, for a rectangle and a zoom level, so pins do not pile up on top of each other. Where several webcams sit close together one stands in for the group and carries how many it represents. The rectangle may not be wider than the zoom level allows: 22.5° of latitude at zoom 4, halving with every level in.
Inputs
- North edge (latitude)
north_latitudenumberRequired - Latitude of the top edge of the area, between -90 and 90.From -90 to 90.
- East edge (longitude)
east_longitudenumberRequired - Longitude of the right edge of the area, between -180 and 180.From -180 to 180.
- South edge (latitude)
south_latitudenumberRequired - Latitude of the bottom edge of the area, between -90 and 90.From -90 to 90.
- West edge (longitude)
west_longitudenumberRequired - Longitude of the left edge of the area, between -180 and 180.From -180 to 180.
- Zoom level
zoomnumberRequired - Map zoom level, 4 (continents) to 18 (streets). It decides how many webcams are grouped together, and how wide the rectangle may be.From 4 to 18. Default:
8. - Details to include
includetext - Which parts of each webcam record to fetch. Everything is included when nothing is chosen.One or more of:
categories,images(Still images),location,player(Live and timelapse players),urls(Links). - Language
languagetext - Language for webcam titles, category names and place names. Defaults to English.
Outputs
bounding_boxobject- The area covered
returnednumber- How many webcams returned
webcamslist- The webcams, each possibly standing in for a cluster
zoomnumber- The zoom level used
Example output
{
"bounding_box": {
"east_longitude": 9.0,
"north_latitude": 47.0,
"south_latitude": 46.0,
"west_longitude": 7.0
},
"returned": 1,
"webcams": [
{
"categories": [
{
"id": "landscape",
"name": "Landscape"
}
],
"category_ids": [
"landscape"
],
"cluster_size": 14,
"detail_url": "https://www.windy.com/webcams/1179853135",
"images": {
"current": {
"preview": "https://images-webcams.windy.com/35/1179853135/current/preview/1179853135.jpg",
"thumbnail": "https://images-webcams.windy.com/35/1179853135/current/thumbnail/1179853135.jpg"
},
"daylight": {},
"sizes": {
"preview": {
"height": 224,
"width": 400
}
}
},
"last_updated_on": "2026-08-19T14:52:11.000Z",
"latitude": -33.84903,
"live_stream_url": "https://webcams.windy.com/webcams/public/embed/player/1179853135/live",
"location": {
"city": "Sydney",
"city_code": "AU.02.Sydney",
"continent": "Oceania",
"continent_code": "OC",
"country": "Australia",
"country_code": "AU",
"latitude": -33.84903,
"longitude": 151.21559,
"region": "New South Wales",
"region_code": "AU.02"
},
"longitude": 151.21559,
"place": "Sydney, Australia",
"player": {
"day": "https://webcams.windy.com/webcams/public/embed/player/1179853135/day",
"lifetime": "https://webcams.windy.com/webcams/public/embed/player/1179853135/lifetime",
"live": "https://webcams.windy.com/webcams/public/embed/player/1179853135/live",
"month": "https://webcams.windy.com/webcams/public/embed/player/1179853135/month",
"year": "https://webcams.windy.com/webcams/public/embed/player/1179853135/year"
},
"preview_image_url": "https://images-webcams.windy.com/35/1179853135/current/preview/1179853135.jpg",
"provider_url": "https://www.example-webcam-owner.com/",
"status": "active",
"title": "Sydney: Sydney Harbour Bridge - Sydney Opera House",
"view_count": 1282618,
"webcam_id": 1179853135
}
],
"zoom": 8
}List webcam categories
List the categories a webcam can be filed under, with their names in the language you choose. These are the values the category filters accept.
Inputs
- Language
languagetext - Language for webcam titles, category names and place names. Defaults to English.
Outputs
categorieslist- The categories
returnednumber- How many categories
Example output
{
"categories": [
{
"id": "beach",
"name": "Beach"
},
{
"id": "mountain",
"name": "Mountain"
}
],
"returned": 2
}List webcam cities
List the city codes the webcam filters accept, with their localised names. Search by name or code to find one.
Inputs
- Search
searchtext - Only return entries whose name or code contains this text.
- How many to return
limitnumber - How many entries to return after the search filter, from 1 to 5000.From 1 to 5000. Default:
250. - Language
languagetext - Language for webcam titles, category names and place names. Defaults to English.
Outputs
citieslist- The cities, code and name
matchednumber- How many matched the search
returnednumber- How many are in this result
totalnumber- How many Windy publishes in all
Example output
{
"cities": [
{
"code": "AU.02.Sydney",
"name": "Sydney"
}
],
"matched": 1,
"returned": 1,
"total": 21453
}List webcam continents
List the continent codes the webcam filters accept, with their localised names.
Inputs
- Search
searchtext - Only return entries whose name or code contains this text.
- How many to return
limitnumber - How many entries to return after the search filter, from 1 to 5000.From 1 to 5000. Default:
250. - Language
languagetext - Language for webcam titles, category names and place names. Defaults to English.
Outputs
continentslist- The continents, code and name
matchednumber- How many matched the search
returnednumber- How many are in this result
totalnumber- How many Windy publishes in all
Example output
{
"continents": [
{
"code": "EU",
"name": "Europe"
},
{
"code": "OC",
"name": "Oceania"
}
],
"matched": 7,
"returned": 2,
"total": 7
}List webcam countries
List the country codes the webcam filters accept, with their localised names. Search by name or code to find one.
Inputs
- Search
searchtext - Only return entries whose name or code contains this text.
- How many to return
limitnumber - How many entries to return after the search filter, from 1 to 5000.From 1 to 5000. Default:
250. - Language
languagetext - Language for webcam titles, category names and place names. Defaults to English.
Outputs
countrieslist- The countries, code and name
matchednumber- How many matched the search
returnednumber- How many are in this result
totalnumber- How many Windy publishes in all
Example output
{
"countries": [
{
"code": "AU",
"name": "Australia"
}
],
"matched": 1,
"returned": 1,
"total": 214
}List webcam regions
List the region codes the webcam filters accept, with their localised names. Regions are states and provinces, coded like 'AU.02'; search by name or code to find one.
Inputs
- Search
searchtext - Only return entries whose name or code contains this text.
- How many to return
limitnumber - How many entries to return after the search filter, from 1 to 5000.From 1 to 5000. Default:
250. - Language
languagetext - Language for webcam titles, category names and place names. Defaults to English.
Outputs
matchednumber- How many matched the search
regionslist- The regions, code and name
returnednumber- How many are in this result
totalnumber- How many Windy publishes in all
Example output
{
"matched": 1,
"regions": [
{
"code": "AU.02",
"name": "New South Wales"
}
],
"returned": 1,
"total": 3894
}Search webcams
Search Windy's worldwide webcam collection by category and place. Filter by what the camera looks at (beach, mountain, traffic and so on) and by continent, country, region or city, and sort by popularity or by when the webcam was added. Each result carries its location, still image, live and timelapse player links and its page on windy.com.
Inputs
- Categories
categoriestext - Only return webcams in these categories, at most 10.One or more of:
airport,beach,building,city,coast,forest,indoor,lake,landscape,meteo(Weather station), and 8 more. - Category matching
category_operationtext - Whether a webcam has to be in every chosen category or just one of them. Only applies when categories are chosen; every category by default.One of:
and(Match every chosen category),or(Match any chosen category). - Continents
continentstext - Only return webcams on these continents, at most 2.One or more of:
AF(Africa),AN(Antarctica),AS(Asia),EU(Europe),NA(North America),OC(Oceania),SA(South America). - Countries
countrieslist - Only return webcams in these countries, at most 10.
- Regions
regionslist - Only return webcams in these regions (states or provinces), at most 10.
- Cities
citieslist - Only return webcams in these cities, at most 10.
- Sort by
sort_bytext - How to order the results. Windy's own order is used when this is empty.One of:
popularity,createdOn(When it was added). - Sort direction
sort_directiontext - Which end of the sort to start from. Only applies when a sort is chosen; highest or newest first by default.One of:
desc(Highest or newest first),asc(Lowest or oldest first). - How many webcams
limitnumber - How many webcams to return, from 1 to 50.From 1 to 50. Default:
10. - Skip this many
offsetnumber - Where to start in the result list, for paging. The free Webcams plan stops at 1000 and the professional plan at 10000.From 0 to 100000. Default:
0. - Details to include
includetext - Which parts of each webcam record to fetch. Everything is included when nothing is chosen.One or more of:
categories,images(Still images),location,player(Live and timelapse players),urls(Links). - Language
languagetext - Language for webcam titles, category names and place names. Defaults to English.
Outputs
filtersobject- The filters that were applied
limitnumber- The limit that was applied
returnednumber- How many are in this result
totalnumber- How many webcams match the filters in all
webcamslist- The matching webcams
Example output
{
"filters": {
"categories": [
"beach"
],
"cities": [],
"continents": [],
"countries": [
"AU"
],
"regions": []
},
"limit": 10,
"returned": 1,
"total": 1284,
"webcams": [
{
"categories": [
{
"id": "landscape",
"name": "Landscape"
}
],
"category_ids": [
"landscape"
],
"detail_url": "https://www.windy.com/webcams/1179853135",
"images": {
"current": {
"preview": "https://images-webcams.windy.com/35/1179853135/current/preview/1179853135.jpg",
"thumbnail": "https://images-webcams.windy.com/35/1179853135/current/thumbnail/1179853135.jpg"
},
"daylight": {},
"sizes": {
"preview": {
"height": 224,
"width": 400
}
}
},
"last_updated_on": "2026-08-19T14:52:11.000Z",
"latitude": -33.84903,
"live_stream_url": "https://webcams.windy.com/webcams/public/embed/player/1179853135/live",
"location": {
"city": "Sydney",
"city_code": "AU.02.Sydney",
"continent": "Oceania",
"continent_code": "OC",
"country": "Australia",
"country_code": "AU",
"latitude": -33.84903,
"longitude": 151.21559,
"region": "New South Wales",
"region_code": "AU.02"
},
"longitude": 151.21559,
"place": "Sydney, Australia",
"player": {
"day": "https://webcams.windy.com/webcams/public/embed/player/1179853135/day",
"lifetime": "https://webcams.windy.com/webcams/public/embed/player/1179853135/lifetime",
"live": "https://webcams.windy.com/webcams/public/embed/player/1179853135/live",
"month": "https://webcams.windy.com/webcams/public/embed/player/1179853135/month",
"year": "https://webcams.windy.com/webcams/public/embed/player/1179853135/year"
},
"preview_image_url": "https://images-webcams.windy.com/35/1179853135/current/preview/1179853135.jpg",
"provider_url": "https://www.example-webcam-owner.com/",
"status": "active",
"title": "Sydney: Sydney Harbour Bridge - Sydney Opera House",
"view_count": 1282618,
"webcam_id": 1179853135
}
]
}