# Caching, versjonering og utfasing

> Hvor ofte data endres, hvilke Cache-Control-hoder hvert endepunkt setter, hvordan du finner ut hvilken modellversjon du fikk, og hva som fases ut når.

Kilde: https://solkart.no/api/dokumentasjon/caching-og-versjonering · Sist oppdatert 2026-09-15 · Base-URL https://api.solkart.no · OpenAPI: https://solkart.no/openapi.json

## Hvor ofte endrer dataene seg?

| Data | Oppdateres | Hent |
|---|---|---|
| Solprognose (`/api/forecast*`) | Ny syklus hver time, publisert rundt 50 minutter over hel time | Én gang per time per anlegg. Sjekk `cycle_time`. |
| Nowcast (`/api/forecast/nowcast`) | Hvert 15. minutt (satellitt) | Hvert 15. minutt |
| Snøutsikt (`/api/snow/outlook`) | Daglig (seNorge) | Én gang per dag |
| TMY, PV-kalkulator, snøtap, snølast, horisont | Klimatologi og statiske modeller; endres bare ved nye produktversjoner | Lagre resultatet hos deg |
| Terrengkategori, takanalyse | Statisk grunnlag; ny analyse gir samme svar med samme parametre | Lagre rapporten hos deg |

Bruk `GET /api/forecast/latest` (uten kvote) til å se om det finnes en ny `cycle_time` før du henter prognoser for mange anlegg.

## Cache-Control per endepunkt

| Endepunkt | Hode | Ekstra |
|---|---|---|
| `/api/forecast`, `/extended`, `/latest` | Ingen | `/extended` og `/latest` bruker V1.5-rutenettet (`production_v1`) |
| `/api/forecast/bulk` | `public, max-age=<sekunder til neste syklus>` (minst 60) | `X-Solkart-Cache: HIT|MISS`, `X-Solkart-Cache-Ttl`; nøkkel er SHA-256 av kroppen |
| `/api/forecast/nowcast` | `public, max-age=120` | |
| `/api/tmy`, `/api/tmy/stats`, `/api/tmy/sources` | `public, max-age=86400` | `X-Tmy-Cell`, `X-Tmy-Cell-Distance-Km`, `X-Tmy-Product` |
| `/api/pv/calc` | `public, max-age=86400` (JSON) | `X-Pv-Cache: HIT` når resultatet lå i vår cache (7 døgn) |
| `/api/snowload/calc` | `public, max-age=86400` (JSON) | |
| `/api/snowsoiling/calc` | `public, max-age=86400` | `X-Snowsoil-Cache: HIT` |
| `/api/snow/outlook` | `public, max-age=3600` | `X-Snow-Outlook-Cache: HIT|MISS` |
| `/api/horizon/terrain` | `public, max-age=86400` | `X-Horizon-Tile-Key`, `X-DTM-Year`, `X-Api-Version` |
| `/api/horizon/rooftop`, `/precise` | Ingen | `X-Worker-Request-Id`, `X-API-Tier`, `X-Quota-Remaining` |
| `/api/terrain/*`, `/api/roof/*` | `private, no-store` (tegning.png: `private, max-age=900`) | `X-Terrengkategori`, `X-Konfidens` (terreng, PDF/HTML); `X-Moduler`, `X-Kwp` (tegning) |

Det finnes ikke `ETag` eller `Last-Modified`, og `If-None-Match` støttes ikke. Kvote- og planvurdering skjer før cachen sjekkes, så et cachet bulk-svar bruker fortsatt kvote.

## Hvilken versjon fikk jeg?

Svarene forteller selv hva som ble brukt. Logg disse feltene sammen med resultatet.

| Endepunkt | Felt | Verdier i dag |
|---|---|---|
| `/api/forecast*` | `model`, `data_mode` | `production_v2_3b` / `v23b`, `v23b_daily`; ved fall tilbake `production_v1` / `latest`, `daily`, `corrected`, `rolling` |
| `/api/forecast/nowcast` | `source` | `v7_eumetsat_nowcast` eller `v23b_fallback` |
| `/api/horizon/terrain` | `version`, `api_tier`, `dtm_year` | `v3.1`, `terrain` |
| `/api/horizon/rooftop`, `/precise` | `version`, `api_tier`, `dom_year`, `dtm_year` | `v3.1` (`v3.2` med panelgeometri), `rooftop`, `precise` |
| `/api/tmy` | `meta.product`, `meta.license_version`, `meta.generator` | `ens_tmy30`, `tmy-v1-2026-09-30` |
| `/api/pv/calc` | `meta.generator`, `inputs.meteo_data.source` | `SunPoint PV-kalkulator v1` |
| `/api/snowload/calc`, `/api/snowsoiling/calc` | `method.reference` | SINTEF 102027401 v2; IFE/E-2024/005 |
| `/api/terrain/category` | `norm`, `meta` | NS-EN 1991-1-4:2005/NA:2009 |
| `/api/roof/*` | `meta.versjon`, `grunnlag` | `1` |

## Modellvalg i prognosen

Standard er V2.3b, modellen som også driver kartet på solkart.no. De eldre variantene kan fortsatt velges, men fases ut:

| Valg | Gir | Status |
|---|---|---|
| (ingen) | V2.3b, `data_mode: "v23b"` | Anbefalt |
| `daily=true` | V2.3b sydd fra midnatt, `v23b_daily` (Basic+) | Anbefalt |
| `model=v1` eller `v23b=false` | V1.5-rutenettet | Fases ut 19. november 2026 |
| `corrected=true` | V1.5 med statistisk korreksjon | Fases ut 19. november 2026 |
| `fresh=true` | V1.5 rullerende sammensying | Fases ut 19. november 2026 |
| `precise=true` | PV-modell i pvlib med PVGIS-horisont (tregere) | Beholdes |
| `snow=1` | Snøtapsfaktorer fra seNorge på produksjonen | Beholdes |

Etter 19. november 2026 ignoreres `model`, `corrected` og `fresh`, og svaret bruker V2.3b. Integrasjoner som ikke sender disse, påvirkes ikke.

## Slik endrer vi API-et

- **Uten varsel:** nye felt i svar, nye valgfrie parametre, nye formater, nye endepunkter, mer presise tall når modellene forbedres.
- **Med varsel på [endringsloggen](/api/dokumentasjon/endringslogg) og minst 60 dager før:** fjerning av felt eller parametre, endret betydning av et felt, endret tidskonvensjon, strengere validering.
- Sikkerhetsfeil og faktafeil rettes umiddelbart, og endringen dokumenteres samme dag (som solposisjonsfeilen 15. september 2026).
- Det finnes ingen versjon i URL-en eller i hoder. Klienter bør tåle ukjente felt og ikke bruke rekkefølgen på felt.

## TMY-lisens

TMY-nedlastinger merkes med `license_version: "tmy-v1-2026-09-30"`: dataene er lisensiert for prosjekter som prosjekteres til og med 30. september 2026. Ny versjon utstedes før den datoen; klienter bør lese `meta.license` og `meta.license_no` og vise teksten videre til sluttbruker.
