GET /api/weather-hourly48-hour hourly weather forecast for any location: temperature, precipitation probability and amount, wind, cloud cover, humidity. Open-Meteo, no key, global. ?lat=-33.87&lon=151.21.
| Field | Type | Description |
|---|---|---|
lat * | number | Latitude, -90 to 90 |
lon * | number | Longitude, -180 to 180 |
hours | number | Forecast hours, 1-168 (default 48) |
units | string | Temperature unit: celsius (default) or fahrenheit |
{
"lat": -33.8688,
"lon": 151.2093,
"hours": [
{
"time": "2026-06-23T14:00",
"temperature": 18.2,
"unit": "°C",
"humidity": 62,
"precipProbability": 10,
"precipitation": 0,
"condition": "Mainly clear",
"weatherCode": 1,
"cloudCover": 25,
"windSpeed": 14.8,
"windDirection": 195,
"windUnit": "km/h"
}
],
"source": "api.open-meteo.com (CC BY 4.0)"
}
curl -i "https://agent402.tools/api/weather-hourly?lat=-33.8688&lon=151.2093"
The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/weather-hourly?lat=-33.8688&lon=151.2093");
Wallet-only. This tool reaches the network/browser/storage, so it is paid in USDC via x402 (no proof-of-work tier).
GET /api/gov-dataSearch 300,000+ US government datasets on catalog.data.gov (CKAN): titles, publishing org, formats, and direct resource …
GET /api/weather-alertsActive National Weather Service alerts for a US state as clean JSON: event, severity, headline, affected areas, onset/ex…
GET /api/earthquakesReal-time USGS earthquake feed: magnitude, place, time, depth, coordinates. Live government data, no key. ?minMag=4.5&pe…