Bulk Import Students
This article walks through bulk-importing students from a CSV file into your main student list, with an optional step to also assign them to a class. If you want to import directly into a specific existing class, see Bulk Import Students into a Class instead.
Running the Import
From the dashboard, click the Students main-navigation option.

On the student list page, click the Import Students button in the header.

A modal will open. Fill in the form:
- File upload (required): the CSV file containing the students. Download a sample CSV file to see the expected format.
- Class (optional): if you select a class here, students will be added to your main student list and assigned to that class. Leave blank to import to the main student list only.

CSV Format
The first row must be a header row. Column names are case-insensitive. Required and optional columns:
| Column | Required? | Notes |
|---|---|---|
first_name |
Required | Student’s first name. |
last_name |
Required | Student’s last name. |
identifier |
Required | Student ID. See identifier rules below. |
email |
Optional | Used to match against existing student records (avoids duplicates). |
Identifier rules: if you want students to bubble in their own ID on the answer sheet, the identifier must be 10 digits or fewer and contain no letters. Identifiers that exceed 10 digits or contain letters are still allowed, but you’ll need to print sheets with the student data pre-filled rather than relying on bubble-in IDs.
Confirming the Import
After the file processes, you’ll see a review screen where you can verify each row before committing the import.

- Import Type — tells you what will happen for each row:
- Insert — the student doesn’t exist yet; a new record will be created.
- Update — the student already exists (matched by email); their record will be updated with the CSV data. Previous testing data is not affected.
- Action Menu — manage individual rows before committing:
- Edit — change any of the row’s details.
- Delete — remove the row from the import. Deletes only remove the import row; if the student already exists in your account, the existing record stays intact.
- Confirm Import — when everything looks correct, click this to complete the import.
NOTE: If a row matches a student you previously deleted, the import restores that student — along with their testing history — rather than creating a duplicate.
After the import completes, you’ll be redirected to the student list.
NOTE: Very large imports — thousands of rows — are processed in the background. You’re returned to your student list right away and students appear as they’re added, so you can safely leave the page while the import finishes.
Troubleshooting
I get “the import file is empty or could not be read.”
The CSV may be saved with line endings PaperScorer can’t parse, or the header row is missing. Re-save the file as CSV (UTF-8) from your spreadsheet program and make sure the first row contains the column names.
Required column missing.
Confirm the first row of the CSV has all required columns: first_name , last_name , identifier . Spelling and underscores matter; spaces are not allowed in column names.
I imported but the students weren’t added to a class.
Check the Class field on the import modal. If left blank, students go to the main list only. You can add them to a class afterwards using Adding a Student to a Class.