# TBS Weather & Climate API – Complete Weather Bundle

> TBS Weather & Climate API – Complete Weather Bundle is a paid API for AI agents from x402.tbs-digital.com, paid per call via x402, $0.001/call, status unknown (last checked 2026-10-10).

Returns current conditions, 24-hour hourly forecast, 7-day daily forecast, air quality, solar radiation, and severe-weather alerts in a single API call for any city or lat/lon coordinate.

## Facts

- Endpoint: GET https://x402.tbs-digital.com/weather/current?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/tbs-weather-climate-api-complete-weather-bundle-b571e129
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_rw-sUJrFxe8YnKcyR8ZRj

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 tbs-weather-climate-api-complete-weather-bundle-b571e129
```

Example prompt: What's the full weather picture for San Francisco right now — current conditions, hourly forecast for the next 24 hours, 7-day outlook, air quality index, and any severe weather alerts?

## When to prefer this

Choose this endpoint when you need a comprehensive, all-in-one weather snapshot that avoids multiple round-trips: it uniquely bundles current conditions, 24h hourly, 7-day daily, AQI/air quality, solar radiation, and severe alerts in a single $0.001 call. Prefer it over sibling TBS endpoints (which cover air quality, marine, solar, or flood independently) when your use case requires the full picture at once. Ideal for travel assistants, smart home automations, event planners, or any agent that needs rich environmental context in one call.

## Known failure modes

- Missing required query parameter (neither city nor lat/lon provided) — returns 400 error
- Invalid city name with no match — may return empty location or error
- Latitude/longitude out of valid range (-90 to 90, -180 to 180) — returns validation error
- Payment not included or insufficient USDC — returns 402 Payment Required
- Air quality data unavailable for remote locations — air_quality field may be null
- Severe weather alerts absent in regions not covered by alert services — empty alerts array
- Rate limiting or upstream weather provider outage — returns 5xx error

## How this service works

Complete weather bundle in one call: current conditions (temperature, feels-like, humidity, wind speed/direction/gusts, pressure, cloud cover, precipitation, UV, day/night) plus 24-hour hourly and 7-day daily forecast, air quality (AQI, PM2.5, PM10, ozone), solar radiation, and severe-weather alerts. Query by city name or lat/lon. Times in the location local timezone. Most complete weather data per call.

## Output

A single JSON response containing: location metadata (name, country, lat/lon, timezone, UTC offset), current conditions (temperature, feels-like, humidity, wind speed/direction/gusts, pressure, cloud cover, precipitation, UV index, day/night flag), 24-hour hourly forecast array, 7-day daily forecast array, air quality object (AQI indices for EU and US, PM2.5, PM10, ozone), solar radiation data, astronomy data, severe-weather alerts array, payer address, source identifier, request ID, and generation timestamp.

## 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": {
      "lat": {
       "type": "number",
       "description": "Latitude -90..90 (requires lon)"
      },
      "lon": {
       "type": "number",
       "description": "Longitude -180..180 (requires lat)"
      },
      "city": {
       "type": "string",
       "description": "City name (alternative to lat/lon)"
      },
      "timezone": {
       "type": "string",
       "description": "Optional IANA timezone"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "payer": {
       "type": "object",
       "properties": {
        "address": {
         "type": "string",
         "nullable": true
        },
        "network": {
         "type": "string"
        }
       }
      },
      "solar": {
       "type": "object"
      },
      "alerts": {
       "type": "array"
      },
      "source": {
       "type": "string"
      },
      "current": {
       "type": "object"
      },
      "forecast": {
       "type": "object"
      },
      "location": {
       "type": "object",
       "properties": {
        "lat": {
         "type": "number"
        },
        "lon": {
         "type": "number"
        },
        "name": {
         "type": "string"
        },
        "country": {
         "type": "string"
        }
       }
      },
      "timezone": {
       "type": "string"
      },
      "astronomy": {
       "type": "object"
      },
      "request_id": {
       "type": "string"
      },
      "air_quality": {
       "type": "object",
       "nullable": true
      },
      "generated_at": {
       "type": "string"
      },
      "utc_offset_seconds": {
       "type": "number"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "payer": {
   "address": "0x0000000000000000000000000000000000000000",
   "network": "base"
  },
  "solar": {
   "direct_radiation_wm2": 410,
   "shortwave_radiation_wm2": 512
  },
  "alerts": [
   {
    "code": "uv_high",
    "message": "High UV index around midday",
    "severity": "moderate"
   }
  ],
  "source": "open-meteo",
  "current": {
   "is_day": true,
   "temp_c": 21.3,
   "uv_index": 3,
   "wind_kmh": 12,
   "condition": "Clear sky",
   "observed_at": "2026-08-09T11:00:00Z",
   "feels_like_c": 20.1,
   "humidity_pct": 55,
   "pressure_hpa": 1015,
   "condition_code": "0"
  },
  "forecast": {
   "daily": [
    {
     "date": "2026-08-09",
     "temp_max_c": 25,
     "temp_min_c": 15
    }
   ],
   "hourly": [
    {
     "time": "2026-08-09T12:00:00Z",
     "temp_c": 22.1,
     "precip_prob_pct": 5
    }
   ]
  },
  "location": {
   "lat": 48.85,
   "lon": 2.35,
   "name": "Paris",
   "country": "FR"
  },
  "timezone": "Europe/Paris",
  "astronomy": {
   "sunset": "2026-08-09T19:34:00Z",
   "sunrise": "2026-08-09T04:12:00Z",
   "moon_phase": 0.52,
   "moon_phase_name": "Full moon",
   "moon_illumination_pct": 99.1
  },
  "request_id": "0b21c0e6-6a3f-4e2a-8b1e-2f9d4c7a1e55",
  "air_quality": {
   "ozone": 68,
   "pm2_5": 5.1,
   "aqi_european": 20
  },
  "generated_at": "2026-08-09T12:00:00.000Z",
  "utc_offset_seconds": 7200
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tbs-weather-climate-api-complete-weather-bundle-b571e129/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.tbs-digital.com](https://www.zero.xyz/host/x402.tbs-digital.com/llms.txt)
