---
title: CSV importer
description: Bulk import participants and results from a CSV file
order: 3
---

# CSV importer

Import participants and finish times from a **CSV file** when migrating from another system or receiving custom timing exports.

**Path:** Open competition → **Importer**

## Before you import

- Back up existing data — the importer can **delete all participants** (only when no carts exist)
- Prepare CSV with required columns matching DistantRace field names
- Resolve duplicate emails and bib numbers beforehand

## Import steps

1. Competition → Importer
2. Upload CSV file
3. Wait for the background job — progress shows on the same page
4. Review participants on the start list and results on the results page

## Participants and results

The importer can load both registration data and finish times in one file, depending on column mapping.

## Three import tools — do not mix them up

| Tool | Path | Use for |
|------|------|---------|
| **CSV importer** | Competition → **Importer** | Bulk participant + result migration from another system (one CSV upload) |
| **Timing file import** | Competition → Results → **Import file** | Race-day timing provider exports (Race Result, MyLaps, etc.) |
| **Results URL sync** | Competition → Results → **URL sync** | Automatic pull from a timing provider URL on a schedule |

The CSV importer can **delete all participants** when no carts exist — back up first. Timing imports never replace the whole start list.

## Alternatives

- [Importing timing results](../running-events/importing-timing-results.md) — timing provider file formats (Race Result, MyLaps, etc.)
- [Results URL sync](../running-events/results-url-sync.md) — automatic pull from timing URL

Do **not** use the CSV importer for live timing feeds — use file or URL import instead.

## Related

- [Merging duplicate participants](merging-duplicate-participants.md)
