Weather — entry 030 of 31
Weatherbit
Weatherbit aggregates more than 20 data sources - stations, radar, satellite, and models - into current conditions, hourly and daily forecasts, and historical weather going back up to 30 years. Higher tiers add air quality, lightning, and agriculture/energy datasets aimed at commercial use cases.
AuthenticationAPI KeySign up with the provider to obtain credentials.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreemiumA usable free tier exists, with paid plans for more volume.
FormatsJSONResponses can be requested as JSON.
GreatAPIs Score
Score81
Authentication15/25API key required
Pricing17/20Freemium tier available
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months
Auth quickstart
- Get a key at the provider
- Send it on every request as a header
Authorization: <key> - The exact header isn't documented — Authorization is a common default; confirm in the provider's docs.
Stored keyNo key stored
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
16 day / daily Forecast4
GET/forecast/daily?city={city}&country={country}Returns a daily forecast - Given City and/or State, Country.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city | path | yes | string |
state | query | no | string |
country | path | yes | string |
days | query | no | number |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | A forecast object. | ForecastDay |
default | No Data. | Error |
GET/forecast/daily?city_id={city_id}Returns a daily forecast - Given a City ID.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city_id | path | yes | integer |
days | query | no | number |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | A forecast object. | ForecastDay |
default | No Data. | Error |
GET/forecast/daily?lat={lat}&lon={lon}Returns a daily forecast - Given Lat/Lon.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
lat | path | yes | number |
lon | path | yes | number |
days | query | no | number |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | A forecast object. | ForecastDay |
default | No Data. | Error |
GET/forecast/daily?postal_code={postal_code}Returns a daily forecast - Given a Postal Code.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
postal_code | path | yes | integer |
country | query | no | string |
days | query | no | number |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | A forecast object. | ForecastDay |
default | No Data. | Error |
240 hour / hourly Forecast4
GET/forecast/hourly?city={city}&country={country}Returns an hourly forecast - Given City and/or State, Country.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city | path | yes | string |
state | query | no | string |
country | path | yes | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
hours | query | no | integer |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | A forecast object. | ForecastHourly |
default | No Data. | Error |
GET/forecast/hourly?city_id={city_id}Returns an hourly forecast - Given a City ID.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city_id | path | yes | integer |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
hours | query | no | integer |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | A forecast object. | ForecastHourly |
default | No Data. | Error |
GET/forecast/hourly?lat={lat}&lon={lon}Returns an hourly forecast - Given a lat/lon.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
lat | path | yes | number |
lon | path | yes | number |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
hours | query | no | integer |
Responses
| Status | Description | Schema |
|---|---|---|
200 | A forecast object. | ForecastHourly |
default | No Data. | Error |
GET/forecast/hourly?postal_code={postal_code}Returns an hourly forecast - Given a Postal Code.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
postal_code | path | yes | integer |
country | query | no | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
hours | query | no | integer |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | A forecast object. | ForecastHourly |
default | No Data. | Error |
Air Quality Forecast4
GET/forecast/airquality?city={city}&country={country}Returns 72 hour (hourly) Air Quality forecast - Given City and/or State, Country.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city | path | yes | string |
state | query | no | string |
country | path | yes | string |
callback | query | no | string |
hours | query | no | integer |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | A forecast object. | AQHourly |
default | No Data. | Error |
GET/forecast/airquality?city_id={city_id}Returns 72 hour (hourly) Air Quality forecast - Given a City ID.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city_id | path | yes | integer |
callback | query | no | string |
hours | query | no | integer |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | A forecast object. | AQHourly |
default | No Data. | Error |
GET/forecast/airquality?lat={lat}&lon={lon}Returns 72 hour (hourly) Air Quality forecast - Given a lat/lon.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
lat | path | yes | number |
lon | path | yes | number |
callback | query | no | string |
key | query | yes | string |
hours | query | no | integer |
Responses
| Status | Description | Schema |
|---|---|---|
200 | A forecast object. | AQHourly |
default | No Data. | Error |
GET/forecast/airquality?postal_code={postal_code}Returns 72 hour (hourly) Air Quality forecast - Given a Postal Code.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
postal_code | path | yes | integer |
country | query | no | string |
callback | query | no | string |
hours | query | no | integer |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | A forecast object. | AQHourly |
default | No Data. | Error |
Alerts1
GET/alerts?lat={lat}&lon={lon}Returns severe weather alerts issued by meteorological agencies - Given a lat/lon.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
lat | path | yes | number |
lon | path | yes | number |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | Weather Alert Object. | WeatherAlert |
default | No Data. | Error |
Bulk Downloads1
GET/bulk/files/{file}Download pre-generated bulk datasets
Parameters
| Name | In | Required | Type |
|---|---|---|---|
file | path | yes | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
default | No Data. | Error |
Current Air Quality4
GET/current/airquality?city={city}&country={country}Returns current air quality conditions - Given City and/or State, Country.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city | path | yes | string |
state | query | no | string |
country | path | yes | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | Current air quality conditions | AQCurrentGroup |
default | No Data. | Error |
GET/current/airquality?city_id={city_id}Returns current air quality conditions - Given a City ID.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city_id | path | yes | integer |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | Current air quality conditions | AQCurrentGroup |
default | No Data. | Error |
GET/current/airquality?lat={lat}&lon={lon}Returns current air quality conditions - Given a lat/lon.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
lat | path | yes | number |
lon | path | yes | number |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | Current air quality conditions | AQCurrentGroup |
default | No Data. | Error |
GET/current/airquality?postal_code={postal_code}Returns current air quality conditions - Given a Postal Code.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
postal_code | path | yes | integer |
country | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | Current air quality conditions | AQCurrentGroup |
default | No Data. | Error |
Current Weather Data8
GET/current?cities={cities}Returns a group of observations given a list of cities
Parameters
| Name | In | Required | Type |
|---|---|---|---|
cities | path | yes | string |
units | query | no | string |
marine | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Observation Group object. | CurrentObsGroup |
default | No Data. | Error |
GET/current?city={city}&country={country}Returns a Current Observation - Given City and/or State, Country.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city | path | yes | string |
include | query | no | string |
state | query | no | string |
country | path | yes | string |
marine | query | no | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Observation Group object. | CurrentObsGroup |
default | No Data. | Error |
GET/current?city_id={city_id}Returns a current observation by city id.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city_id | path | yes | string |
units | query | no | string |
include | query | no | string |
marine | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Observation Group object. | CurrentObsGroup |
default | No Data. | Error |
GET/current?lat={lat}&lon={lon}Returns a Current Observation - Given a lat/lon.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
lat | path | yes | number |
lon | path | yes | number |
include | query | no | string |
marine | query | no | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Observation Group object. | CurrentObsGroup |
default | No Data. | Error |
GET/current?points={points}Returns a group of observations given a list of points in the format (lat1, lon1), (lat2, lon2), (latN, lonN), ...
Parameters
| Name | In | Required | Type |
|---|---|---|---|
points | path | yes | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Observation Group object. | CurrentObsGroup |
default | No Data. | Error |
GET/current?postal_code={postal_code}Returns a current observation by postal code.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
postal_code | path | yes | string |
country | query | no | string |
include | query | no | string |
marine | query | no | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Observation Group object. | CurrentObsGroup |
default | No Data. | Error |
GET/current?station={station}Returns a Current Observation. - Given a station ID.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
station | path | yes | string |
include | query | no | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Observation Group object. | CurrentObsGroup |
default | No Data. | Error |
GET/current?stations={stations}Returns a group of observations given a list of stations
Parameters
| Name | In | Required | Type |
|---|---|---|---|
stations | path | yes | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Observation Group object. | CurrentObsGroup |
default | No Data. | Error |
Daily Historical Weather Data5
GET/history/daily?city={city}&country={country}Returns Historical Observations - Given City and/or State, Country.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city | path | yes | string |
state | query | no | string |
country | path | yes | string |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Day Data Object. | HistoryDay |
default | No Data. | Error |
GET/history/daily?city_id={city_id}Returns Historical Observations - Given a City ID
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city_id | path | yes | string |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Day Data Object. | HistoryDay |
default | No Data. | Error |
GET/history/daily?lat={lat}&lon={lon}Returns Historical Observations - Given a lat/lon.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
lat | path | yes | number |
lon | path | yes | number |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Day Data Object. | HistoryDay |
default | No Data. | Error |
GET/history/daily?postal_code={postal_code}Returns Historical Observations - Given a Postal Code
Parameters
| Name | In | Required | Type |
|---|---|---|---|
postal_code | path | yes | string |
country | query | no | string |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Day Data Object. | HistoryDay |
default | No Data. | Error |
GET/history/daily?station={station}Returns Historical Observations - Given a station ID.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
station | path | yes | string |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Day Data Object. | HistoryDay |
default | No Data. | Error |
Forecast Degree Day API1
GET/forecast/energy?lat={lat}&lon={lon}Returns Energy Forecast API response - Given a single lat/lon.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
lat | path | yes | number |
lon | path | yes | number |
threshold | query | no | number |
units | query | no | string |
tp | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Energy Data Object. | EnergyObsGroupForecast |
default | No Data. | Error |
Historical Air Quality4
GET/history/airquality?city={city}&country={country}Returns 72 hours of historical quality conditions - Given City and/or State, Country.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city | path | yes | string |
state | query | no | string |
country | path | yes | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | Historical air quality conditions | AQCurrentGroup |
default | No Data. | Error |
GET/history/airquality?city_id={city_id}Returns 72 hours of historical air quality conditions - Given a City ID.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city_id | path | yes | number |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | Historical air quality conditions | AQCurrentGroup |
default | No Data. | Error |
GET/history/airquality?lat={lat}&lon={lon}Returns 72 hours of historical air quality conditions - Given a lat/lon.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
lat | path | yes | number |
lon | path | yes | number |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | Historical air quality conditions | AQCurrentGroup |
default | No Data. | Error |
GET/history/airquality?postal_code={postal_code}Returns 72 hours of historical air quality conditions - Given a Postal Code.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
postal_code | path | yes | integer |
country | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | Historical air quality conditions | AQCurrentGroup |
default | No Data. | Error |
Historical Degree Day API1
GET/history/energy?lat={lat}&lon={lon}Returns Energy API response - Given a single lat/lon.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
lat | path | yes | number |
lon | path | yes | number |
start_date | query | yes | string |
end_date | query | yes | string |
tp | query | no | string |
threshold | query | no | number |
units | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Energy Data Object. | EnergyObsGroup |
default | No Data. | Error |
Hourly Historical Weather Data5
GET/history/hourly?city={city}&country={country}Returns Historical Observations - Given City and/or State, Country.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city | path | yes | string |
state | query | no | string |
country | path | yes | string |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
tz | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Data Object. | History |
default | No Data. | Error |
GET/history/hourly?city_id={city_id}Returns Historical Observations - Given a City ID
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city_id | path | yes | string |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
tz | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Data Object. | History |
default | No Data. | Error |
GET/history/hourly?lat={lat}&lon={lon}Returns Historical Observations - Given a lat/lon.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
lat | path | yes | number |
lon | path | yes | number |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
tz | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Data Object. | History |
default | No Data. | Error |
GET/history/hourly?postal_code={postal_code}Returns Historical Observations - Given a Postal Code
Parameters
| Name | In | Required | Type |
|---|---|---|---|
postal_code | path | yes | string |
country | query | no | string |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
tz | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Data Object. | History |
default | No Data. | Error |
GET/history/hourly?station={station}Returns Historical Observations - Given a station ID.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
station | path | yes | string |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
tz | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Data Object. | History |
default | No Data. | Error |
Sub-Hourly Historical Weather Data5
GET/history/subhourly?city={city}&country={country}Returns Historical Observations - Given City and/or State, Country.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city | path | yes | string |
state | query | no | string |
country | path | yes | string |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
tz | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Data Object. | History |
default | No Data. | Error |
GET/history/subhourly?city_id={city_id}Returns Historical Observations - Given a City ID
Parameters
| Name | In | Required | Type |
|---|---|---|---|
city_id | path | yes | string |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
tz | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Data Object. | HistorySubhourly |
default | No Data. | Error |
GET/history/subhourly?lat={lat}&lon={lon}Returns Historical Observations - Given a lat/lon.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
lat | path | yes | number |
lon | path | yes | number |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
tz | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Data Object. | HistorySubhourly |
default | No Data. | Error |
GET/history/subhourly?postal_code={postal_code}Returns Historical Observations - Given a Postal Code
Parameters
| Name | In | Required | Type |
|---|---|---|---|
postal_code | path | yes | string |
country | query | no | string |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
tz | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Data Object. | HistorySubhourly |
default | No Data. | Error |
GET/history/subhourly?station={station}Returns Historical Observations - Given a station ID.
Parameters
| Name | In | Required | Type |
|---|---|---|---|
station | path | yes | string |
start_date | query | yes | string |
end_date | query | yes | string |
units | query | no | string |
lang | query | no | string |
tz | query | no | string |
callback | query | no | string |
key | query | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | An Historical Data Object. | HistorySubhourly |
default | No Data. | Error |
Try it
Developer reference
Base URL
https://api.weatherbit.io/v2.0Rate limit
Free tier: 50 calls/day
Key endpoints
- GET/current?lat={lat}&lon={lon}
- GET/forecast/daily?lat={lat}&lon={lon}
- GET/forecast/hourly?lat={lat}&lon={lon}
Changelog
Spec version2.0.0
Tracked paths47