US weather forecast and active alerts (NWS) API

Weather forecast and active alerts for a US address or lat/lon point: NWS office, grid, forecast and county zones, time zone; 7-day periods (temperature, wind, precipitation chance, short and detailed forecast) or, with hourly=true, the next 24 hours adding humidity and dew point; active watches, warnings and advisories with event, severity, urgency, certainty, headline, timing and area. Sources: NOAA National Weather Service API, US Census Geocoder for addresses.

$0.005 per call  USDC over x402 v2 on Base, Polygon, Arbitrum, Avalanche or Sei. No signup, no API key. Requests that fail or match nothing are not charged.

Endpoint

GET https://geo.kit-rx.com/v1/geo/weather

Parameters

NameTypeRequiredDescription
addressstringnoOne-line US street address (5 to 100 characters), geocoded with the Census Geocoder. Mutually exclusive with lat/lon. e.g. 350 5th Ave, New York, NY 10118
latstringnoLatitude in decimal degrees, paired with lon; rounded to 4 decimals. Points outside NWS forecast coverage (US states and territories, land) return 404. e.g. 40.7479
lonstringnoLongitude in decimal degrees, paired with lat; rounded to 4 decimals. e.g. -73.9851
hourlystring: true, falsenotrue returns the next 24 hourly periods (with humidity and dew point) instead of the 7-day day/night periods. Default false. e.g. false

Example request

https://geo.kit-rx.com/v1/geo/weather?address=350+5th+Ave%2C+New+York%2C+NY+10118

Without payment the server answers 402 Payment Required with the price (5000 atomic USDC) in the PAYMENT-REQUIRED header. Any x402 v2 client pays and retries automatically. A request with no parameters runs this example.

curl -i "https://geo.kit-rx.com/v1/geo/weather?address=350+5th+Ave%2C+New+York%2C+NY+10118"

Pay from an agent

AgentCash: fetch the URL. OpenDexter MCP: x402_fetch. Kit Rx MCP server: https://geo.kit-rx.com/mcp. Code:

import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.BUYER_KEY) });
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://geo.kit-rx.com/v1/geo/weather?address=350+5th+Ave%2C+New+York%2C+NY+10118");
console.log(await res.json());

Example response

{
  "query": {
    "address": "350 5th Ave, New York, NY 10118"
  },
  "result": {
    "mode": "address",
    "matched_address": "350 5TH AVE, NEW YORK, NY, 10118",
    "location": {
      "lat": 40.7479,
      "lon": -73.9851
    },
    "point": {
      "type": "land",
      "office": "OKX",
      "office_url": "https://api.weather.gov/offices/OKX",
      "grid": {
        "id": "OKX",
        "x": 34,
        "y": 44
      },
      "forecast_url": "https://api.weather.gov/gridpoints/OKX/34,44/forecast",
      "forecast_hourly_url": "https://api.weather.gov/gridpoints/OKX/34,44/forecast/hourly",
      "forecast_zone": "NYZ072",
      "county_zone": "NYC061",
      "fire_weather_zone": "NYZ212",
      "time_zone": "America/New_York",
      "radar_station": "KOKX",
      "nearest_place": {
        "city": "New York",
        "state": "NY"
      }
    },
    "forecast": {
      "type": "7-day",
      "generated_at": "2026-11-14T23:56:51+00:00",
      "updated_at": "2026-11-14T18:20:27+00:00",
      "elevation_m": 15,
      "period_count": 14,
      "periods": [
        {
          "name": "Tonight",
          "start": "2026-11-14T18:00:00-05:00",
          "end": "2026-11-15T06:00:00-05:00",
          "is_daytime": false,
          "temperature": 39,
          "temperature_unit": "F",
          "temperature_trend": null,
          "precip_probability_pct": 5,
          "wind_speed": "10 mph",
          "wind_direction": "W",
          "short_forecast": "Partly Cloudy",
          "detailed_forecast": "Partly cloudy. Low around 39, with temperatures rising to around 41 overnight. West wind around 10 mph."
        },
        {
          "name": "Sunday",
          "start": "2026-11-15T06:00:00-05:00",
          "end": "2026-11-15T18:00:00-05:00",
          "is_daytime": true,
          "temperature": 51,
          "temperature_unit": "F",
          "temperature_trend": null,
          "precip_probability_pct": 1,
          "wind_speed": "9 to 13 mph",
          "wind_direction": "NW",
          "short_forecast": "Sunny",
          "detailed_forecast": "Sunny. High near 51, with temperatures falling to around 48 in the afternoon. Northwest wind 9 to 13 mph."
        }
      ]
    },
    "alerts": {
      "count": 0,
      "items": []
    }
  },
  "sources": [
    {
      "name": "US Census Bureau Geocoder",
      "url": "https://geocoding.geo.census.gov/geocoder/"
    },
    {
      "name": "NOAA National Weather Service API",
      "url": "https://api.weather.gov/"
    }
  ],
  "notes": [
    "Period start and end times are ISO 8601 with the point's local UTC offset; forecast generated_at and updated_at are NWS issuance times in UTC. Alerts are active NWS watches, warnings, advisories and statements whose areas contain the point."
  ],
  "attribution": [
    "This product uses the Census Bureau Geocoder API but is not endorsed or certified by the Census Bureau. Values are derived from Census Bureau data.",
    "Weather forecast and alert data from the NOAA National Weather Service (api.weather.gov), U.S. public domain; this NWS material is not subject to copyright protection (17 U.S.C. 403). Reformatted by Kit Rx: not official government material and not endorsed by or affiliated with NOAA/NWS. Forecasts and alerts are time-sensitive; NWS issuance and update times are included."
  ],
  "generated_at": "2026-11-14T23:56:51.102Z"
}

Kit Rx US Geocoding, Census & Weather: Geo data for AI agents: US address geocoding and reverse geocoding with Census geography, elevation, and NWS weather forecasts and alerts, paid per call over x402. Machine-readable: OpenAPI, llms.txt, /.well-known/x402, agent skills.