# NetIntel Weather Forecast API

> NetIntel Weather Forecast API is a paid API for AI agents from netintel-production-440c.up.railway.app, paid per call via x402, $0.003/call, status unknown (last checked 2026-09-16).

Returns a daily (and optionally hourly) weather forecast for a city or coordinates, up to 16 days ahead, via pay-per-call x402 micropayment.

## Facts

- Endpoint: GET https://netintel-production-440c.up.railway.app/weather/forecast
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/netintel-weather-forecast-api-34fa2447
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Y2s5SlCinTkDOPf_mHyKi

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 netintel-weather-forecast-api-34fa2447
```

Example prompt: What's the weather forecast for London over the next 7 days in metric units, and can you include hourly breakdowns for today?

## When to prefer this

Choose this endpoint when you need structured multi-day weather forecast data (up to 16 days) with rich daily detail including UV index, precipitation probability, wind, and sunrise/sunset — especially in an agent pipeline where no API key management is desired and pay-per-call USDC micropayment via x402 is acceptable. Prefer this over free open-meteo direct calls when you want the x402 billing model with guaranteed no-charge on failures. Not suitable for real-time current conditions (use a current-weather endpoint), historical weather, or climate data.

## Known failure modes

- City name not found or ambiguous — geocoding failure returns an error (not billed)
- Missing both city and coordinates — input-validation rejection (not billed)
- Days parameter out of range — clamped to 1-16 with a finding in the response
- Upstream Open-Meteo outage — server error returned, call not billed
- Invalid coordinate range (lat outside -90..90 or lon outside -180..180) — validation rejection (not billed)
- Invalid units value — validation rejection (not billed)

## How this service works

Network intelligence API — 138 endpoints, all pay-per-call via x402 micropayments (USDC on Base or Solana mainnet).

NetIntel is agent fair-trade aligned: transparent per-call pricing in USDC on Base or Solana via x402, no API keys or signup, and automatic no-charge on server errors, upstream failures, and input-validation rejections — failed calls are never billed across NetIntel's network, domain, and data-intelligence endpoints.

## Output

A JSON object with location metadata (name, region, country, lat/lon, timezone), the number of forecast days used, unit labels for temperature/wind/precipitation, and a 'daily' array of up to 16 objects each containing: date, temp_max, temp_min, feels_like_max, feels_like_min, precipitation, precip_probability_pct, uv_index_max, sunrise, sunset, wind_speed_max, wind_gusts_max, wind_direction_deg, weather_code, and condition string. When hourly=true, an additional 'hourly' array covers the next 24 hours with time, temperature, precipitation, precipitation probability, wind, and condition. A 'findings' array reports any clamping or parameter adjustments, and cache_age_seconds indicates data freshness.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "city": {
       "type": "string",
       "description": "City or place name to geocode, e.g. \"London\" or \"Austin, TX\". Aliases: location, q, place, name. Ignored when coordinates are given"
      },
      "days": {
       "type": "number",
       "description": "Daily forecast length 1-16 (default 7; out-of-range values are clamped with a finding). Alias: forecast_days"
      },
      "units": {
       "type": "string",
       "description": "metric (default: °C, km/h, mm) or imperial (°F, mph, inch). Alias: unit"
      },
      "hourly": {
       "type": "boolean",
       "description": "true to include the next 24 hours hour-by-hour (temperature, precipitation + probability, wind, condition). Default false. Alias: include_hourly; 1/true accepted"
      },
      "latitude": {
       "type": "number",
       "description": "Latitude -90..90 — must be paired with longitude; coordinates skip geocoding and win over city. Alias: lat"
      },
      "longitude": {
       "type": "number",
       "description": "Longitude -180..180 — must be paired with latitude. Aliases: lon, lng"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "days": {
       "type": "number",
       "description": "daily forecast length actually used (after clamping to 1-16)"
      },
      "daily": {
       "type": "array",
       "description": "one object per day: date, temp_max, temp_min, feels_like_max, feels_like_min, precipitation, precip_probability_pct (nullable far out), uv_index_max, sunrise, sunset, wind_speed_max, wind_gusts_max, wind_direction_deg, weather_code, condition"
      },
      "units": {
       "type": "object",
       "properties": {
        "wind_speed": {
         "type": "string"
        },
        "temperature": {
         "type": "string"
        },
        "precipitation": {
         "type": "string"
        
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "days": 7,
  "daily": [
   {
    "date": "2026-08-31",
    "sunset": "2026-08-31T19:44",
    "sunrise": "2026-08-31T06:12",
    "temp_max": 18.4,
    "temp_min": 11.2,
    "condition": "Rain",
    "uv_index_max": 4.1,
    "weather_code": 61,
    "precipitation": 1.3,
    "feels_like_max": 17.9,
    "feels_like_min": 10.4,
    "wind_gusts_max": 38.5,
    "wind_speed_max": 21,
    "wind_direction_deg": 230,
    "precip_probability_pct": 60
   },
   {
    "date": "2026-09-01",
    "sunset": "2026-09-01T19:42",
    "sunrise": "2026-09-01T06:14",
    "temp_max": 19.1,
    "temp_min": 12,
    "condition": "Partly cloudy",
    "uv_index_max": 5.2,
    "weather_code": 2,
    "precipitation": 0,
    "feels_like_max": 18.6,
    "feels_like_min": 11.3,
    "wind_gusts_max": 29.2,
    "wind_speed_max": 15.8,
    "wind_direction_deg": 245,
    "precip_probability_pct": 10
   }
  ],
  "units": {
   "wind_speed": "km/h",
   "temperature": "°C",
   "precipitation": "mm"
  },
  "source": "open-meteo",
  "findings": [],
  "location": {
   "name": "London",
   "region": "England",
   "country": "United Kingdom",
   "latitude": 51.51,
   "timezone": "Europe/London",
   "longitude": -0.13
  },
  "cache_age_seconds": 0
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/netintel-weather-forecast-api-34fa2447/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from netintel-production-440c.up.railway.app](https://www.zero.xyz/host/netintel-production-440c.up.railway.app/llms.txt)
