Skip to content

Properties ​

MethodPathDescription
GET/external/properties/List properties, with filters
GET/external/properties/{id}/Retrieve one property
POST/external/properties/Create or update a property. See Create properties.

Both GET endpoints return the same property fields, including every stored result. The list is paginated, most recently created first.

List properties ​

text
GET /external/properties/
sh
curl -H "X-API-Key: $TELESCOPE_API_KEY" \
  "https://api.telescope.eco/external/properties/?hazard=landslide&hazard_relevant=true"

Filters ​

ParameterExampleReturns properties that
searchstorgata oslocontain every term in their name, address, postal area, matrikkelnummer or internal reference. Case-insensitive.
hazardlandslide,stormhave a stored result for one of these hazards, at any exposure.
exposureHIGH,VERY_HIGHhave a stored hazard result at one of these exposure levels. Levels match exactly.
hazard_relevanttruehave a stored hazard result whose relevant matches.
biodiversityprotected_areas,nature_typeshave a stored result for one of these biodiversity analyses.
biodiversity_relevanttruehave a stored biodiversity result whose relevant matches.

How filters combine:

  • Different filters combine with AND. Comma-separated values within one filter combine with OR.
  • Hazard filters match on the same result. hazard, exposure and hazard_relevant must all be true for one and the same hazard result. So hazard=landslide&exposure=HIGH&hazard_relevant=true returns properties where landslide itself is relevant and high, not properties where landslide is low and some other hazard is high. biodiversity and biodiversity_relevant work the same way.
  • Filters choose properties, not results. A matching property still includes all of its hazard and biodiversity results, not only the ones that matched.
  • Only stored results match. Analyses that haven't finished never match.
  • Values are case-sensitive, and there must be no spaces after the commas. hazard=Landslide and hazard=landslide, storm both return 400.

Examples:

QueryMeaning
?hazard=landslideA landslide result is stored, at any exposure including NOT_EXPOSED
?hazard=landslide&hazard_relevant=trueLandslide is relevant for the property
?hazard=landslide,storm&exposure=HIGH,VERY_HIGHLandslide or storm has a high or very high exposure
?exposure=VERY_HIGH&hazard_relevant=trueAny relevant hazard has a very high exposure
?biodiversity=red_list_species&biodiversity_relevant=trueRed list species are relevant for the property
?search=0301-208The matrikkelnummer, or another searched field, contains 0301-208

Hazards and biodiversity analyses that are turned off in your organization's settings are still included and can still match.

Retrieve a property ​

text
GET /external/properties/{id}/

id is Telescope's property ID. Returns 404 if no property with this ID exists in your organization.

Property fields ​

FieldTypeDescription
idUUIDTelescope's identifier for the property.
internal_reference_idtextYour own reference for the property, such as its ID in your property register. Empty string when not set.
nametextProperty name.
value_estimateinteger or nullEstimated value in the property's local currency (NOK for Norway). null when unknown.
portfolio_idUUIDThe portfolio that directly contains the property.
addresstextStreet address.
postal_codetextPostal code.
postal_areatextPostal area or city.
countrytextCountry name, such as Norway.
matrikkelnummertextNorwegian cadastral identifier, like 0301-208/101/0/0. Empty when not available.
created_attimestampWhen the property was added to Telescope.
updated_attimestampWhen the property itself last changed. Not changed by new results.
hazardslistClimate hazard results.
biodiversitylistBiodiversity results.
buildingslistBuildings on the property.
energy_certificateslistEnergy certificates, newest first.

Text fields that have no value are empty strings, not null.

Hazard fields ​

One entry per climate hazard with a stored result. See Understanding a hazard result.

FieldTypeDescription
nametextThe hazard, such as landslide.
exposuretext or nullThe exposure level Telescope uses: a user's override if set, otherwise the highest level across the climate scenarios.
relevantbooleanWhether the hazard is relevant for the property. Set by the analysis, and users can change it.
sensitivitytext or nullHow sensitive the property is to the hazard. null until someone assesses it.
vulnerabilitytext or nullVulnerability calculated from exposure and sensitivity. null while sensitivity isn't assessed.
updated_attimestampWhen the stored result was last updated.

