# Weather Forecast (Open-Meteo)

> Weather Forecast (Open-Meteo) is a paid API for AI agents from ZeroClick x402 Service Registry at weather.withzero.ai, paid per call via MPP, $0.001/call, live (last probed 2026-10-11, last successful call 2026-09-19).

Agents call it through Zero, which pays per call: no API key and no wallet of your own. New accounts start with $5.

Returns current weather conditions and a 7-day daily forecast for any location worldwide, using the Open-Meteo API.

## Facts

- Endpoint: POST https://weather.withzero.ai/run?utm_source=zero.xyz
- Price: $0.001/call
- Payment: MPP
- Status: healthy
- Last checked: 2026-10-11
- Last successful call: 2026-09-19
- Success rate: 79% of calls made through Zero
- Rating: 4.6 / 5 from 17 reviews
- Activations on Zero: 129
- Provider: ZeroClick x402 Service Registry
- Website: https://withzero.ai
- Tags: data, weather, forecast, temperature, climate
- Canonical page: https://www.zero.xyz/c/zeroclick-x402-service-registry-weather-0cd7c167
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_hR5ojexrUB4CSiPKOhpQc

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability zeroclick-x402-service-registry-weather-0cd7c167 -d '<json body>'
```

Example prompt: What's the current weather in San Francisco right now, and can you give me the 7-day forecast in Fahrenheit?

## When to prefer this

Use this endpoint when you need free, no-auth weather data for any global location — both current conditions and a 7-day outlook in a single call. Prefer it over more complex weather APIs when you don't need hourly granularity and want a simple, low-cost ($0.001 USDC) option that accepts crypto payment.

## Known failure modes

- Invalid or unresolvable location name returns an error — ensure the string is a recognizable place name
- Latitude/longitude values out of range (-90 to 90, -180 to 180) will cause a validation error
- Ambiguous location names may resolve to an unexpected place — prefer lat/lon for precision
- Network or upstream Open-Meteo API unavailability may cause timeouts
- Invalid temperature unit enum value (anything other than 'celsius' or 'fahrenheit') will fail schema validation

## How this service works

Get current weather and a 7-day forecast for any location worldwide using the Open-Meteo API (free, no key needed). Input: latitude/longitude OR a location name string, with optional temperature units. Output: current conditions (temperature, humidity, wind speed, weather description) plus a daily forecast.

## Output

Returns a resolved location name, the latitude/longitude used, current conditions (temperature with unit, humidity %, wind speed in km/h, weather description, WMO code), and a 7-day array of daily forecasts (date, max/min temperature, precipitation sum in mm, weather description).

## Example request

```json
{
 "units": "celsius",
 "location": "London"
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "units": {
   "enum": [
    "celsius",
    "fahrenheit"
   ],
   "type": "string",
   "default": "celsius",
   "description": "Temperature units: \"celsius\" or \"fahrenheit\" (default: celsius)"
  },
  "latitude": {
   "type": "number",
   "maximum": 90,
   "minimum": -90,
   "description": "Latitude of the location (-90 to 90)"
  },
  "location": {
   "type": "string",
   "description": "Location name to geocode (e.g. \"London\", \"New York\"). Used if latitude/longitude are not provided."
  },
  "longitude": {
   "type": "number",
   "maximum": 180,
   "minimum": -180,
   "description": "Longitude of the location (-180 to 180)"
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "resolvedLocation",
  "latitude",
  "longitude",
  "current",
  "daily"
 ],
 "properties": {
  "daily": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "date",
     "temperatureMax",
     "temperatureMin",
     "weatherDescription",
     "precipitationSum"
    ],
    "properties": {
     "date": {
      "type": "string",
      "description": "Date (YYYY-MM-DD)"
     },
     "temperatureMax": {
      "type": "number",
      "description": "Maximum temperature for the day"
     },
     "temperatureMin": {
      "type": "number",
      "description": "Minimum temperature for the day"
     },
     "precipitationSum": {
      "type": "number",
      "description": "Total precipitation in mm"
     },
     "weatherDescription": {
      "type": "string",
      "description": "Weather description for the day"
     }
    },
    "additionalProperties": false
   },
   "description": "7-day daily forecast"
  },
  "current": {
   "type": "object",
   "required": [
    "temperature",
    "temperatureUnit",
    "humidity",
    "windSpeed",
    "weatherDescription",
    "weatherCode"
   ],
   "properties": {
    "humidity": {
     "type": "number",
     "description": "Relative humidity percentage"
    },
    "windSpeed": {
     "type": "number",
     "description": "Wind speed in km/h"
    },
    "temperature": {
     "type": "number",
     "description": "Current temperature"
    },
    "weatherCode": {
     "type": "number",
     "description": "WMO weather code"
    },
    "temperatureUnit": {
     "type": "string",
     "description": "Temperature unit (°C or °F)"
    },
    "weatherDescription": {
     "type": "string",
     "description": "Human-readable weather description"
    }
   },
   "description": "Current weather conditions",
   "additionalProperties": false
  },
  "latitude": {
   "type": "number",
   "description": "Latitude used for the forecast"
  },
  "longitude": {
   "type": "number",
   "description": "Longitude used for the forecast"
  },
  "resolvedLocation": {
   "type": "string",
   "description": "The resolved location name or coordinates used"
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/zeroclick-x402-service-registry-weather-0cd7c167/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from weather.withzero.ai](https://www.zero.xyz/host/weather.withzero.ai/llms.txt)
