Properties
| Method | Path | Description |
|---|---|---|
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
GET /external/properties/curl -H "X-API-Key: $TELESCOPE_API_KEY" \
"https://api.telescope.eco/external/properties/?hazard=landslide&hazard_relevant=true"Filters
| Parameter | Example | Returns properties that |
|---|---|---|
search | storgata oslo | contain every term in their name, address, postal area, matrikkelnummer or internal reference. Case-insensitive. |
hazard | landslide,storm | have a stored result for one of these hazards, at any exposure. |
exposure | HIGH,VERY_HIGH | have a stored hazard result at one of these exposure levels. Levels match exactly. |
hazard_relevant | true | have a stored hazard result whose relevant matches. |
biodiversity | protected_areas,nature_types | have a stored result for one of these biodiversity analyses. |
biodiversity_relevant | true | have 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,exposureandhazard_relevantmust all be true for one and the same hazard result. Sohazard=landslide&exposure=HIGH&hazard_relevant=truereturns properties where landslide itself is relevant and high, not properties where landslide is low and some other hazard is high.biodiversityandbiodiversity_relevantwork 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=Landslideandhazard=landslide, stormboth return400.
Examples:
| Query | Meaning |
|---|---|
?hazard=landslide | A landslide result is stored, at any exposure including NOT_EXPOSED |
?hazard=landslide&hazard_relevant=true | Landslide is relevant for the property |
?hazard=landslide,storm&exposure=HIGH,VERY_HIGH | Landslide or storm has a high or very high exposure |
?exposure=VERY_HIGH&hazard_relevant=true | Any relevant hazard has a very high exposure |
?biodiversity=red_list_species&biodiversity_relevant=true | Red list species are relevant for the property |
?search=0301-208 | The 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
GET /external/properties/{id}/id is Telescope's property ID. Returns 404 if no property with this ID exists in your organization.
Property fields
| Field | Type | Description |
|---|---|---|
id | UUID | Telescope's identifier for the property. |
internal_reference_id | text | Your own reference for the property, such as its ID in your property register. Empty string when not set. |
name | text | Property name. |
value_estimate | integer or null | Estimated value in the property's local currency (NOK for Norway). null when unknown. |
portfolio_id | UUID | The portfolio that directly contains the property. |
address | text | Street address. |
postal_code | text | Postal code. |
postal_area | text | Postal area or city. |
country | text | Country name, such as Norway. |
matrikkelnummer | text | Norwegian cadastral identifier, like 0301-208/101/0/0. Empty when not available. |
created_at | timestamp | When the property was added to Telescope. |
updated_at | timestamp | When the property itself last changed. Not changed by new results. |
hazards | list | Climate hazard results. |
biodiversity | list | Biodiversity results. |
buildings | list | Buildings on the property. |
energy_certificates | list | Energy 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.
| Field | Type | Description |
|---|---|---|
name | text | The hazard, such as landslide. |
exposure | text or null | The exposure level Telescope uses: a user's override if set, otherwise the highest level across the climate scenarios. |
relevant | boolean | Whether the hazard is relevant for the property. Set by the analysis, and users can change it. |
sensitivity | text or null | How sensitive the property is to the hazard. null until someone assesses it. |
vulnerability | text or null | Vulnerability calculated from exposure and sensitivity. null while sensitivity isn't assessed. |
updated_at | timestamp | When the stored result was last updated. |
Biodiversity fields
One entry per biodiversity analysis with a stored result.
| Field | Type | Description |
|---|---|---|
name | text | The biodiversity analysis, such as protected_areas. |
relevant | boolean | Whether the topic is relevant for the property: a user's override if set, otherwise the analysis result. |
proximity | text or null | overlaps if the property overlaps the analyzed features, nearby if it is close to them, otherwise null. |
updated_at | timestamp | When 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.
| Field | Type | Description |
|---|---|---|
id | UUID | Telescope's identifier for the building. |
government_id | text | Building number in the national building register. Empty for buildings added by hand. |
name | text | Building name, where available. |
usage | text or null | Main usage of the building. |
construction_year | integer or null | Year the building was built. |
usage_area | number or null | Usable floor area in square meters. |
num_floors | integer or null | Number of registered floors. |
Energy certificate fields
Energy performance certificates for the property, newest first.
| Field | Type | Description |
|---|---|---|
id | UUID | Telescope's identifier for the certificate. |
building_id | UUID or null | The building the certificate belongs to, or null when it couldn't be matched to one. |
label | text | The energy label, such as C. |
energy_use_by_m2 | number | Energy use in kWh per square meter per year. |
issued_at | timestamp or null | When the certificate was issued. |
expires_at | timestamp or null | When the certificate expires. |
Full example
{
"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.

