{"openapi":"3.1.0","info":{"title":"WeatherXM Agent API","version":"1.0.0","description":"[WeatherXM](https://weatherxm.com) is a community-powered weather network delivering high-resolution, hyperlocal observations and professional-grade weather forecast services of the highest possible forecast accuracy. Through x402, agents can fetch structured weather data on demand (e.g. station discovery/metadata, current & historical observations and forecasts/insights depending on the endpoint set), paying per request in stablecoins. Designed for agent workflows where determinism, machine-readability, and pay-as-you-go economics matter.\n\n**OpenAPI Spec:** [/openapi.json](/openapi.json) (for programmatic access)\n\n---\n\n## Quick Start Examples\n\n### Get Current Weather in New York\n```bash\ncurl \"https://agent.weatherxm.com/api/current?lat=40.7128&lon=-74.0060&units=metric\"\n```\n\n### Get 7-Day Forecast for London\n```bash\ncurl \"https://agent.weatherxm.com/api/forecast?lat=51.5074&lon=-0.1278&units=metric&tz=Europe/London\"\n```\n\n### Get Historical Weather for Tokyo\n```bash\ncurl \"https://agent.weatherxm.com/api/history?lat=35.6762&lon=139.6503&date=2025-01-01&units=metric&tz=Asia/Tokyo\"\n```\n\n**Note:** All paid endpoints return `402 Payment Required` until payment is made via the x402 protocol. Use an x402-compatible client to handle payments automatically.\n\n---\n\n## Available Endpoints\n\n| Endpoint | Price | Description |\n|----------|-------|-------------|\n| `GET /api/health` | Free | Health check - no payment required |\n| `GET /api/current` | $0.001 | Current weather conditions |\n| `GET /api/forecast` | $0.001 | 7-day hourly + daily forecast |\n| `GET /api/history` | $0.001 | Historical data (up to 4 days back) |\n\n---\n\n## Query Parameters (all endpoints)\n\n| Parameter | Required | Description | Example |\n|-----------|----------|-------------|---------|\n| `lat` | Yes | Latitude (-90 to 90) | `37.9838` |\n| `lon` | Yes | Longitude (-180 to 180) | `23.7275` |\n| `tz` | No | IANA timezone or \"auto\" | `Europe/London` |\n| `units` | No | \"metric\" or \"imperial\" | `metric` |\n| `date` | History only | Date (YYYY-MM-DD) | `2025-01-04` |\n\n**Units:**\n- **metric**: Celsius, km/h, mm, hPa\n- **imperial**: Fahrenheit, mph, inches, inHg\n\n---\n\n## x402 Payment Protocol\n\nThis API uses the [x402 protocol](https://x402.org) for machine-to-machine micropayments. When you request a paid endpoint without payment:\n\n1. API returns `402 Payment Required` with payment instructions\n2. Your x402 client creates a USDC payment on Base\n3. Client retries request with payment proof\n4. API returns weather data\n\n**Payment Details:**\n- **Price:** $0.001 USDC per request\n- **Asset:** USDC on Base (mainnet) or Base Sepolia (testnet)\n- **Facilitator:** [x402.org](https://x402.org/facilitator) (testnet) or [Coinbase CDP](https://api.cdp.coinbase.com/platform/v2/x402) (mainnet)\n\n**For AI Agents:** Use the [Coinbase AgentKit](https://docs.cdp.coinbase.com/agentkit/docs/welcome) or any x402-compatible HTTP client.\n\n---\n\n## Resources\n\n- [x402 Protocol Documentation](https://x402.org)\n- [Coinbase AgentKit](https://docs.cdp.coinbase.com/agentkit/docs/welcome)\n- [WeatherXM Network](https://weatherxm.com)\n- [x402scan Directory](https://x402scan.com)"},"servers":[{"url":"https://agent.weatherxm.com","description":"Mainnet (Base)"},{"url":"https://agent-testnet.weatherxm.com","description":"Testnet (Base Sepolia)"}],"components":{"schemas":{},"parameters":{}},"paths":{"/api/current":{"get":{"tags":["Weather"],"summary":"Get current weather conditions","description":"Returns current weather conditions for a given location.\n\n**Example Request:**\n```\nGET /api/current?lat=37.9838&lon=23.7275&units=metric\n```\n\n**Pricing:** $0.001 USDC per request (paid via x402 protocol)\n\n**Note:** Without payment, this endpoint returns 402 Payment Required with payment instructions.","operationId":"get_CurrentRoute","parameters":[{"schema":{"type":"string","description":"Latitude coordinate (-90 to 90). Example: 37.9838 for Athens, Greece"},"required":true,"description":"Latitude coordinate (-90 to 90). Example: 37.9838 for Athens, Greece","name":"lat","in":"query"},{"schema":{"type":"string","description":"Longitude coordinate (-180 to 180). Example: 23.7275 for Athens, Greece"},"required":true,"description":"Longitude coordinate (-180 to 180). Example: 23.7275 for Athens, Greece","name":"lon","in":"query"},{"schema":{"type":"string","default":"auto","description":"IANA timezone (e.g., \"Europe/Athens\", \"America/New_York\") or \"auto\" to detect from location. Default: \"auto\""},"required":false,"description":"IANA timezone (e.g., \"Europe/Athens\", \"America/New_York\") or \"auto\" to detect from location. Default: \"auto\"","name":"tz","in":"query"},{"schema":{"type":"string","enum":["metric","imperial"],"default":"metric","description":"Unit system. \"metric\": Celsius, km/h, mm, hPa. \"imperial\": Fahrenheit, mph, inches, inHg. Default: \"metric\""},"required":false,"description":"Unit system. \"metric\": Celsius, km/h, mm, hPa. \"imperial\": Fahrenheit, mph, inches, inHg. Default: \"metric\"","name":"units","in":"query"}],"responses":{"200":{"description":"Current weather data returned successfully","content":{"application/json":{"schema":{"type":"object","properties":{"location":{"type":"object","properties":{"lat":{"type":"number","description":"Latitude of the location"},"lon":{"type":"number","description":"Longitude of the location"}},"required":["lat","lon"],"description":"Coordinates of the weather data location"},"current":{"type":"object","properties":{"time":{"type":"string","description":"ISO8601 datetime with timezone offset (e.g., \"2025-01-05T14:00:00+02:00\")"},"temperature":{"type":"number","description":"Temperature in Celsius (metric) or Fahrenheit (imperial)"},"feels_like":{"type":"number","description":"Apparent/feels-like temperature"},"wind_speed":{"type":"number","description":"Wind speed in km/h (metric) or mph (imperial)"},"wind_direction":{"type":"number","description":"Wind direction in degrees (0-360, where 0=North, 90=East)"},"uv_index":{"type":"number","description":"UV index (0-11+)"},"precipitation_probability":{"type":"number","description":"Probability of precipitation (0-100%)"},"precipitation":{"type":"number","description":"Precipitation amount in mm (metric) or inches (imperial)"},"pressure":{"type":"number","description":"Sea level pressure in hPa (metric) or inHg (imperial)"},"humidity":{"type":"number","description":"Relative humidity (0-100%)"}},"required":["time","temperature","feels_like","wind_speed","wind_direction","uv_index","precipitation_probability","precipitation","pressure","humidity"],"description":"Current weather measurements"},"timezone":{"type":"string","description":"IANA timezone used for the response (e.g., \"Europe/Athens\")"},"units":{"type":"string","description":"Unit system used: \"metric\" or \"imperial\""},"data_source":{"type":"string","enum":["live","sample"],"description":"Data source: \"live\" from weather provider, \"sample\" for testnet static data"}},"required":["location","current","timezone","units","data_source"]},"example":{"location":{"lat":37.9838,"lon":23.7275},"current":{"time":"2025-01-05T14:00:00+02:00","temperature":12.5,"feels_like":10.8,"wind_speed":15.2,"wind_direction":180,"uv_index":2,"precipitation_probability":10,"precipitation":0,"pressure":1018.5,"humidity":65},"timezone":"Europe/Athens","units":"metric"}}}},"204":{"description":"No current data available within ±1 hour time window"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error"]}}}},"402":{"description":"Payment required. This endpoint requires x402 payment.\n\n**Payment Details:**\n- **Price:** $0.001 USDC per request\n- **Networks:** Base (mainnet: eip155:8453) or Base Sepolia (testnet: eip155:84532)\n- **Asset:** USDC\n- **Protocol:** x402 V2\n\nThe response body contains payment instructions in x402 V2 format with bazaar extensions for API discovery.\nThe `PAYMENT-REQUIRED` header also contains the same data (base64-encoded) for backward compatibility.\n\nUse an x402-compatible client (e.g., `@anthropics/claude-ai` with x402 support, or Coinbase AgentKit) to complete the payment flow automatically.","content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"number","enum":[2],"description":"x402 protocol version 2"},"error":{"type":"string","description":"Error message indicating payment is required"},"accepts":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string","enum":["exact"]},"network":{"type":"string","description":"CAIP-2 format network identifier (e.g., eip155:8453 for Base)"},"amount":{"type":"string","description":"Amount in smallest units (e.g., \"1000\" for $0.001 USDC)"},"payTo":{"type":"string","description":"Wallet address to receive payment"},"maxTimeoutSeconds":{"type":"number","description":"Maximum time in seconds to complete payment"},"asset":{"type":"string","description":"Token contract address"},"extra":{"type":"object","additionalProperties":{},"description":"Additional scheme-specific data"}},"required":["scheme","network","amount","payTo","maxTimeoutSeconds","asset","extra"]},"description":"Array of accepted payment options"},"resource":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Full URL of the resource being paid for"},"description":{"type":"string","description":"Human-readable description of the resource"},"mimeType":{"type":"string","description":"MIME type of the resource response"}},"required":["url","description","mimeType"],"description":"Information about the resource being accessed"},"extensions":{"type":"object","properties":{"bazaar":{"type":"object","properties":{"info":{"type":"object","properties":{"input":{"description":"Example request data"},"output":{"description":"Example response data"}}},"schema":{"description":"JSON Schema for input/output validation"}}}},"description":"Protocol extensions (e.g., bazaar for discovery)"}},"required":["x402Version"]}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error"]}}}}}}},"/api/forecast":{"get":{"tags":["Weather"],"summary":"Get 7-day weather forecast","description":"Returns hourly and daily weather forecast for the next 7 days.\n\n**Example Request:**\n```\nGET /api/forecast?lat=37.9838&lon=23.7275&units=metric\n```\n\n**Response includes:**\n- `hourly`: Array of 168 hourly forecasts (7 days × 24 hours)\n- `daily`: Array of 7 daily summaries with min/max/mean values\n\n**Pricing:** $0.001 USDC per request (paid via x402 protocol)\n\n**Note:** Without payment, this endpoint returns 402 Payment Required with payment instructions.","operationId":"get_ForecastRoute","parameters":[{"schema":{"type":"string","description":"Latitude coordinate (-90 to 90). Example: 37.9838 for Athens, Greece"},"required":true,"description":"Latitude coordinate (-90 to 90). Example: 37.9838 for Athens, Greece","name":"lat","in":"query"},{"schema":{"type":"string","description":"Longitude coordinate (-180 to 180). Example: 23.7275 for Athens, Greece"},"required":true,"description":"Longitude coordinate (-180 to 180). Example: 23.7275 for Athens, Greece","name":"lon","in":"query"},{"schema":{"type":"string","default":"auto","description":"IANA timezone (e.g., \"Europe/Athens\", \"America/New_York\") or \"auto\" to detect from location. Default: \"auto\""},"required":false,"description":"IANA timezone (e.g., \"Europe/Athens\", \"America/New_York\") or \"auto\" to detect from location. Default: \"auto\"","name":"tz","in":"query"},{"schema":{"type":"string","enum":["metric","imperial"],"default":"metric","description":"Unit system. \"metric\": Celsius, km/h, mm, hPa. \"imperial\": Fahrenheit, mph, inches, inHg. Default: \"metric\""},"required":false,"description":"Unit system. \"metric\": Celsius, km/h, mm, hPa. \"imperial\": Fahrenheit, mph, inches, inHg. Default: \"metric\"","name":"units","in":"query"}],"responses":{"200":{"description":"7-day forecast data with hourly and daily breakdowns","content":{"application/json":{"schema":{"type":"object","properties":{"location":{"type":"object","properties":{"lat":{"type":"number","description":"Latitude of the location"},"lon":{"type":"number","description":"Longitude of the location"}},"required":["lat","lon"],"description":"Coordinates of the weather data location"},"hourly":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"ISO8601 datetime with timezone offset"},"temperature":{"type":"number","description":"Temperature"},"feels_like":{"type":"number","description":"Apparent temperature"},"wind_speed":{"type":"number","description":"Wind speed"},"wind_direction":{"type":"number","description":"Wind direction in degrees (0-360)"},"uv_index":{"type":"number","description":"UV index"},"precipitation_probability":{"type":"number","description":"Precipitation probability (0-100%)"},"precipitation":{"type":"number","description":"Precipitation amount"},"pressure":{"type":"number","description":"Sea level pressure"},"humidity":{"type":"number","description":"Relative humidity (0-100%)"}},"required":["time","temperature","feels_like","wind_speed","wind_direction","uv_index","precipitation_probability","precipitation","pressure","humidity"]},"description":"Hourly forecasts for next 7 days (168 entries)"},"daily":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","description":"Date in YYYY-MM-DD format"},"precipitation":{"type":"number","description":"Total daily precipitation"},"precipitation_probability":{"type":"number","description":"Max precipitation probability"},"temperature_max":{"type":"number","description":"Maximum temperature"},"temperature_min":{"type":"number","description":"Minimum temperature"},"temperature":{"type":"number","description":"Mean temperature"},"pressure":{"type":"number","description":"Mean pressure"},"pressure_max":{"type":"number","description":"Maximum pressure"},"pressure_min":{"type":"number","description":"Minimum pressure"},"wind_speed":{"type":"number","description":"Mean wind speed"},"wind_speed_max":{"type":"number","description":"Maximum wind speed"},"wind_speed_min":{"type":"number","description":"Minimum wind speed"},"wind_direction":{"type":"number","description":"Dominant wind direction"},"humidity_max":{"type":"number","description":"Maximum humidity"},"humidity_min":{"type":"number","description":"Minimum humidity"},"humidity":{"type":"number","description":"Mean humidity"}},"required":["date","precipitation","precipitation_probability","temperature_max","temperature_min","temperature","pressure","pressure_max","pressure_min","wind_speed","wind_speed_max","wind_speed_min","wind_direction","humidity_max","humidity_min","humidity"]},"description":"Daily summaries for next 7 days"},"timezone":{"type":"string","description":"IANA timezone used for the response"},"units":{"type":"string","description":"Unit system used: \"metric\" or \"imperial\""},"data_source":{"type":"string","enum":["live","sample"],"description":"Data source: \"live\" from weather provider, \"sample\" for testnet static data"}},"required":["location","hourly","daily","timezone","units","data_source"]},"example":{"location":{"lat":37.9838,"lon":23.7275},"hourly":[{"time":"2025-01-05T14:00:00+02:00","temperature":12.5,"feels_like":10.8,"wind_speed":15.2,"wind_direction":180,"uv_index":2,"precipitation_probability":10,"precipitation":0,"pressure":1018.5,"humidity":65},{"time":"2025-01-05T15:00:00+02:00","temperature":12.8,"feels_like":11,"wind_speed":14.8,"wind_direction":175,"uv_index":1,"precipitation_probability":15,"precipitation":0,"pressure":1018.2,"humidity":67}],"daily":[{"date":"2025-01-05","precipitation":0,"precipitation_probability":15,"temperature_max":14.2,"temperature_min":8.5,"temperature":11.3,"pressure":1018.5,"pressure_max":1020.1,"pressure_min":1017.2,"wind_speed":12.5,"wind_speed_max":18.2,"wind_speed_min":5.1,"wind_direction":180,"humidity_max":75,"humidity_min":55,"humidity":65}],"timezone":"Europe/Athens","units":"metric"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error"]}}}},"402":{"description":"Payment required. This endpoint requires x402 payment.\n\n**Payment Details:**\n- **Price:** $0.001 USDC per request\n- **Networks:** Base (mainnet: eip155:8453) or Base Sepolia (testnet: eip155:84532)\n- **Asset:** USDC\n- **Protocol:** x402 V2\n\nThe response body contains payment instructions in x402 V2 format with bazaar extensions for API discovery.\nThe `PAYMENT-REQUIRED` header also contains the same data (base64-encoded) for backward compatibility.\n\nUse an x402-compatible client (e.g., `@anthropics/claude-ai` with x402 support, or Coinbase AgentKit) to complete the payment flow automatically.","content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"number","enum":[2],"description":"x402 protocol version 2"},"error":{"type":"string","description":"Error message indicating payment is required"},"accepts":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string","enum":["exact"]},"network":{"type":"string","description":"CAIP-2 format network identifier (e.g., eip155:8453 for Base)"},"amount":{"type":"string","description":"Amount in smallest units (e.g., \"1000\" for $0.001 USDC)"},"payTo":{"type":"string","description":"Wallet address to receive payment"},"maxTimeoutSeconds":{"type":"number","description":"Maximum time in seconds to complete payment"},"asset":{"type":"string","description":"Token contract address"},"extra":{"type":"object","additionalProperties":{},"description":"Additional scheme-specific data"}},"required":["scheme","network","amount","payTo","maxTimeoutSeconds","asset","extra"]},"description":"Array of accepted payment options"},"resource":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Full URL of the resource being paid for"},"description":{"type":"string","description":"Human-readable description of the resource"},"mimeType":{"type":"string","description":"MIME type of the resource response"}},"required":["url","description","mimeType"],"description":"Information about the resource being accessed"},"extensions":{"type":"object","properties":{"bazaar":{"type":"object","properties":{"info":{"type":"object","properties":{"input":{"description":"Example request data"},"output":{"description":"Example response data"}}},"schema":{"description":"JSON Schema for input/output validation"}}}},"description":"Protocol extensions (e.g., bazaar for discovery)"}},"required":["x402Version"]}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error"]}}}}}}},"/api/history":{"get":{"tags":["Weather"],"summary":"Get historical weather data","description":"Returns historical weather data for a specific date (up to 4 days back).\n\n**Example Request:**\n```\nGET /api/history?lat=37.9838&lon=23.7275&date=2025-01-02&units=metric\n```\n\n**Response includes:**\n- `hourly`: Array of 24 hourly measurements for the requested date\n- `daily`: Single daily summary with min/max/mean values\n\n**Pricing:** $0.001 USDC per request (paid via x402 protocol)\n\n**Note:** Without payment, this endpoint returns 402 Payment Required with payment instructions.","operationId":"get_HistoryRoute","parameters":[{"schema":{"type":"string","description":"Latitude coordinate (-90 to 90). Example: 37.9838 for Athens, Greece"},"required":true,"description":"Latitude coordinate (-90 to 90). Example: 37.9838 for Athens, Greece","name":"lat","in":"query"},{"schema":{"type":"string","description":"Longitude coordinate (-180 to 180). Example: 23.7275 for Athens, Greece"},"required":true,"description":"Longitude coordinate (-180 to 180). Example: 23.7275 for Athens, Greece","name":"lon","in":"query"},{"schema":{"type":"string","description":"Date to retrieve in YYYY-MM-DD format. Must be within the last 4 days. Example: \"2025-01-02\""},"required":true,"description":"Date to retrieve in YYYY-MM-DD format. Must be within the last 4 days. Example: \"2025-01-02\"","name":"date","in":"query"},{"schema":{"type":"string","default":"auto","description":"IANA timezone (e.g., \"Europe/Athens\", \"America/New_York\") or \"auto\" to detect from location. Default: \"auto\""},"required":false,"description":"IANA timezone (e.g., \"Europe/Athens\", \"America/New_York\") or \"auto\" to detect from location. Default: \"auto\"","name":"tz","in":"query"},{"schema":{"type":"string","enum":["metric","imperial"],"default":"metric","description":"Unit system. \"metric\": Celsius, km/h, mm, hPa. \"imperial\": Fahrenheit, mph, inches, inHg. Default: \"metric\""},"required":false,"description":"Unit system. \"metric\": Celsius, km/h, mm, hPa. \"imperial\": Fahrenheit, mph, inches, inHg. Default: \"metric\"","name":"units","in":"query"}],"responses":{"200":{"description":"Historical weather data for the requested date","content":{"application/json":{"schema":{"type":"object","properties":{"location":{"type":"object","properties":{"lat":{"type":"number","description":"Latitude of the location"},"lon":{"type":"number","description":"Longitude of the location"}},"required":["lat","lon"],"description":"Coordinates of the weather data location"},"date":{"type":"string","description":"The requested date in YYYY-MM-DD format"},"hourly":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"ISO8601 datetime with timezone offset"},"temperature":{"type":"number","description":"Temperature"},"feels_like":{"type":"number","description":"Apparent temperature"},"wind_speed":{"type":"number","description":"Wind speed"},"wind_direction":{"type":"number","description":"Wind direction in degrees (0-360)"},"uv_index":{"type":"number","description":"UV index"},"precipitation_probability":{"type":"number","description":"Precipitation probability (0-100%)"},"precipitation":{"type":"number","description":"Precipitation amount"},"pressure":{"type":"number","description":"Sea level pressure"},"humidity":{"type":"number","description":"Relative humidity (0-100%)"}},"required":["time","temperature","feels_like","wind_speed","wind_direction","uv_index","precipitation_probability","precipitation","pressure","humidity"]},"description":"Hourly measurements for the requested date (24 entries)"},"daily":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","description":"Date in YYYY-MM-DD format"},"precipitation":{"type":"number","description":"Total daily precipitation"},"precipitation_probability":{"type":"number","description":"Max precipitation probability"},"temperature_max":{"type":"number","description":"Maximum temperature"},"temperature_min":{"type":"number","description":"Minimum temperature"},"temperature":{"type":"number","description":"Mean temperature"},"pressure":{"type":"number","description":"Mean pressure"},"pressure_max":{"type":"number","description":"Maximum pressure"},"pressure_min":{"type":"number","description":"Minimum pressure"},"wind_speed":{"type":"number","description":"Mean wind speed"},"wind_speed_max":{"type":"number","description":"Maximum wind speed"},"wind_speed_min":{"type":"number","description":"Minimum wind speed"},"wind_direction":{"type":"number","description":"Dominant wind direction"},"humidity_max":{"type":"number","description":"Maximum humidity"},"humidity_min":{"type":"number","description":"Minimum humidity"},"humidity":{"type":"number","description":"Mean humidity"}},"required":["date","precipitation","precipitation_probability","temperature_max","temperature_min","temperature","pressure","pressure_max","pressure_min","wind_speed","wind_speed_max","wind_speed_min","wind_direction","humidity_max","humidity_min","humidity"]},"description":"Daily summary for the requested date (1 entry)"},"timezone":{"type":"string","description":"IANA timezone used for the response"},"units":{"type":"string","description":"Unit system used: \"metric\" or \"imperial\""},"data_source":{"type":"string","enum":["live","sample"],"description":"Data source: \"live\" from weather provider, \"sample\" for testnet static data"}},"required":["location","date","hourly","daily","timezone","units","data_source"]},"example":{"location":{"lat":37.9838,"lon":23.7275},"date":"2025-01-02","hourly":[{"time":"2025-01-02T00:00:00+02:00","temperature":8.5,"feels_like":6.2,"wind_speed":10.5,"wind_direction":270,"uv_index":0,"precipitation_probability":5,"precipitation":0,"pressure":1020.1,"humidity":72},{"time":"2025-01-02T01:00:00+02:00","temperature":8.2,"feels_like":5.9,"wind_speed":11,"wind_direction":265,"uv_index":0,"precipitation_probability":5,"precipitation":0,"pressure":1020.3,"humidity":74}],"daily":[{"date":"2025-01-02","precipitation":0,"precipitation_probability":10,"temperature_max":13.5,"temperature_min":7.8,"temperature":10.6,"pressure":1019.5,"pressure_max":1021.2,"pressure_min":1018.1,"wind_speed":11.5,"wind_speed_max":16.8,"wind_speed_min":6.2,"wind_direction":270,"humidity_max":78,"humidity_min":58,"humidity":68}],"timezone":"Europe/Athens","units":"metric"}}}},"400":{"description":"Bad request - date out of range or invalid","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error"]}}}},"402":{"description":"Payment required. This endpoint requires x402 payment.\n\n**Payment Details:**\n- **Price:** $0.001 USDC per request\n- **Networks:** Base (mainnet: eip155:8453) or Base Sepolia (testnet: eip155:84532)\n- **Asset:** USDC\n- **Protocol:** x402 V2\n\nThe response body contains payment instructions in x402 V2 format with bazaar extensions for API discovery.\nThe `PAYMENT-REQUIRED` header also contains the same data (base64-encoded) for backward compatibility.\n\nUse an x402-compatible client (e.g., `@anthropics/claude-ai` with x402 support, or Coinbase AgentKit) to complete the payment flow automatically.","content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"number","enum":[2],"description":"x402 protocol version 2"},"error":{"type":"string","description":"Error message indicating payment is required"},"accepts":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string","enum":["exact"]},"network":{"type":"string","description":"CAIP-2 format network identifier (e.g., eip155:8453 for Base)"},"amount":{"type":"string","description":"Amount in smallest units (e.g., \"1000\" for $0.001 USDC)"},"payTo":{"type":"string","description":"Wallet address to receive payment"},"maxTimeoutSeconds":{"type":"number","description":"Maximum time in seconds to complete payment"},"asset":{"type":"string","description":"Token contract address"},"extra":{"type":"object","additionalProperties":{},"description":"Additional scheme-specific data"}},"required":["scheme","network","amount","payTo","maxTimeoutSeconds","asset","extra"]},"description":"Array of accepted payment options"},"resource":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Full URL of the resource being paid for"},"description":{"type":"string","description":"Human-readable description of the resource"},"mimeType":{"type":"string","description":"MIME type of the resource response"}},"required":["url","description","mimeType"],"description":"Information about the resource being accessed"},"extensions":{"type":"object","properties":{"bazaar":{"type":"object","properties":{"info":{"type":"object","properties":{"input":{"description":"Example request data"},"output":{"description":"Example response data"}}},"schema":{"description":"JSON Schema for input/output validation"}}}},"description":"Protocol extensions (e.g., bazaar for discovery)"}},"required":["x402Version"]}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error"]}}}}}}}},"webhooks":{}}