Upload a CSV, XLS, or XLSX (multipart/form-data, field file, max 10 MB).
file, max 10 MB). The server parses the file, auto-detects whether it contains people or companies, and auto-maps columns for both data shapes (so the user can override detection in the UI). No list is created yet — call PUT /api/lists/create-with-import with the returned csvText + confirmed dataType + personMapping/companyMapping to actually create the list and import rows.
/api/lists/create-with-import with other verbs. See the sibling page for related operations on the same resource.Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Multipart/form-data. The preview step does not accept JSON — the confirm step (PUT) does.
CSV/XLS/XLSX file. Upload via multipart/form-data under field name file.
Preview generated. Show the suggested mapping + data type to the user, then call the PUT to commit.
Headers detected in the file.
Detected or declared data shape. people imports create list_rows plus inferred list_company_rows; companies imports create list_company_rows only.
people, companies Confidence of the auto-detected data type.
high, medium, low Human-readable explanation of the detected data type.
Person-field mapping (only meaningful when dataType === 'people').
Company-field mapping (applies to both data types — populated for people imports too so the server can extract embedded company data).
Backward-compatibility alias. Equals companyMapping when dataType === 'companies', else personMapping.
First 5 rows for UI preview.
0 <= x <= 9007199254740991Normalized CSV text. Pass this back verbatim in PUT /api/lists/create-with-import.
Original uploaded file name.