---
title: "Start an import (clients, services, appointments with past history, products, client notes, product purchases, loyalty points, gift voucher balances, package balances, account credit, or deposits paid in the previous system linked to their appointments). Send the whole CSV, or the first part with final: false and add parts"
method: POST
path: "/api/v1/imports"
---

# Start an import (clients, services, appointments with past history, products, client notes, product purchases, loyalty points, gift voucher balances, package balances, account credit, or deposits paid in the previous system linked to their appointments). Send the whole CSV, or the first part with final: false and add parts

`POST /api/v1/imports`

## Request

- Base URL: `http://127.0.0.1:4310`
- URL: `http://127.0.0.1:4310/api/v1/imports`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `sfb_session`

## Request body

- object
  - `kind` 'clients' | 'services' | 'appointments' | 'products' | 'client_notes' | 'product_purchases' | 'loyalty_points' | 'gift_card_balances' | 'package_balances' | 'account_credit' | 'booking_deposits', required
  - `filename` string
  - `text` string: CSV text (UTF-8). Use data_base64 for raw bytes.
  - `data_base64` string: Raw file bytes, base64. At most 192 KiB per part.
  - `final` boolean
  - `idempotency_key` string

## Response `201`

OK

- object

## Other responses

- `400`: Validation error
- `401`: Unauthenticated
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict or invalid state

## Changes

- **2026-10-19** `eb8bf8256417`: 1 info
  - added the new `booking_deposits` enum value to the request property `kind`

[Operation history](https://skmtc.dev/scalingfirm/apis/tsf-booking-api/changes/api/v1/imports/post.md)

---

[API](https://skmtc.dev/scalingfirm/apis/tsf-booking-api.md) · [All operations](https://skmtc.dev/scalingfirm/apis/tsf-booking-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scalingfirm/apis/tsf-booking-api/revisions/81704199cd37?raw)
