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.
CORSUnknownNot documented — test from the browser before relying on it.
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}