The Amplitude Cohort CSV Format Explained (And Why Yours Is Probably Wrong)
Published 2026-05-08
Amplitude’s cohort upload is deceptively simple but has strict requirements that cause silent failures if you get them wrong.
What Amplitude expects
For a CSV cohort upload (Audiences → Cohorts → Import CSV), Amplitude wants a file with:
- Exactly one column. No header row, or a header row with the column named exactly user_id or amplitude_id.
- One user identifier per row. No commas, no whitespace, no blank rows.
- Consistent ID type. Either all rows are user_id values, or all are amplitude_id values — you can’t mix them.
- Integers for amplitude_id, strings for user_id. If your user_id column has non-integer values mixed with integers, Amplitude will accept the upload but silently drop the non-matching rows.
- No duplicates. Amplitude deduplicates on its end, but duplicate rows cause upload warnings that can look like errors.
Why cohort uploads fail silently
Amplitude doesn’t reject badly formatted cohort CSVs — it processes them and shows the cohort as created but with 0 or fewer users than expected. Common failure modes:
- You exported a CRM segment with 5 columns and forgot to drop the other 4 — Amplitude reads the first column only and your user IDs are in column 3
- Your user_id column has leading/trailing spaces — Amplitude doesn’t match them to registered users
- You mixed amplitude_id and user_id in the same file — Amplitude uses one type to look up users, the other type fails silently
The fix
csvtocsv.com/csv-to-amplitude-cohort takes any CSV, lets you pick which column contains your user identifier, strips blanks and duplicates, and outputs a single-column file in the exact format Amplitude expects. Free preview (no signup); $9 for 10 full downloads.