Quickstart
Vertex API serves the weather models, observations and outdoor layers behind Vertex Maps for the continental United States. Point forecasts use the Open-Meteo wire format, so existing code and SDKs work with a base-URL change.
-
Get a key. Sign in at the console with your email. The free plan needs no card and includes 15,000 credits a month.
-
Make a request. Keys go in an
Authorization: Bearerheader, or in?apikey=for URLs a map SDK builds itself.Terminal window curl "https://api.vertexmaps.com/v1/forecast?latitude=46.87&longitude=-113.99&hourly=temperature_2m,wind_speed_10m,wstar,top_of_lift&timezone=auto&forecast_days=1" \-H "Authorization: Bearer $VERTEX_API_KEY"import requestsr = requests.get("https://api.vertexmaps.com/v1/forecast",params={"latitude": 46.87, "longitude": -113.99,"hourly": "temperature_2m,wind_speed_10m,wstar,top_of_lift","timezone": "auto", "forecast_days": 1,},headers={"Authorization": f"Bearer {VERTEX_API_KEY}"},)data = r.json()print(r.headers["x-credits-cost"], data["hourly"]["top_of_lift"][:6])const url = new URL("https://api.vertexmaps.com/v1/forecast");url.search = new URLSearchParams({latitude: "46.87", longitude: "-113.99",hourly: "temperature_2m,wind_speed_10m,wstar,top_of_lift",timezone: "auto", forecast_days: "1",});const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.VERTEX_API_KEY}` } });const data = await res.json();console.log(res.headers.get("x-credits-cost"), data.hourly.wstar);# The official Open-Meteo Python client works unchangedimport openmeteo_requestsom = openmeteo_requests.Client()responses = om.weather_api("https://api.vertexmaps.com/v1/forecast",params={"latitude": 46.87, "longitude": -113.99,"hourly": ["temperature_2m", "wstar", "top_of_lift"],"apikey": VERTEX_API_KEY},) -
Read the response. It is shaped like Open-Meteo’s, with Vertex fields alongside the standard ones:
{"latitude": 46.87, "longitude": -113.99, "elevation": 976,"model": "hrrr", "model_run": "2026-09-19T12:00Z", "model_elevation": 1026,"timezone": "America/Denver", "timezone_abbreviation": "MDT", "utc_offset_seconds": -21600,"hourly_units": { "time": "iso8601", "temperature_2m": "°C", "wind_speed_10m": "km/h", "wstar": "m/s", "top_of_lift": "m" },"hourly": {"time": ["2026-09-19T00:00", "2026-09-19T01:00", "…"],"temperature_2m": [14.2, 13.1, "…"],"wind_speed_10m": [6.5, 5.9, "…"],"wstar": [0, 0, "…", 2.3, 2.9],"top_of_lift": [null, null, "…", 3350, 3820]},"generationtime_ms": 41}elevationis the 90 m DEM height at your point andtemperature_2mis lapse-corrected from the model’s terrain height to it.top_of_liftis null where there is no usable lift. -
Check the cost. Every response carries
x-credits-cost. Adddry_run=1to any request to see its price without running it:Terminal window curl "https://api.vertexmaps.com/v1/forecast?latitude=46.87&longitude=-113.99&hourly=temperature_2m&models=hrrr,gfs&dry_run=1" \-H "Authorization: Bearer $VERTEX_API_KEY"# {"dry_run":true,"product":"forecast","credits":2,"plan":"free","metered":true}
Where next
Section titled “Where next”- Point forecasts: every parameter, every field, daily and current blocks, multi-model.
- Map layers and tiles: TileJSON for MapLibre, Mapbox, Leaflet, deck.gl and QGIS.
- Observations: radar and nowcast, lightning, stations, soundings, gauges, fire, TFRs.
- Pricing and credits: what each request costs and how caps work.
- API reference: generated from the same OpenAPI document the API serves at
/v1/openapi.json.