---
title: "Import"
method: POST
path: "/landscapes/{landscapeId}/versions/{versionId}/import"
tags: ["Landscape"]
---

# Import

`POST /landscapes/{landscapeId}/versions/{versionId}/import`

Create a background job that imports a landscape from JSON format.

The `JSONSchema` can be accessed at `api.icepanel.io/v1/schemas/LandscapeImportData` for automations or using LLMs for generation.

## Path parameters

- `landscapeId` string, required
- `versionId` string, required

## Query parameters

- `prune` boolean

## Request body

- LandscapeImportData
  - `modelConnections` ModelConnectionImport[]
    - `description` string — Detailed description
    - `direction` 'outgoing' | 'bidirectional', required
    - `id` string, required
    - `labels` object
    - `links` ImportLink[]
      - `customName` string — Friendly name for the link set by the user
      - `id` string — Random 20 character identifier
      - `url` string, uri, required — Accessible link URL when not using a connector
    - `name` string, required
    - `originId` string, required — Model object that initiates the connection
    - `status` 'deprecated' | 'future' | 'live' | 'removed'
    - `tagIds` string[] — Tag IDs assigned to this model
    - `targetId` string, required — Model object that receives the message
    - `technologyIds` string[] — Technology IDs assigned to this model
    - `viaId` string — Model object that facilitates the connection, such as a Kafka topic, or RabbitMQ queue
  - `modelObjects` ModelObjectImport[]
    - `caption` string — Display description
    - `description` string — Detailed description
    - `external` boolean — Whether the model object is an external service
    - `groupIds` string[]
    - `icon` ImportIconNullable
      - `technologyId` string, required
    - `id` string, required
    - `labels` object
    - `links` ImportLink[]
      - `customName` string — Friendly name for the link set by the user
      - `id` string — Random 20 character identifier
      - `url` string, uri, required — Accessible link URL when not using a connector
    - `name` string, required
    - `parentId` string, nullable — Parent model object ID, must follow the IcePanel hierarchy. Domain: parent must be missing/null Actor/System: parent must be a domain Group: parent must be a domain or another group App/Store: parent must be a system Component: parent must be an app or store
    - `status` 'deprecated' | 'future' | 'live' | 'removed'
    - `tagIds` string[]
    - `teamIds` string[]
    - `technologyIds` string[]
    - `type` 'domain' | 'actor' | 'app' | 'component' | 'group' | 'store' | 'system', required
  - `namespace` string — The namespace of the import, used for seperate operations when using multiple import sources
  - `tagGroups` TagGroupImport[]
    - `icon` 'bug' | 'calendar-check' | 'calendar-times' | 'cloud' | 'cog' | 'database' | 'exclamation-triangle' | 'file' | 'globe' | 'laptop-code' | 'lightbulb' | 'lock' | 'microchip' | 'minus' | 'mobile' | 'network-wired' | 'plus' | 'poo' | 'robot' | 'rocket' | 'sack-dollar' | 'server' | 'sledding' | 'snowman' | 'star' | 'times' | 'toolbox' | 'trash' | 'users' | 'wifi', required
    - `id` string, required
    - `labels` object
    - `name` string, required
  - `tags` TagImport[]
    - `color` 'blue' | 'green' | 'yellow' | 'orange' | 'red' | 'beaver' | 'dark-blue' | 'purple' | 'pink' | 'white' | 'grey' | 'black', required
    - `groupId` string, required — Parent tag group ID
    - `id` string, required
    - `labels` object
    - `name` string, required

## Response `200`

OK

- object
  - `landscapeImport` LandscapeImport, required
    - `completedAt` string, date-time
    - `createdAt` string, date-time, required
    - `createdBy` 'user' | 'api-key' | 'notification-key' | 'service', required
    - `createdById` string, required
    - `deleteAt` string, date-time, required
    - `errors` LandscapeImportError[]
      - `code` string
      - `entityId` string — The id of the entity where the error occurred
      - `entityOriginalId` string — The not using the standard id format, this will be the original import identifier
      - `entityType` 'model-object' | 'model-connection' | 'tag' | 'tag-group'
      - `message` string, required
    - `id` string, required
    - `landscapeId` string, required
    - `prune` boolean — When enabled, entities that are missing from the import will be deleted.
    - `status` 'in-progress' | 'completed' | 'error', required
    - `versionId` string, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Unprocessable Entity
- `429` — Resource Exhausted
- `500` — Internal Server
- `503` — Service Unavailable

---

[API](https://skmtc.net/icepanel/apis/icepanel-api.md) · [All operations](https://skmtc.net/icepanel/apis/icepanel-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/icepanel/icepanel-api/revisions/2ebc2913a98a/schema)
