Base URL
https://api.klimakommuner.no
🔐 Autentisering
Enkelte endepunkter krever en API-nøkkel (merket med 🔒). Du kan sende token på tre måter:
1. Query parameter (enklest):
https://api.klimakommuner.no/utils/clean-url?token=YOUR_TOKEN
2. Authorization header:
Authorization: Bearer YOUR_TOKEN
3. X-API-Token header:
X-API-Token: YOUR_TOKEN
Oversikt autentisering:
🔒 Krever token: /utils/clean-url, /geojson/municipalities, /geojson/counties
🌍 Offentlig: /, /docs, /utils/tracking-params, /search/multi
📡 Webhook: /maps/generate (bruker Sanity-autentisering)
Health Check
Sjekk API-status og versjon.
Respons:
{
"name": "Klimakommuner API",
"version": "1.0.0",
"status": "healthy"
}
URL-rensing Nytt
Hent liste over alle sporingsparametere som fjernes fra URL-er.
Respons:
{
"params": ["utm_source", "utm_medium", "fbclid", ...],
"prefixes": ["ref_", "pf_rd_"],
"count": 70,
"description": "Tracking parameters that should be removed from URLs",
"source": "Inspired by ClearURLs"
}
Fjern sporingsparametere fra én eller flere URL-er.
Request Body (enkelt URL):
{
"url": "https://example.com?utm_source=email&fbclid=abc123"
}
Request Body (batch):
{
"urls": [
"https://example.com?utm_source=email",
"https://example.org?gclid=xyz789"
]
}
Respons (enkelt):
{
"original": "https://example.com?utm_source=email&fbclid=abc123",
"cleaned": "https://example.com"
}
Respons (batch):
{
"results": [
{
"original": "https://example.com?utm_source=email",
"cleaned": "https://example.com"
},
{
"original": "https://example.org?gclid=xyz789",
"cleaned": "https://example.org"
}
]
}
GeoJSON Data
Hent GeoJSON-data for norske kommuner.
Respons:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"kommunenummer": "0301",
"kommunenavn": "Oslo"
},
"geometry": { ... }
}
]
}
Hent GeoJSON-data for norske fylker.
Respons:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"fylkesnummer": "03",
"fylkesnavn": "Oslo"
},
"geometry": { ... }
}
]
}
Kartgenerering
Generer SVG-kart for et klimanettverk basert på kommunekoder.
Request Body:
{
"networkId": "network-123",
"networkSlug": "follo-klimanettverk",
"municipalityCodes": ["0301", "0219", "3001"]
}
Respons:
{
"success": true,
"message": "Map generated for follo-klimanettverk",
"svgLength": 1234
}
Søk
Proxy til MeiliSearch for multi-søk. Brukes av nettsiden for søkefunksjonalitet.
Request Body:
{
"queries": [
{
"indexUid": "klimakommuner",
"q": "klimanettverk",
"limit": 20
}
]
}
CORS & Sikkerhet
Tillatte domener:
https://klimakommuner.nohttps://*.klimakommuner.no(alle subdomener)http://localhost:*(for utvikling)
Eksempler
JavaScript/Fetch:
// Rens en URL
const response = await fetch('https://api.klimakommuner.no/utils/clean-url?token=YOUR_TOKEN', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: 'https://example.com?utm_source=newsletter'
})
});
const data = await response.json();
console.log(data.cleaned); // https://example.com
cURL:
# Health check (ingen token nødvendig)
curl https://api.klimakommuner.no/
# Rens URL (med token i query)
curl -X POST 'https://api.klimakommuner.no/utils/clean-url?token=YOUR_TOKEN' \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com?utm_source=email"}'
# Rens URL (med token i header)
curl -X POST https://api.klimakommuner.no/utils/clean-url \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"url":"https://example.com?utm_source=email"}'