Skip to content

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 toRead
Build climate risk reports in Power BIPower BI
Copy properties and results into a data warehouse or your own appSync data
Push properties from your property register into TelescopeCreate properties
Ask questions about your portfolio in Claude DesktopClaude (MCP)
Look up a field or allowed valueReference

Environments ​

EnvironmentBase URL
Productionhttps://api.telescope.eco
Staginghttps://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 ​

MethodPathWhat 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.

The API explorer at /external/docs/ with the Authorize button highlighted

Your first request ​

  1. Create an API key in Telescope.
  2. List your properties:
sh
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:

json
{
  "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.