---
title: "Start a history import"
method: POST
path: "/imports"
tags: ["Imports"]
---

# Start a history import

`POST /imports`

## Request

- Base URL: `https://api.ando.so/v1`
- URL: `https://api.ando.so/v1/imports`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Starts moving another chat tool's history into the workspace, or resumes the existing import for the same source workspace. Requires an API key with the imports:write scope owned by a workspace owner or admin.

## Request body

- CreateHistoryImportBody: Starts, or resumes, moving another chat tool's history into this workspace. One import exists per source workspace; calling this again returns it (reopening it if it was completed).
  - `source` 'buzz' | 'discord' | 'generic', required: The tool the history comes from. Use `generic` for a tool without its own value; the records are the same.
  - `source_workspace_id` string, required: Stable identifier of the source workspace, e.g. the Buzz relay host. Calling again with the same source and id resumes the same import, so for `generic` make it unique to the tool as well, such as the tool's host followed by its workspace id.
  - `source_workspace_name` string, nullable: Display name of the source workspace.

## Response `200`

The open import.

- HistoryImportResponse: History import response.
  - `data` HistoryImportResult, required: A history import.
    - `created_at` string, date-time, required: When the import was first started.
    - `import_id` string, required: Import identifier.
    - `source` 'buzz' | 'discord' | 'generic', required: The tool the history comes from.
    - `source_workspace_id` string, required: Stable identifier of the source workspace.
    - `started_by_member_id` string, required: Workspace member who owns the API key that started the import.
    - `status` 'open' | 'completed', required: Whether records can still be written.

## Other responses

- `400`: Bad request.
- `401`: Missing or invalid API key.
- `403`: Forbidden.
- `404`: Not found.
- `409`: Conflict.
- `429`: Rate limit or quota exceeded.
- `500`: Internal server error.

## Changes

- **2026-10-18** `aaceae49c08d`: 12 info
  - added the optional property `request_id` to the response with the `400` status
  - added the optional property `request_id` to the response with the `401` status
  - added the optional property `request_id` to the response with the `403` status
  - added the optional property `request_id` to the response with the `404` status
  - …8 more
- **2026-10-02** `94b3fa7bcf43`: 1 warning, 1 info
  - added the new `discord` enum value to the `data/source` response property for the response status `200`
  - added the new `discord` enum value to the request property `source`
- **2026-09-30** `bc6fa89707eb`: 1 warning, 1 info
  - added the new `generic` enum value to the `data/source` response property for the response status `200`
  - added the new `generic` enum value to the request property `source`
- **2026-09-29** `dbc7bd1e9aec`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ando/apis/ando-public-api/changes/imports/post.md)

---

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