> ## 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 Weather (ERA5 Archive)

> Historical reanalysis weather for any coordinate, with data back to 1940.

Retrieve historical reanalysis weather (ERA5 / ERA5-Land and related models) for any coordinate. `start_date` and `end_date` (both `yyyy-mm-dd`) are **required** and define the interval; data is available from 1940 to the near-present. Request fields with `hourly` and/or `daily` variable lists, and set `timezone` to localize daily aggregates.

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

Example: `GET /apis/v1/openmeteo/archive?latitude=52.52&longitude=13.41&start_date=2022-01-01&end_date=2022-12-31&hourly=temperature_2m,precipitation&daily=temperature_2m_max,temperature_2m_min&timezone=Europe/Berlin`.

**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/archive
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/archive:
    get:
      summary: Historical Weather (ERA5 Archive)
      description: >-
        Historical reanalysis weather (ERA5 / ERA5-Land and related models) for
        any coordinate, with data back to 1940. `start_date` and `end_date` are
        required. GET pass-through to
        `https://archive-api.open-meteo.com/v1/archive`.


        Billed $0.00015 per call, metered per request.
      operationId: get_openmeteo_archive
      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`. Also includes soil
            temperature/moisture variables.
          schema:
            type: string
            example: temperature_2m,precipitation
        - 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 reanalysis models, e.g. `era5`, `era5_land`,
            `ecmwf_ifs`, `cerra`. Default best match.
          schema:
            type: string
            example: era5
        - 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: Historical weather for the interval.
          content:
            application/json:
              schema:
                type: object
              example:
                latitude: 52.5
                longitude: 13.4
                generationtime_ms: 1.2
                utc_offset_seconds: 3600
                timezone: Europe/Berlin
                elevation: 38
                hourly_units:
                  time: iso8601
                  temperature_2m: °C
                  precipitation: mm
                hourly:
                  time:
                    - 2022-01-01T00:00
                    - 2022-01-01T01:00
                  temperature_2m:
                    - 3.1
                    - 2.8
                  precipitation:
                    - 0
                    - 0
                daily_units:
                  time: iso8601
                  temperature_2m_max: °C
                  temperature_2m_min: °C
                  precipitation_sum: mm
                daily:
                  time:
                    - '2022-01-01'
                  temperature_2m_max:
                    - 4.5
                  temperature_2m_min:
                    - 1.2
                  precipitation_sum:
                    - 0.6
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: AISA API Key

````