Developer docs

LCA API til klimaberegning

Gratis REST API til klimaberegning og BR25-compliance. Ingen API-nøgle, ingen registrering. Returnerer JSON. Brug det til at integrere CO₂-data og LCA-beregning direkte i dine egne systemer.

Base URL

Alle endpoints er tilgængelige under KlimaBygs API:

https://klimabyg.dk/api

Ingen autentificering er nødvendig. API'et er åbent og gratis for alle.

Endpoints

5 endpoints til materialesøgning, kategorier, BR25-grænseværdier og beregning.

MetodeStiBeskrivelse
GET/materialsSog i materialer
GET/materials/:idHent enkelt materiale
POST/calculateBR25 LCA-beregning
GET/br25/limitsBR25-graensevaerdier
GET/categoriesMaterialekategorier
GET

/materials

Sog i materialedatabasen efter navn eller kategori. Returnerer paginerede resultater med CO₂-data (GWP) per materiale.

Query-parametre

ParameterTypeBeskrivelse
qstringSogetekst (fuldtekst, fx "beton" eller "stål")
categorystringFiltrer efter kategori (fx "beton", "isolering")
curatedstring"true" for kun udvalgte materialer
pagestringSidetal (standard: 1)
per_pagestringResultater per side (standard: 20, maks: 100)

Eksempel

curl "https://klimabyg.dk/api/materials?q=beton&per_page=2"

Svar

{
  "data": [
    {
      "id": "a3f1c2e8-9b4d-4e6f-8a1c-3d5e7f9b2c4a",
      "name": "Beton C25/30",
      "name_de": "Beton der Druckfestigkeitsklasse C25/30",
      "name_da": "Beton C25/30",
      "category": "beton",
      "gwp_a1a3": 231.0,
      "gwp_c3": 1.2,
      "gwp_c4": 3.5,
      "gwp_d": -12.4,
      "unit": "m³",
      "service_life": 100,
      "source": "oekobaudat",
      "declaration_owner": "InformationsZentrum Beton GmbH",
      "is_curated": true
    },
    {
      "id": "b7d4e9f1-2a3c-4b5d-8e6f-1c9a3b5d7e2f",
      "name": "Beton C30/37",
      "name_de": "Beton der Druckfestigkeitsklasse C30/37",
      "name_da": "Beton C30/37",
      "category": "beton",
      "gwp_a1a3": 263.0,
      "gwp_c3": 1.3,
      "gwp_c4": 3.8,
      "gwp_d": -14.1,
      "unit": "m³",
      "service_life": 100,
      "source": "oekobaudat",
      "declaration_owner": "InformationsZentrum Beton GmbH",
      "is_curated": true
    }
  ],
  "total": 47,
  "page": 1,
  "per_page": 2
}
GET

/materials/:id

Hent et enkelt materiale med alle CO₂-data ud fra dets UUID.

Eksempel

curl "https://klimabyg.dk/api/materials/a3f1c2e8-9b4d-4e6f-8a1c-3d5e7f9b2c4a"

Svar

{
  "data": {
    "id": "a3f1c2e8-9b4d-4e6f-8a1c-3d5e7f9b2c4a",
    "name": "Beton C25/30",
    "name_de": "Beton der Druckfestigkeitsklasse C25/30",
    "name_da": "Beton C25/30",
    "category": "beton",
    "gwp_a1a3": 231.0,
    "gwp_c3": 1.2,
    "gwp_c4": 3.5,
    "gwp_d": -12.4,
    "unit": "m³",
    "service_life": 100,
    "source": "oekobaudat",
    "declaration_owner": "InformationsZentrum Beton GmbH",
    "is_curated": true
  }
}

Returnerer 404 hvis materialet ikke findes.

POST

/calculate

Beregn livscyklusvurdering (LCA) for et byggeri. Inkluderer udskiftninger over 50 ar og tjekker BR25-compliance automatisk. Genbrugte materialer far A1-A3 sat til 0.

Request body (JSON)

FeltTypeBeskrivelse
entriesarrayMindst 1 materiale-entry (se nedenfor)
grossFloorAreanumberBruttoetageareal i m²
buildingTypestringEn af: fritidshus_lille, enfamiliehus, etagebolig_kontor, institution

Hver entry i entries-arrayet:

FeltTypeBeskrivelse
materialIdstringUUID fra /materials
quantitynumberMaengde i materialets enhed (m³, m², kg)
isReusedboolean?Om materialet er genbrugt (A1-A3 = 0). Standard: false

Eksempel

