---
title: "Finalize a chunked instance import session"
method: POST
path: "/cloud/import/sessions/{sessionId}/finalize"
tags: ["migration"]
---

# Finalize a chunked instance import session

`POST /cloud/import/sessions/{sessionId}/finalize`

## Request

- Base URL: `https://eu.bisibility.com/api/v1`
- URL: `https://eu.bisibility.com/api/v1/cloud/import/sessions/{sessionId}/finalize`
- Auth: HTTP bearer

## Path parameters

- `sessionId` string, required

## Headers

- `Bisibility-API-Version` 'v1'
- `X-Bisibility-Source` 'sdk' | 'cli' | 'mcp'

## Request body

- object

## Response `200`

Import session finalized

- CloudImportFinalizeResponse
  - `counts` CloudImportCounts, required
  - `job_id` string, required
  - `state` 'done', required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `404`: Import session not found
- `409`: Conflict; Unsupported API version
- `413`: Payload too large
- `419`: Migration token invalid or expired
- `423`: Project read-only
- `429`: Rate limited
- `500`: Import failed

## Changes

- **2026-10-19** `a6e1ec0dec82`: 1 breaking, 8 info
  - removed the media type `application/json` for the response with the status `409`
  - media type `application/json` was changed to a more specific media type `application/problem+json` for the response status `400`
  - media type `application/json` was changed to a more specific media type `application/problem+json` for the response status `401`
  - media type `application/json` was changed to a more specific media type `application/problem+json` for the response status `404`
  - …5 more

[Operation history](https://skmtc.dev/bisibility/apis/bisibility-public-api/changes/cloud/import/sessions/:sessionId/finalize/post.md)

---

[API](https://skmtc.dev/bisibility/apis/bisibility-public-api.md) · [All operations](https://skmtc.dev/bisibility/apis/bisibility-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bisibility/apis/bisibility-public-api/revisions/a6e1ec0dec82?raw)
