Search by task, endpoint, field, or error.
Weather API
Current conditions at a latitude and longitude.
Current conditions for a latitude and longitude, from the nearest official station. current holds the reading: temperature (and temperature_f), feels_like, humidity, wind_speed / wind_direction, and condition. station identifies the reporting station, and current.observed_at gives the reading time. Twelve countries: the United States, Canada, Germany, Australia, Japan, Sweden, Finland, Austria, Ireland, Portugal, Poland, and Switzerland.
Every measurement ships in metric and imperial side by side (wind_speed + wind_speed_mph, and so on). No unit parameter. A field can come back null when the station has a gap in that reading.
Lookup
Parameters 4
- latnumber · query · required
Latitude
- lonnumber · query · required
Longitude
- datestring · query · optional
A past UTC day (YYYY-MM-DD). With deep, that day rides deep.history
- deepboolean · query · optional
Additional current measurements, forecasts, radar rain, alerts, air quality and requested historical detail. Included on paid plans.
import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.weather(40.7128, -74.006);
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"latitude": 40.7128,
"longitude": -74.006,
"current": {
"temperature": 25.6,
"temperature_f": 78.1,
"feels_like": 26.4,
"feels_like_f": 79.5,
"humidity": 85,
"wind_speed": 7.6,
"wind_speed_mph": 4.7,
"wind_direction": 200,
"condition": "clear",
"condition_name": "Clear",
"condition_emoji": "☀️",
"observed_at": "2026-08-09T12:51:00+00:00"
},
"station": {
"id": "KNYC",
"name": "New York City, Central Park",
"distance": 8.51,
"distance_mi": 5.29
}
}Response fields
- latitudenumber
- Input latitude
- longitudenumber
- Input longitude
- current.temperaturenumber or null
- Temperature in Celsius
- current.temperature_fnumber or null
- Temperature in Fahrenheit
- current.feels_likenumber or null
- Heat index, wind chill, or temperature. Celsius
- current.feels_like_fnumber or null
- Same, in Fahrenheit
- current.humiditynumber or null
- Relative humidity, percent
- current.wind_speednumber or null
- Sustained wind speed, km/h
- current.wind_speed_mphnumber or null
- Sustained wind speed, mph
- current.wind_directionnumber or null
- Wind direction, degrees. Null when calm
- current.conditionstring or null
- Bounded condition code, e.g. rain, fog, clear
- current.condition_namestring or null
- Readable condition text as reported
- current.condition_emojistring or null
- One emoji for the condition code
- current.observed_atstring or null
- Observation timestamp
- station.idstring
- Nearest station id
- station.namestring or null
- Readable station name
- station.distancenumber or null
- km from the input point
- station.distance_minumber or null
- Miles from the input point
In a mobile app
Ship an app key and the Swift or Kotlin SDK. They send your bundle ID as X-App-Id. Coordinates from the device, weather back.
import ParseAPI
let parse = try ParseAPI("parse_app_...")
let weather = try await parse.weather(lat, lon)import com.parseapi.ParseAPI
val parse = ParseAPI("parse_app_...") {
appId = BuildConfig.APPLICATION_ID
}
val weather = parse.weather(lat, lon)Deep
Paid. deep.current adds dewpoint, gust, pressure and visibility. deep.hours is one row per hour for the next 48, worldwide, on the point's own clock. deep.days is today plus six, cut on the point's own calendar. deep.minutes is minute-by-minute rain for the next hour from live radar (US coverage). deep.forecast carries 12-hour periods for about a week out (US and Canada). deep.alerts covers the US, Canada, and eight European countries, an empty array when skies are quiet. deep.air is the air quality at the point, worldwide: EPA index, PM2.5, PM10. Free ships deep: {}.
Time machine
Add date=YYYY-MM-DD to a deep call and deep.history returns that day at the point: high, low, precipitation total, max wind, sunrise, sunset, and the moon. Days are UTC. Worldwide.
Parameters 4
- latnumber · query · required
Latitude
- lonnumber · query · required
Longitude
- datestring · query · optional
A past UTC day (YYYY-MM-DD). With deep, that day rides deep.history
- deepboolean · query · optional
Additional current measurements, forecasts, radar rain, alerts, air quality and requested historical detail. Included on paid plans.
Run this Deep example with a paid-plan key. Deep is included in the pooled request, with no separate lookup charge.
import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.weather(40.7128, -74.006, { deep: true });
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"latitude": 40.7128,
"longitude": -74.006,
"current": {
"temperature": 25.6,
"temperature_f": 78.1,
"feels_like": 26.4,
"feels_like_f": 79.5,
"humidity": 85,
"wind_speed": 7.6,
"wind_speed_mph": 4.7,
"wind_direction": 200,
"condition": "clear",
"condition_name": "Clear",
"condition_emoji": "☀️",
"observed_at": "2026-08-09T12:51:00+00:00"
},
"station": {
"id": "KNYC",
"name": "New York City, Central Park",
"distance": 8.51,
"distance_mi": 5.29
},
"deep": {
"forecast": [
{
"name": "Today",
"start": "2026-08-09T06:00:00-04:00",
"end": "2026-08-09T18:00:00-04:00",
"daytime": true,
"temperature": 31,
"temperature_f": 87,
"precipitation_chance": 15,
"wind_speed": 14.5,
"wind_speed_mph": 9,
"wind_direction": 270,
"condition": "thunderstorm",
"condition_name": "Mostly Sunny then Slight Chance Showers And Thunderstorms",
"condition_emoji": "⛈️"
}
],
"alerts": [
{
"event": "Heat Advisory",
"severity": "moderate",
"urgency": "expected",
"headline": "Heat Advisory issued August 9 at 2:51AM EDT until August 9 at 7:00PM EDT by NWS Upton NY",
"onset": "2026-08-09T10:00:00-04:00",
"expires": "2026-08-09T11:00:00-04:00"
}
],
"minutes": [
{
"at": "2026-08-09T14:07:00Z",
"precipitation": 0,
"precipitation_in": 0,
"type": null
},
{
"at": "2026-08-09T14:08:00Z",
"precipitation": 1.8,
"precipitation_in": 0.071,
"type": "rain"
}
],
"hours": [
{
"at": "2026-08-09T10:00:00-04:00",
"daytime": true,
"temperature": 29,
"temperature_f": 84,
"feels_like": 31.2,
"feels_like_f": 88.2,
"humidity": 62,
"precipitation_chance": 5,
"wind_speed": 11.3,
"wind_speed_mph": 7,
"wind_gust": null,
"wind_gust_mph": null,
"wind_direction": 247.5,
"condition": "mostly_clear",
"condition_name": "Mostly Sunny",
"condition_emoji": "🌤️"
},
{
"at": "2026-08-09T11:00:00-04:00",
"daytime": true,
"temperature": 31,
"temperature_f": 87,
"feels_like": 33.9,
"feels_like_f": 93,
"humidity": 55,
"precipitation_chance": 10,
"wind_speed": 12.9,
"wind_speed_mph": 8,
"wind_gust": 24.1,
"wind_gust_mph": 15,
"wind_direction": 270,
"condition": "mostly_clear",
"condition_name": "Mostly Sunny",
"condition_emoji": "🌤️"
}
],
"days": [
{
"date": "2026-08-09",
"high": 32,
"high_f": 90,
"low": 22,
"low_f": 72,
"precipitation_chance": 30,
"condition": "partly_cloudy",
"condition_name": "Partly cloudy",
"condition_emoji": "⛅",
"sunrise": "2026-08-09T06:00:47-04:00",
"sunset": "2026-08-09T20:02:11-04:00",
"moon_phase": "waning_crescent",
"moon_phase_name": "Waning crescent",
"moon_phase_emoji": "🌘"
},
{
"date": "2026-08-10",
"high": 29,
"high_f": 84,
"low": 21,
"low_f": 70,
"precipitation_chance": 60,
"condition": "rain",
"condition_name": "Rain",
"condition_emoji": "🌧️",
"sunrise": "2026-08-10T06:01:46-04:00",
"sunset": "2026-08-10T20:00:55-04:00",
"moon_phase": "waning_crescent",
"moon_phase_name": "Waning crescent",
"moon_phase_emoji": "🌘"
}
],
"air": {
"aqi": 42,
"aqi_name": "Good",
"pm2_5": 7.6,
"pm10": 14.2
},
"current": {
"dewpoint": 21.1,
"dewpoint_f": 70,
"wind_gust": null,
"wind_gust_mph": null,
"pressure": 1016,
"pressure_inhg": 30,
"visibility": 16.1,
"visibility_mi": 10
}
}
}Deep fields
- deep.forecastarray or null
- 7-day forecast periods. Paid. US and Canada
- deep.alertsarray or null
- Active alerts. Paid. US, Canada, and eight European countries
- deep.minutesarray or null
- Minute-by-minute rain for the next hour, 61 rows from live radar. Paid. US radar coverage
- deep.hoursarray or null
- Hour-by-hour rows for the next 48 hours in supported weather countries. Paid
- deep.daysarray or null
- Daily rows, today plus six, on the point's own calendar. Paid. Worldwide
- deep.airobject or null
- Modeled particulate air quality at the point in supported weather countries. Paid
- deep.historyobject or null
- A past day's summary. Add ?date=YYYY-MM-DD. Paid. Worldwide, UTC days
- deep.forecast[].namestring
- Period label (Today, Tonight, …)
- deep.forecast[].startstring or null
- Period start, ISO-8601
- deep.forecast[].endstring or null
- Period end, ISO-8601
- deep.forecast[].daytimeboolean or null
- Daytime period
- deep.forecast[].temperaturenumber or null
- Celsius
- deep.forecast[].temperature_fnumber or null
- Fahrenheit
- deep.forecast[].precipitation_chancenumber or null
- Chance of precipitation, percent
- deep.forecast[].wind_speednumber or null
- Wind speed, km/h
- deep.forecast[].wind_speed_mphnumber or null
- Wind speed, mph
- deep.forecast[].wind_directionnumber or null
- Wind direction, degrees
- deep.forecast[].conditionstring or null
- Bounded condition code
- deep.forecast[].condition_namestring or null
- Short forecast text
- deep.forecast[].condition_emojistring or null
- One emoji for the condition code
- deep.minutes[].atstring
- Minute start, ISO-8601
- deep.minutes[].precipitationnumber or null
- Precipitation rate, mm/h
- deep.minutes[].precipitation_innumber or null
- Precipitation rate, in/h
- deep.minutes[].typestring or null
- rain or snow, null when dry
- deep.hours[].atstring or null
- Hour start, ISO-8601
- deep.hours[].daytimeboolean or null
- Daytime hour
- deep.hours[].temperaturenumber or null
- Celsius
- deep.hours[].temperature_fnumber or null
- Fahrenheit
- deep.hours[].feels_likenumber or null
- Heat index, wind chill, or temperature. Celsius
- deep.hours[].feels_like_fnumber or null
- Same, in Fahrenheit
- deep.hours[].humiditynumber or null
- Relative humidity, percent
- deep.hours[].precipitation_chancenumber or null
- Chance of precipitation, percent
- deep.hours[].wind_speednumber or null
- Wind speed, km/h
- deep.hours[].wind_speed_mphnumber or null
- Wind speed, mph
- deep.hours[].wind_gustnumber or null
- Gust speed, km/h. Null when not gusting
- deep.hours[].wind_gust_mphnumber or null
- Gust speed, mph. Null when not gusting
- deep.hours[].wind_directionnumber or null
- Wind direction, degrees
- deep.hours[].conditionstring or null
- Bounded condition code
- deep.hours[].condition_namestring or null
- Condition text
- deep.hours[].condition_emojistring or null
- One emoji for the condition code
- deep.days[].datestring
- Local calendar date, YYYY-MM-DD
- deep.days[].highnumber or null
- High, Celsius
- deep.days[].high_fnumber or null
- High, Fahrenheit
- deep.days[].lownumber or null
- Low, Celsius
- deep.days[].low_fnumber or null
- Low, Fahrenheit
- deep.days[].precipitation_chancenumber or null
- Chance of precipitation, percent
- deep.days[].conditionstring or null
- Bounded condition code
- deep.days[].condition_namestring or null
- Condition text
- deep.days[].condition_emojistring or null
- One emoji for the condition code
- deep.days[].sunrisestring or null
- Sunrise, ISO-8601 local. Null in polar night or day
- deep.days[].sunsetstring or null
- Sunset, ISO-8601 local. Null in polar night or day
- deep.days[].moon_phasestring or null
- Phase code (new, full, waning_crescent, …)
- deep.days[].moon_phase_namestring or null
- Readable phase name
- deep.days[].moon_phase_emojistring or null
- One emoji for the phase
- deep.air.aqinumber or null
- Modeled particulate index estimate on the US EPA scale, 0-500
- deep.air.aqi_namestring or null
- Index category (Good, Moderate, …)
- deep.air.pm2_5number or null
- Fine particulate matter, ug/m3
- deep.air.pm10number or null
- Coarse particulate matter, ug/m3
- deep.history.datestring
- The day asked for, YYYY-MM-DD
- deep.history.highnumber or null
- High, Celsius (high_f in Fahrenheit)
- deep.history.lownumber or null
- Low, Celsius (low_f in Fahrenheit)
- deep.history.precipitationnumber or null
- Day total, mm (precipitation_in in inches)
- deep.history.wind_maxnumber or null
- Max sustained wind, km/h (wind_max_mph in mph)
- deep.history.sunrisestring or null
- Sunrise that day, ISO-8601 local
- deep.history.sunsetstring or null
- Sunset that day, ISO-8601 local
- deep.history.moon_phasestring or null
- Phase code that night
- deep.alerts[].eventstring
- Alert type
- deep.alerts[].severitystring or null
- Severity code (moderate, severe, …)
- deep.alerts[].urgencystring or null
- Urgency code (expected, immediate, …)
- deep.alerts[].headlinestring or null
- Headline text
- deep.alerts[].onsetstring or null
- Start, ISO-8601
- deep.alerts[].expiresstring or null
- Expiry, ISO-8601
- deep.current.dewpointnumber or null
- Dew point, Celsius
- deep.current.dewpoint_fnumber or null
- Dew point, Fahrenheit
- deep.current.wind_gustnumber or null
- Gust speed, km/h. Null when not gusting
- deep.current.wind_gust_mphnumber or null
- Gust speed, mph. Null when not gusting
- deep.current.pressurenumber or null
- Pressure, hPa
- deep.current.pressure_inhgnumber or null
- Pressure, inHg
- deep.current.visibilitynumber or null
- Visibility, km
- deep.current.visibility_minumber or null
- Visibility, miles
Build with Weather
All tutorials →Questions? Email