Weather API Documentation

Production-ready weather data APIs for current conditions, forecasts, historical weather, air quality, and operational weather pipelines.

API Guide

Weather API Documentation

Build with current weather, forecasts, historical weather data, maps, air quality, lightning, agriculture, and energy datasets from one Weather API. These docs explain the major API families, how requests are structured, and where to find endpoint-specific examples, response fields, quota notes, and live response previews.

Choose a product group in the left navigation to compare related APIs, or open an individual endpoint to review request parameters, return fields, example requests, and sample responses.

Weather API Data Types

Current Weather

Live weather observations, severe weather alerts, current lightning, and weather map tiles for operational apps and dashboards.

Explore current weather APIs

Weather Forecasts

Daily, hourly, and minute-by-minute forecasts built for planning, automation, consumer apps, and data products.

Explore forecast APIs

Historical Weather

Gap-filled historical daily, hourly, subhourly, climate normals, and lightning data for analytics, validation, modeling, and backfills.

Explore historical APIs

Air Quality

Current, forecast, and historical air quality data with pollutant concentrations, AQI, and pollen fields where available.

Explore air quality APIs

Ag-Weather

Agriculture-focused weather fields including soil temperature, soil moisture, evapotranspiration, precipitation, and radiation variables.

Explore ag-weather APIs

Energy API

Forecast and historical degree-day data, solar irradiance fields, and weather context for energy demand and load analysis.

Explore energy APIs

Global Coverage and Resolution

Global precipitation weather data map visualization

Weatherbit APIs provide global weather coverage for current conditions, forecasts, historical weather, air quality, maps, and specialized weather datasets. Coverage and resolution vary by data product because each API is built from the best available source mix for that use case, including stations, radar, satellite, weather models, atmospheric analyses, and reanalysis datasets.

For most weather API products, the response represents the requested point or nearest available source blend rather than a broad administrative area. We recommend using latitude and longitude for the most precise lookup, especially for production systems and analytics.

Forecasts Global and regional model coverage, generally about 1 to 13 km depending on location and forecast product.
Historical weather Global historical coverage from station, analysis, radar, satellite, and reanalysis sources, with gap filling for cleaner time series.
Air quality Global pollutant and AQI data from atmospheric models and stations, with resolution varying by region and product.
Specialized APIs Ag-weather, energy, lightning, and maps use product-specific sources and constraints documented on each API page.

Location Accuracy

For best results, pass lat/lon when possible. City, postal code, station ID, and other lookup methods are supported where documented, but point coordinates reduce ambiguity and make responses easier to reproduce.

Each endpoint page lists supported location methods, available fields, and source notes for that API.

Point-based responses Most weather endpoints resolve data around the requested coordinate, then return the closest representative source blend.
Source-aware resolution Resolution depends on the product, region, and available source mix, so endpoint pages document the details where they matter.
Local time context Responses include timezone-aware timestamps where available, making it easier to align forecasts, observations, and daily summaries to the requested location.

How to Use the API Docs

1. Pick a data family

Start with a category page to compare related endpoints and understand which API fits your use case.

2. Review parameters and fields

Endpoint pages list supported location methods, required parameters, return fields, HTTP statuses, and quota estimates.

3. Run an example request

Add your API key to the request constructor, update the example inputs, and refresh the response preview.

Example JSON Responses

Weather API Response Samples

