# AccuWeather Developer Portal
> Complete content of all documentation pages for AccuWeather APIs and the developer portal.
## Core pages
- [Home](https://developer.accuweather.com/home): Landing page with an overview of AccuWeather APIs
- [Pricing](https://developer.accuweather.com/pricing): Pricing information for all API plans
- [FAQ](https://developer.accuweather.com/faq): Frequently asked questions
- [Contact Us](https://developer.accuweather.com/contact-us): Contact form for sales and support
- [Core Weather API](https://developer.accuweather.com/core-weather): OpenAPI reference for the Core Weather API
- [MinuteCast API](https://developer.accuweather.com/minutecast): OpenAPI reference for the MinuteCast API
- [Lightning API](https://developer.accuweather.com/lightning): OpenAPI reference for the Lightning API
---
## Document: /documentation/weather-mcp-usage-and-billing
What MCP costs on the AccuWeather free trial and Elite plans, and how to keep your call count down.
URL: /documentation/weather-mcp-usage-and-billing
# Usage and billing
Using AccuWeather's MCP costs the same as using the REST API. Each tool call counts as one Core Weather call, and there is no separate MCP price or allowance.
## Free trial and Elite
The MCP server is included with both plans at no extra cost.
The free trial includes 500 Core Weather calls per day, and the count resets daily. Elite has no daily cap. Calls draw down your monthly allowance, and the published overage rate applies once you pass it.
The [pricing page](/pricing) has the current allowance and rate.
## Check your usage
Your [subscriptions page](/subscriptions) shows how many calls each subscription has used against its limit.
## Minimize call counts
Location keys do not change, so the lookup is the call worth eliminating. Store the key you get back from `search_locations` and reuse it for that location, rather than looking up the same place every time.
See [best practices](/documentation/best-practices) for caching and update-cadence guidance that applies to MCP and REST alike.
## What next?
- [Pricing](/pricing) — allowances and overage rates
- [Best practices](/documentation/best-practices) — caching, compression, and update cadence
- [Tools](/documentation/weather-mcp-tools) — what each tool returns
---
## Document: /documentation/weather-mcp-tools
The 26 AccuWeather weather MCP tools, what each one returns, the arguments they accept, and their coverage limits.
URL: /documentation/weather-mcp-tools
# Tools
All 91 Core Weather GET endpoints are available through 26 tools. Your assistant chooses which tool to use and fills in the arguments, so you ask for weather in plain language rather than calling the API yourself.
## What you can ask for
- **Current conditions.** The latest observations, or weather conditions over the past 6 or 24 hours.
- **Forecasts.** Daily for 1, 5, 7, 10, or 15 days. Hourly for 1, 12, 24, 72, or 120 hours.
- **Locations.** Search by name, postal code, point of interest, reverse-geocode coordinates, IP address, or list neighboring cities, top cities, regions, countries, and administrative areas.
- **Lifestyle and health indices.** Daily index values such as running, allergy, and flu risk, plus a full index catalog.
- **Alerts and alarms.** Government-issued warnings, and AccuWeather's own forecast-threshold alarms.
- **Tropical storms.** Active storms, past seasons, forecast tracks, and position history.
- **Imagery.** Radar and satellite map image links at three sizes.
- **Translations.** The language catalog and translation groups.
### Example questions
You ask in plain language. Your assistant works out which tools to call and what to pass them.
- "Are there active weather alerts for Dallas, Denver, or Phoenix?"
- "What's the 5-day forecast along our route through Chicago, Indianapolis, and Columbus?"
- "Will conditions in Houston support crane work over the next three days?"
- "What's the soil moisture and field readiness outlook for Fresno this week?"
- "Give me the hourly temperature forecast for Phoenix tomorrow in Celsius."
- "Which tropical storms were active in the Atlantic in 2024, and what were their tracks?"
- "What's the pollen and asthma outlook for Atlanta this week?"
## Tool catalog
| Tool | What it returns | Key arguments |
| ------------------------------ | -------------------------------------------------------------- | ----------------------------------------------------------------- |
| `search_locations` | Locations matching a search term, with their location keys | `q`, `scope`: `all`, `cities`, `poi`, `postalcodes`, `adminareas` |
| `autocomplete_locations` | Prefix suggestions for type-ahead input | `q`, `scope`: `all`, `cities`, `poi` |
| `search_by_geoposition` | The location at a set of coordinates | `latitude`, `longitude` |
| `get_top_cities` | The world's top cities by population | `count`: 50, 100, 150 |
| `get_daily_forecast` | Daily forecast | `days`: 1, 5, 7, 10, 15 (default 5) |
| `get_hourly_forecast` | Hour-by-hour forecast | `hours`: 1, 12, 24, 72, 120 (default 12) |
| `get_weather_alarms` | AccuWeather forecast-threshold alarms, not official warnings | `days`: 1, 5, 10, 15 (default 5) |
| `get_daily_indices` | Lifestyle and health index values | `days`, plus `indexId` or `groupId` to narrow to one |
| `list_index_definitions` | The index catalog. Needs no location | `kind`: `indices`, `groups` |
| `list_regions` | Top-level geographic regions | `regionCode` |
| `list_countries` | Countries and their ISO codes | `regionCode`, `countryCode` |
| `list_admin_areas` | States, provinces, and equivalents | `countryCode`, `adminCode` |
| `get_current_conditions` | Current observation, or the past 6 or 24 hours | `period`: `current`, `past6hours`, `past24hours` |
| `get_top_cities_conditions` | Current conditions for the world's top cities | `count` |
| `get_weather_alerts` | Official warnings, watches, and advisories in force | `locationKey` |
| `get_location_by_key` | The full record for a location key you already have | `locationKey` |
| `list_neighboring_cities` | Cities adjacent to a location | `locationKey` |
| `search_location_by_ip` | The city an IP address resolves to | `ipAddress` |
| `list_top_cities_by_region` | Top cities within one region | `regionCode`, `languageId` |
| `list_translation_groups` | Translation groups, or one group's translations | `groupId` |
| `list_languages` | Supported languages. Resolves a code to an id or back | `code` or `id`, not both |
| `get_radar_satellite_map` | Radar and satellite map image links | `size`: `480x480`, `640x480`, `1024x1024` |
| `list_active_tropical_storms` | Storms active right now | optional `basin`, then `govId` |
| `list_tropical_storms_by_year` | Storms recorded for a past season | `year` required, optional `basin`, then `govId` |
| `list_tropical_storm_statuses` | The status vocabulary: depression, storm, hurricane, and so on | optional `basin` |
| `get_tropical_storm_details` | One storm's forecast track or position history | `year`, `basin`, `govId`, `kind` |
## Coverage and limits
### Alerts and alarms
Alerts and alarms are different.
`get_weather_alerts` returns warnings, watches, and advisories issued by official government agencies.
`get_weather_alarms` returns AccuWeather forecast-threshold alarms. These are not configurable. AccuWeather derives them from the daily forecast against a fixed set of thresholds for conditions such as heavy rain, snow, and high wind. See [weather alarm thresholds](/documentation/weather-alarm-thresholds) for the values.
### Imagery
Radar does not cover every location. Where it is unavailable, the response still returns satellite images.
### Units
**Current conditions** returns both imperial and metric units in the same response, so there is no need to specify.
**Forecasts** returns imperial units by default. Ask the assistant for metric units directly, such as "Give me the 5-day forecast for Boston in Celsius."
**Alarms** and **indices** have no unit setting. Index values are unitless scores.
### Default forecast lengths
If a forecast length is not specified, these tools use a default:
| Tool | Argument | Default |
| --------------------- | -------- | -------- |
| `get_daily_forecast` | `days` | 5 days |
| `get_hourly_forecast` | `hours` | 12 hours |
| `get_weather_alarms` | `days` | 5 days |
For any other duration, specify when querying the assistant.
### Tropical storms
Find storms by season and basin rather than by location. Ask for storms happening now, or for a past season by year.
### Rejected requests
Not every argument applies to every tool. Where one does not, the request returns an error rather than being quietly ignored, so you never get an answer to a question other than the one you asked. A rejected call does not count against your allowance, which is covered in [usage and billing](/documentation/weather-mcp-usage-and-billing).
## Reading a tool error
When a call is rejected, the server still returns HTTP 200 and puts the reason in an `error` object. Most clients do not show it, which is why you see "tool execution failed" with nothing else:
```json
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32602,
"message": "Invalid arguments for tool 'get_weather_alarms': Unrecognized key: \"metric\" at body"
}
}
```
To read that message, connect with [MCP Inspector](/documentation/weather-mcp-client-connection#mcp-inspector) and call the tool there. It shows the full response, so you can see which argument was refused and try another value.
## Troubleshooting
| Issue | Resolution |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| "Tool execution failed" with no detail | Your client is hiding the reason, usually an invalid value or an argument that does not apply. See [reading a tool error](#reading-a-tool-error). |
| A tool you expected is not listed | One tool usually covers several REST endpoints. Every daily forecast, for example, comes from `get_daily_forecast`. Check the catalog above, then the [Core Weather reference](/core-weather). |
| Empty alert list for a valid location | No official agency publishes alerts there. This is expected, not an error. |
| Radar images missing from a map response | Radar does not cover every location. Satellite images are still returned. |
## What next?
- [Usage and billing](/documentation/weather-mcp-usage-and-billing) — what each call costs you
- [Client connection](/documentation/weather-mcp-client-connection) — setup examples for common MCP clients
- [Core Weather API reference](/core-weather) — the REST endpoints behind each tool
---
## Document: /documentation/weather-mcp-server
AccuWeather's remote, read-only MCP server exposes all 91 Core Weather GET endpoints as 26 tools for AI clients and agents. Included with the free trial and Elite plans.
URL: /documentation/weather-mcp-server
# Weather MCP server
AccuWeather's MCP server connects AI clients such as Claude, ChatGPT, and Cursor directly to Core Weather data. Ask a question in one of those tools and it retrieves the forecast, current conditions, or alerts it needs to answer you.
It uses the [Model Context Protocol (MCP)](https://modelcontextprotocol.io), an open standard for connecting AI applications to outside data.
## What you get
All 91 Core Weather GET endpoints, available as 26 tools your client can call.
- **Nothing to switch on.** The server is live for every free trial and Elite subscriber.
- **No separate credential.** Your existing free trial or Elite API key works.
- **No separate pricing.** Each tool call counts as one Core Weather call.
## Not included
MinuteCast™ and Lightning are not served over MCP. Keep calling those over REST.
## What next?
- [Endpoint and authentication](/documentation/weather-mcp-authentication) — the URL, your API key, and the two ways to send it
- [Client connection](/documentation/weather-mcp-client-connection) — setup for Claude, Cursor, GitHub Copilot, ChatGPT, and MCP Inspector
- [Tools](/documentation/weather-mcp-tools) — what each tool returns and what you can ask for
- [Usage and billing](/documentation/weather-mcp-usage-and-billing) — what MCP costs on your plan
---
## Document: /documentation/weather-mcp-client-connection
Set up the AccuWeather weather MCP server in Claude, Cursor, GitHub Copilot, ChatGPT, and MCP Inspector.
URL: /documentation/weather-mcp-client-connection
# Client connection
AccuWeather's MCP works with many different AI tools. While this page provides instructions for some of the more common options, it is not a comprehensive collection.
:::info
Replace `YOUR_API_KEY` in the examples below with a key from your [subscriptions page](/subscriptions), then [verify the connection](#verify-the-connection).
:::
## Claude
Custom connectors are available on every Claude plan, with limits on how many you can add. On Team and Enterprise, an owner adds the connector for the organization before members can connect to it.
### Custom connector
The same custom connector works in the Claude web app and Claude Desktop, and installs nothing. Add it under **Customize** → **Connectors**, using this URL with your free trial or Elite API key in place of `YOUR_API_KEY`:
```text
https://dataservice.accuweather.com/mcp?apikey=YOUR_API_KEY
```
Then enable AccuWeather in a conversation from the **+** menu.
The key goes in the URL because the connector form has no field for a custom header. Read [send the key](/documentation/weather-mcp-authentication#send-the-key) before you store or share that URL, particularly for an organization-wide connector where more people can see it.
For the current click-by-click flow, see [Anthropic's custom connector documentation](https://support.anthropic.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp).
:::note{title="Where the connection comes from"}
Remote connectors reach AccuWeather from Anthropic's infrastructure, including when you use Claude Desktop. The MCP remote bridge below connects from your own machine instead. This matters if your network restricts outbound traffic, or if you are diagnosing why one works and the other does not.
:::
### Claude Desktop with the MCP remote bridge
Use this if you need the server defined in `claude_desktop_config.json`, to share one config file across machines for example. `claude_desktop_config.json` cannot point at a remote server directly, so the entry runs [`mcp-remote`](https://www.npmjs.com/package/mcp-remote), a small helper that connects on its behalf.
**Before you begin:** install [Node.js](https://nodejs.org). The helper runs through `npx`, which Node.js provides.
1. In the **Settings** menu, select **Developer**, then select **Edit Config**. This opens the folder containing your configuration file:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
2. Open the file in a text editor and merge the AccuWeather server into any existing `mcpServers` entries, including your free trial or Elite API key where indicated. Both forms below authenticate the same way, and both work on every platform.
{import.meta.env.ZUPLO_PUBLIC_API_BASE_URL}/forecasts/v1/minute?q=40.7127,74.0059 and sending your API key. You can use our test console below to call the API right now ([log in](/signin) to get your free API key if you haven't already).
ar-bh - Bahrain
ar-eg - Egypt
ar-iq - Iraq
ar-jo - Jordan
ar-kw - Kuwait
ar-lb - Lebanon
ar-ly - Libya
ar-ma - Morocco
ar-om - Oman
ar-qa - Qatar
ar-sa - Saudi Arabia
ar-sd - Sudan
ar-sy - Syria
ar-tn - Tunisia
ar-ae - U.A.E.
ar-ye - Yemen |
| Azerbaijani | az | az-latn - Latin
az-latn-az - Latin, Azerbaijan |
| Bengali | bn | bn-bd - Bangladesh
bn-in - India |
| Bosnian | bs | bs-ba - Bosnia and Herzegovina |
| Bulgarian | bg | bg-bg - Bulgaria |
| Catalan | ca | ca-es - Spain |
| Chinese | zh | zh-hk - Hong Kong SAR
zh-mo - Macao SAR
zh-cn - Simplified, PRC
zh-hans - Simplified
zh-hans-cn - Simplified, China
zh-hans-hk - Simplified, Hong Kong SAR China
zh-hans-mo - Simplified, Macau SAR China
zh-hans-sg - Simplified, Singapore
zh-sg - Singapore
zh-tw - Taiwan
zh-hant - Traditional
zh-hant-hk - Traditional, Hong Kong SAR China
zh-hant-mo - Traditional, Macau SAR China
zh-hant-tw - Traditional, Taiwan |
| Croatian | hr | hr-hr - Croatia |
| Czech | cs | cs-cz - Czech Republic |
| Danish | da | da-dk - Denmark |
| Dutch | nl | nl-aw - Aruba
nl-be - Belgium
nl-cw - Curacao
nl-nl - Netherlands
nl-sx - Sint Maarten |
| English | en | en-as - American Samoa
en-us - United States
en-au - Australia
en-bb - Barbados
en-be - Belgium
en-bz - Belize
en-bm - Bermuda
en-bw - Botswana
en-cm - Cameroon
en-ca - Canada
en-gh - Ghana
en-gu - Guam
en-gy - Guyana
en-hk - Hong Kong SAR China
en-in - India
en-ie - Ireland
en-jm - Jamaica
en-ke - Kenya
en-mw - Malawi
en-my - Malaysia
en-mt - Malta
en-mh - Marshall Islands
en-mu - Mauritius
en-na - Namibia
en-nz - New Zealand
en-ng - Nigeria
en-mp - Northern Mariana Islands
en-pk - Pakistan
en-ph - Philippines
en-rw - Rwanda
en-sg - Singapore
en-za - South Africa
en-tz - Tanzania
en-th - Thailand
en-tt - Trinidad and Tobago
en-um - U.S. Minor Outlying Islands
en-vi - U.S. Virgin Islands
en-ug - Uganda
en-gb - United Kingdom
en-zm - Zambia
en-zw - Zimbabwe |
| Estonian | et | et-ee - Estonia |
| Farsi | fa | fa-af - Afghanistan
fa-ir - Iran |
| Filipino | fil | fil-ph - Philippines |
| Finnish | fi | fi-fi - Finland |
| French | fr | fr-dz - Algeria
fr-be - Belgium
fr-bj - Benin
fr-bf - Burkina Faso
fr-bi - Burundi
fr-cm - Cameroon
fr-ca - Canada
fr-cf - Central African Republic
fr-td - Chad
fr-km - Comoros
fr-cg - Congo - Brazzaville
fr-cd - Congo - Kinshasa
fr-ci - Cote d'Ivoire
fr-dj - Djibouti
fr-gq - Equatorial Guinea
fr-fr - France
fr-gf - French Guiana
fr-ga - Gabon
fr-gp - Guadeloupe
fr-gn - Guinea
fr-lu - Luxembourg
fr-mg - Madagascar
fr-ml - Mali
fr-mq - Martinique
fr-mu - Mauritius
fr-yt - Mayotte
fr-mc - Monaco
fr-ma - Morocco
fr-ne - Niger
fr-re - Reunion
fr-rw - Rwanda
fr-bl - Saint Barthelemy
fr-mf - Saint Martin
fr-sn - Senegal
fr-sc - Seychelles
fr-ch - Switzerland
fr-tg - Togo
fr-tn - Tunisia |
| German | de | de-at - Austria
de-be - Belgium
de-de - Germany
de-li - Liechtenstein
de-lu - Luxembourg
de-ch - Switzerland |
| Greek | el | el-cy - Cyprus
el-gr - Greece |
| Gujarati | gu | |
| Hebrew | he | he-il - Israel |
| Hindi | hi | hi-in - India |
| Hungarian | hu | hu-hu - Hungary |
| Icelandic | is | is-is - Iceland |
| Indonesian | id | id-id - Indonesia |
| Italian | it | it-it - Italy
it-ch - Switzerland |
| Japanese | ja | ja-jp - Japan |
| Kannada | kn | |
| Kazakh | kk | kk-kz - Kazakhstan |
| Korean | ko | ko-kr - South Korea |
| Latvian | lv | lv-lv - Latvia |
| Lithuanian | lt | lt-lt - Lithuania |
| Macedonian | mk | mk-mk - Macedonia |
| Malay | ms | ms-bn - Brunei
ms-my - Malaysia |
| Marathi | mr | |
| Norwegian | nb | |
| Polish | pl | pl-pl - Poland |
| Portuguese | pt | pt-ao - Angola
pt-br - Brazil
pt-cv - Cape Verde
pt-gw - Guinea-Bissau
pt-mz - Mozambique
pt-pt - Portugal
pt-st - Sao Tome and Principe |
| Punjabi | pa | pa-in - India |
| Romanian | ro | ro-md - Moldova
ro-mo - Republic of Moldova
ro-ro - Romania |
| Russian | ru | ru-md - Moldova
ru-mo - Republic of Moldova
ru-ru - Russia
ru-ua - Ukraine |
| Serbian | sr | sr-latn - Latin
sr-latn-ba - Latin, Bosnia and Herzegovina
sr-me - Montenegrin
sr-rs - Serbia |
| Slovak | sk | sk-sk - Slovakia |
| Slovenian | sl | sl-sl - Slovenia |
| Spanish | es | es-ar - Argentina
es-bo - Bolivia
es-cl - Chile
es-co - Colombia
es-cr - Costa Rica
es-do - Dominican Republic
es-ec - Ecuador
es-sv - El Salvador
es-gq - Equatorial Guinea
es-gt - Guatemala
es-hn - Honduras
es-419 - Latin America
es-mx - Mexico
es-ni - Nicaragua
es-pa - Panama
es-py - Paraguay
es-pe - Peru
es-pr - Puerto Rico
es-es - Spain
es-us - United States
es-uy - Uruguay
es-ve - Venezuela |
| Swahili | sw | sw-cd - Democratic Republic of the Congo
sw-ke - Kenya
sw-tz - Tanzania
sw-ug - Uganda |
| Swedish | sv | sv-fi - Finland
sv-se - Sweden |
| Tagalog | tl | |
| Tamil | ta | ta-in - India
ta-lk - Sri Lanka |
| Telegu | te | te-in - India |
| Thai | th | th-th - Thailand |
| Turkish | tr | tr-tr - Turkey |
| Ukrainian | uk | uk-ua - Ukraine |
| Urdu | ur | ur-bd - Bangladesh
ur-in - India
ur-np - Nepal
ur-pk - Pakistan |
| Uzbek | uz | uz-latn - Latin
uz-latn-uz - Latin, Uzbekistan |
| Vietnamese | vi | vi-vn - Vietnam |
---
## Document: /documentation/indices
URL: /documentation/indices
# Index list
The Daily Index API provides daily index data for a specific location. The index data includes the following:
| Index Name | ID |
| ---------------------------- | ---- |
| AccuLumen Brightness Index™ | 47 |
| Air quality | \-10 |
| Arthritis Pain | 21 |
| Asthma | 23 |
| Beach & Pool | 10 |
| Bicycling | 4 |
| Car washing forecast | 51 |
| Clothes drying forecast | 50 |
| Common Cold | 25 |
| Composting | 38 |
| Construction | 14 |
| COPD | 44 |
| Dog Walking Comfort | 43 |
| Driving | 40 |
| Dry skin forecast | 48 |
| Dust & Dander | 18 |
| Field Readiness | 32 |
| Fishing | 13 |
| Flight Delays | \-3 |
| Flu | 26 |
| Flying Travel Index | 31 |
| Fuel Economy | 37 |
| Golf Weather | 5 |
| Grass Growing | 33 |
| Grass pollen | \-11 |
| Hair Frizz | 42 |
| Healthy Heart Fitness | 16 |
| Hiking | 3 |
| Home Energy Efficiency | 36 |
| Hunting | 20 |
| Indoor Activity | \-2 |
| Jogging | 2 |
| Kite Flying | 9 |
| Lawn Mowing | 28 |
| Makeup and skincare forecast | 49 |
| Migraine Headache | 27 |
| Mold pollen | \-12 |
| Morning School Bus | 35 |
| Mosquito Activity | 17 |
| Outdoor Activity | 29 |
| Outdoor Barbecue | 24 |
| Outdoor Concert | 8 |
| Ragweed pollen | \-13 |
| Running | 1 |
| Tennis | 6 |
| Thirst | 41 |
| Tree pollen | \-14 |
| Sailing | 11 |
| Shopping | 39 |
| Sinus Headache | 30 |
| Skateboarding | 7 |
| Ski Weather | 15 |
| Snow Days | 19 |
| Soil Moisture | 34 |
| Stargazing | 12 |
| UV index | \-15 |
---
## Document: /documentation/index-categories
URL: /documentation/index-categories
# Daily Index Categories and Level Values
**The categories and value ranges in table 1 apply to the following indices/IDs:**
- Indoor activity / -2
- Running / 1
- Jogging / 2
- Hiking / 3
- Bicycling / 4
- Golf weather / 5
- Tennis / 6
- Skateboarding / 7
- Outdoor concert / 8
- Kite flying / 9
- Beach & pool / 10
- Sailing / 11
- Stargazing / 12
- Fishing / 13
- Construction / 14
- Ski weather / 15
- Healthy heart fitness / 16
- Hunting / 20
- Outdoor barbecue / 24
- Lawn mowing / 28
- Outdoor activity / 29
- Field readiness / 32
- Grass growing / 33
- Soil moisture / 34
- Morning school bus / 35
- Home energy efficiency / 36
- Fuel economy / 37
- Composting / 38
- Shopping / 39
- Dog walking comfort / 43
- Clothes drying forecast / 50
- Car washing forecast / 51
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Poor | 0 | 2.99 |
| Fair | 3 | 4.99 |
| Good | 5 | 6.99 |
| Very Good | 7 | 8.99 |
| Excellent | 9 | 10 |
---
**The categories and value ranges in table 2 apply to the following indices/IDs:**
- Mosquito activity / 17
- Dust & dander / 18
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Low | 0 | 1.99 |
| Moderate | 2 | 3.99 |
| High | 4 | 5.99 |
| Very High | 6 | 7.99 |
| Extreme | 8 | 10 |
---
**The categories and value ranges in table 3 apply to the following indices/IDs:**
- Snow Days / 19
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Very Unlikely | 0 | 1.99 |
| Unlikely | 2 | 3.99 |
| Possibly | 4 | 5.99 |
| Likely | 6 | 7.99 |
| Very Likely | 8 | 10 |
---
**The categories and value ranges in table 4 apply to the following indices/IDs:**
- Driving / 40
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Poor | 0 | 3 |
| Fair | 3.01 | 6 |
| Good | 6.01 | 7.5 |
| Very Good | 7.51 | 8.99 |
| Excellent | 9 | 10 |
---
**The categories and value ranges in table 5 apply to the following indices/IDs:**
- Thirst / 41
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Low | 0 | 2.99 |
| Moderate | 3 | 4.99 |
| High | 5 | 6.99 |
| Very High | 7 | 8.99 |
| Extreme | 9 | 10 |
---
**The categories and value ranges in table 6 apply to the following indices/IDs:**
- Hair Frizz / 42
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Unlikely | 0 | 2.99 |
| Watch | 3 | 4.99 |
| Advisory | 5 | 6.99 |
| Warning | 7 | 8.99 |
| Emergency | 9 | 10 |
---
**The categories and value ranges in table 7 apply to the following indices/IDs:**
- Arthritis Pain / 21
- Asthma / 23
- Common Cold / 25
- Flu / 26
- Migraine Headache / 27
- Sinus Headache / 30
- COPD / 44
| | | |
| --------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Beneficial | 0 | 1.99 |
| Neutral | 2 | 3.99 |
| At Risk | 4 | 5.99 |
| At High Risk | 6 | 7.99 |
| At Extreme Risk | 8 | 10 |
---
**The categories and value ranges in table 8 apply to the following indices/IDs:**
- Flight Delays / -3
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Very Likely | 0.00 | 1.00 |
| Likely | 1.01 | 3.00 |
| Possibly | 3.01 | 5.00 |
| Unlikely | 5.01 | 7.00 |
| Very Unlikely | 7.01 | 10.00 |
---
**The categories and value ranges in table 9 apply to the following indices/IDs:**
- Flying Travel / 31
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Excellent | 0.00 | 1.00 |
| Very Good | 1.01 | 3.00 |
| Good | 3.01 | 5.00 |
| Fair | 5.01 | 7.00 |
| Poor | 7.01 | 10.00 |
---
**The categories and value ranges in table 10 apply to the following indices/IDs:**
- Air quality / -10
| | | |
| ------------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Good | 0.00 | 50.00 |
| Moderate | 50.01 | 100.00 |
| Unhealthy sensitive | 100.01 | 150.00 |
| Unhealthy | 150.01 | 200.00 |
| Very unhealthy | 200.01 | 300.00 |
| Hazardous | 300.01 | 100000.00 |
---
**The categories and value ranges in table 11 apply to the following indices/IDs:**
- Grass pollen / -11
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Low | 0 | 4.99 |
| Moderate | 5 | 19.99 |
| High | 20 | 199.99 |
| Very High | 200 | 299.99 |
| Extreme | 300 | 1000000 |
---
**The categories and value ranges in table 12 apply to the following indices/IDs:**
- Mold pollen / -12
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Low | 0 | 6499.99 |
| Moderate | 6500 | 12999.99 |
| High | 13000 | 49999.99 |
| Very High | 50000 | 64999.99 |
| Extreme | 65000 | 1000000 |
---
**The categories and value ranges in table 13 apply to the following indices/IDs:**
- Ragweed pollen / -13
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Low | 0 | 9.99 |
| Moderate | 10 | 49.99 |
| High | 50 | 499.99 |
| Very High | 500 | 649.99 |
| Extreme | 650 | 1000000 |
---
**The categories and value ranges in table 14 apply to the following indices/IDs:**
- Tree pollen / -14
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Low | 0 | 14.99 |
| Moderate | 15 | 89.99 |
| High | 90 | 1499.99 |
| Very High | 1500 | 2999.99 |
| Extreme | 3000 | 1000000 |
---
**The categories and value ranges in table 15 apply to the following indices/IDs:**
- UV index / -15
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Low | 0 | 2.49 |
| Moderate | 2.5 | 5.49 |
| High | 5.5 | 7.49 |
| Very High | 7.5 | 10.499 |
---
**The categories and value ranges in table 16 apply to the following indices/IDs:**
- AccuLumen Brightness Index™ / 47
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Dark | 0 | 2.99 |
| Dull | 3 | 4.99 |
| Medium | 5 | 6.99 |
| Bright | 7 | 8.99 |
| Very bright | 9 | 10.00 |
---
**The categories and value ranges in table 17 apply to the following indices/IDs:**
- Dry skin forecast / 48
| | | |
| ------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Very likely | 0 | 1.99 |
| Likely | 2 | 3.99 |
| Possibly | 4 | 5.99 |
| Unlikely | 6 | 7.99 |
| Very unlikely | 8 | 10 |
---
**The categories and value ranges in table 18 apply to the following indices/IDs:**
- Makeup and skincare forecast / 49
| | | |
| ----------------- | ----------- | --------- |
| Category Name | Begin Range | End Range |
| --- | --- | --- |
| Deep moisturizers | 0 | 1.99 |
| Moisturizers | 2 | 3.99 |
| Hydrators | 4 | 5.99 |
| Primers | 6 | 7.99 |
| Sweat-resistants | 8 | 10 |
---
## Document: /documentation/http-status-codes
URL: /documentation/http-status-codes
# HTTP status codes
All API responses include an HTTP status code in the `status` parameter. A 200 status indicates success, while other codes identify specific error conditions. See the table below for details.
| Code | Response name | Description |
| ---- | --------------------- | ---------------------------------------------------------------------------------------------- |
| 200 | OK | The request was successful. |
| 400 | Bad Request | The request had bad syntax or the parameters supplied were invalid. |
| 401 | Unauthorized | A valid API key was not supplied in the query. |
| 403 | Forbidden | The API key provided does not have access to the requested resource. |
| 404 | Not Found | The server has not found a route matching the given URI. |
| 429 | Too Many Requests | The request rate limit has been exceeded. |
| 500 | Internal Server Error | The server encountered an unexpected condition which prevented it from fulfilling the request. |
| 501 | Not Implemented | The server does not support the functionality required to fulfill the request. |
| 502 | Bad Gateway | The server received an invalid response from the upstream server. |
| 503 | Service Unavailable | The server is currently unable to handle the request due to temporary overload or maintenance. |
| 504 | Gateway Timeout | The server did not receive a timely response from the upstream server. |
## Success response format
A successful response returns data in the format specified by the particular API endpoint. Refer to the individual API documentation pages for details.
## Error response format
Error responses follow the [RFC 7807 Problem Details for HTTP APIs](https://datatracker.ietf.org/doc/html/rfc7807) standard. Each error response contains both modern standardized fields and legacy fields for backward compatibility.
## Response fields
| Field | Type | Description |
| ----------------- | ------ | ----------------------------------------------------------------------------------------------------------- |
| `type` | string | URI reference that identifies the problem type (e.g., `https://httpproblems.com/http-status/401`) |
| `title` | string | Human-readable summary of the error type |
| `status` | number | HTTP status code for this occurrence of the problem |
| `instance` | string | URI reference that identifies the specific problem occurrence (request path without base URL) |
| `trace.timestamp` | string | ISO 8601 timestamp when the error occurred (GMT) |
| `trace.requestId` | string | Unique identifier for this request (useful when contacting support) |
| `trace.buildId` | string | Build/deployment API gateway identifier |
| `Code` | string | **(Will be deprecated)** HTTP status text - use `title` and `status` instead |
| `Message` | string | **(Will be deprecated)** Error message - use `title` instead |
| `Reference` | string | **(Will be deprecated)** Full URL of the request - use `instance` instead (note: includes query parameters) |
### Legacy keys—to be deprecated
:::warning{title="Deprecated Fields"}
The following fields exist only for backward compatibility with legacy clients and **will be removed in a future version**:
- **`Code`** - Replaced by `title` (text) and `status` (numeric)
- **`Message`** - Replaced by `title`
- **`Reference`** - Replaced by `instance` (without base URL)
Use the modern keys for new integrations.
:::
## Example error response
This is a complete example of an error response for an unauthorized request:
```json
{
"type": "https://httpproblems.com/http-status/401",
"title": "Unauthorized",
"status": 401,
"instance": "/currentconditions/v1/349727",
"trace": {
"timestamp": "2025-10-06T14:21:53.918Z",
"requestId": "3b0b8539-a290-4fdd-b83e-9b7f989dea44",
"buildId": "6e3881ec-0837-46a0-b8f4-344ea529b089"
},
"Code": "Unauthorized",
"Message": "API authorization failed",
"Reference": "https://dataservice.accuweather.com/currentconditions/v1/349727?apikey=REDACTED&details=true"
}
```
When handling errors, use the modern `status` field for the numeric HTTP code, `title` for a user-friendly error name, and `trace.requestId` when contacting support. The legacy fields (`Code`, `Message`, `Reference`) are provided for backward compatibility but should not be used in new integrations.
---
## Document: /documentation/glossary
URL: /documentation/glossary
# Glossary
**admin code** — An administrative area code is a unique integer that identifies a specific geographical area within a country such as a state or province. The default is no admin code filter.
**alias** — Alternate names that are used to account for: - Common alternate spellings such as Saint Louis, St. Louis, and St Louis. - Historical names such as Ho Chi Minh City, Saigon. - Accepted alternate names such as Derry, Londonderry.
Control the inclusion of aliases in search results by setting the `Alias` enumeration value. Valid enumeration values are `Never`, `Always`, and `NoOfficialMatchFound`. The default value is `NoOfficialMatchFound`.
**API hostname** — The domain root for use with all resources described on this website: {import.meta.env.ZUPLO_PUBLIC_API_BASE_URL}....
**API key** — A unique code used for identification and authorization purposes. This is the gateway for access to AccuWeather's API. [Sign up](/signup) for a developer account to get an API key today, or contact [sales@accuweather.com](mailto:sales@accuweather.com) for an [Enterprise API](https://apidev.accuweather.com/developers) key.
**basin ID** — A unique code that identifies a basin for tropical data: North Atlantic = AL; East Pacific = EP; Northwest Pacific = NP; Southwest Pacific = SP; North Indian = NI; South Indian = SI.
**city ID** — See [location code](/documentation/location-keys).
**constituent country** — A country which makes up a part of a larger country or federation. The United Kingdom is made up of four constituent countries: England, Scotland, Wales, and Northern Ireland.
**country code** — A unique two-letter code that identifies a specific country.
**CSV (comma-separated values)** — A data format that displays endpoint response data in a list by table row, with each value separated by a comma.
**depression number** — (may also be referred to as depression ID) An integer that identifies a specific tropical depression. The integer is assigned in numerical order by year and basin. For example, the first tropical depression in the AL basin for 2024 is assigned depression number 1. The first tropical depression in the EP basin for 2024 is also assigned depression number 1.
**details** — A boolean (true or false) value that specifies whether or not to include the full response object. The default value is `false`. For Locations API searches, `details=true` will return AccuWeather-related details.
**end** — The last date in a date range to which the relevant information applies.
**GMT offset** — The time difference, in hours, between the current timezone and Greenwich Mean Time (GMT).
**group** — A Locations API city search value that indicates the number of cities to return with a request. The options are 50, 100, and 150.
**IP address** — Internet protocol address. A numerical code that identifies a device connected to the Internet.
**JSON** — JavaScript object notation. A data format that is intended to be both human- and machine-readable.
**language** — A string indicating the language in which to return the resource. The default value is `en-us`. [See here for a list of available language codes](/documentation/languages-localizations).
**limit** — An integer that indicates the number of resources to return with the request. The default value is 25.
**location key** — A unique ID that designates a specific location. Use the [Locations API](/core-weather/text-search#) to search for the appropriate location key.
**localization** — The process of translating information into different languages or adapting a product for a specific country or region. Within the API setting, this term is used to represent languages, including the localized dialects.
**max** — An integer that specifies the total list size. This cannot exceed 100. The default value is 100.
**offset** — An integer, along with a limit, that determines the first resource to return. The default value is 0.
**POI type** — [Categorized points of interest](/documentation/point-of-interest-types).
**q** — Used in a query string to indicate search text.
**rank** — A number applied to locations set by factors such as population, political importance, and geographic size. Location search results are returned in rank order. A lower rank number represents a city of larger population, political importance, an important location of commerce, or larger geographic size. A rank value of 10 is the highest possible.
**RealFeel™ temperature** — An index that describes what the temperature really feels like. [See here to learn more about AccuWeather's RealFeel™ temperature]().
**RealFeel™ temperature shade** — An index that describes what the temperature really feels like in the shade. [See here to learn more about AccuWeather's RealFeel™ temperature]().
**RealFeel™ phrase** — A brief description of how the weather really feels. Possible phrases and their respective RealFeel™ temperature ranges are displayed in the table below. Please note that the imperial and metric temperature ranges associated with a particular phrase are rounded and therefore are not necessarily equal. AccuWeather advises that partners do not display phrases associated with both imperial and metric values at the same time. All phrases will translate.
| Imperial | Metric | |||
|---|---|---|---|---|
| Low | High | Low | High | Phrase |
| 133° | 140° | 56° | 60° | Extraordinarily dangerous heat |
| 125° | 132° | 51° | 55° | Extremely dangerous heat |
| 116° | 124° | 46° | 50° | Very dangerous heat |
| 108° | 115° | 42° | 45° | Dangerous heat |
| 101° | 107° | 38° | 41° | Quite hot |
| 90° | 100° | 32° | 37° | Hot |
| 82° | 89° | 27° | 31° | Very warm |
| 63° | 81° | 17° | 26° | Pleasant |
| 53° | 62° | 11° | 16° | Cool |
| 40° | 52° | 4° | 10° | Chilly |
| 25° | 39° | -3° | 3° | Cold |
| 10° | 24° | -12° | -4° | Very cold |
| -10° | 9° | -23° | -13° | Quite cold |
| -24° | -11° | -31° | -24° | Bitterly cold |
| -43° | -25° | -41° | -32° | Dangerous cold |
| -69° | -44° | -56° | -42° | Very dangerous cold |
| -90° | -70° | -67° | -57° | Extremely dangerous cold |
| -120° | -91° | -84° | -68° | Extraordinarily dangerous cold |
{import.meta.env.ZUPLO_PUBLIC_API_BASE_URL}/forecasts/v1/daily/5day/349727 and sending your API key. You can use our test console below to call the API right now ([log in](/signin) to get your free API key if you haven't already).