Gå til innholdet

REST API-introduksjon

REST API-et er tilgjengelig på /v1/ og følger standard REST-konvensjoner. Alle svar er JSON med mindre annet er angitt.

https://connect.wennproperty.com/v1/

Den fullstendige OpenAPI 3.1-spesifikasjonen er tilgjengelig på /v1/openapi.json. Du kan også utforske den interaktivt med Swagger UI.

Alle endepunkter krever et Bearer-token. Se Autentisering.

Authorization: Bearer <ditt-token>
GET /v1/projects

Returnerer alle prosjekter for den autentiserte tenanten. Hvert prosjektsammendrag inkluderer ID, adresse, forsidebilde, opprettelsesdato og arkivstatus.

Eksempel på respons:

{
"projects": [
{
"id": "abc-123",
"createdAt": "2025-06-15T10:30:00Z",
"createdBy": "user@example.com",
"address": {
"street": "Storgata 1",
"postalCode": "0182",
"city": "Oslo"
},
"lastUpdated": "2025-06-20T14:00:00Z",
"coverPhoto": {
"photoId": "photo-1",
"extension": "jpg"
},
"archived": false
}
]
}
GET /v1/projects/{projectId}

Returnerer fullstendige detaljer for et enkelt prosjekt, inkludert:

  • Adresse og metadata
  • Forsidebilde og prosjektnivåbilder
  • Rom med type, etasje, bilder og befaringsnotater
  • Utendørsområder
  • AI-generert sammendrag (hvis tilgjengelig)

Eksempel på respons:

{
"id": "abc-123",
"createdAt": "2025-06-15T10:30:00Z",
"createdBy": "user@example.com",
"lastUpdated": "2025-06-20T14:00:00Z",
"type": "inspection",
"address": {
"street": "Storgata 1",
"postalCode": "0182",
"city": "Oslo"
},
"coverPhoto": {
"photoId": "photo-1",
"extension": "jpg"
},
"photos": [
{ "photoId": "photo-1", "extension": "jpg" },
{ "photoId": "photo-2", "extension": "png" }
],
"rooms": [
{
"roomId": "room-1",
"roomName": "Stue",
"roomType": "LIVING_ROOM",
"story": 1,
"photos": [
{ "photoId": "photo-3", "extension": "jpg" }
],
"inspectionNotes": {
"notes": "Slitasje på gulvbelegg ved inngang.",
"lastUpdated": "2025-06-20T14:00:00Z"
}
}
],
"outsideAreas": [],
"aiSummary": {
"text": "Leiligheten er i god stand med mindre slitasje i stue og bad.",
"promptTitle": "Inspection Report",
"generatedAt": "2025-06-20T15:00:00Z"
},
"inspectionNotes": null,
"archived": false
}
GET /v1/projects/{projectId}/photos/{filename}

Returnerer et bilde som binære bildedata. filename må inkludere filtypen (f.eks. photo-1.jpg).

Spørringsparametere:

ParameterTypeBeskrivelse
widthintegerSkaleringsbredde i piksler
heightintegerSkaleringshøyde i piksler

Eksempel på forespørsel:

GET /v1/projects/abc-123/photos/photo-1.jpg?width=800

Returnerer binære bildedata med riktig Content-Type-header (f.eks. image/jpeg).

GET /v1/projects/{projectId}/measurements

Returnerer rommål utledet fra prosjektets 3D-modell: gulvareal, veggareal, listlengder og antall åpninger per rom, samt aggregerte totaler. Se Mål for fullstendig responsmodell.

GET /v1/projects/{projectId}/floorplan

Returnerer en 2D-plantegning som SVG-bilde, generert fra prosjektets 3D-modell. Se Plantegning for spørringsparametere og detaljer.

GET /v1/projects/{projectId}/roof

Returnerer takmålinger gruppert per bygning, basert på flyfoto/satellittbilder. Se Takmålinger for fullstendig responsmodell.

GET /v1/projects/{projectId}/roof/svg

Returnerer en 2D-visualisering av takgeometrien som SVG med rike dataattributter. Se Takplan for struktur og attributtreferanse.

GET /v1/projects/{projectId}/roof/photo

Returnerer et sammensatt flyfoto av takområdet som PNG-bilde. Se Takfoto for detaljer.

GET /v1/projects/{projectId}/walls

Returnerer yttervegggeometri utledet fra takdata, gruppert per bygning. Hver vegg inkluderer type, kompassretning, areal og koblinger til takflater/kanter. Se Veggmålinger for fullstendig responsmodell.

GET /v1/projects/{projectId}/walls/svg

Returnerer en utbrettet bygningsfasade-SVG som viser alle yttervegger side om side. Se Veggplan for struktur og attributtreferanse.

Feil følger et konsistent format:

{
"error": "Beskrivelse av hva som gikk galt"
}

Eksempler:

// 401 Uautorisert
{ "error": "Unauthorized" }
// 404 Ikke funnet
{ "error": "Project not found" }
{ "error": "Photo not found" }
StatusBetydning
401Uautorisert — manglende eller ugyldig token
403Forbudt — tokenet mangler nødvendig tilgang
404Ikke funnet
500Intern serverfeil