Skip to content
Eden Engine

Monthly Hourly Weather Observations (by Airport Station)

omnial/get-monthly-observations

Given an airport ICAO station code and a calendar month and year, returns every recorded hourly weather observation for that month (temperature, humidity, wind, pressure, visibility, and cloud cover) plus a per-day summary of the day's maximum temperature and notes on how complete the data is.

activeper callv1
Provider
Web & Business Data Network
Category
weather
Provider price
$0.01365 per call
Latency p50 / p95
— / —
Success rate
—
Verified
—

Provider list price; Omnial MCP charges provider cost plus a platform markup on top.

Contract

input_schema.json
{
  "type": "object",
  "required": [
    "month",
    "year",
    "station_id"
  ],
  "properties": {
    "year": {
      "type": "integer",
      "description": "Year (e.g. 2024)."
    },
    "month": {
      "type": "integer",
      "description": "Month number, 1 through 12."
    },
    "station_id": {
      "type": "string",
      "description": "Airport station ICAO code (e.g. KJFK, EGLL)."
    },
    "country_code": {
      "type": "string",
      "description": "Two-letter ISO country code for the station (e.g. US, GB)."
    }
  },
  "additionalProperties": false
}
output_schema.json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "metadata": {
          "type": "object",
          "properties": {
            "units": {
              "type": "string",
              "description": "Unit system code for the response, e.g. 'm' for metric."
            },
            "language": {
              "type": "string",
              "description": "e.g. 'en-US'."
            }
          },
          "description": "Response-level locale/units metadata.",
          "additionalProperties": true
        },
        "observations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "rh": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Relative humidity, percent."
              },
              "wc": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Wind chill."
              },
              "key": {
                "type": "string"
              },
              "vis": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Visibility."
              },
              "clds": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Cloud cover code, e.g. 'SCT', 'BKN'; observed null on at least one row of the one populated call."
              },
              "gust": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "temp": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "wdir": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "wspd": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "class": {
                "type": "string",
                "description": "e.g. 'observation'."
              },
              "dewPt": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "obs_id": {
                "type": "string"
              },
              "day_ind": {
                "type": "string",
                "description": "e.g. 'N' for night, 'D' for day."
              },
              "uv_desc": {
                "type": "string",
                "description": "e.g. 'Low'."
              },
              "wx_icon": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "max_temp": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Present on most but not every row of the one populated call."
              },
              "min_temp": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Present on most but not every row of the one populated call."
              },
              "obs_name": {
                "type": "string",
                "description": "The station's public display name."
              },
              "pressure": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "row_type": {
                "type": "string",
                "description": "e.g. 'original_station_report'."
              },
              "uv_index": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "qc_status": {
                "type": [
                  "string",
                  "number",
                  "null"
                ],
                "description": "Observed null on EVERY row of the one populated call -- its populated shape is unconfirmed."
              },
              "snow_hrly": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "temp_unit": {
                "type": "string",
                "description": "e.g. 'C'."
              },
              "wx_phrase": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "feels_like": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "heat_index": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "utc_offset": {
                "type": [
                  "string",
                  "number",
                  "null"
                ],
                "description": "Observed null on every row of the one populated call."
              },
              "precip_hrly": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "precip_total": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "pressure_desc": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "e.g. 'Rising Rapidly'; null on most rows of the one populated call."
              },
              "pressure_tend": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Pressure trend code; null on most rows of the one populated call."
              },
              "timezone_name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Observed null on every row of the one populated call."
              },
              "wdir_cardinal": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "e.g. 'NW', 'CALM'."
              },
              "valid_time_gmt": {
                "type": "number",
                "description": "Unix epoch seconds."
              },
              "observed_at_utc": {
                "type": "string",
                "description": "ISO 8601 UTC timestamp."
              },
              "observed_at_local": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Observed null on every row of the one populated call."
              },
              "revision_timestamp": {
                "type": [
                  "string",
                  "number",
                  "null"
                ],
                "description": "Observed null on EVERY row of the one populated call -- its populated shape is unconfirmed."
              },
              "source_availability_timestamp": {
                "type": [
                  "string",
                  "number",
                  "null"
                ],
                "description": "Observed null on EVERY row of the one populated call -- its populated shape is unconfirmed."
              }
            },
            "additionalProperties": true
          },
          "description": "One entry per recorded hourly observation in the requested month (823 rows on the one populated call observed, July 2024 at KJFK -- roughly one per hour with a handful of gaps, see response_metadata.missing_hour_count)."
        },
        "daily_summary": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "date": {
                "type": "string",
                "description": "e.g. '2024-07-01'."
              },
              "max_temp_provenance": {
                "type": "string",
                "description": "'SOURCE_PUBLISHED' or 'DERIVED_FROM_ROWS', observed on the one populated call -- other values are not confirmed."
              },
              "max_temp_row_timestamp": {
                "type": "string"
              },
              "source_published_daily_max": {
                "type": "number",
                "description": "Only present when max_temp_provenance is 'SOURCE_PUBLISHED' -- absent (not null) on a 'DERIVED_FROM_ROWS' day."
              },
              "max_temp_from_returned_rows": {
                "type": "number"
              }
            },
            "additionalProperties": true
          },
          "description": "One entry per calendar day in the requested month."
        },
        "data_source_note": {
          "type": "string",
          "description": "A caveat string about this data's provenance/reliability, e.g. 'UNVERIFIED_TWC_AIRPORT_HISTORY_PROXY' on the one populated call observed -- read this before treating the observations as an authoritative official record."
        },
        "station_metadata": {
          "type": "object",
          "properties": {
            "icao": {
              "type": "string"
            },
            "latitude": {
              "type": [
                "number",
                "null"
              ],
              "description": "Observed null on the one populated call -- may not always resolve."
            },
            "longitude": {
              "type": [
                "number",
                "null"
              ],
              "description": "Observed null on the one populated call -- may not always resolve."
            },
            "station_id": {
              "type": "string"
            },
            "source_product_name": {
              "type": "string",
              "description": "The upstream historical-data product name behind this station's rows."
            }
          },
          "additionalProperties": true
        },
        "response_metadata": {
          "type": "object",
          "properties": {
            "warnings": {
              "type": "array",
              "items": {},
              "description": "Observed as an empty array on the one populated call -- item shape unconfirmed."
            },
            "row_count": {
              "type": "number"
            },
            "retrieved_at": {
              "type": "string",
              "description": "ISO 8601 UTC timestamp of the call."
            },
            "missing_hour_count": {
              "type": "number",
              "description": "How many expected hourly rows are absent from `observations`."
            },
            "requested_end_date": {
              "type": "string",
              "description": "e.g. '20240731'."
            },
            "requested_start_date": {
              "type": "string",
              "description": "e.g. '20240701'."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": true
    },
    "status": {
      "type": "string",
      "description": "'success' on the one populated call observed."
    }
  },
  "description": "The monthly observation record, as returned at routing.responseResultPath ($.output). A month with no data on file (see egll-jan-1990.json) shapes to an empty object -- no field below is guaranteed present.",
  "additionalProperties": true
}

Pricing

Every real charge, itemised. A model that quietly omits one is a slow financial leak, so nothing here is rolled up, and a charge that only applies to some inputs says so rather than being added in.

Prices in this catalog are the provider's own list price, not your bill: Omnial MCP charges provider cost plus a platform markup on top, so what you are charged is higher than the figure shown. For the exact amount a specific call will cost, run omnial_execute with dry_run: true; that number includes the markup and is what we hold while the call runs. It is a quote, not a cap on the charge.

ChargeRate
Per call
Flat, regardless of what comes back
$0.01365
Cost basis
Not recorded

This tool's catalog entry does not record how its final bill is determined, so we will not tell you whether its cost is fixed before the call or reported by the provider afterwards. Either way what is held is a quote rather than a cap: you are charged what the call actually costs, bounded at 2x the quote.

Updated
Sep 15, 2026