mirrored listing x402 eip155:8453

Official National Weather Service forecast for any US coordinate - six 12-hour day/night p

Official National Weather Service forecast for any US coordinate - six 12-hour day/night periods by default, or hourly - each with temperature in C and F, precipitation probability, a wind speed range in km/h, wind direction and a short forecast, plus the NWS issue time so an agent can judge its age. detail=full adds the narrative, icon, dewpoint and humidity. United States, its territories and coastal waters only. Use when: What is the weather forecast for these US coordinates?

Do you run api.eckari.com? This listing was mirrored from Coinbase's public Bazaar. Claim it in 30 seconds — no account required — and it becomes verified, permanently overriding the mirrored copy.

Claim this listing
3000 (raw units)
price
1
calls / 30d
1
unique payers
2026-08-27
updated

Provider

api.eckari.com · discovered, not yet claimed by its owner

Payment (x402 accepts[])

[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "payTo": "0x9d6b6fdB04040a55d58B24ff4C90C08cf6083C8f",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "3000",
    "maxTimeoutSeconds": 60
  }
]

Output schema

{
  "bazaar": {
    "info": {
      "input": {
        "method": "GET",
        "queryParams": {
          "lat": 38.8977,
          "lon": -77.0365
        },
        "type": "http"
      },
      "output": {
        "example": {
          "data": {
            "generated_at": "2026-08-18T12:03:31.000Z",
            "location": {
              "city": "Washington",
              "state": "DC",
              "timezone": "America/New_York"
            },
            "periods": [
              {
                "end_time": "2026-08-18T18:00:00-04:00",
                "is_daytime": true,
                "name": "Today",
                "precipitation_probability_pct": 11,
                "short_forecast": "Partly Sunny",
                "start_time": "2026-08-18T08:00:00-04:00",
                "temperature_c": 31.11,
                "temperature_f": 88,
                "wind_direction": "N",
                "wind_speed_range_kmh": {
                  "max": 11.27,
                  "min": 4.83
                }
              },
              {
                "end_time": "2026-08-19T06:00:00-04:00",
                "is_daytime": false,
                "name": "Tonight",
                "precipitation_probability_pct": 1,
                "short_forecast": "Partly Cloudy",
                "start_time": "2026-08-18T18:00:00-04:00",
                "temperature_c": 21.67,
                "temperature_f": 71,
                "wind_direction": "NW",
                "wind_speed_range_kmh": {
                  "max": 9.66,
                  "min": 1.61
                }
              },
              {
                "end_time": "2026-08-19T18:00:00-04:00",
                "is_daytime": true,
                "name": "Wednesday",
                "precipitation_probability_pct": 0,
                "short_forecast": "Sunny",
                "start_time": "2026-08-19T06:00:00-04:00",
                "temperature_c": 32.22,
                "temperature_f": 90,
                "wind_direction": "W",
                "wind_speed_range_kmh": {
                  "max": 8.05,
                  "min": 8.05
                }
              },
              {
                "end_time": "2026-08-20T06:00:00-04:00",
                "is_daytime": false,
                "name": "Wednesday Night",
                "precipitation_probability_pct": 19,
                "short_forecast": "Partly Cloudy then Slight Chance Showers And Thunderstorms",
                "start_time": "2026-08-19T18:00:00-04:00",
                "temperature_c": 22.78,
                "temperature_f": 73,
                "wind_direction": "SW",
                "wind_speed_range_kmh": {
                  "max": 8.05,
                  "min": 1.61
                }
              },
              {
                "end_time": "2026-08-20T18:00:00-04:00",
                "is_daytime": true,
                "name": "Thursday",
                "precipitation_probability_pct": 70,
                "short_forecast": "Showers And Thunderstorms Likely",
                "start_time": "2026-08-20T06:00:00-04:00",
                "temperature_c": 31.11,
                "temperature_f": 88,
                "wind_direction": "N",
                "wind_speed_range_kmh": {
                  "max": 9.66,
                  "min": 1.61
                }
              },
              {
                "end_time": "2026-08-21T06:00:00-04:00",
                "is_daytime": false,
                "name": "Thursday Night",
                "precipitation_probability_pct": 70,
                "short_forecast": "Showers And Thunderstorms Likely",
                "start_time": "2026-08-20T18:00:00-04:00",
                "temperature_c": 21.11,
                "temperature_f": 70,
                "wind_direction": "NE",
                "wind_speed_range_kmh": {
                  "max": 8.05,
                  "min": 1.61
                }
              }
            ],
            "query": {
              "detail": "compact",
              "hourly": false,
              "hours": null,
              "lat": 38.8977,
              "lon": -77.0365,
              "period_limit": 6
            },
            "updated_at": "2026-08-18T11:55:05.000Z",
            "valid_from": "2026-08-18T05:00:00.000Z"
          },
          "meta": {
            "capability": "weather.us.forecast",
            "freshness": "near_live",
            "source": "nws",
            "version": "4.0.0"
          }
        },
        "type": "json"
      }
    },
    "routeTemplate": "/v1/weather/us/forecast",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "input": {
          "additionalProperties": false,
          "properties": {
            "method": {
              "enum": [
                "GET",
                "HEAD",
                "DELETE"
              ],
              "type": "string"
            },
            "queryParams": {
              "additionalProperties": false,
              "properties": {
                "detail": {
                  "default": "compact",
                  "description": "compact (default) returns the fields an agent acts on. full adds the NWS narrative (detailed_forecast), the icon URL, the trend note and, for hourly periods, dewpoint_c and humidity_pct.",
                  "enum": [
                    "compact",
                    "full"
                  ],
                  "type": "string"
                },
                "hourly": {
                  "default": false,
                  "description": "Return hourly periods instead of the default 12-hour day/night periods. Hourly periods have no name and, at detail=full, carry dewpoint and humidity.",
                  "type": "boolean"
                },
                "hours": {
                  "default": 24,
                  "description": "Number of hourly periods to return, soonest first. Applies when hourly is true; use period_limit for day/night forecasts.",
                  "maximum": 48,
                  "minimum": 1,
                  "type": "integer"
                },
                "lat": {
                  "description": "Latitude in decimal degrees (WGS84). Rounded to 4 decimal places before the National Weather Service lookup.",
                  "maximum": 90,
                  "minimum": -90,
                  "type": "number"
                },
                "lon": {
                  "description": "Longitude in decimal degrees (WGS84). Rounded to 4 decimal places before the National Weather Service lookup.",
                  "maximum": 180,
                  "minimum": -180,
                  "type": "number"
                },
                "period_limit": {
                  "default": 6,
                  "description": "Maximum number of 12-hour day/night periods to return, soonest first. Applies when hourly is false; use hours for hourly forecasts. NWS issues 14 periods (7 days); the default of 6 is three days. Named period_limit, not periods, because periods is the returned series.",
                  "maximum": 14,
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "lat",
                "lon"
              ],
              "type": "object"
            },
            "type": {
              "const": "http",
              "type": "string"
            }
          },
          "required": [
            "type",
            "method"
          ],
          "type": "object"
        },
        "output": {
          "properties": {
            "example": {
              "type": "object"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type"
          ],
          "type": "object"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  },
  "payment-identifier": {
    "info": {
      "required": false
    },
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "id": {
          "maxLength": 128,
          "minLength": 16,
          "pattern": "^[a-zA-Z0-9_-]+$",
          "type": "string"
        },
        "required": {
          "type": "boolean"
        }
      },
      "required": [
        "required"
      ],
      "type": "object"
    }
  }
}

Use it

curl

curl "https://api.eckari.com/v1/weather/us/forecast"
# -> 402 Payment Required, accepts[] lists how to pay
# retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid

JavaScript

const res = await fetch("https://api.eckari.com/v1/weather/us/forecast");
if (res.status === 402) {
  const { accepts } = await res.json();
  // pay one of accepts[] via an x402 client, then retry with the payment header
}

Python

import httpx
res = httpx.get("https://api.eckari.com/v1/weather/us/forecast")
if res.status_code == 402:
    accepts = res.json()["accepts"]
    # pay one of accepts[] via an x402 client, then retry with the payment header

Machine-readable

Everything on this page is also available as clean JSON at /resources/4316.json, and this resource appears in /discovery/resources and /discovery/search.