Aan de slag
Drie API's, één sleutel: weersverwachtingen van het ECMWF en de nationale hogeresolutiemodellen, verwarmings- en koelgraaddagen, en 87 jaar dagelijks klimaat. Deze pagina bevat alles wat u nodig hebt vóór de eerste aanroep. De endpoints zelf staan op de drie referentiepagina's.
Waar het om gaat#
Climate Memory levert drie producten vanaf twee hosts, op één API-sleutel.
| Product | Host | Beantwoordt | Referentie |
|---|---|---|---|
| Weer | https://api.climatememory.com | Wat het weer gaat doen — verwachting, actuele omstandigheden, ensembles, luchtkwaliteit, zeegang, rivieren | Weer-API |
| Graaddagen | https://api.climatememory.com | Hoeveel een gebouw verwarmd of gekoeld moest worden — vanaf 1950, overal | Graaddagen-API |
| Klimaat | https://api.climatememory.com | Wat hier normaal is — 87 jaar dagelijks klimaat, WMO-normalen, trends | Klimaat-API |
Twee hosts in plaats van één omdat graaddagen een ander archief lezen met een ander kostenprofiel, en ze scheiden laat de een traag zijn zonder de ander te vertragen. Verder dan het kopiëren van de juiste basis-URL hoeft u zich er niet om te bekommeren.
Elk endpoint is een GET. In deze API zit nergens
een verzoeklichaam, geen pagineringscursor en geen sessie. Een aanroep is een URL
plus een header, wat betekent dat u er elke van kunt testen in de adresbalk van
een browser of met een hulpmiddel als curl, en er elke van vóór ons
kunt cachen zonder bijzondere behandeling.
Uw eerste aanroep#
Drie stappen. Het geheel duurt ongeveer een minuut.
1. Een sleutel krijgen
Maak een account aan op developers.climatememory.com/signin. Het
gratis abonnement vraagt geen kaart, geeft u 10 000 credits per maand, en uw
sleutel staat meteen op het scherm. Bewaar hem in een omgevingsvariabele — alle
voorbeelden hieronder lezen $API_KEY.
export API_KEY="wd_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
2. De aanroep doen
curl -sH "X-API-Key: $API_KEY" \
"https://api.climatememory.com/v1/forecast?lat=48.85&lon=2.35&days=3"
import os, httpx
r = httpx.get(
"https://api.climatememory.com/v1/forecast",
params={"lat": 48.85, "lon": 2.35, "days": 3},
headers={"X-API-Key": os.environ["API_KEY"]},
timeout=30,
)
r.raise_for_status()
data = r.json()
print(data["daily"]["temperature_2m_max"])
const res = await fetch(
"https://api.climatememory.com/v1/forecast?lat=48.85&lon=2.35&days=3",
{ headers: { "X-API-Key": process.env.API_KEY } },
);
if (!res.ok) {
const { error } = await res.json();
throw new Error(`${error.code}: ${error.message}`);
}
const data = await res.json();
console.log(data.daily.temperature_2m_max);
req, _ := http.NewRequest("GET",
"https://api.climatememory.com/v1/forecast?lat=48.85&lon=2.35&days=3", nil)
req.Header.Set("X-API-Key", os.Getenv("API_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil { return err }
defer res.Body.Close()
var out struct {
Daily struct {
TemperatureMax []float64 `json:"temperature_2m_max"`
} `json:"daily"`
}
json.NewDecoder(res.Body).Decode(&out)
3. Het antwoord lezen
Elke reeks komt kolomgeoriënteerd terug — parallelle arrays
die één time-index delen, niet een lijst met objecten. Zie
antwoordconventies voor het waarom, en voor hoe u ze
leest.
Daarna: dezelfde aanroep op stadsnaam is meestal beter —
https://api.climatememory.com/v1/forecast/city/fr/paris draagt de werkelijke hoogte en de
tijdzone van de stad, wat een kale coördinaat niet kan. Zie
verwachting per stad.
Authenticatie#
Stuur uw sleutel bij elk verzoek mee in de X-API-Key-header. Er
is geen OAuth-stroom, geen bearer-token om te vernieuwen en geen handtekening om
te berekenen.
X-API-Key: wd_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sleutels worden gehasht opgeslagen. Raakt u er een kwijt, dan wordt hij vernieuwd, niet hersteld — wij kunnen hem u niet opnieuw tonen, omdat wij hem niet hebben. Vernieuwen gebeurt in de console en geeft meteen een nieuwe sleutel uit.
Scopes
Een sleutel draagt scopes, en het abonnement beslist welke. Een endpoint
buiten uw scopes aanroepen geeft 403 scope_denied — dat is een
abonnementsprobleem, geen sleutelprobleem, en het bericht zegt dat ook.
| Scope | Ontgrendelt |
|---|---|
meteo | De hele Weer-API, aanvullingen inbegrepen |
dju | De graaddagen en de uurlijkse historie |
climate | Het dagelijkse klimaatarchief en de aggregaten ervan |
normals | De WMO-normalen en de vergelijking ervan |
De geocodering-endpoints vereisen er geen enkele. Elke geldige sleutel lost een plaatsnaam op, op elk abonnement, omdat elk product hier een coördinaat nodig heeft voordat het ook maar iets kan beantwoorden. Zie geocodering.
Zet uw sleutel nooit in een browser. Roep de API vanaf uw server aan en geef het resultaat door aan de client. Een sleutel in frontend-JavaScript is een sleutel die iedereen in het netwerktabblad kan lezen en tegen uw quotum kan uitgeven — en omdat het uw sleutel is, is dat gebruik niet van het uwe te onderscheiden.
Hebt u weer nodig in een mobiele app, dan bestaan de mobiele endpoints precies daarvoor: ze geven een token per installatie uit in plaats van uw sleutel in te bedden.
Geocodering#
Een plaatsnaam omzetten naar coördinaten, hoogte en tijdzone.
Parameters
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
q | string | — | Plaatsnaam, in welke taal dan ook. Accenten optioneel. Verplicht. |
lang | ISO-639-1 | en | Alleen weergave en rangschikking — nooit wat in aanmerking komt. Een onbekende code valt terug op lokale namen in plaats van te falen. |
near | lat,lon | — | De positie van de aanroeper. De sterkste beslisser die er is. |
country | ISO-3166-1 alpha-2 | — | Beperken tot één land. |
limit | int | 10 | 1 tot 50. |
De catalogus is GeoNames-featureklasse P in zijn geheel — elke bewoonde plaats op aarde, tot gehuchten van enkele tientallen mensen, en geen op bevolking gefilterd uittreksel. Een dorp van 528 inwoners staat erin.
Het kost geen credits, op geen enkel abonnement, en vereist geen scope. Een sleutel die voor graaddagen is verkocht lost ook namen op, omdat graaddagen niet zonder coördinaat opgevraagd kunnen worden. Er geldt in plaats daarvan een eigen plafond — vijf geocodering-verzoeken per credit van uw abonnement — bewust ruim genoeg zodat een zoekveld met suggesties en debounce het bedoelde gebruik is. Zie tempolimieten en quotum.
De match wordt nooit door de taal beperkt
De zoekterm wordt getoetst aan de lokale naam, de ASCII-transliteratie ervan
en elke gelokaliseerde alias, wat lang ook zegt. Dat telt
zwaarder dan het klinkt: 98 % van de plaatsen heeft helemaal geen gelokaliseerde
naam — het Frans dekt 1,84 % van de catalogus — zodat een op taal gefilterde
zoekopdracht hoofdsteden zou vinden en verder niets. lang kiest
welke naam terugkomt en beïnvloedt de rangschikking; het beslist nooit wat in
aanmerking komt.
GET /v1/geocode?q=ramillies&lang=fr
GET /v1/geocode?q=ramillies&lang=fr&near=50.63,3.06 # vanuit Rijsel
GET /v1/geocode?q=bruxelles&lang=fr # exoniem, via de aliasindex
GET /v1/geocode?q=zuesch&lang=de # umlaut uitgeschreven
Hoe resultaten worden gerangschikt
Elk resultaat draagt een score en, wanneer near is
meegegeven, een distance_km. De rangschikking combineert vier
signalen: hoe goed de naam overeenkwam, hoe prominent de plaats is, hoe dicht ze
bij near ligt, en of de gevonden naam in de gevraagde taal stond.
Waarom near bestaat. Er zijn twee Ramillies —
5 749 inwoners in Waals-Brabant, 528 in Hauts-de-France, 126 km uit elkaar. Geen
van beide is in abstracto het juiste antwoord. Zonder near wordt de
grootste teruggegeven; vanuit Rijsel de Franse.
Prominentie is niet alleen bevolking. Voor 90,7 % van de catalogus is geen bevolking vastgelegd — voor sommige landen publiceert GeoNames er in het geheel geen — zodat het plaatstype (hoofdstad, hoofdplaats van een bestuurlijke eenheid, gewone plaats, wijk) de rangschikking draagt overal waar bevolking ontbreekt.
Umlauten worden uitgeschreven, niet weggelaten. Een Duits of
Deens toetsenbord zonder diakritische tekens schrijft Zuesch voor
Züsch en Koeln voor Köln. GeoNames voert
die spelling niet — de ASCII-vorm is Zusch, met de umlaut verwijderd
in plaats van uitgeschreven — dus wordt ze hier gegenereerd. Beide spellingen
bereiken de plaats, en het resultaat toont in beide gevallen de echte naam.
Stad opzoeken#
Oudere zoekopdracht op naam. Toetst alleen de ASCII-naam, sorteert op bevolking.
De dichtstbijzijnde gecatalogiseerde stad bij een coördinaat.
/v1/cities/search gaat vooraf aan /v1/geocode en
behoudt zijn contract voor de aanroepers die er al op gebouwd zijn: het toetst
alleen de ASCII-naam en sorteert op bevolking.
Geef de voorkeur aan /v1/geocode
voor alles wat een gebruiker ziet. De oudere route kan geen exoniem
herkennen — Bruxelles vindt Brussel niet — en de sortering is
ongedefinieerd voor de negen op de tien plaatsen zonder vastgelegde bevolking.
/v1/cities/nearest is de omgekeerde richting, en is wat een
GPS-positie omzet in een stads-slug die u daarna aan de stads-endpoints kunt
meegeven. Het neemt lat, lon en een optionele
max_km.
Beide tellen mee voor hetzelfde geocodering-plafond als
/v1/geocode, en geen van beide kost credits.
Antwoordconventies#
Zes regels gelden voor elk endpoint. Leer ze één keer en de rest van deze documentatie bestaat alleen nog uit veldnamen.
1. Reeksen zijn kolommen, geen rijen
Elke tijdreeks is een verzameling parallelle arrays die één
time-index delen, in plaats van een array met objecten:
"hourly": {
"time": ["2026-08-01T00:00:00+00:00", "2026-08-01T01:00:00+00:00"],
"temperature_2m": [18.4, 18.1],
"precipitation": [0.0, 0.2]
}
Index i van elke array beschrijft hetzelfde moment. Dit is over
de lijn drie tot vijf keer kleiner dan de rijvorm, het decodeert rechtstreeks in
een dataframe of een plotbibliotheek zonder omzetting, en het is wat clients in
Open-Meteo-vorm al verwachten. Om er rijgewijs doorheen te lopen:
rows = zip(h["time"], h["temperature_2m"], h["precipitation"])
2. Tijden zijn ISO 8601 met expliciete verschuiving
Altijd. 2026-08-01T00:00:00+00:00, nooit een kale lokale
tekenreeks en nooit een Unix-geheel getal. Waar u een timezone
meegeeft, is de verschuiving in het antwoord die van die zone — de tekenreeks
alleen is dus ondubbelzinnig, en u hoeft nooit te weten wat wij hebben
aangenomen.
3. Eenheden zijn SI, vast en nooit onderhandelbaar
°C, mm, m/s, hPa, W/m², meters. Er is met opzet geen parameter
units=imperial: een eenhedenschakelaar is een veld waarvan de
betekenis van een ander veld afhangt, en zo komt een aanroeper er na een niet
nagekeken configuratiewijziging toe Fahrenheit op een Celsius-as uit te zetten.
Reken om aan uw rand, waar de lezer zit.
Endpoints met ongebruikelijke eenheden sturen in het antwoord een
units-blok mee dat ze uitdrukkelijk benoemt, in plaats van te
verwachten dat u het onthoudt.
4. null betekent „onbekend”, nooit „nul”
Een ontbrekend uur is null in de array en behoudt zijn plaats
zodat de indices uitgelijnd blijven. Het wordt nooit stilzwijgend met 0 gevuld —
voor neerslag zijn dat twee tegengestelde beweringen, en een van beide is een
leugen over een droogte.
5. Elk antwoord zegt waar het vandaan komt
Een source-blok (weer) of een quality-blok
(archieven) reist met de data mee: welk model of welke run heeft geantwoord, hoe
oud die is, hoe volledig de periode was. U hoeft de versheid nooit uit de klok af
te leiden.
6. Verouderd wint van afwezig
Is onze nieuwste modelrun ouder dan verwacht, dan antwoorden wij toch — met
"stale": true en data_age_hours in het
source-blok — in plaats van een 503 terug te geven. Een verwachting
van acht uur oud is nuttiger dan een fout. Controleer de vlag als versheid voor u
doorslaggevend is; negeer haar anders.
Er is nergens paginering. Een verzoek geeft zijn hele antwoord terug of faalt met een bereikfout die u het maximum noemt. In plaats daarvan zijn de bereiken per endpoint begrensd — wat betekent dat herhaallogica nooit een half gelezen resultaatset hoeft af te handelen.
Tempolimieten, credits en quotum#
Er gelden drie onafhankelijke limieten, en ze falen met opzet verschillend. Elk geslaagd antwoord meldt waar u staat:
| Header | Betekenis |
|---|---|
X-RateLimit-Remaining | Resterende verzoeken in de lopende schuivende minuut |
X-Quota-Remaining | Resterende credits deze maand |
X-Quota-Resets-At | ISO-tijdstempel van de volgende maandelijkse herstart |
X-Geocode-Remaining | Resterende geocodering-verzoeken deze maand. Alleen op de catalogus-endpoints, de enige die het begrenst. |
Credits, geen verzoeken
Een gecachte stadsverwachting is een leesbewerking van 3 ms. Tien jaar uurlijkse graaddagen over vijfhonderd locaties niet. Op verzoeken prijzen zou een aanroeper binnen zijn quotum kunnen laten blijven en toch meer kosten dan hij betaalt, volkomen legitiem — wat een aanroep kost hangt dus af van hoeveel archief hij verplaatst.
| Endpoint | Credits |
|---|---|
/v1/forecast, /v1/current en de stadsvarianten | 1 |
/v1/probability, /v1/air-quality, /v1/marine, /v1/hydrology | 1 |
/v1/cells/resolve, /v1/climate/cells/resolve | 1 |
/v1/climate/normals | 3 |
/v1/climate/normals/compare | 6 — het beantwoordt twee perioden |
/v1/climate/daily, /v1/climate/monthly | 2, +1 per volledige periode van 365,25 dagen in het bereik |
/v1/climate/summary | 3, +1 per volledige periode van 365,25 dagen in het bereik — ongeveer 89 over het volledige archief |
/v1/degree-days en de stads- en celvarianten daarvan | 2, +1 per volledige periode van 365,25 dagen in het bereik |
/v1/degree-days/monthly | 2 |
/v1/historical | (jaren + 1) × (variabelen ÷ 2), naar beneden afgerond, minimaal 1 |
Elk van bovenstaande met format=csv | 4× de JSON-kosten |
/v1/geocode, /v1/cities/search, /v1/cities/nearest | 0 — apart begrensd |
/v1/models, /v1/methods, /v1/coverage, /v1/climate/coverage, /v1/climate/fields, /v1/historical/variables, /v1/attribution, /v1/licensing | 1, en geen sleutel nodig |
Geocodering kost geen credits. Elk product hier heeft een coördinaat nodig voordat het kan antwoorden, dus een naam oplossen is inbegrepen en wordt niet verkocht. Een zoekveld met suggesties is het bedoelde gebruik: zet er een debounce op en laat het lopen.
Het is wel begrensd, en door een eigen plafond in plaats van door uw credits:
vijf geocodering-verzoeken per credit van uw abonnement. Op het
abonnement met 50 000 credits zijn dat 250 000 zoekopdrachten per maand, en een
zoekveld met debounce verbruikt er ongeveer zes per gevonden plaats. Het
uitputten geeft 429 geocode_quota_exceeded en laat uw credits
ongemoeid — ook daarom zijn het twee aparte codes.
Wat te doen wanneer u er een raakt
| Limiet | Antwoord | Afhandeling |
|---|---|---|
| Tempo (per minuut) | 429 rate_limited + Retry-After | Wacht Retry-After seconden en probeer opnieuw. Deze is per constructie tijdelijk. |
| Credits (per periode) | 429 quota_exceeded + X-Quota-Resets-At | Opnieuw proberen helpt niet tot de herstart. Wissel van abonnement, of beperk uw functie. |
| Geocodering-plafond | 429 geocode_quota_exceeded | Uw credits zijn ongemoeid en alle andere endpoints werken nog. Zet een strakkere debounce. |
Uw quotumperiode loopt van uw abonnementsdatum tot dezelfde dag van de
volgende maand — de periode die Stripe factureert — en de teller begint elke keer
weer heel opnieuw. X-Quota-Resets-At draagt die datum in elk
antwoord: lees hem in plaats van de eerste van de maand aan te nemen. Accounts
zonder abonnement volgen de kalendermaand.
Cache royaal — het stoort ons niet, en het is gratis quotum. Een verwachtingsrun verandert 2 tot 4 keer per dag; een graaddagentotaal voor een voorbije maand verandert nooit. Niets hier is gebruikersspecifiek, dus een gewone HTTP-cache vóór ons is veilig. Vooral de archief-endpoints zijn het waard om onder de laatste vijf dagen voor altijd te cachen.
Fouten#
Elke fout heeft dezelfde vorm, op beide hosts:
{
"error": {
"code": "range_too_long",
"message": "Requested span is 14.0 years; the maximum per request is 10.",
"max_years": 10
}
}
Bouw uw herhaallogica op error.code, niet op de
HTTP-status. Drie verschillende situaties geven 429 terug
en vragen om drie verschillende reacties: de ene wil een korte wachttijd, de
tweede een abonnementswissel, en de derde zou uw applicatie helemaal niet moeten
stilleggen. De status alleen kan ze niet onderscheiden. De extra sleutels —
max_years hierboven — dragen de limiet die u overschreed, zodat uw
client zich kan aanpassen in plaats van te gokken.
| Status | Code | Wat te doen |
|---|---|---|
| 400 | invalid_latitude, invalid_longitude | Corrigeer de coördinaten. Breedte is −90…90, lengte −180…180. |
| 400 | range_too_long | Splits op in meerdere verzoeken. max_years noemt het plafond. |
| 400 | bad_request | De algemene vorm, wanneer een controle geen eigen specifiekere code heeft. Behandel hem als blijvend — het verzoek wordt niet geldig door het te herhalen. |
| 400 | invalid_coordinates | Het paar valt buiten bereik of is geen punt op aarde. |
| 400 | invalid_method, invalid_base | Zie rekenmethoden. |
| 400 | invalid_breakdown | Niet daily, weekly, monthly of yearly. |
| 400 | invalid_date | Een datum die geen ISO YYYY-MM-DD is. |
| 400 | invalid_range | end gaat vooraf aan start. |
| 400 | invalid_near | near heeft niet de vorm lat,lon. |
| 400 | unknown_field, unknown_variable | Vraag aan /v1/fields, /v1/climate/fields of /v1/historical/variables wat dat product bevat — geen van de drie heeft een sleutel nodig. Op /v1/forecast noemt het bericht de dichtstbijzijnde overeenkomst met wat u vroeg. |
| 400 | unknown_period | Geen WMO-referentieperiode. Zie normalen. |
| 400 | period_not_covered | Het archief beslaat die referentieperiode op dat punt niet. |
| 401 | missing_api_key | De X-API-Key-header ontbrak. |
| 401 | invalid_api_key | De sleutel is onbekend of is vernieuwd. |
| 401 | unauthorized | De algemene vorm, wanneer niets specifiekers van toepassing is. |
| 402 | export_not_in_plan | CSV-export is voorbehouden aan de betaalde abonnementen. |
| 403 | scope_denied | Uw abonnement bevat deze API niet. Zie scopes. |
| 403 | key_inactive | De sleutel bestaat maar is ingetrokken of uitgeschakeld. Een sleutel vernieuwen doet precies dat met de oude — controleer de console voordat u een storing aanneemt. |
| 404 | city_not_found | Het antwoord bevat een suggestions-array — toon die. |
| 404 | cell_not_found | Een vastgezette cel die niet meer bestaat. Zie een cel vastzetten. |
| 404 | not_at_sea | Een zeeverzoek boven land. Het golfmodel heeft daar geen waarde. |
| 404 | not_found | De algemene vorm. Als hierboven: blijvend. |
| 404 | no_city_nearby | Niets gecatalogiseerd binnen max_km van dat punt. |
| 404 | outside_archive | De data vallen buiten wat het archief bevat. /v1/climate/coverage zegt wat het bevat, en heeft geen sleutel nodig. |
| 429 | rate_limited | Wacht Retry-After seconden. |
| 429 | quota_exceeded | Wacht op de herstart of wissel van abonnement. Eerder opnieuw proberen kan niet slagen. |
| 429 | geocode_quota_exceeded | Alleen het geocodering-plafond. Uw credits zijn ongemoeid; zet een debounce op uw zoekveld. |
| 503 | data_unavailable | Tijdelijk. Probeer opnieuw met exponentiële terugval. |
| 503 | load_shed | Bewust geweigerd om de dienst onder belasting te beschermen. De kritikaliteit van uw abonnement bepaalt wie het eerst afvalt. Probeer opnieuw met terugval; het lost binnen seconden op. |
| 503 | catalogue_unavailable | De stedencatalogus is kort onbereikbaar. Coördinaten werken nog — val daarop terug in plaats van het verzoek te laten falen. |
Dat is de volledige lijst, en ze wordt bij elke build tegen de broncode gecontroleerd: een hier gepubliceerde code die geen enkele handler oproept laat de testsuite falen, en een handler die er een oproept die deze tabel niet voert evengoed. Komt u een code tegen die hierboven ontbreekt, dan is dat een gebrek van deze pagina en geen waarde die u apart moet behandelen.
Een herhaalstrategie die werkt
RETRY = {"rate_limited", "data_unavailable"}
def should_retry(status, code, attempt):
if code == "quota_exceeded":
return False # er verandert niets tot de herstart
if code == "geocode_quota_exceeded":
return False # en stop niet: credits werken nog
if code in RETRY:
return attempt < 5
return status >= 500
Nauwkeurigheid — wat te verwachten#
Wij stellen de verwachtingen liever goed dan dat u de grenzen in productie ontdekt.
Waar de verwachting sterk is
Temperatuur, druk, synoptische wind, luchtvochtigheid, zonneschijn. De typische fout van de 2 m-temperatuur op 24 uur ligt rond 1 tot 1,5 °C. Het ECMWF is het beste globale deterministische model ter wereld, en dat is wat u krijgt.
Waar ze zwakker is
Convectieve onweersbuien — een cel van 28 km kan een onweersbui niet oplossen, en zelfs 3 km hint er slechts naar. De exacte plaats en het exacte moment van buien. Kust- en bergmicroklimaat onder de modelresolutie. Zeewind en koude luchtpoelen in dalen, die de terreincorrectie niet modelleert.
Geografische eerlijkheid
In Frankrijk, Duitsland, de VS en Canada leveren wij nationale modellen van 1,3 tot 3 km, en een klein dorp krijgt werkelijk zijn eigen rastercel. Elders in Europa krijgt u 6,5 km. In Afrika, het Midden-Oosten en het grootste deel van Azië is het beste beschikbare publieke model 13 tot 28 km, dus krijgt u het weer van de streek in plaats van dat van de straat. De terreincorrectie verkleint dat gat, maar dicht het niet.
Graaddagen
Een heranalyse op raster dekt overal, ook locaties zonder weerstation binnen 60 km — dat is haar voordeel ten opzichte van aanbieders op basis van stations. Haar zwakte zijn stadscentra, die de heranalyse te laag leest; de stads-endpoints passen een gekalibreerde correctie toe, de coördinaat-endpoints niet.
Twee velden zijn schattingen, en dat zeggen wij liever
uv_index is afgeleid uit de zonnehoogte en breedbandstraling,
niet uit een ozonkolom — nauwkeurig tot ongeveer ±1 eenheid.
precipitation_probability_proxy is een schatting, geen kans; de
echte staat op /v1/probability. Beide worden volledig
uitgelegd in de veldreferentie.
Abonnementen#
| Abonnement | Prijs | Credits / maand | Tempo | Sleutels | Scopes |
|---|---|---|---|---|---|
| Gratis | € 0 | 10 000 | 20 / min | 1 | weer, plus graaddagen en klimaat gedurende 30 dagen |
| Starter | € 19 / maand | 50 000 | 60 / min | 3 | weer + graaddagen + klimaat |
| Pro | € 79 / maand | 400 000 | 300 / min | 10 | weer + graaddagen + klimaat + normalen |
| Business | vanaf € 299 / maand | Contractueel overeengekomen | Contractueel overeengekomen | 50 | weer + graaddagen + klimaat + normalen |
Geocodering staat buiten deze tabel: het kost op geen enkel abonnement credits en draagt een eigen plafond van vijf verzoeken per credit. Zie tempolimieten en quotum.
Jaarlijkse facturering geeft twee maanden gratis. De actuele catalogus staat op developers.climatememory.com/pricing — die pagina leest het factureringssysteem rechtstreeks, dus mochten de twee ooit uiteenlopen, dan gaat zij voor.
Er is op geen enkel abonnement een endpoint voor massa-export. CSV-export bestaat voor de graaddagen- en klimaatarchieven, is begrensd tot hetzelfde bereik als de gelijkwaardige JSON-aanroep, en geeft alleen geaggregeerde rijen terug — nooit de uurreeks.
Naamsvermelding en licenties#
De exact vereiste bewoording, machineleesbaar. Geen sleutel nodig.
De licentietabel achter elke dataset. Geen sleutel nodig.
Naamsvermelding is een gebruiksvoorwaarde, geen beleefdheid. De onderliggende data zijn ons in licentie gegeven onder voorwaarden die haar vereisen, en die voorwaarden gaan op u over. Toon een vermelding overal waar de data verschijnen, ook in afgeleide producten. Eén voettekstregel volstaat:
Weather data: ECMWF, DWD, NOAA, Météo-France · Climate data: Copernicus/ERA5-Land · Places: GeoNames
Geen van beide bovengenoemde endpoints heeft een sleutel nodig, dus u kunt de
vermelding vanuit de API renderen in plaats van een tekenreeks hard in te coderen
die veroudert zodra een bron verandert. De naamsvermelding van de specifieke run
die heeft geantwoord reist bovendien mee met elk data-antwoord, in
source.attribution en in de header
X-Data-Attribution.
U mag verklaren dat u deze data gebruikt. U mag niet suggereren dat een van deze organisaties uw product heeft gemaakt, goedgekeurd of onderschrijft.
Vrijwaring
Verwachtingen worden zonder garantie geleverd. Noch de Europese Commissie, noch het ECMWF, DWD, NOAA of Météo-France is verantwoordelijk voor enig gebruik van deze informatie. Gebruik haar niet als enige grondslag voor beslissingen waarbij leven, veiligheid of eigendom op het spel staan.
Eén beperking is niet aan ons om op te heffen: de Copernicus-licentie behoudt hoogwaterwaarschuwingen voor aan nationale en regionale overheden. Zie rivieren.