{
  "count": 1,
  "data": [
    {
      "app_temp": 24.5,
      "aqi": 34,
      "city_name": "Raleigh",
      "clouds": 25,
      "country_code": "US",
      "datetime": "2026-06-02:17",
      "dewpt": 11.2,
      "dhi": 124,
      "dni": 931,
      "elev_angle": 76.11,
      "ghi": 1019,
      "gust": 3.6,
      "h_angle": 0,
      "lat": 35.7796,
      "lon": -78.6382,
      "ob_time": "2026-06-02 16:50",
      "pod": "d",
      "precip": 0,
      "pres": 1009.3,
      "rh": 42,
      "slp": 1023,
      "snow": 0,
      "solar_rad": 1011.7,
      "sources": [
        "1327W",
        "radar",
        "satellite"
      ],
      "state_code": "NC",
      "station": "1327W",
      "sunrise": "09:58",
      "sunset": "00:26",
      "temp": 24.8,
      "timezone": "America/New_York",
      "ts": 1780419000,
      "uv": 9,
      "vis": 16,
      "weather": {
        "code": 801,
        "description": "Few clouds",
        "icon": "c02d"
      },
      "wind_cdir": "SSE",
      "wind_cdir_full": "south-southeast",
      "wind_dir": 148,
      "wind_spd": 2.2
    }
  ],
  "minutely": [
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.1,
      "timestamp_local": "2026-06-02T13:19:00",
      "timestamp_utc": "2026-06-02T17:19:00",
      "ts": 1780420740
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.1,
      "timestamp_local": "2026-06-02T13:20:00",
      "timestamp_utc": "2026-06-02T17:20:00",
      "ts": 1780420800
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.1,
      "timestamp_local": "2026-06-02T13:21:00",
      "timestamp_utc": "2026-06-02T17:21:00",
      "ts": 1780420860
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.1,
      "timestamp_local": "2026-06-02T13:22:00",
      "timestamp_utc": "2026-06-02T17:22:00",
      "ts": 1780420920
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.1,
      "timestamp_local": "2026-06-02T13:23:00",
      "timestamp_utc": "2026-06-02T17:23:00",
      "ts": 1780420980
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.1,
      "timestamp_local": "2026-06-02T13:24:00",
      "timestamp_utc": "2026-06-02T17:24:00",
      "ts": 1780421040
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.2,
      "timestamp_local": "2026-06-02T13:25:00",
      "timestamp_utc": "2026-06-02T17:25:00",
      "ts": 1780421100
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.2,
      "timestamp_local": "2026-06-02T13:26:00",
      "timestamp_utc": "2026-06-02T17:26:00",
      "ts": 1780421160
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.2,
      "timestamp_local": "2026-06-02T13:27:00",
      "timestamp_utc": "2026-06-02T17:27:00",
      "ts": 1780421220
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.2,
      "timestamp_local": "2026-06-02T13:28:00",
      "timestamp_utc": "2026-06-02T17:28:00",
      "ts": 1780421280
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.2,
      "timestamp_local": "2026-06-02T13:29:00",
      "timestamp_utc": "2026-06-02T17:29:00",
      "ts": 1780421340
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.2,
      "timestamp_local": "2026-06-02T13:30:00",
      "timestamp_utc": "2026-06-02T17:30:00",
      "ts": 1780421400
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.2,
      "timestamp_local": "2026-06-02T13:31:00",
      "timestamp_utc": "2026-06-02T17:31:00",
      "ts": 1780421460
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.3,
      "timestamp_local": "2026-06-02T13:32:00",
      "timestamp_utc": "2026-06-02T17:32:00",
      "ts": 1780421520
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.3,
      "timestamp_local": "2026-06-02T13:33:00",
      "timestamp_utc": "2026-06-02T17:33:00",
      "ts": 1780421580
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.3,
      "timestamp_local": "2026-06-02T13:34:00",
      "timestamp_utc": "2026-06-02T17:34:00",
      "ts": 1780421640
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.3,
      "timestamp_local": "2026-06-02T13:35:00",
      "timestamp_utc": "2026-06-02T17:35:00",
      "ts": 1780421700
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.3,
      "timestamp_local": "2026-06-02T13:36:00",
      "timestamp_utc": "2026-06-02T17:36:00",
      "ts": 1780421760
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.3,
      "timestamp_local": "2026-06-02T13:37:00",
      "timestamp_utc": "2026-06-02T17:37:00",
      "ts": 1780421820
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.3,
      "timestamp_local": "2026-06-02T13:38:00",
      "timestamp_utc": "2026-06-02T17:38:00",
      "ts": 1780421880
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.4,
      "timestamp_local": "2026-06-02T13:39:00",
      "timestamp_utc": "2026-06-02T17:39:00",
      "ts": 1780421940
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.4,
      "timestamp_local": "2026-06-02T13:40:00",
      "timestamp_utc": "2026-06-02T17:40:00",
      "ts": 1780422000
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.4,
      "timestamp_local": "2026-06-02T13:41:00",
      "timestamp_utc": "2026-06-02T17:41:00",
      "ts": 1780422060
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.4,
      "timestamp_local": "2026-06-02T13:42:00",
      "timestamp_utc": "2026-06-02T17:42:00",
      "ts": 1780422120
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.4,
      "timestamp_local": "2026-06-02T13:43:00",
      "timestamp_utc": "2026-06-02T17:43:00",
      "ts": 1780422180
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.4,
      "timestamp_local": "2026-06-02T13:44:00",
      "timestamp_utc": "2026-06-02T17:44:00",
      "ts": 1780422240
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.4,
      "timestamp_local": "2026-06-02T13:45:00",
      "timestamp_utc": "2026-06-02T17:45:00",
      "ts": 1780422300
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.4,
      "timestamp_local": "2026-06-02T13:46:00",
      "timestamp_utc": "2026-06-02T17:46:00",
      "ts": 1780422360
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.5,
      "timestamp_local": "2026-06-02T13:47:00",
      "timestamp_utc": "2026-06-02T17:47:00",
      "ts": 1780422420
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.5,
      "timestamp_local": "2026-06-02T13:48:00",
      "timestamp_utc": "2026-06-02T17:48:00",
      "ts": 1780422480
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.5,
      "timestamp_local": "2026-06-02T13:49:00",
      "timestamp_utc": "2026-06-02T17:49:00",
      "ts": 1780422540
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.5,
      "timestamp_local": "2026-06-02T13:50:00",
      "timestamp_utc": "2026-06-02T17:50:00",
      "ts": 1780422600
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.5,
      "timestamp_local": "2026-06-02T13:51:00",
      "timestamp_utc": "2026-06-02T17:51:00",
      "ts": 1780422660
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.5,
      "timestamp_local": "2026-06-02T13:52:00",
      "timestamp_utc": "2026-06-02T17:52:00",
      "ts": 1780422720
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.5,
      "timestamp_local": "2026-06-02T13:53:00",
      "timestamp_utc": "2026-06-02T17:53:00",
      "ts": 1780422780
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.6,
      "timestamp_local": "2026-06-02T13:54:00",
      "timestamp_utc": "2026-06-02T17:54:00",
      "ts": 1780422840
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.6,
      "timestamp_local": "2026-06-02T13:55:00",
      "timestamp_utc": "2026-06-02T17:55:00",
      "ts": 1780422900
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.6,
      "timestamp_local": "2026-06-02T13:56:00",
      "timestamp_utc": "2026-06-02T17:56:00",
      "ts": 1780422960
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.6,
      "timestamp_local": "2026-06-02T13:57:00",
      "timestamp_utc": "2026-06-02T17:57:00",
      "ts": 1780423020
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.6,
      "timestamp_local": "2026-06-02T13:58:00",
      "timestamp_utc": "2026-06-02T17:58:00",
      "ts": 1780423080
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.6,
      "timestamp_local": "2026-06-02T13:59:00",
      "timestamp_utc": "2026-06-02T17:59:00",
      "ts": 1780423140
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.6,
      "timestamp_local": "2026-06-02T14:00:00",
      "timestamp_utc": "2026-06-02T18:00:00",
      "ts": 1780423200
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.7,
      "timestamp_local": "2026-06-02T14:01:00",
      "timestamp_utc": "2026-06-02T18:01:00",
      "ts": 1780423260
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.7,
      "timestamp_local": "2026-06-02T14:02:00",
      "timestamp_utc": "2026-06-02T18:02:00",
      "ts": 1780423320
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.7,
      "timestamp_local": "2026-06-02T14:03:00",
      "timestamp_utc": "2026-06-02T18:03:00",
      "ts": 1780423380
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.7,
      "timestamp_local": "2026-06-02T14:04:00",
      "timestamp_utc": "2026-06-02T18:04:00",
      "ts": 1780423440
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.7,
      "timestamp_local": "2026-06-02T14:05:00",
      "timestamp_utc": "2026-06-02T18:05:00",
      "ts": 1780423500
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.7,
      "timestamp_local": "2026-06-02T14:06:00",
      "timestamp_utc": "2026-06-02T18:06:00",
      "ts": 1780423560
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.7,
      "timestamp_local": "2026-06-02T14:07:00",
      "timestamp_utc": "2026-06-02T18:07:00",
      "ts": 1780423620
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.7,
      "timestamp_local": "2026-06-02T14:08:00",
      "timestamp_utc": "2026-06-02T18:08:00",
      "ts": 1780423680
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.7,
      "timestamp_local": "2026-06-02T14:09:00",
      "timestamp_utc": "2026-06-02T18:09:00",
      "ts": 1780423740
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.7,
      "timestamp_local": "2026-06-02T14:10:00",
      "timestamp_utc": "2026-06-02T18:10:00",
      "ts": 1780423800
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.7,
      "timestamp_local": "2026-06-02T14:11:00",
      "timestamp_utc": "2026-06-02T18:11:00",
      "ts": 1780423860
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.8,
      "timestamp_local": "2026-06-02T14:12:00",
      "timestamp_utc": "2026-06-02T18:12:00",
      "ts": 1780423920
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.8,
      "timestamp_local": "2026-06-02T14:13:00",
      "timestamp_utc": "2026-06-02T18:13:00",
      "ts": 1780423980
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.8,
      "timestamp_local": "2026-06-02T14:14:00",
      "timestamp_utc": "2026-06-02T18:14:00",
      "ts": 1780424040
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.8,
      "timestamp_local": "2026-06-02T14:15:00",
      "timestamp_utc": "2026-06-02T18:15:00",
      "ts": 1780424100
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.8,
      "timestamp_local": "2026-06-02T14:16:00",
      "timestamp_utc": "2026-06-02T18:16:00",
      "ts": 1780424160
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.8,
      "timestamp_local": "2026-06-02T14:17:00",
      "timestamp_utc": "2026-06-02T18:17:00",
      "ts": 1780424220
    },
    {
      "precip": 0,
      "snow": 0,
      "temp": 24.8,
      "timestamp_local": "2026-06-02T14:18:00",
      "timestamp_utc": "2026-06-02T18:18:00",
      "ts": 1780424280
    }
  ]
}

Frequently Asked Questions

Weather API Questions

Does Weatherbit provide a free plan or a free trial?

Yes. We offer a Business trial so teams can fully test the API with up to 1,500 requests per day, along with a limited always-free plan for general users and hobbyist projects.

View pricing

How reliable is the Weatherbit API?

The API is geographically redundant across North America and Europe with nearly 100% lifetime uptime. API traffic is routed to healthy nodes based on latency and service health. The status page reflects actual API response health rather than a simple ping check.

Read help article

What makes the Weatherbit API different?

Weatherbit combines more than 20 weather and environmental datasets, including stations, radar, satellite, weather models, IMERG, ERA5, MRMS, and other sources. That multi-source approach helps improve data quality and coverage across locations and use cases.

Read help article

Why Weatherbit instead of another weather data provider?

A single-source weather feed can miss important local events when station coverage is sparse or incomplete. We blend station, model, radar, satellite, and reanalysis sources so applications can use more relevant weather data for each location.

Read help article