80trust / 100

Aviation Metar

by Tanod skypeek in Weather & location

x402 APIPassing, checked 3 h ago

skypeek (Tanod) METAR reports, raw and decoded, for 1-20 stations (NOAA aviationweather.gov). Not for flight planning or navigation.

POST https://tanod.dev/v1/aviation/metar

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
278 ms typical, 799 ms slowest 5%
Last check
3 h ago
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X POST "https://tanod.dev/v1/aviation/metar" \
  -H "content-type: application/json" \
  -d '{"stations":["RPLL","KSFO"]}'
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Ftanod.dev%2Fv1%2Faviation%2Fmetar
const res = await pay("https://tanod.dev/v1/aviation/metar", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({"stations":["RPLL","KSFO"]}),
});
console.log(await res.json());

Example input

{
  "stations": [
    "RPLL",
    "KSFO"
  ]
}

Example output

{
  "cache_seconds": 300,
  "count": 2,
  "disclaimer": "Informational only. Not for operational use or flight planning.",
  "found": 2,
  "kind": "metar",
  "source": {
    "license": "US Government work, public domain",
    "name": "NOAA Aviation Weather Center (aviationweather.gov Data API)",
    "notice": "Data: NOAA/NWS Aviation Weather Center. No endorsement by NOAA or the National Weather Service is implied.",
    "terms": "https://www.weather.gov/disclaimer",
    "url": "https://aviationweather.gov/data/api/"
  },
  "stations": [
    {
      "decoded": {
        "altimeter": {
          "hpa": 1013,
          "inhg": 29.91
        },
        "clouds": [
          {
            "cover": "SCT",
            "cover_text": "scattered",
            "height_ft": 2500,
            "type": null
          },
          {
            "cover": "BKN",
            "cover_text": "broken",
            "height_ft": 10000,
            "type": null
          }
        ],
        "dewpoint_c": 24,
        "flight_category": "VFR",
        "observed": {
          "day": 8,
          "hour": 4,
          "minute": 0,
          "time_utc": "2026-10-08T04:00:00Z"
        },
        "remarks": "A2991",
        "station": "RPLL",
        "temperature_c": 29,
        "trend": "NOSIG",
        "type": "METAR",
        "unparsed": [],
        "visibility": {
          "meters": 9000,
          "qualifier": null,
          "statute_miles": 5.59
        },
        "weather": [
          {
            "descriptors": [
              "SH"
            ],
            "intensity": "light",
            "phenomena": [
              "RA"
            ],
            "raw": "-SHRA",
            "text": "light showers of rain"
          }
        ],
        "wind": {
          "calm": false,
          "direction_compass": "SE",
          "direction_deg": 130,
          "gust": null,
          "gust_kt": null,
          "speed": 5,
          "speed_kt": 5,
          "unit": "KT",
          "variable": false,
          "variable_from_deg": 90,
          "variable_to_deg": 180
        }
      },
      "elevation_m": 15,
      "found": true,
      "lat": 14.507,
      "lon": 121.004,
      "name": "Manila/Aquino Intl, NC, PH",
      "observed_at": "2026-10-08T04:00:00Z",
      "raw": "METAR RPLL 080400Z 13005KT 090V180 9000 -SHRA SCT025 BKN100 29/24 Q1013 NOSIG RMK A2991",
      "station": "RPLL"
    },
    {
      "decoded": {
        "altimeter": {
          "hpa": 1011.5,
          "inhg": 29.87
        },
        "clouds": [
          {
            "cover": "FEW",
            "cover_text": "few",
            "height_ft": 200,
            "type": null
          }
        ],
        "dewpoint_c": 13,
        "flight_category": "VFR",
        "observed": {
          "day": 8,
          "hour": 3,
          "minute": 56,
          "time_utc": "2026-10-08T03:56:00Z"
        },
        "remarks": "AO2 SLP116 T01500133",
        "station": "KSFO",
        "temperature_c": 15,
        "tren

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
3 h agoPassed402283 ms$0.001
7 h agoPassed402265 ms$0.001
11 h agoPassed402549 ms$0.001
14 h agoPassed402278 ms$0.001
18 h agoPassed402799 ms$0.001
21 h agoPassed402260 ms$0.001
25 h agoPassed402859 ms$0.001
30 h agoPassed402272 ms$0.001