---
title: "Validate CSV File"
method: POST
path: "/internal/api/clients/bulk-import/validate"
tags: ["CLIENT", "Bulk Import"]
---

# Validate CSV File

`POST /internal/api/clients/bulk-import/validate`

## Request

- Base URL: `https://api.signalshq.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.signalshq.io/internal/api/clients/bulk-import/validate`
- Auth: OAuth 2
  - Password
  - Token URL: `/auth/login`

Validate a CSV file without importing. Useful for checking data before actual import.

## Request body `multipart/form-data`

- BodyValidateCsvFileInternalApiClientsBulkImportValidatePost
  - `file` string, binary, required: CSV file to validate

## Response `200`

Successful Response

- BulkImportResponse: Schema for bulk import response
  - `total` integer, required: Total number of rows processed
  - `successful` integer, required: Number of successfully imported clients
  - `failed` integer, required: Number of failed imports
  - `errors` ImportError[]: List of import errors
    - `row` integer, required: Row number where error occurred (1-based, excluding header)
    - `external_id` string, required: External ID of the client that failed
    - `error` string, required: Error message
  - `imported_clients` ImportedClientInfo[]: List of successfully imported clients
    - `id` string, nullable: Client ID (UUID as string)
    - `external_id` string, nullable: External client ID
    - `full_name` string, required: Client full name
    - `readable_id` string, nullable: Human-readable client ID
    - `status` string, nullable: Import status (for dry run)

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/signalshq/apis/signals-api.md) - [All operations](https://skmtc.dev/signalshq/apis/signals-api/llms.txt) - [OpenAPI document](https://skmtc.dev/signalshq/apis/signals-api/revisions/2c22af3b5576?raw)
