What you get#
Onekey exposes Open-Meteo as 13 endpoints behind one API key: 12 endpoints return one record (data is an object) and 1 endpoint return a list (data is an array). Every answer uses the same envelope (success, data, metadata, error), the cost is reported in metadata.credits_charged, and fields are mapped onto the unified schema so the code you write for Open-Meteo also works for the rest of the maps, weather & space category.
Endpoints#
| Endpoint | What it does | Parameters | Credits | Status |
|---|---|---|---|---|
air_quality | Current air quality (PM, ozone, AQI) at a coordinate. | lat*, lon* | 1 | stable |
air_quality_forecast | Hourly air quality forecast (columnar arrays). | lat*, lon*, days | 5 | stable |
climate | Climate model projections (daily) 1950-2050 for a coordinate. | lat*, lon*, start*, end*, model | 5 | stable |
elevation | Terrain elevation (m) at a coordinate. | lat*, lon* | 1 | stable |
flood | River discharge forecast (GloFAS) for the nearest river cell. | lat*, lon*, days | 5 | stable |
forecast_current | Current weather at a coordinate. | lat*, lon* | 1 | stable |
forecast_daily | Daily forecast (columnar arrays) for up to 16 days. | lat*, lon*, days | 5 | stable |
forecast_hourly | Hourly forecast (columnar arrays) for up to 16 days. | lat*, lon*, days | 5 | stable |
geocode | Search places by name (worldwide gazetteer). | q*, count | 5 | stable |
geocode_id | One place by GeoNames id. | id* | 1 | stable |
historical | Historical daily weather (ERA5 reanalysis) between two dates. | lat*, lon*, start*, end* | 5 | stable |
historical_forecast | Past model forecasts (hourly temperature, precipitation) between two dates. | lat*, lon*, start*, end* | 5 | stable |
marine | Marine conditions (waves, swell, sea temperature) at an ocean coordinate. | lat*, lon*, days | 1 | stable |
A * marks a required parameter. Each endpoint name links to its reference page with the full parameter table, caching window and a recorded response.
Make a request#
This calls openmeteo.air_quality (1 credit, stable). Replace YOUR_API_KEY with your key; sign up, no card. 1,000 free credits cover the open-platform endpoints. Hard-to-reach platforms (X, TikTok, Instagram, Reddit, and others marked on their page) need a verified email and a purchased pack.
curl "https://api.onekey.dev/v1/openmeteo/air_quality?lat=52.52&lon=13.41" \
-H "x-api-key: YOUR_API_KEY"Fields you get back#
These unified fields come back from Open-Meteo, with the same names as on every other platform. The count is how many of its 13 mapped endpoints return the field; a field the source lacks is null, never missing. 46 platform-specific fields (ext.<name>) come on top, documented on each endpoint page.
| Field | Type | Endpoints |
|---|---|---|
place.lat | number | 7 |
place.lon | number | 7 |
place.timeZone | string | 5 |
place.elevationM | number | 4 |
entity.date | ISO 8601 date | 3 |
entity.category | string | 2 |
entity.description | string | 2 |
entity.id | string | 2 |
entity.name | string | 2 |
The full schema is in Unified schema.
Pricing#
Open-Meteo calls cost 1 to 5 credits, flat per endpoint. Free when served from cache (0.2 credit for a cached response over 100 KB). Invalid, failed or not-found calls are not charged. See pricing for credit packs.