API operational · v1

WeatherArb Public API

Free, open, no authentication required. Real-time weather anomaly data for 65 European cities, computed using Z-Score analysis against ERA5-Land 2000–2024 seasonal baselines.

Base URL
https://api.weatherarb.com
# Quick start — no setup needed
curl https://api.weatherarb.com/api/v1/pulse/vicenza

# Response
{
  "province": "Vicenza",
  "weather": {
    "z_score": -0.53,
    "anomaly_level": "NORMAL",
    "event_type": "Clear"
  },
  "signal": { "score": 4.9 }
}

Authentication

No API key required for the free tier. All endpoints are publicly accessible. Simply make HTTP requests directly.

Free tier: No registration, no API key, no credit card. Just call the API.

Rate Limits

Fair use limits apply to prevent abuse. The free tier is sufficient for most applications.

100
Requests / day
10
Requests / minute
65
Cities available

Need higher limits? Contact us for B2B access.

GET /api/v1/pulse/{city}

Returns full weather anomaly data for a specific city.

GET /api/v1/pulse/{city} City anomaly data

Path Parameters

ParameterTypeRequiredDescription
citystringrequiredCity name (case-insensitive). E.g. vicenza, münchen, paris

Query Parameters

ParameterTypeRequiredDescription
force_refreshbooleanoptionalForce cache refresh. Default: false

Example Request

curl https://api.weatherarb.com/api/v1/pulse/hamburg

Playground

🔌 Try it live

Response will appear here...

GET /api/v1/europe/top

Returns the top anomaly signals across all monitored European cities, sorted by Z-Score magnitude.

GET /api/v1/europe/top Top signals

Query Parameters

ParameterTypeRequiredDescription
limitintegeroptionalNumber of results. Default: 10. Max: 65

Playground

🔌 Try it live

Response will appear here...

GET /api/v1/pulse/nearby

Finds the closest monitored city to given coordinates and returns its anomaly data. Useful for browser geolocation.

GET /api/v1/pulse/nearby Geo-based lookup

Query Parameters

ParameterTypeRequiredDescription
latfloatrequiredLatitude (decimal degrees)
lonfloatrequiredLongitude (decimal degrees)
radius_kmfloatoptionalSearch radius. Default: 100

Playground

🔌 Try it live — uses your browser location

Response will appear here...

GET /api/v1/widget/{city}

Lightweight endpoint for embedded widgets. Returns minimal JSON for fast rendering.

GET /api/v1/widget/{city} Embed data
# Embed on your website
<iframe src="https://weatherarb.com/widget.html?p=Milano"
        width="260" height="180" frameborder="0"></iframe>

# Or fetch data directly
curl https://api.weatherarb.com/api/v1/widget/milano
# → {"p":"Milano","z":-0.12,"a":"NORMAL","s":5.1,"t":"2026-04-10"}

POST /api/newsletter/subscribe

Subscribe an email address to the weekly anomaly digest.

POST /api/newsletter/subscribe Subscribe
ParameterTypeRequiredDescription
emailstringrequiredEmail address
provinciastringoptionalCity to monitor. Empty = all Europe
curl -X POST \
  "https://api.weatherarb.com/api/newsletter/subscribe?email=you@example.com&provincia=Milano"

Response Schema

Full response structure for the /pulse/{city} endpoint.

{
  "api_version": string  // "v1"
  "province": string  // City name
  "region": string  // Region/state
  "country": string  // "IT" | "DE" | "ES" | "FR"
  "timestamp": string  // ISO 8601
  "weather": {
    "event_type": string  // "Heat_Wave" | "Heavy_Rain" | "Clear" ...
    "anomaly_level": string  // "NORMAL" | "UNUSUAL" | "EXTREME" | "CRITICAL"
    "z_score": float  // Statistical deviation from ERA5 baseline
    "temperature_c": float  // Current temperature in Celsius
    "historical_avg_c": float  // ERA5 seasonal average
    "severity": float  // 0.0 – 1.0
  },
  "signal": {
    "score": float  // 0.0 – 10.0 composite signal
    "confidence": float  // 0.0 – 1.0
    "actionable": boolean
  },
  "attribution": string  // "WeatherArb.com · ERA5-Land ECMWF + OpenWeatherMap"
}

Anomaly Levels

Classification based on absolute Z-Score value.

LevelZ-ScoreFrequencyDescription
NORMAL< 1.0~68%Within expected seasonal range
UNUSUAL1.0 – 2.0~27%Statistically noteworthy deviation
EXTREME2.0 – 3.0~5%Rare event, above 95th percentile
CRITICAL> 3.0~0.3%Exceptional anomaly, 1-in-300 event

City List

All 65 monitored cities. Use the lowercase name in API calls.

Loading...