Introduction
The Telescope External API gives your systems read access to your organization's data in Telescope, and lets approved organizations add properties to it. It is a plain JSON REST API authenticated with an API key, so it works with Power BI, Excel, Python, data pipelines, and anything else that can make an HTTP request.
What you can do
| You want to | Read |
|---|---|
| Build climate risk reports in Power BI | Power BI |
| Copy properties and results into a data warehouse or your own app | Sync data |
| Push properties from your property register into Telescope | Create properties |
| Ask questions about your portfolio in Claude Desktop | Claude (MCP) |
| Look up a field or allowed value | Reference |
Environments
| Environment | Base URL |
|---|---|
| Production | https://api.telescope.eco |
| Staging | https://api-staging.telescope.eco |
Every endpoint lives under /external/. API keys only work in the environment they were created in. Use staging when Telescope has given you a staging account to test against.
Endpoints at a glance
| Method | Path | What it does |
|---|---|---|
GET | /external/portfolios/ | Lists your root portfolios |
GET | /external/portfolios/{id}/ | One portfolio with its direct child portfolios and properties |
GET | /external/properties/ | Lists properties with their stored results, with filters |
GET | /external/properties/{id}/ | One property with its stored results |
POST | /external/properties/ | Creates a property, or updates the one with the same reference ID |
The full machine-readable description is the OpenAPI schema at /external/openapi.yaml. You can try every endpoint in the browser in the API explorer: click Authorize and paste your API key.

Your first request
- Create an API key in Telescope.
- List your properties:
curl -H "X-API-Key: $TELESCOPE_API_KEY" https://api.telescope.eco/external/properties/You get back the first page of up to 100 properties:
{
"next": "https://api.telescope.eco/external/properties/?cursor=cD0yMDI2LTEw...",
"previous": null,
"results": [
{
"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"
}
],
"biodiversity": [],
"buildings": [],
"energy_certificates": []
}
]
}Follow next until it is null to get the rest. Sync data explains pagination and keeping a copy up to date, and Core concepts explains what the objects mean.
Good to know
- Your organization only. A key only sees the organization of the user who created it.
- Stored results. Reading never starts new analyses. You get the results Telescope has already calculated.
- Read and create, no delete. There are no update-only or delete endpoints. Change or remove data in the Telescope app.
- Be gentle. Make requests one at a time rather than in large parallel bursts.