Biodiversity fields ​

One entry per biodiversity analysis with a stored result.

FieldTypeDescription
nametextThe biodiversity analysis, such as protected_areas.
relevantbooleanWhether the topic is relevant for the property: a user's override if set, otherwise the analysis result.
proximitytext or nulloverlaps if the property overlaps the analyzed features, nearby if it is close to them, otherwise null.
updated_attimestampWhen the stored result was last updated.

Building fields ​

Buildings registered on the property's plot, from the Norwegian building register (Matrikkelen), plus any added by hand in Telescope. Empty when none are registered. Buildings with a register number come first.

FieldTypeDescription
idUUIDTelescope's identifier for the building.
government_idtextBuilding number in the national building register. Empty for buildings added by hand.
nametextBuilding name, where available.
usagetext or nullMain usage of the building.
construction_yearinteger or nullYear the building was built.
usage_areanumber or nullUsable floor area in square meters.
num_floorsinteger or nullNumber of registered floors.

Energy certificate fields ​

Energy performance certificates for the property, newest first.

FieldTypeDescription
idUUIDTelescope's identifier for the certificate.
building_idUUID or nullThe building the certificate belongs to, or null when it couldn't be matched to one.
labeltextThe energy label, such as C.
energy_use_by_m2numberEnergy use in kWh per square meter per year.
issued_attimestamp or nullWhen the certificate was issued.
expires_attimestamp or nullWhen the certificate expires.

Full example ​

json
{
  "id": "3f6c1a52-8a1e-4c3e-9a57-0b1f6f0c2d11",
  "internal_reference_id": "P-1001",
  "name": "Storgata 1",
  "value_estimate": 85000000,
  "portfolio_id": "b2a4c7e0-1d2f-4f39-8e2a-5c6d7e8f9a01",
  "address": "Storgata 1",
  "postal_code": "0155",
  "postal_area": "Oslo",
  "country": "Norway",
  "matrikkelnummer": "0301-208/101/0/0",
  "created_at": "2026-03-02T09:14:07.512345Z",
  "updated_at": "2026-09-30T12:01:44.104221Z",
  "hazards": [
    {
      "name": "surface_flooding",
      "exposure": "HIGH",
      "relevant": true,
      "sensitivity": null,
      "vulnerability": null,
      "updated_at": "2026-09-30T12:05:10.000000Z"
    },
    {
      "name": "landslide",
      "exposure": "NOT_EXPOSED",
      "relevant": false,
      "sensitivity": null,
      "vulnerability": null,
      "updated_at": "2026-09-30T12:05:12.000000Z"
    }
  ],
  "biodiversity": [
    {
      "name": "red_list_species",
      "relevant": true,
      "proximity": "nearby",
      "updated_at": "2026-09-30T12:06:01.000000Z"
    }
  ],
  "buildings": [
    {
      "id": "7d1e9c40-2b3a-4f5e-8c6d-9e0f1a2b3c4d",
      "government_id": "80412345",
      "name": "",
      "usage": "OFFICE_COMMERCIAL",
      "construction_year": 1962,
      "usage_area": 4210.0,
      "num_floors": 6
    }
  ],
  "energy_certificates": [
    {
      "id": "c0ffee00-1234-4abc-9def-0123456789ab",
      "building_id": "7d1e9c40-2b3a-4f5e-8c6d-9e0f1a2b3c4d",
      "label": "C",
      "energy_use_by_m2": 142.5,
      "issued_at": "2024-05-14T00:00:00Z",
      "expires_at": "2034-05-14T00:00:00Z"
    }
  ]
}

Deprecated: analysis summary

GET /external/properties/{id}/analysis-summary/ returns the hazard results in an older format and will be removed after 2026-10-21. Use the hazards field of GET /external/properties/{id}/ instead.