MCPSERV.CLUB
Open-Meteo

Open-Meteo

Self-Hosted

Free, key‑less weather API for developers

Active(100)
3.8kstars
0views
Updated 3 days ago

Overview

Discover what makes Open-Meteo powerful

Open‑Meteo is a self‑hostable, high‑performance weather API that abstracts the complexity of raw numerical weather prediction (NWP) datasets. Internally it ingests terabytes of model output from national services such as NOAA GFS, DWD ICON, and ECMWF IFS, converts the data into a compact on‑disk format, and serves JSON requests over HTTP/1.1 with sub‑10 ms latency. The project is released under AGPLv3, making the entire codebase and data pipelines available for audit, modification, or extension.

Multi‑model coverage

Temporal breadth

Specialized services

Zero‑auth architecture

Overview

Open‑Meteo is a self‑hostable, high‑performance weather API that abstracts the complexity of raw numerical weather prediction (NWP) datasets. Internally it ingests terabytes of model output from national services such as NOAA GFS, DWD ICON, and ECMWF IFS, converts the data into a compact on‑disk format, and serves JSON requests over HTTP/1.1 with sub‑10 ms latency. The project is released under AGPLv3, making the entire codebase and data pipelines available for audit, modification, or extension.

Key Features

  • Multi‑model coverage – Supports global 11 km GFS, regional 1.5 km ICON/DWD, and other high‑resolution models (MET Norway, JMA, etc.).
  • Temporal breadth – Provides up to 16 days of hourly forecasts, 10 days of current conditions, and a 80‑year historical API.
  • Specialized services – Separate endpoints for marine, air quality, flood risk, and elevation data.
  • Zero‑auth architecture – No API key or rate limits; the service relies on efficient caching and request throttling at the infrastructure level.
  • Open data compliance – All source datasets are credited, and the API is licensed under CC BY 4.0 for non‑commercial use.

Technical Stack

LayerTechnology
Core engineGo (v1.22+), compiled to a single static binary for easy deployment
Data ingestionCustom Go modules that parse GRIB2 and NetCDF files, leveraging the github.com/airbusgeo/gogcs and github.com/fhs/golang-grib2 libraries
StorageLocal file system with a bespoke columnar format (similar to Parquet but lighter), compressed via zstd; no external database required
API layerHTTP/1.1 router (github.com/gorilla/mux), JSON serialization with encoding/json, request caching via in‑memory LRU
ContainerizationOfficial Docker image (open-meteo/open-meteo:latest), ready for Kubernetes, Docker‑Compose, or plain Docker run
DeploymentRuns on any Linux x86_64/ARM64 host; minimal RAM (≈ 4 GB) for a single instance, scaling horizontally behind a load balancer

Core Capabilities

  • RESTful JSON endpoints for forecast, current, historical, marine, air quality, and flood data.
  • Parameter filtering: Clients specify variables (e.g., temperature_2m, wind_speed_10m) and time ranges via query strings.
  • Spatial queries: Latitude/longitude based lookups with automatic model selection; optional grid interpolation.
  • Batch requests: Up to 10 k locations per call, useful for map tiling or bulk data analysis.
  • Webhooks (experimental): Subscribe to model update events for real‑time analytics pipelines.

Deployment & Infrastructure

The application is designed for zero‑configuration self‑hosting:

  1. Pull the Docker image or compile from source.
  2. Mount a persistent data volume for model files (/data/models).
  3. Expose the HTTP port (default 80) behind a reverse proxy or load balancer.
  4. Use Kubernetes StatefulSet for high availability; each pod can share a ConfigMap with model metadata.
  5. Horizontal scaling is straightforward: replicate pods and use a shared NFS or object store for the model cache, though local caching yields best performance.

Integration & Extensibility

  • Plugin hooks: The ingestion pipeline can be extended with custom parsers or post‑processing modules written in Go.
  • API SDKs: Official client libraries are available for Python, JavaScript, and Go (published on PyPI/ npm).
  • Custom endpoints: Developers can fork the repo and expose additional meteorological products (e.g., lightning strikes, satellite imagery).
  • Metrics & Observability: Built‑in Prometheus metrics (/metrics) expose request counts, latency, and cache hit rates.

Developer Experience

  • Documentation: Comprehensive API reference with example curl calls, parameter lists, and error handling.
  • Community: Active GitHub discussions, a dedicated Discord channel, and regular blog posts covering new models.
  • Testing: CI pipeline runs unit tests against a subset of GRIB2 files, ensuring data integrity.
  • Licensing: AGPLv3 guarantees that any derivative works remain open, encouraging collaboration.

Use Cases

ScenarioWhy Open‑Meteo?
IoT weather stationsLow‑latency, keyless API fits edge devices; local deployment reduces data egress costs.
Mobile appsFast JSON responses and offline caching via local instance improve UX in low‑bandwidth regions.
Research pipelinesHistorical API provides 80 years of data; self‑hosted ensures reproducibility.
Smart agricultureHigh‑resolution (1.5 km) forecasts for precision irrigation scheduling.
Disaster responseMarine and flood APIs integrated into emergency alert systems with minimal latency.

Advantages Over Alternatives

  • Performance: Sub‑10 ms response times outpace many commercial weather APIs.
  • Transparency & Control: Full access to source code and data pipelines

Open SourceReady to get started?

Join the community and start self-hosting Open-Meteo today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
AGPL-3.0
Stars
3.8k
Technical Specs
Pricing
Open Source
Database
None
Docker
Dockerfile
Supported OS
LinuxDocker
Author
open-meteo
open-meteo
Last Updated
3 days ago