curl -X POST "https://klimabyg.dk/api/calculate" \
  -H "Content-Type: application/json" \
  -d '{
    "entries": [
      {
        "materialId": "a3f1c2e8-9b4d-4e6f-8a1c-3d5e7f9b2c4a",
        "quantity": 85,
        "isReused": false
      },
      {
        "materialId": "c5e2f8a1-3b7d-4c9e-6f1a-8d2b4e6c9f3a",
        "quantity": 120,
        "isReused": true
      }
    ],
    "grossFloorArea": 150,
    "buildingType": "enfamiliehus"
  }'

Svar

{
  "data": {
    "totalGWP": 20077.0,
    "perM2Year": 2.677,
    "isCompliant": true,
    "limit": 6.7,
    "buildingType": "enfamiliehus",
    "grossFloorArea": 150,
    "breakdown": [
      {
        "materialId": "a3f1c2e8-9b4d-4e6f-8a1c-3d5e7f9b2c4a",
        "name": "Beton C25/30",
        "gwpTotal": 20034.5,
        "isReused": false,
        "savedCO2": 0,
        "replacements": 0
      },
      {
        "materialId": "c5e2f8a1-3b7d-4c9e-6f1a-8d2b4e6c9f3a",
        "name": "Konstruktionstrae, gran/fyr",
        "gwpTotal": 42.5,
        "isReused": true,
        "savedCO2": 4860.0,
        "replacements": 0
      }
    ]
  }
}

Beregningsmetode: GWP per materiale = maengde x (A1-A3 + C3 + C4) x (1 + udskiftninger). Udskiftninger = ceil(50 / levetid) - 1. Genbrugte materialer: A1-A3 = 0. Resultat = total GWP / (bruttoareal x 50 ar).

GET

/br25/limits

Returnerer BR25-graensevaerdier for alle bygningstyper, inklusive beregningsperiode og separat A4-A5 graense.

Eksempel

curl "https://klimabyg.dk/api/br25/limits"

Svar

{
  "data": {
    "buildingTypes": {
      "fritidshus_lille": {
        "label": "Fritidshus under 150 m²",
        "description": "Fritidshuse med et samlet etageareal under 150 m²",
        "limit": 4.0
      },
      "enfamiliehus": {
        "label": "Enfamiliehus / raekkehus",
        "description": "Enfamiliehuse, raekkehuse, tiny houses og fritidshuse >= 150 m²",
        "limit": 6.7
      },
      "etagebolig_kontor": {
        "label": "Etageboliger og kontorer",
        "description": "Etageboligbyggeri og kontorbygninger",
        "limit": 7.5
      },
      "institution": {
        "label": "Institutioner",
        "description": "Institutionsbygninger (skoler, daginstitutioner, hospitaler mv.)",
        "limit": 8.0
      }
    },
    "calculationPeriod": 50,
    "constructionProcessLimit": 1.5
  }
}
GET

/categories

Returnerer de 10 materialekategorier med danske labels. Brug noeglen som category-parameter i /materials.

Eksempel

curl "https://klimabyg.dk/api/categories"

Svar

{
  "data": {
    "beton": "Beton & mortel",
    "tegl": "Mursten & tegl",
    "trae": "Trae & plader",
    "stal": "Stal & metal",
    "isolering": "Isolering",
    "glas": "Glas & vinduer",
    "gulv": "Gulvbelaegning",
    "tag": "Tagmaterialer",
    "gips": "Gips & plader",
    "andet": "Andet"
  }
}

Datakilder

Materialedatabasen kombinerer data fra flere anerkendte, abne kilder:

Okobaudat

Tysk føderal EPD-database. 1.931 materialer indlæst med GWP-vaerdier opdelt per livscyklusmodul.

Danske generiske LCA-data (gen_dk)

466 danske byggematerialer med korrekte navne, kategorier og klassifikation fra BUILD/AAU.

SBi-anvisning 224 / Molio levetidstabel

Forventede levetider for byggematerialer. Bruges til at beregne udskiftninger over 50 ar.

I alt indeholder databasen over 1.931 materialer med CO₂-data klar til brug i beregninger.

Interaktiv dokumentation

Den fulde OpenAPI-specifikation er tilgaengelig som interaktiv Scalar-dokumentation. Her kan du teste alle endpoints direkte i browseren.

Abn Scalar API docs

Fejlhandtering

Alle fejl returneres som JSON med en error-nogle:

{
  "error": "Material not found"
}
StatusBetydning
200Succes
400Ugyldigt request (manglende felter, ukendt bygningstype)
404Materiale ikke fundet
500Serverfejl

Prov det i beregneren

Se API'et i aktion — vores gratis CO₂-beregner bruger praecis de samme endpoints.

Abn CO₂-beregneren