WeatherAPI History API

Historical weather data

OpenAPI Specification

weatherapi-history-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: WeatherAPI.com Alerts History API
  description: 'WeatherAPI.com provides real-time, forecast, historical, marine, future, astronomy, air quality, pollen, sports, IP lookup, timezone, and geolocation data via a JSON/XML REST API. Trusted by 850,000+ developers worldwide. Average response time ~200ms.


    ## Authentication

    All endpoints require an API key passed as the `key` query parameter.


    ## Base URL

    `https://api.weatherapi.com/v1`


    ## Location Query (`q` parameter)

    Accepts: city name, lat/lon decimal, US zip, UK postcode, Canada postal code, METAR code (`metar:EGLL`), IATA airport code (`iata:DXB`), IP lookup (`auto:ip`), IPv4/IPv6 address, or location ID (`id:2801268`).


    ## Plans

    - **Free**: 100K calls/month, 3-day forecast, 1-day history

    - **Starter**: $7/mo — 3M calls, 7-day forecast, 7-day history

    - **Pro+**: $25/mo — 5M calls, 300-day future, 365-day history

    - **Business**: $65/mo — 10M calls, evapotranspiration

    - **Enterprise**: Custom — 15-min interval, pollen history, wind@100m, SLA'
  version: 1.0.2
  contact:
    name: WeatherAPI.com Support
    url: https://www.weatherapi.com/contact.aspx
  license:
    name: Commercial / Non-Commercial
    url: https://www.weatherapi.com/terms.aspx
  x-logo:
    url: https://cdn.weatherapi.com/v4/images/weatherapi_logo.png
  x-last-validated: '2026-05-28'
  x-generated-from: provider-openapi
servers:
- url: https://api.weatherapi.com/v1
  description: Production (HTTPS)
- url: http://api.weatherapi.com/v1
  description: Production (HTTP)
security:
- ApiKeyAuth: []
tags:
- name: History
  description: Historical weather data
