Documentation
The Ensemble API
One versioned surface under /v1, authenticated with a bearer token. JSON by default; GeoJSON and NetCDF on the grid endpoints.
Quickstart
Every response carries the ensemble spread. There is no flag to enable it and no tier that withholds it.
- 01Request a key — the free tier needs no card.
- 02Send it as Authorization: Bearer.
- 03Read spread, not just p50.
curl https://api.ensemblegains.com/v1/forecast \
-H "Authorization: Bearer $EG_API_KEY" \
-G \
-d lat=29.76 \
-d lon=-95.37 \
-d vars=temperature_2m,wind_gust_10m \
-d horizon=72hEndpoints
| Method | Path | Description | From tier |
|---|---|---|---|
| GET | /v1/forecast | Point forecast. Returns p10/p50/p90 per step. | Developer |
| GET | /v1/forecast/grid | Bounding-box grid at 0.25° or finer. NetCDF or GeoJSON. | Builder |
| GET | /v1/nowcast | Minute-resolution precipitation, 0–120 min horizon. | Builder |
| GET | /v1/severe | Active severe risk: tornado, hail, wind, cyclone tracks. | Professional |
| GET | /v1/severe/cyclones | Active tropical cyclones with per-member track ensemble. | Professional |
| GET | /v1/air-quality | PM2.5, PM10, ozone, NO₂, AQI, pollen by species. | Builder |
| GET | /v1/climate/seasonal | 1–12 month outlooks, ENSO state, drought probability. | Enterprise |
| GET | /v1/historical | ERA5-backed reanalysis, 1940–present. | Professional |
| GET | /v1/ensemble/members | Per-model member values and weights. | Professional |
| GET | /v1/skill | Live verification scores. Public, unauthenticated. | Developer |
| POST | /v1/alerts | Create a threshold alert with a webhook target. | Professional |
| GET | /v1/alerts | List, inspect and delete active subscriptions. | Professional |
Response envelope
Present on every endpoint, so a response is always self-describing and a bad forecast is always auditable.
- init_time
- Model run timestamp, UTC ISO 8601
- valid_time
- The time being forecast
- members
- Count of contributing models
- models
- Names and weights of contributors
- spread
- p10 / p50 / p90 per variable
- units
- Explicit unit declaration
- resolution_deg
- Grid resolution used
Rate limits & reliability
- X-RateLimit-*Limit, remaining and reset returned on every response.
- 429 + Retry-AfterNever a bare failure — you always know when to come back.
- p95 < 200 msCached point forecasts. Under 800 ms uncached.
- p95 < 150 msNowcasting. A late nowcast is not a nowcast.
- OpenAPI 3.1Generated from source, never hand-maintained.
- SDKsTypeScript and Python at launch.
Full reference is in progress
Per-endpoint parameters, error codes and the interactive playground land with the Phase 1 API release. Ask us for early access and we will wire you up against a staging key.
Request early access