API

Kom i gang med Solkart-API-et — soldata for Norge på ett minutt

Solkart-API-et gir solprognose, PV-produksjon, typisk meteorologisk år, snølast, snøtap, horisont og terrengkategori for ethvert punkt i Norge, som JSON over HTTPS. Det er laget for energiselskaper, rådgivere og utviklere som vil ha norske data i egne systemer. Base-URL er https://api.solkart.no; hele referansen står i dokumentasjonen.

1Hent en gratis API-nøkkel Alt er gratis i prøveperioden

Slik virker det. Du får en e-post med en lenke som varer i 24 timer. Siden bak lenken viser nøkkelen (sk_live_…) én gang. Lagre den som miljøvariabel, ikke i kildekoden.

Du kan også prøve uten nøkkel. Da gjelder gratisnivået per IP-adresse:

  • 24 forespørsler og 1 anlegg per døgn mot solprognosen, maks 25 kWp
  • TMY, PV-produksjon, snølast, snøtap og terrenghorisont er åpne uten nøkkel
  • Terrengkategori og horisont fra tak er åpne i pilot, begrenset per sekund og time

Ett anlegg er én unik koordinat per døgn. Se kvoter, grenser og feil.

2Gjør første kall

Solinnstråling (GHI) time for time, 60 timer frem, for et punkt. Bytt ut nøkkelen, eller dropp hodet for å bruke gratisnivået fra din IP-adresse.

Forespørsel
curl "https://api.solkart.no/api/forecast?lat=59.91&lon=10.75" \
  -H "X-API-Key: sk_live_DIN_NOKKEL"
Svar (200, forkortet)
{
  "site": "59.91,10.75",
  "latitude": 59.91, "longitude": 10.75,
  "cycle_time": "2026-09-15T16:00:00Z",
  "model": "production_v2_3b",
  "data_mode": "v23b",
  "peak_ghi_wm2": 449.1,
  "daily_ghi_kwh_m2": 2.71,
  "ghi_timeseries": [
    { "hour": 0, "timestamp": "2026-09-15T15:00:00Z", "ghi_wm2": 183.4 },
    { "hour": 1, "timestamp": "2026-09-15T16:00:00Z", "ghi_wm2": 96.2 },
    { "hour": 2, "timestamp": "2026-09-15T17:00:00Z", "ghi_wm2": 21.0 }
  ]
}

Les svaret slik: timestamp er starten på timen i UTC (10:00Z gjelder 10 til 11 UTC), ghi_wm2 er middel innstråling i W/m² over timen, cycle_time er når prognosen ble kjørt. Nye sykluser kommer hver time. Alle konvensjoner står under tid, enheter og koordinater.

3Bruk svaret i din kode

Send inn takflatene som JSON, så får du produksjon per time og totalt for anlegget. Eksemplene summerer produksjonen for dagen.

const resp = await fetch("https://api.solkart.no/api/forecast", {
  method: "POST",
  headers: { "Content-Type": "application/json", "X-API-Key": process.env.SOLKART_API_KEY },
  body: JSON.stringify({
    latitude: 59.91, longitude: 10.75, daily: true,
    arrays: [{ name: "Tak", kwp: 10, tilt_deg: 25, azimuth_deg: 180 }],
  }),
});
if (!resp.ok) throw new Error((await resp.json()).error);
const data = await resp.json();
const kWhToday = data.pv_timeseries.reduce((s, e) => s + (e.total_kWh || 0), 0);
console.log(`Prognose fra ${data.cycle_time}: ${kWhToday.toFixed(1)} kWh i dag`);
import os, requests

resp = requests.post(
    "https://api.solkart.no/api/forecast",
    headers={"X-API-Key": os.environ["SOLKART_API_KEY"]},
    json={"latitude": 59.91, "longitude": 10.75, "daily": True,
          "arrays": [{"name": "Tak", "kwp": 10, "tilt_deg": 25, "azimuth_deg": 180}]},
    timeout=15,
)
if resp.status_code != 200:
    raise SystemExit(resp.json()["error"])
data = resp.json()
kwh_today = sum(e.get("total_kWh", 0) for e in data["pv_timeseries"])
print(f"Prognose fra {data['cycle_time']}: {kwh_today:.1f} kWh i dag")
curl -X POST https://api.solkart.no/api/forecast \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sk_live_DIN_NOKKEL" \
  -d '{"latitude": 59.91, "longitude": 10.75, "daily": true,
       "arrays": [{"name": "Tak", "kwp": 10, "tilt_deg": 25, "azimuth_deg": 180}]}'

daily: true krever Basic eller høyere; azimuth_deg er kompassretning, 0 = nord og 180 = sør. Vil du klikke deg fram til forespørselen, bruk konfiguratoren.

Alle endepunktene

Jeg vil haEndepunktNøkkelDokumentasjon
Solinnstråling og produksjon time for time, 60 timerGET/POST /api/forecastValgfriSolprognose
Samme for inntil 50 anlegg i ett kallPOST /api/forecast/bulkValgfriSolprognose
Års- og månedsproduksjon for et anleggGET /api/pv/calcNeiPV-produksjon
Typisk meteorologisk år, 8760 timerGET /api/tmyValgfriTMY Norge
Snøtap per måned, snø på panelet neste 10 døgnGET /api/snowsoiling/calc, /api/snow/outlookNeiSnøtap
Horisont og solbane for et punktGET /api/horizon/terrainNeiSol og horisont
Stedlig karakteristisk snølastGET /api/snowload/calcNeiStedlig snølast
Terrengkategori og terrengform per sektorPOST /api/terrain/categoryNei i pilotTerrengkategori
Modulplassering og kWp på et takPOST /api/roof/jobsAvtaleTakanalyse

Ta vare på nøkkelen

  • Kall fra tjenersiden. Nøkkelen skal ikke ligge i JavaScript som sendes til nettleseren, i apper eller i offentlige repoer.
  • Miljøvariabel. Les SOLKART_API_KEY ved oppstart; ikke sjekk den inn.
  • Bruk hodet X-API-Key. ?api_key= virker, men havner i logger.
  • Én nøkkel per system, så du kan rotere én uten å stoppe de andre.
  • Lekket? Si fra, så deaktiverer vi den og utsteder en ny.

Planer og kvoter

PlanForespørsler per døgnAnleggMaks kWp
Gratis241 per døgn25
Basic1 000Velg selv150
Pro10 00010 eller flere1 000
EnterpriseUbegrensetUbegrensetUbegrenset

Alt er gratis i prøveperioden. Tre prismatriser (prognose, profesjonell bruk av verktøyene, øvrige API-er) står på priser. Basic og høyere gir også utvidet prognose til 10 døgn og døgnprognose fra midnatt.

Vanlige feil de første minuttene

StatuserrorLøsning
401Invalid API keyHele strengen fra bekreftelsessiden må med, inkludert sk_live_.
429Daglig anlegg-kvote brukt opp.Du spurte om en ny koordinat etter at dagens anlegg var brukt. Samme koordinat kan spørres på nytt; ny koordinat etter 00:00 UTC. Svaret har quota.resets_at.
400Location outside Norway coverage (57-72N, 4-32E)Bytt om lat og lon, eller sjekk desimaltegn (punktum).
403Extended forecast requires Basic tier or higher/extended og daily krever Basic. Bruk /api/forecast uten daily på gratisnivået.

Alle statuskoder og feilkoder står i kvoter, grenser og feil.

Neste steg