80trust / 100
Weather
by 3HZ Global Weather Forecast in Weather & location
x402 APIPassing, checked 1 h ago
Global weather forecast for latitude and longitude. Returns the forecast valid now, all available hourly forecast points, and the extended forecast in native 6-hour periods without inventing hourly precision. Data source: MET Norway Locationforecast 2.0.
GET https://wallet-services-poc-clean-mainnet.3hz-services.workers.dev/weather
Last 30 days
All checks passedSome failedAll failedNot checked
- Uptime
- 100%
- Response time
- 240 ms typical, 303 ms slowest 5%
- Last check
- 1 h ago
- Next check
- any minute now
How to call it
# See the payment challenge (nothing is charged)
curl -i -X GET "https://wallet-services-poc-clean-mainnet.3hz-services.workers.dev/weather?lat=0&lon=0"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%2Fwallet-services-poc-clean-mainnet.3hz-services.workers.dev%2Fweather
const res = await pay("https://wallet-services-poc-clean-mainnet.3hz-services.workers.dev/weather?lat=0&lon=0");
console.log(await res.json());Example input
{
"lat": 0,
"lon": 0
}Example output
{
"current_forecast": {
"apparent_temperature_c": 15.7,
"cloud_cover_pct": 49.2,
"condition": "partlycloudy_day",
"dew_point_c": 5.2,
"fog_pct": 0,
"humidity_pct": 49.3,
"precipitation_next_1h_mm": 0,
"pressure_hpa": 1019.1,
"temperature_c": 15.7,
"time": "2026-09-17T08:00:00Z",
"uv_index_clear_sky": 1.3,
"wind_direction_deg": 39.8,
"wind_speed_mps": 4.1
},
"fetched_at": "2026-09-17T09:01:24Z",
"forecast_horizon": {
"first_time": "2026-09-17T08:00:00Z",
"hourly_points_returned": 64,
"last_time": "2026-09-26T12:00:00Z",
"six_hour_periods_returned": 26
},
"hourly_forecast": [
{
"apparent_temperature_c": 17.3,
"cloud_cover_pct": 57.8,
"condition": "partlycloudy_day",
"humidity_pct": 45.4,
"precipitation_mm": 0,
"temperature_c": 17.3,
"time": "2026-09-17T09:00:00Z",
"wind_direction_deg": 42.3,
"wind_speed_mps": 3.9
}
],
"location": {
"latitude": 0,
"longitude": 0
},
"six_hour_periods": [
{
"apparent_temperature_at_start_c": 20.3,
"condition": "clearsky_night",
"end_time": "2026-09-20T06:00:00Z",
"humidity_at_start_pct": 51.5,
"precipitation_mm": 0,
"start_time": "2026-09-20T00:00:00Z",
"temperature_at_start_c": 20.3,
"temperature_max_c": 20.8,
"temperature_min_c": 17.3,
"wind_direction_at_start_deg": 137.4,
"wind_speed_at_start_mps": 3
}
],
"source": {
"attribution": "Weather forecast data from MET Norway",
"product": "Locationforecast 2.0 Complete",
"provider": "MET Norway"
},
"source_updated_at": "2026-09-17T08:18:55Z"
}Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 1 h ago | Passed | 402 | 267 ms | $0.001 |
| 5 h ago | Passed | 402 | 235 ms | $0.001 |
| 9 h ago | Passed | 402 | 303 ms | $0.001 |
| 12 h ago | Passed | 402 | 289 ms | $0.001 |
| 16 h ago | Passed | 402 | 240 ms | $0.001 |
| 20 h ago | Passed | 402 | 234 ms | $0.001 |
| 23 h ago | Passed | 402 | 364 ms | $0.001 |
| 28 h ago | Passed | 402 | 209 ms | $0.001 |