---
title: "Start an import"
method: POST
path: "/import/runs"
tags: ["Import"]
---

# Start an import

`POST /import/runs`

## Request

- Base URL: `https://cloud.kaneo.app/api`
- URL: `https://cloud.kaneo.app/api/import/runs`
- Auth: HTTP bearer

Import the selected source projects into the workspace as new Kaneo projects. The import runs in the background; poll getImportRun for progress. The credentials are held in memory only while the import runs; they are never stored, logged, or returned. Imported tasks do not send notifications or trigger integrations.

## Request body

- object
  - `workspaceId` string, required
  - `connection` union, required: Where to import from and how to sign in. Credentials are used only for this request and the import it starts; they are never stored, logged, or returned.
    - PlankaImportConnection
      - `source` 'planka', required
      - `url` string, required: Address of the PLANKA instance.
      - `apiKey` string: A PLANKA API key. Send it, or username and password. Used only for this import and never stored or logged.
      - `username` string: Username or email of a PLANKA account, used with password when no API key is sent.
      - `password` string: Password of that PLANKA account. Used only for this import and never stored or logged.
    - PlaneImportConnection
      - `source` 'plane', required
      - `url` string, required: Address of the Plane instance, e.g. https://app.plane.so for Plane Cloud.
      - `apiKey` string, required: A Plane personal access token. Used only for this import and never stored or logged.
      - `workspaceSlug` string: Slug of the Plane workspace to read. Optional when the URL already names it.
    - LinearImportConnection
      - `source` 'linear', required
      - `apiKey` string, required: A Linear personal API key. Used only for this import and never stored or logged.
    - JiraImportConnection
      - `source` 'jira', required
      - `url` string, required: Address of the Jira site, e.g. https://your-site.atlassian.net for Jira Cloud, or your own domain for Jira Data Center.
      - `email` string: Email of the Atlassian account the API token belongs to. Required for Jira Cloud; leave it out for Jira Data Center.
      - `apiToken` string, required: A Jira Cloud API token, sent with email, or a Jira Data Center personal access token, sent without email. Used only for this import and never stored or logged.
    - TrelloImportConnection
      - `source` 'trello', required
      - `token` string, required: A Trello token authorized for this Kaneo instance. Used only for this import and never stored or logged.
      - `apiKey` string: Trello API key, a public app identifier. Defaults to the server's TRELLO_API_KEY.
    - KaneoImportConnection
      - `source` 'kaneo', required
      - `url` string, required: Address of the Kaneo instance to import from.
      - `apiKey` string, required: An API key from that Kaneo instance. Used only for this import and never stored or logged.
  - `projectIds` string[], required: Source project IDs from listImportSourceProjects, imported in this order.
  - `includeComments` boolean: Import task comments too. Defaults to true.

## Response `202`

The import started

- ImportRunEnvelope
  - `run` ImportRun, required
    - `id` string, required
    - `workspaceId` string, required
    - `source` 'planka' | 'plane' | 'linear' | 'jira' | 'trello' | 'kaneo', required
    - `status` 'running' | 'completed' | 'failed', required: completed once every selected project was attempted, even if some failed; check each project's status. failed means the run itself stopped.
    - `includeComments` boolean, required
    - `message` string, nullable, required: Latest progress line while the run is running.
    - `error` string, nullable, required
    - `projects` ImportRunProject[], required
      - `sourceId` string, required
      - `name` string, required
      - `status` 'pending' | 'running' | 'completed' | 'failed', required
      - `projectId` string, nullable, required: The Kaneo project created by the import, once completed.
      - `projectSlug` string, nullable, required
      - `counts` ImportCounts, required
        - `columns` integer, required
        - `tasks` integer, required
        - `labels` integer, required
        - `comments` integer, required
        - `assignees` integer, required: Tasks that were assigned to a workspace member.
        - `relations` integer, required
      - `warnings` string[], required
      - `error` string, nullable, required
    - `createdAt` string, date-time, required
    - `finishedAt` string, date-time, nullable, required

## Other responses

- `400`: Invalid body, credentials the source rejected, a destination this server may not reach, or a selected project the source no longer lists
- `401`: Missing or invalid credentials
- `402`: Workspace plan has expired
- `403`: Missing workspace:manage_settings or project:create permission
- `404`: Workspace not found
- `409`: Another import is already running in this workspace
- `429`: This server is already running its maximum number of imports, or the API key exceeded its rate limit
- `502`: The source could not be reached or answered with an error
- `503`: The server is restarting and not starting new imports

## Changes

- **2026-10-11** `269feaac2cc4`: 1 info
  - endpoint added
- **2026-10-11** `4cb086e51a1a`: 1 breaking
  - api path removed without deprecation
- **2026-10-11** `f701bf7cf2d9`: 1 warning, 2 info
  - added the new `jira` enum value to the `run/source` response property for the response status `202`
  - added `jira` discriminator mapping keys to the `connection` request property
  - added `#/components/schemas/JiraImportConnection` to the `connection` request property `oneOf` list
- **2026-10-11** `92653b5b7861`: 1 info
  - added the non-success response with the status `503`
- **2026-10-11** `ec2dabb1d0cc`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usekaneo/apis/kaneo-api/changes/import/runs/post.md)

---

[API](https://skmtc.dev/usekaneo/apis/kaneo-api.md) - [All operations](https://skmtc.dev/usekaneo/apis/kaneo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usekaneo/apis/kaneo-api/revisions/93f78789100c?raw)
