Skip to main content
POST
Validate CSV

Endpoint

Overview

Content-Type: multipart/form-data. Response: JSON with ok: true or ok: false plus error details (missingCsvColumns, etc.). Uses HTTP 200 even when validation fails β€” check ok. For mappings with target === user_event, the API also validates each data row after headers pass (mapping, enum values, required identifiers) and fails the preflight with ok: false. For mappings with target === transaction, the API scans the data rows (up to 50,000) and returns soft warnings: the preflight still answers ok: true and the import is allowed. Entity targets validate headers only.

Authentication

Form fields

Success β€” headers only (entity_*)

Success with warnings β€” transactions

Row problems never block the import; they are grouped by problem, so each entry reports the first affected row and how many rows share it.
Warning codes: INVALID_ENUM_VALUE, AMOUNT_UNPARSEABLE, TYPE_OTHER, MISSING_REQUIRED_AFTER_MAP, DATE_UNPARSEABLE, DATE_KIND_AMBIGUOUS, MASKED_CARD_UNPARSEABLE, SCIENTIFIC_NOTATION.

Success β€” user events (all rows valid)

Row validation failure β€” user events

When one or more rows fail mapping validation:
Use this preflight before import. With batchErrorHandling: continue_collect_errors on Import user events, invalid rows are skipped and recorded in the job failures CSV; with rollback_all, the import request returns 400. See also: Bulk imports overview.