open-meteo
Integrate Open-Meteo Weather Forecast, Air Quality, and Geocoding APIs: query design, variable selection, timezone/timeformat/units, multi-location batching, and robust error handling. Use when fetching weather forecasts, air quality/pollen data, or geocoding place names to coordinates via Open-Meteo. Keywords: Open-Meteo, /v1/forecast, /v1/air-quality, geocoding-api, hourly, daily, current, timezone=auto, timeformat=unixtime, models, WMO weather_code, CAMS, GeoNames, httpx, FastAPI, pytest.
How do I install this agent skill?
npx skills add https://github.com/itechmeat/llm-code --skill open-meteoIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill provides a standard integration for the Open-Meteo weather service, allowing the agent to look up weather forecasts and air quality data. The skill includes Python examples for making network requests to the service. While the skill is safe and uses a well-known weather provider, the process of fetching external data always presents a minor risk of indirect prompt injection. No malicious patterns or security vulnerabilities were identified.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
- Runlayerpass
1/7 files flagged
What does this agent skill do?
Open Meteo
Goal
Provide a reliable, production-friendly way to call Open-Meteo APIs (Forecast, Air Quality, Geocoding), choose variables, control time/units/timezone, and parse responses consistently.
Steps
-
Pick the correct API and base URL
- Forecast:
https://api.open-meteo.com/v1/forecast - Air Quality:
https://air-quality-api.open-meteo.com/v1/air-quality - Geocoding:
https://geocoding-api.open-meteo.com/v1/search
- Forecast:
-
Resolve coordinates (if you only have a name)
- Call Geocoding with
nameand optionallanguage,countryCode,count. - Use the returned
latitude,longitude, andtimezonefor subsequent calls.
- Call Geocoding with
-
Design your time axis (timezone, timeformat, and range)
- Prefer
timezone=autowhen results must align to local midnight. - If you request
daily=..., settimezone(docs: daily requires timezone). - Choose
timeformat=iso8601for readability, ortimeformat=unixtimefor compactness.- If using
unixtime, remember timestamps are GMT+0 and you must applyutc_offset_secondsfor correct local dates.
- If using
- Choose range controls:
forecast_daysand optionalpast_days, or- explicit
start_date/end_date(YYYY-MM-DD), and for sub-dailystart_hour/end_hour.
- Prefer
-
Choose variables minimally (avoid "download everything")
- Forecast: request only the variables you need via
hourly=...,daily=...,current=.... - Air Quality: request only the variables you need via
hourly=...,current=.... - Keep variable names exact; typos return a JSON error with
error: true.
- Forecast: request only the variables you need via
-
Choose units and model selection deliberately
- Forecast units:
temperature_unit(celsius/fahrenheit)wind_speed_unit(kmh/ms/mph/kn)precipitation_unit(mm/inch)
- Forecast model selection:
- default
models=auto/ “Best match” combines the best models. - you can explicitly request models via
models=.... - provider-specific forecast endpoints also exist (provider implied by path). See
references/models.md(section "Endpoints vsmodels=") for examples and doc links. - for provider/model-specific selection tradeoffs, see
references/models.md.
- default
- Air Quality domain selection:
domains=auto(default) orcams_europe/cams_global.
- Forecast units:
-
Implement robust request/response handling
- Treat HTTP errors and JSON-level errors separately.
- JSON error format is:
{"error": true, "reason": "..."}
- When requesting multiple locations (comma-separated coordinates), expect the JSON output shape to change to a list of structures.
- Optionally use
format=csvorformat=xlsxwhen you need data export.
-
Validate correctness with a “known city” check
- Geocode “Berlin” → Forecast
hourly=temperature_2mfor 1–2 days → verify timezone and array lengths. - Air Quality
hourly=pm10,pm2_5,european_aqi→ verify units and presence ofhourly_units.
- Geocode “Berlin” → Forecast
Critical prohibitions
- Do not include out-of-scope APIs in this skill’s implementation guidance: Historical Weather, Ensemble Models, Seasonal Forecast, Climate Change, Marine, Satellite Radiation, Elevation, Flood.
- Do not omit
timezonewhen requestingdailyvariables (per docs). - Do not assume
unixtimetimestamps are local time; they are GMT+0 and requireutc_offset_secondsadjustment. - Do not silently ignore
{"error": true}responses; fail fast with the providedreason. - Do not request huge variable sets by default; keep queries minimal to reduce payload and avoid accidental overuse.
Definition of done
- You can geocode a place name and obtain coordinates/timezone.
- You can fetch Forecast data with at least one
hourly, onedaily(with timezone), and onecurrentvariable. - You can fetch Air Quality data for at least one pollutant and one AQI metric.
- Your client code handles both HTTP-level failures and JSON-level
error: truewith clear messages. - Attribution requirements from the docs are captured for Air Quality (CAMS) and Geocoding (GeoNames).
Links
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/itechmeat/llm-code/open-meteo">View open-meteo on skillZs</a>