paths:
  /history.json:
    get:
      tags:
      - History
      summary: WeatherAPI Historical Weather
      description: Returns historical weather data for a given date on or after 1 January 2010. Includes hourly breakdown. Enterprise plan unlocks solar irradiance, wind@100m, pollen history, and evapotranspiration.
      operationId: getHistory
      parameters:
      - $ref: '#/components/parameters/key'
      - $ref: '#/components/parameters/q'
      - name: dt
        in: query
        required: true
        description: Date on or after 2010-01-01 in yyyy-MM-dd format.
        schema:
          type: string
          format: date
          example: '2023-01-01'
        example: '2023-01-01'
      - $ref: '#/components/parameters/unixdt'
      - name: end_dt
        in: query
        required: false
        description: End date for range (Pro+ and above). Max 30 days range. yyyy-MM-dd.
        schema:
          type: string
          format: date
        example: '2026-05-28'
      - $ref: '#/components/parameters/unixend_dt'
      - $ref: '#/components/parameters/hour'
      - $ref: '#/components/parameters/aqi'
      - $ref: '#/components/parameters/pollen'
      - $ref: '#/components/parameters/tp'
      - $ref: '#/components/parameters/lang'
      - $ref: '#/components/parameters/solar'
      - $ref: '#/components/parameters/et0'
      - $ref: '#/components/parameters/wind100mph'
      - $ref: '#/components/parameters/wind100kph'
      responses:
        '200':
          description: Historical weather data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForecastWeatherResponse'
              examples:
                GetHistory200Example:
                  summary: Default getHistory 200 response
                  x-microcks-default: true
                  value:
                    location:
                      name: London
                      region: City of London, Greater London
                      country: United Kingdom
                      lat: 51.5074
                      lon: -0.1278
                      tz_id: Europe/London
                      localtime_epoch: 1748441400
                      localtime: 2026-05-28 15:30
                    current:
                      last_updated_epoch: 1748441400
                      last_updated: 2026-05-28 15:30
                      temp_c: 18.5
                      temp_f: 65.3
                      is_day: 1
                      condition:
                        text: Partly Cloudy
                        icon: //cdn.weatherapi.com/weather/64x64/day/116.png
                        code: 1003
                      wind_mph: 12.4
                      wind_kph: 12.4
                      wind_degree: 1
                      wind_dir: WSW
                      pressure_mb: 1013.0
                      pressure_in: 1013.0
                      precip_mm: 0.5
                      precip_in: 0.5
                      humidity: 65
                      cloud: 40
                      feelslike_c: 17.8
                      feelslike_f: 17.8
                      windchill_c: 12.4
                      windchill_f: 12.4
                      heatindex_c: 1.0
                      heatindex_f: 1.0
                      dewpoint_c: 1.0
                      dewpoint_f: 1.0
                      vis_km: 10.0
                      vis_miles: 10.0
                      uv: 4.0
                      gust_mph: 22.1
                      gust_kph: 22.1
                      short_rad: 1.0
                      diff_rad: 1.0
                      air_quality:
                        co: 1.0
                        o3: 1.0
                        no2: 1.0
                        so2: 1.0
                        pm2_5: 1.0
                        pm10: 1.0
                        us-epa-index: 1
                        gb-defra-index: 1
                      pollen:
                        Hazel: 1.0
                        Alder: 1.0
                        Birch: 1.0
                        Oak: 1.0
                        Grass: 1.0
                        Mugwort: 1.0
                        Ragweed: 1.0
                    forecast:
                      forecastday:
                      - date: '2026-05-28'
                        date_epoch: 1748441400
                        hour: []
                    alerts:
                      alert:
                      - headline: sample value
                        msgtype: sample value
                        severity: sample value
                        urgency: sample value
                        areas: sample value
                        category: sample value
                        certainty: sample value
                        event: Severe Thunderstorm Warning
                        note: sample value
                        effective: '2026-05-28T13:00:00Z'
                        expires: '2026-05-28T13:00:00Z'
                        desc: Severe thunderstorms with damaging winds expected in the warning area.
                        instruction: sample value
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  parameters:
    hour:
      name: hour
      in: query
      required: false
      description: Restrict output to a specific hour (0–23) in 24-hour format.
      schema:
        type: integer
        minimum: 0
        maximum: 23
    pollen:
      name: pollen
      in: query
      required: false
      description: Include pollen data. Available on Pro+ and above.
      schema:
        type: string
        enum:
        - 'yes'
        - 'no'
        default: 'no'
    unixend_dt:
      name: unixend_dt
      in: query
      required: false
      description: Unix timestamp equivalent of `end_dt`. Do not pass both.
      schema:
        type: integer
    unixdt:
      name: unixdt
      in: query
      required: false
      description: Unix timestamp equivalent of `dt`. Do not pass both.
      schema:
        type: integer
        example: 1490227200
    aqi:
      name: aqi
      in: query
      required: false
      description: Include Air Quality Index (AQI) data in response.
      schema:
        type: string
        enum:
        - 'yes'
        - 'no'
        default: 'no'
    lang:
      name: lang
      in: query
      required: false
      description: 'Language code for condition text. E.g.: fr, de, es, zh, ar. See full list in docs.'
      schema:
        type: string
        example: fr
    q:
      name: q
      in: query
      required: true
      description: 'Location query. Accepts: city name, lat/lon, US zip, UK postcode, Canada postal code, METAR code (metar:EGLL), IATA (iata:DXB), auto:ip, IPv4/IPv6, or location ID (id:2801268).'
      schema:
        type: string
        example: London
    wind100mph:
      name: wind100mph
      in: query
      required: false
      description: Include wind speed at 100m height in mph. Enterprise only.
      schema:
        type: string
        enum:
        - 'yes'
        - 'no'
    et0:
      name: et0
      in: query
      required: false
      description: Include evapotranspiration data. Business and Enterprise only.
      schema:
        type: string
        enum:
        - 'yes'
        - 'no'
    tp:
      name: tp
      in: query
      required: false
      description: Interval for data. Use tp=15 for 15-minute intervals (Enterprise only).
      schema:
        type: integer
        enum:
        - 15
    key:
      name: key
      in: query
      required: true
      description: Your WeatherAPI.com API key.
      schema:
        type: string
        example: YOUR_API_KEY
    wind100kph:
      name: wind100kph
      in: query
      required: false
      description: Include wind speed at 100m height in kph. Enterprise only.
      schema:
        type: string
        enum:
        - 'yes'
        - 'no'
    solar:
      name: solar
      in: query
      required: false
      description: Include solar irradiance data in History API. Enterprise only.
      schema:
        type: string
        enum:
        - 'yes'
        - 'no'
  schemas:
    ForecastDay:
      type: object
      properties:
        maxtemp_c:
          type: number
          example: 18.5
        maxtemp_f:
          type: number
          example: 65.3
        mintemp_c:
          type: number
          example: 18.5
        mintemp_f:
          type: number
          example: 65.3
        avgtemp_c:
          type: number
          example: 18.5
        avgtemp_f:
          type: number
          example: 65.3
        maxwind_mph:
          type: number
          example: 12.4
        maxwind_kph:
          type: number
          example: 12.4
        totalprecip_mm:
          type: number
          example: 0.5
        totalprecip_in:
          type: number
          example: 0.5
        totalsnow_cm:
          type: number
          example: 1.0
        avgvis_km:
          type: number
          example: 10.0
        avgvis_miles:
          type: number
          example: 10.0
        avghumidity:
          type: integer
          example: 65
        daily_will_it_rain:
          type: integer
          example: 1
        daily_chance_of_rain:
          type: integer
          example: 1
        daily_will_it_snow:
          type: integer
          example: 1
        daily_chance_of_snow:
          type: integer
          example: 1
        condition:
          $ref: '#/components/schemas/Condition'
        uv:
          type: number
          example: 4.0
        air_quality:
          $ref: '#/components/schemas/AirQuality'
    HourForecast:
      type: object
      properties:
        time_epoch:
          type: integer
          example: 1748441400
        time:
          type: string
          example: sample value
        temp_c:
          type: number
          example: 18.5
        temp_f:
          type: number
          example: 65.3
        is_day:
          type: integer
          example: 1
        condition:
          $ref: '#/components/schemas/Condition'
        wind_mph:
          type: number
          example: 12.4
        wind_kph:
          type: number
          example: 12.4
        wind_degree:
          type: integer
          example: 1
        wind_dir:
          type: string
          example: WSW
        pressure_mb:
          type: number
          example: 1013.0
        pressure_in:
          type: number
          example: 1013.0
        precip_mm:
          type: number
          example: 0.5
        precip_in:
          type: number
          example: 0.5
        snow_cm:
          type: number
          example: 1.0
        humidity:
          type: integer
          example: 65
        cloud:
          type: integer
          example: 40
        feelslike_c:
          type: number
          example: 17.8
        feelslike_f:
          type: number
          example: 17.8
        windchill_c:
          type: number
          example: 12.4
        windchill_f:
          type: number
          example: 12.4
        heatindex_c:
          type: number
          example: 1.0
        heatindex_f:
          type: number
          example: 1.0
        dewpoint_c:
          type: number
          example: 1.0
        dewpoint_f:
          type: number
          example: 1.0
        will_it_rain:
          type: integer
          example: 1
        chance_of_rain:
          type: integer
          example: 1
        will_it_snow:
          type: integer
          example: 1
        chance_of_snow:
          type: integer
          example: 1
        vis_km:
          type: number
          example: 10.0
        vis_miles:
          type: number
          example: 10.0
        gust_mph:
          type: number
          example: 22.1
        gust_kph:
          type: number
          example: 22.1
        uv:
          type: number
          example: 4.0
        short_rad:
          type: number
          example: 1.0
        diff_rad:
          type: number
          example: 1.0
        et0:
          type: number
          description: Evapotranspiration (Business+)
          example: 1.0
        air_quality:
          $ref: '#/components/schemas/AirQuality'
        pollen:
          $ref: '#/components/schemas/Pollen'
    AstroElement:
      type: object
      properties:
        sunrise:
          type: string
          example: 05:30 AM
        sunset:
          type: string
          example: 08:45 PM
        moonrise:
          type: string
          example: 10:15 PM
        moonset:
          type: string
          example: 06:42 AM
        moon_phase:
          type: string
          example: Waxing Crescent
        moon_illumination:
          type: number
          example: 35.0
        is_moon_up:
          type: integer
          example: 1
        is_sun_up:
          type: integer
          example: 1
    CurrentWeather:
      type: object
      properties:
        last_updated_epoch:
          type: integer
          example: 1748441400
        last_updated:
          type: string
          example: 2026-05-28 15:30
        temp_c:
          type: number
          description: Temperature °C
          example: 18.5
        temp_f:
          type: number
          description: Temperature °F
          example: 65.3
        is_day:
          type: integer
          description: 1=day, 0=night
          example: 1
        condition:
          $ref: '#/components/schemas/Condition'
        wind_mph:
          type: number
          example: 12.4
        wind_kph:
          type: number
          example: 12.4
        wind_degree:
          type: integer
          example: 1
        wind_dir:
          type: string
          description: 16-point compass direction
          example: WSW
        pressure_mb:
          type: number
          example: 1013.0
        pressure_in:
          type: number
          example: 1013.0
        precip_mm:
          type: number
          example: 0.5
        precip_in:
          type: number
          example: 0.5
        humidity:
          type: integer
          description: Humidity %
          example: 65
        cloud:
          type: integer
          description: Cloud cover %
          example: 40
        feelslike_c:
          type: number
          example: 17.8
        feelslike_f:
          type: number
          example: 17.8
        windchill_c:
          type: number
          example: 12.4
        windchill_f:
          type: number
          example: 12.4
        heatindex_c:
          type: number
          example: 1.0
        heatindex_f:
          type: number
          example: 1.0
        dewpoint_c:
          type: number
          example: 1.0
        dewpoint_f:
          type: number
          example: 1.0
        vis_km:
          type: number
          example: 10.0
        vis_miles:
          type: number
          example: 10.0
        uv:
          type: number
          description: UV Index
          example: 4.0
        gust_mph:
          type: number
          example: 22.1
        gust_kph:
          type: number
          example: 22.1
        short_rad:
          type: number
          description: GHI W/m² (paid plans)
          example: 1.0
        diff_rad:
          type: number
          description: DHI W/m² (paid plans)
          example: 1.0
        air_quality:
          $ref: '#/components/schemas/AirQuality'
        pollen:
          $ref: '#/components/schemas/Pollen'
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: WeatherAPI error code
            message:
              type: string
      example:
        error:
          code: 1006
          message: No location found matching parameter 'q'
    ForecastDayEntry:
      type: object
      properties:
        date:
          type: string
          format: date
          example: '2026-05-28'
        date_epoch:
          type: integer
          example: 1748441400
        day:
          $ref: '#/components/schemas/ForecastDay'
        astro:
          $ref: '#/components/schemas/AstroElement'
        hour:
          type: array
          items:
            $ref: '#/components/schemas/HourForecast'
    AirQuality:
      type: object
      description: Air quality data. Returned when aqi=yes.
      properties:
        co:
          type: number
          description: Carbon monoxide µg/m³
          example: 1.0
        o3:
          type: number
          description: Ozone µg/m³
          example: 1.0
        no2:
          type: number
          description: Nitrogen dioxide µg/m³
          example: 1.0
        so2:
          type: number
          description: Sulphur dioxide µg/m³
          example: 1.0
        pm2_5:
          type: number
          description: PM2.5 µg/m³
          example: 1.0
        pm10:
          type: number
          description: PM10 µg/m³
          example: 1.0
        us-epa-index:
          type: integer
          description: US EPA index 1–6 (1=Good, 6=Hazardous)
          example: 1
        gb-defra-index:
          type: integer
          description: UK DEFRA index 1–10
          example: 1
    ForecastWeatherResponse:
      type: object
      properties:
        location:
          $ref: '#/components/schemas/Location'
        current:
          $ref: '#/components/schemas/CurrentWeather'
        forecast:
          type: object
          properties:
            forecastday:
              type: array
              items:
                $ref: '#/components/schemas/ForecastDayEntry'
        alerts:
          type: object
          properties:
            alert:
              type: array
              items:
                $ref: '#/components/schemas/Alert'
    Condition:
      type: object
      properties:
        text:
          type: string
          description: Weather condition description
          example: Partly Cloudy
        icon:
          type: string
          description: URL to condition icon
          example: //cdn.weatherapi.com/weather/64x64/day/116.png
        code:
          type: integer
          description: Condition code (see conditions.json)
          example: 1003
    Alert:
      type: object
      properties:
        headline:
          type: string
          example: sample value
        msgtype:
          type: string
          example: sample value
        severity:
          type: string
          example: sample value
        urgency:
          type: string
          example: sample value
        areas:
          type: string
          example: sample value
        category:
          type: string
          example: sample value
        certainty:
          type: string
          example: sample value
        event:
          type: string
          example: Severe Thunderstorm Warning
        note:
          type: string
          example: sample value
        effective:
          type: string
          example: '2026-05-28T13:00:00Z'
        expires:
          type: string
          example: '2026-05-28T13:00:00Z'
        desc:
          type: string
          example: Severe thunderstorms with damaging winds expected in the warning area.
        instruction:
          type: string
          example: sample value
    Pollen:
      type: object
      description: Pollen data in grains/m³. Returned when pollen=yes (Pro+ and above).
      properties:
        Hazel:
          type: number
          example: 1.0
        Alder:
          type: number
          example: 1.0
        Birch:
          type: number
          example: 1.0
        Oak:
          type: number
          example: 1.0
        Grass:
          type: number
          example: 1.0
        Mugwort:
          type: number
          example: 1.0
        Ragweed:
          type: number
          example: 1.0
    Location:
      type: object
      description: Location metadata returned with every weather response.
      properties:
        name:
          type: string
          description: Location name
          example: London
        region:
          type: string
          description: Region or state
          example: City of London, Greater London
        country:
          type: string
          description: Country name
          example: United Kingdom
        lat:
          type: number
          format: float
          description: Latitude
          example: 51.5074
        lon:
          type: number
          format: float
          description: Longitude
          example: -0.1278
        tz_id:
          type: string
          description: IANA timezone ID, e.g. Europe/London
          example: Europe/London
        localtime_epoch:
          type: integer
          description: Local time as Unix epoch
          example: 1748441400
        localtime:
          type: string
          description: Local date and time string
          example: 2026-05-28 15:30
  responses:
    Forbidden:
      description: Forbidden — API key quota exceeded, disabled, or plan does not include this resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized — API key missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad request — invalid parameter or location not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: key
      description: API key obtained from https://www.weatherapi.com/my/. Pass as `?key=YOUR_API_KEY` query parameter.
externalDocs:
  description: Official WeatherAPI.com Documentation
  url: https://www.weatherapi.com/docs/