← Docs

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

GET
api.parseapi.com/weather?lat={lat}&lon={lon}
Current conditions from the nearest station. Paid deep adds specialist readings and available forecasts, rain minutes, and alerts
Explore
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 uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

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?

Example response
{
  "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.

GET
api.parseapi.com/weather?lat={lat}&lon={lon}&deep=true&date={date}
A past day's summary rides deep.history
Explore
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?

Example response
{
  "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