> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.icepanel.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.icepanel.io/_mcp/server.

# Export objects and relationships

This guide shows how to export IcePanel model objects and relationships. Useful for scenarios like identifying a service's dependencies and ownership during incident response.

IcePanel supports two formats:

1. **CSV** for importing spreadsheets (does not support [Flows](/core-concepts/flows)).
2. **JSON** for build pipelines, scripts, and automation (supports [Flows](/core-concepts/flows)).

## Prerequisites

* [IcePanel account](https://app.icepanel.io/user/sign-up)
* [API key](https://app.icepanel.io)

```bash
export ICEPANEL_API_KEY='your-api-key'
export ICEPANEL_ORGANIZATION_ID='your-organization-id'
```

## Export as CSV

#### Get your landscape

Get all landscapes in your organization and select a landscape ID:

### Request

GET [https://api.icepanel.io/v1/organizations/\{organizationId}/landscapes](https://api.icepanel.io/v1/organizations/\{organizationId}/landscapes)

```curl
curl https://api.icepanel.io/v1/organizations/organizationId/landscapes \
     -H "X-API-Key: <apiKey>"
```

```typescript
import { IcePanelClient } from "@icepanel/sdk";

async function main() {
    const client = new IcePanelClient({
        apiKey: "YOUR_API_KEY_HERE",
    });
    await client.organizations.landscapes.list({
        organizationId: "organizationId",
    });
}
main();

```

```java
package com.example.usage;

import com.icepanel.IcePanelClient;
import com.icepanel.organizations.types.OrganizationLandscapesListRequest;

public class Example {
    public static void main(String[] args) {
        IcePanelClient client = IcePanelClient
            .builder()
            .apiKey("YOUR_API_KEY_HERE")
            .build();

        client.organizations().landscapes().list(
            OrganizationLandscapesListRequest
                .builder()
                .organizationId("organizationId")
                .build()
        );
    }
}
```

```python
import requests

url = "https://api.icepanel.io/v1/organizations/organizationId/landscapes"

headers = {"X-API-Key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.icepanel.io/v1/organizations/organizationId/landscapes"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("X-API-Key", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```csharp
using RestSharp;

var client = new RestClient("https://api.icepanel.io/v1/organizations/organizationId/landscapes");
var request = new RestRequest(Method.GET);
request.AddHeader("X-API-Key", "<apiKey>");
IRestResponse response = client.Execute(request);
```

Note the `id` of the landscape:

```bash
export ICEPANEL_LANDSCAPE_ID='your-landscape-id'
```

#### Export model objects

### Request

GET [https://api.icepanel.io/v1/landscapes/\{landscapeId}/versions/\{versionId}/model/objects/export/csv](https://api.icepanel.io/v1/landscapes/\{landscapeId}/versions/\{versionId}/model/objects/export/csv)

```curl
curl https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/objects/export/csv \
     -H "X-API-Key: <apiKey>"
```

```typescript
import { IcePanelClient } from "@icepanel/sdk";

async function main() {
    const client = new IcePanelClient({
        apiKey: "YOUR_API_KEY_HERE",
    });
    await client.model.objects.export.csv({
        landscapeId: "landscapeId",
        versionId: "versionId",
    });
}
main();

```

```java
package com.example.usage;

import com.icepanel.IcePanelClient;
import com.icepanel.model.objects.types.ModelObjectsExportCsvRequest;

public class Example {
    public static void main(String[] args) {
        IcePanelClient client = IcePanelClient
            .builder()
            .apiKey("YOUR_API_KEY_HERE")
            .build();

        client.model().objects().export().csv(
            ModelObjectsExportCsvRequest
                .builder()
                .landscapeId("landscapeId")
                .versionId("versionId")
                .build()
        );
    }
}
```

```python
import requests

url = "https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/objects/export/csv"

headers = {"X-API-Key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/objects/export/csv"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("X-API-Key", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```csharp
using RestSharp;

var client = new RestClient("https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/objects/export/csv");
var request = new RestRequest(Method.GET);
request.AddHeader("X-API-Key", "<apiKey>");
IRestResponse response = client.Execute(request);
```

#### Export model connections

### Request

GET [https://api.icepanel.io/v1/landscapes/\{landscapeId}/versions/\{versionId}/model/connections/export/csv](https://api.icepanel.io/v1/landscapes/\{landscapeId}/versions/\{versionId}/model/connections/export/csv)

```curl
curl https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/connections/export/csv \
     -H "X-API-Key: <apiKey>"
```

```typescript
import { IcePanelClient } from "@icepanel/sdk";

async function main() {
    const client = new IcePanelClient({
        apiKey: "YOUR_API_KEY_HERE",
    });
    await client.model.connections.export.csv({
        landscapeId: "landscapeId",
        versionId: "versionId",
    });
}
main();

```

```java
package com.example.usage;

import com.icepanel.IcePanelClient;
import com.icepanel.model.connections.types.ModelConnectionsExportCsvRequest;

public class Example {
    public static void main(String[] args) {
        IcePanelClient client = IcePanelClient
            .builder()
            .apiKey("YOUR_API_KEY_HERE")
            .build();

        client.model().connections().export().csv(
            ModelConnectionsExportCsvRequest
                .builder()
                .landscapeId("landscapeId")
                .versionId("versionId")
                .build()
        );
    }
}
```

```python
import requests

url = "https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/connections/export/csv"

headers = {"X-API-Key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/connections/export/csv"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("X-API-Key", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```csharp
using RestSharp;

var client = new RestClient("https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/connections/export/csv");
var request = new RestRequest(Method.GET);
request.AddHeader("X-API-Key", "<apiKey>");
IRestResponse response = client.Execute(request);
```

## Export as JSON

Export the whole model as JSON which can be easily used as part of a build pipeline, script or automation. This also includes flows which the CSV export does not.

### Request

GET [https://api.icepanel.io/v1/landscapes/\{landscapeId}/versions/\{versionId}/model/objects/\{modelObjectId}/dependencies/export/json](https://api.icepanel.io/v1/landscapes/\{landscapeId}/versions/\{versionId}/model/objects/\{modelObjectId}/dependencies/export/json)

```curl
curl https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/objects/modelObjectId/dependencies/export/json \
     -H "X-API-Key: <apiKey>"
```

```typescript
import { IcePanelClient } from "@icepanel/sdk";

async function main() {
    const client = new IcePanelClient({
        apiKey: "YOUR_API_KEY_HERE",
    });
    await client.model.objects.export.dependenciesJson({
        landscapeId: "landscapeId",
        versionId: "versionId",
        modelObjectId: "modelObjectId",
    });
}
main();

```

```java
package com.example.usage;

import com.icepanel.IcePanelClient;
import com.icepanel.model.objects.types.ModelObjectDependenciesExportJsonRequest;

public class Example {
    public static void main(String[] args) {
        IcePanelClient client = IcePanelClient
            .builder()
            .apiKey("YOUR_API_KEY_HERE")
            .build();

        client.model().objects().export().dependenciesJson(
            ModelObjectDependenciesExportJsonRequest
                .builder()
                .landscapeId("landscapeId")
                .versionId("versionId")
                .modelObjectId("modelObjectId")
                .build()
        );
    }
}
```

```python
import requests

url = "https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/objects/modelObjectId/dependencies/export/json"

headers = {"X-API-Key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/objects/modelObjectId/dependencies/export/json"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("X-API-Key", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```csharp
using RestSharp;

var client = new RestClient("https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/objects/modelObjectId/dependencies/export/json");
var request = new RestRequest(Method.GET);
request.AddHeader("X-API-Key", "<apiKey>");
IRestResponse response = client.Execute(request);
```