> ## Documentation Index
> Fetch the complete documentation index at: https://aisa.one/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Historical Forecast

> Archived past runs of the high-resolution forecast models.

Retrieve the actual high-resolution forecasts that were issued in the past (archived model runs, not reanalysis) for a coordinate. `start_date` and `end_date` (`yyyy-mm-dd`) are **required** and select the archived interval. The variable model matches the [forecast endpoint](/docs/api-reference/openmeteo/get_openmeteo-forecast): request fields with `hourly` and/or `daily` lists.

The response returns grid-cell metadata and the requested resolution blocks, each with a `time` array, one array per variable, and a matching `*_units` object.

Example: `GET /apis/v1/openmeteo/historical-forecast?latitude=52.52&longitude=13.41&start_date=2023-06-01&end_date=2023-06-07&hourly=temperature_2m,precipitation`.

**Billing: \$0.00015 per call (150 micros USD), metered per request.** All Open-Meteo endpoints are GET pass-through — authenticate with your AIsa API key as a bearer token (the same key used across every AIsa `/apis/*` endpoint); AIsa handles provider access.


## OpenAPI

````yaml openapi/openmeteo.json GET /openmeteo/historical-forecast
openapi: 3.0.3
info:
  title: Open-Meteo Weather API
  version: 1.0.0
  description: >-
    Open-Meteo weather data routed through the AIsa gateway: forecast,
    historical, air quality, marine, ensemble, seasonal, climate, flood,
    geocoding and elevation. All endpoints are GET pass-through to Open-Meteo
    (open-meteo.com); AIsa handles provider access. Flat pricing of $0.00015 per
    call (150 micros USD), metered per request.
servers:
  - url: https://api.aisa.one/apis/v1
security:
  - BearerAuth: []
paths:
  /openmeteo/historical-forecast:
    get:
      summary: Historical Forecast
      description: >-
        Archived past runs of the high-resolution forecast models (the actual
        forecasts that were issued at the time, not reanalysis). Same variable
        model as the forecast endpoint; `start_date`/`end_date` select the
        archived interval. GET pass-through to
        `https://historical-forecast-api.open-meteo.com/v1/forecast`.


        Billed $0.00015 per call, metered per request.
      operationId: get_openmeteo_historical_forecast
      parameters:
        - name: latitude
          in: query
          required: true
          description: >-
            WGS84 latitude of the location. Multiple coordinates can be
            comma-separated.
          schema:
            type: string
            example: '52.52'
        - name: longitude
          in: query
          required: true
          description: >-
            WGS84 longitude of the location (negative for the Americas).
            Multiple coordinates can be comma-separated.
          schema:
            type: string
            example: '13.41'
        - name: start_date
          in: query
          required: true
          description: Start of the interval, `yyyy-mm-dd` (ISO 8601).
          schema:
            type: string
            example: '2024-01-01'
            format: date
        - name: end_date
          in: query
          required: true
          description: End of the interval, `yyyy-mm-dd` (ISO 8601).
          schema:
            type: string
            example: '2024-01-07'
            format: date
        - name: hourly
          in: query
          required: false
          description: >-
            Comma-separated list of hourly variables to return. Common values:
            `temperature_2m`, `relative_humidity_2m`, `dew_point_2m`,
            `apparent_temperature`, `precipitation`, `rain`, `showers`,
            `snowfall`, `weather_code`, `pressure_msl`, `cloud_cover`,
            `wind_speed_10m`, `wind_direction_10m`, `wind_gusts_10m`,
            `shortwave_radiation`, `visibility`.
          schema:
            type: string
            example: temperature_2m,precipitation,wind_speed_10m
        - name: daily
          in: query
          required: false
          description: >-
            Comma-separated list of daily aggregation variables to return.
            Requires `timezone`. Common values: `temperature_2m_max`,
            `temperature_2m_min`, `temperature_2m_mean`, `precipitation_sum`,
            `rain_sum`, `snowfall_sum`, `weather_code`, `sunrise`, `sunset`,
            `sunshine_duration`, `wind_speed_10m_max`, `uv_index_max`.
          schema:
            type: string
            example: temperature_2m_max,temperature_2m_min,precipitation_sum
        - name: elevation
          in: query
          required: false
          description: Manual elevation (meters). Defaults to a 90m DEM.
          schema:
            type: string
            example: '38'
        - name: temperature_unit
          in: query
          required: false
          description: Temperature unit. Default `celsius`.
          schema:
            type: string
            enum:
              - celsius
              - fahrenheit
            default: celsius
        - name: wind_speed_unit
          in: query
          required: false
          description: Wind speed unit. Default `kmh`.
          schema:
            type: string
            enum:
              - kmh
              - ms
              - mph
              - kn
            default: kmh
        - name: precipitation_unit
          in: query
          required: false
          description: Precipitation unit. Default `mm`.
          schema:
            type: string
            enum:
              - mm
              - inch
            default: mm
        - name: timeformat
          in: query
          required: false
          description: Time output format. Default `iso8601`.
          schema:
            type: string
            enum:
              - iso8601
              - unixtime
            default: iso8601
        - name: models
          in: query
          required: false
          description: >-
            Comma-separated forecast models to retrieve archived runs for.
            Default best match.
          schema:
            type: string
            example: best_match
        - name: timezone
          in: query
          required: false
          description: >-
            IANA time zone name (e.g. `Europe/Berlin`) or `auto` to resolve from
            coordinates. Defaults to `GMT`.
          schema:
            type: string
            example: Europe/Berlin
        - name: cell_selection
          in: query
          required: false
          description: Grid-cell preference for the coordinate. Default `land`.
          schema:
            type: string
            enum:
              - land
              - sea
              - nearest
            default: land
      responses:
        '200':
          description: Archived forecast for the interval.
          content:
            application/json:
              schema:
                type: object
              example:
                latitude: 52.52
                longitude: 13.41
                generationtime_ms: 0.8
                utc_offset_seconds: 0
                timezone: GMT
                elevation: 38
                hourly_units:
                  time: iso8601
                  temperature_2m: °C
                  precipitation: mm
                hourly:
                  time:
                    - 2023-06-01T00:00
                  temperature_2m:
                    - 14.2
                  precipitation:
                    - 0
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: AISA API Key

````