AccuWeather APIaccuweather.com ↗
Access real-time weather conditions, multi-day forecasts, allergen levels, and severe weather alerts for any city via the AccuWeather API.
What is the AccuWeather API?
The AccuWeather API covers 3 endpoints that return current conditions, daily and hourly forecasts, health/allergen data, severe weather alerts, and radar metadata for any city worldwide. The get_weather endpoint resolves a plain city name to a location key and returns a single response with temperature, humidity, wind speed, precipitation probability, and allergen levels — no separate geocoding step required.
curl -X GET 'https://api.parse.bot/scraper/903a2550-8d7e-4c35-91eb-ede1171b74f6/get_weather?city=London' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace accuweather-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: AccuWeather SDK — bounded, re-runnable; every call capped."""
from parse_apis.accuweather_scraper_api import AccuWeather, LocationNotFound
client = AccuWeather()
# Get full weather for a city — current conditions, forecast, allergens.
weather = client.weathers.get(city="London")
print(f"Location: {weather.location.name}, {weather.location.country}")
print(f"Current: {weather.current_conditions.temperature}°F, {weather.current_conditions.condition}")
print(f"Humidity: {weather.current_conditions.humidity}%")
# Walk the daily forecast (already bounded by the endpoint's single-page response).
for day in weather.forecast.daily[:3]:
print(f" {day.date}: {day.condition} (H:{day.high} L:{day.low}, Rain:{day.precipitation_probability}%)")
# Allergen info from the same Weather object.
for allergen in weather.allergens[:3]:
print(f" Allergen: {allergen.type} — {allergen.level}")
# Search locations — find cities matching a query.
location = client.locationresults.search(query="Istanbul", limit=1).first()
if location:
print(f"Found: {location.english_name} (key={location.key}, rank={location.rank})")
# List provinces/states for a country.
for city in client.cities.list(country_code="us", limit=5):
print(f" State: {city.name} — {city.url}")
# Typed error handling — catch a not-found city.
try:
client.weathers.get(city="Xyzzyville999")
except LocationNotFound as exc:
print(f"Location not found: {exc.city}")
print("exercised: weathers.get / locationresults.search / cities.list / LocationNotFound")
Get comprehensive weather data for a city including current conditions, daily and hourly forecasts, alerts, allergens, and radar metadata. Resolves city name to a location key internally, then fetches multiple data sources. Returns temperature in Fahrenheit, wind speed in mph.
| Param | Type | Description |
|---|---|---|
| cityrequired | string | City name to get weather for (e.g., 'Istanbul', 'New York', 'London') |
{
"type": "object",
"fields": {
"radar": "object with radar_base_url and params for map tile requests",
"alerts": "array of alert objects or string 'none' if no alerts",
"forecast": "object with daily (array of date/condition/high/low/precipitation_probability) and hourly (array of time/condition/temperature/precipitation_probability)",
"location": "object with name, key, country, localized_name, admin_area",
"allergens": "array of objects with type and level fields",
"current_conditions": "object with temperature (°F), humidity (%), wind_speed (mph), condition, is_day_time, observation_time"
},
"sample": {
"data": {
"radar": {
"params": [
"zoom",
"lon",
"lat",
"imgwidth",
"imgheight"
],
"radar_base_url": "https://api.accuweather.com/maps/v1/radar/static/globalSIR/tile"
},
"alerts": "none",
"forecast": {
"daily": [
{
"low": 57,
"date": "Thu6/11",
"high": 60,
"condition": "Rain at times",
"precipitation_probability": 91
}
],
"hourly": [
{
"time": "6 AM",
"condition": "Mostly cloudy",
"temperature": 50,
"precipitation_probability": 20
}
]
},
"location": {
"key": "328328",
"name": "London",
"country": "gb",
"admin_area": "London",
"localized_name": "London"
},
"allergens": [
{
"type": "Tree Pollen",
"level": "Low"
}
],
"current_conditions": {
"humidity": 87,
"condition": "Mostly cloudy",
"wind_speed": 7.4,
"is_day_time": true,
"temperature": 50,
"observation_time": "2026-06-11T05:26:00+01:00"
}
},
"status": "success"
}
}About the AccuWeather API
What the API Returns
The get_weather endpoint accepts a city string (e.g., 'New York', 'Istanbul') and returns six top-level objects in one call: current_conditions (temperature in °F, humidity %, wind speed in mph, textual condition, is_day_time flag, and observation timestamp), forecast (daily array with date, condition, high/low temps, and precipitation probability; hourly array with time, condition, and temperature), alerts (array of active alert objects or the string 'none'), allergens (array of {type, level} pairs), location (name, country, admin area, and AccuWeather location key), and radar (base URL, API key, and tile params for map rendering).
Location Discovery
search_locations takes a free-text query and returns matching place records including the unique AccuWeather Key field, EnglishName, Type (e.g., 'City'), GeoPosition (latitude, longitude, elevation), Country, AdministrativeArea, and timezone details. This endpoint is useful when you need to resolve an ambiguous city name or retrieve the numeric key for downstream calls.
list_cities accepts an ISO 2-letter country_code (case-insensitive) and returns an array of province-level or major administrative division entries for that country. Each entry includes a name, url (the AccuWeather browse page), and type (always 'Province/City'). This is useful for building country-level location pickers or auditing geographic coverage.
Units and Coverage
Temperature values in current_conditions are returned in degrees Fahrenheit. Wind speed is in mph. There is no request parameter to switch units — callers should convert on the client side if needed. Allergen data and radar metadata are included in the get_weather response without additional parameters; availability may vary by region depending on what AccuWeather publishes for the queried location.
The AccuWeather API is a managed, monitored endpoint for accuweather.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when accuweather.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official accuweather.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display current temperature, humidity, and wind speed for a user's city in a mobile weather widget.
- Build a pollen and allergen tracker using the
allergensarray returned byget_weather. - Render a live radar map tile layer using the
radarobject's base URL and params fromget_weather. - Trigger push notifications when the
alertsarray inget_weathercontains active severe weather objects. - Populate a city autocomplete or search dropdown using
search_locationswith the returnedKeyandEnglishName. - Generate a country-level location picker by iterating provinces from
list_citieswith a given ISO country code. - Show a 5-day forecast with precipitation probability using the
forecast.dailyarray fromget_weather.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does AccuWeather have an official developer API?+
What does the `get_weather` endpoint return beyond basic temperature?+
allergens array with type and level fields, an alerts array for active severe weather, a forecast object with both daily (high/low, precipitation probability) and hourly (time, condition, temperature) arrays, and a radar object with the tile base URL and API key for rendering map overlays.Are air quality index (AQI) values available from this API?+
Can I retrieve weather data in metric units (Celsius, km/h)?+
get_weather endpoint returns temperature in °F and wind speed in mph with no unit parameter. You will need to convert values on the client side. You can fork this API on Parse and revise the endpoint to include a unit conversion layer or map to AccuWeather's metric response variant.