Skip to content
Eden Engine

Pilot Reports of Turbulence, Icing and Weather near an Airport (Aviation Weather Center)

aviationweather/pilot-reports

Pilot weather reports (PIREPs and AIREPs) within a radius of an airport, newest first: the raw report text, report time, aircraft type, position, flight level, and decoded turbulence, icing, cloud, visibility, weather and temperature observations where given. Give the airport as an ICAO identifier, the radius in nautical miles (default 100), how many hours back to look (default 2, up to 24), an optional flight level to search within 3,000 feet of, and an optional minimum intensity (light, moderate or severe) for turbulence and icing. Coverage is mainly the United States and the North Atlantic. No report in range gives an empty list. NWS Aviation Weather Center data, passed through unmodified and served by Eden Engine; not an official NWS or AWC product.

activeper callv1

Price

$0.0026 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.

Data source

NOAA National Weather Service Aviation Weather Center

Source: NOAA National Weather Service Aviation Weather Center (https://aviationweather.gov). U.S. government data. Served by Eden Engine; not an official NWS or AWC product.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "aviationweather/pilot-reports" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "aviationweather/pilot-reports" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "aviationweather/pilot-reports", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "aviationweather/pilot-reports", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0026
Updated
Oct 26, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9]{3,4}$",
      "description": "Airport identifier at the centre of the search (ICAO, for example KDEN)."
    },
    "age": {
      "type": "number",
      "default": 2,
      "maximum": 24,
      "minimum": 1,
      "description": "How many hours back to search, 1 to 24. Default 2."
    },
    "inten": {
      "enum": [
        "lgt",
        "mod",
        "sev"
      ],
      "type": "string",
      "description": "Minimum intensity of turbulence or icing to report: lgt (light), mod (moderate) or sev (severe). Leave out for all reports."
    },
    "level": {
      "type": "integer",
      "maximum": 600,
      "minimum": 0,
      "description": "Flight level (hundreds of feet) to centre a plus-or-minus 3,000 feet altitude filter on, for example 350 for 35,000 feet. Leave out for all altitudes."
    },
    "distance": {
      "type": "number",
      "default": 100,
      "maximum": 400,
      "minimum": 1,
      "description": "Search radius in nautical miles, 1 to 400. Default 100."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "obsTime",
          "rawOb"
        ],
        "properties": {
          "lat": {
            "type": [
              "number",
              "null"
            ],
            "description": "Report latitude in degrees."
          },
          "lon": {
            "type": [
              "number",
              "null"
            ],
            "description": "Report longitude in degrees."
          },
          "temp": {
            "type": [
              "number",
              "null"
            ],
            "description": "Outside air temperature in degrees Celsius."
          },
          "rawOb": {
            "type": "string",
            "description": "The raw report text as received."
          },
          "visib": {
            "type": [
              "number",
              "null"
            ],
            "description": "Visibility in statute miles."
          },
          "acType": {
            "type": [
              "string",
              "null"
            ],
            "description": "Aircraft type code, for example C172."
          },
          "fltLvl": {
            "type": [
              "number",
              "null"
            ],
            "description": "Flight level in hundreds of feet."
          },
          "tbInt1": {
            "type": [
              "string",
              "null"
            ],
            "description": "Intensity of the first turbulence layer (LGT, MOD, SEV), empty when none."
          },
          "icgInt1": {
            "type": [
              "string",
              "null"
            ],
            "description": "Intensity of the first icing layer (LGT, MOD, SEV), empty when none."
          },
          "obsTime": {
            "type": "integer",
            "description": "Report time as a Unix timestamp in seconds."
          },
          "wxString": {
            "type": [
              "string",
              "null"
            ],
            "description": "Weather phenomena as coded."
          },
          "pirepType": {
            "type": [
              "string",
              "null"
            ],
            "description": "PIREP, or AIREP for an automated report."
          }
        },
        "additionalProperties": true
      },
      "description": "One pilot report per element, newest first; empty when none is in range."
    }
  },
  "additionalProperties": false
}