Importing Domains from CSV
You can bulk-import domains into Tidy Names by uploading a CSV file. This is useful when you are migrating from another tool, consolidating spreadsheets, or adding domains from registrars that do not yet have a direct connection.
CSV import is available on all plans (Solo, Studio, Scale, and Enterprise).
Limits
| Constraint | Limit |
|---|---|
| Maximum rows per file | 500 |
| Maximum file size | 5 MB |
| Import rate limit | 5 imports per 60 seconds per organisation |
| Domain quota | Your plan's domain limit applies |
If your file has more than 500 rows, split it into smaller files and import them one at a time.
Preparing Your CSV
Your file must be a standard .csv with a header row. The only required column is one that contains domain names - all other columns are optional.
Supported columns
| Data | Example column names recognised |
|---|---|
| Domain name (required) | domain, domain name, hostname, fqdn, url, name |
| Registrar | registrar, provider, registrar name |
| Expiry date | expires, expiry, expiry_date, expiration, exp date |
| Auto-renew | auto renew, auto_renew, autorenew, auto-renew |
| Renewal cost | renewal cost, cost, price, renewal price |
| Currency | currency |
| Status | status, state |
| Nameservers | nameservers, nameserver, name servers, ns |
| Registrant | registrant, owner, registrant name, contact |
Column names are matched automatically - capitalisation, underscores, hyphens, and spacing do not matter. Tidy Names checks over 30 common aliases, so most exports from other tools will map correctly without any changes.
Date formats
Expiry dates are parsed flexibly. All of the following formats are accepted:
- ISO 8601 -
2026-12-31,2026-12-31T00:00:00Z - US format -
12/31/2026,12-31-2026 - European format -
31.12.2026
Status values
If you include a status column, use one of these values: active, expiring, expired, transferred, or unknown. If no status is provided, Tidy Names calculates it automatically from the expiry date.
Example CSV
domain,registrar,expiry_date,auto_renew,status
example.com,Cloudflare,2027-03-15,yes,active
shop.example.co.uk,GoDaddy,2026-08-01,no,expiring
internal.dev,Porkbun,2026-12-31,yes,activeImporting Step by Step
Step 1 - Open the import wizard
- Go to Domains in the sidebar
- Click Add
- Select Import from CSV
Step 2 - Upload your file
- Drag and drop your CSV file onto the upload area, or click to browse for a file
- Tidy Names parses the file immediately and auto-detects your columns
If there is a problem with the file (too large, no header row, no domain column found, or more than 500 rows), an error message will explain what to fix.
Step 3 - Preview and confirm
After the file is parsed you will see:
- Column mapping - badges showing which CSV columns were matched to which fields
- Row-by-row preview - a table listing every row with its parsed data
- Validation status for each row: Ready (green), Duplicate (amber), or Error (red)
- Summary counts at the top showing how many rows are ready, duplicates, and errors
Review the preview, then click Import to start the import.
Step 4 - Results
After the import completes you will see a summary:
- Number of domains successfully imported
- Number of duplicates skipped
- Number of rows skipped due to errors
Step 5 - Enrich (optional)
On the results screen you can click Enrich to look up WHOIS registration data, expiry dates, nameservers, and DNS records for every imported domain. Enrichment runs in the background and a progress bar shows how many domains have been processed.
If you skip this step, you can always look up individual domains later from the domain detail page.
How Duplicates Are Handled
- Within the CSV: If the same domain appears more than once in your file, only the first occurrence is imported.
- Within your organisation: Domains that already exist in your Tidy Names account are skipped. They will appear as "Duplicate" in the preview.
No existing data is overwritten by an import.
Domain Quota
Your plan determines how many domains you can have in total. If importing the CSV would exceed your limit, the import will be rejected and a message will tell you how many more domains you can add. Upgrade your plan or remove unused domains to free up space.
Troubleshooting
"Could not find a domain name column"
Your CSV header row does not contain a recognised column name for domain names. Rename the column to domain, domain name, hostname, or name and try again.
"CSV has N rows. Maximum is 500."
Split your file into batches of 500 rows or fewer and import each batch separately.
"File is too large. Maximum size is 5 MB."
Remove unnecessary columns or rows to reduce the file size, or split into smaller files.
"Domain limit reached"
Your organisation has reached the domain limit for your current plan. Upgrade your plan or remove domains you no longer need.
Rows showing "Invalid domain" errors
Check that the domain names are valid (e.g. example.com, not http://example.com/page). URLs, IP addresses, and incomplete names are not accepted.
Dates not being recognised
Make sure dates use one of the supported formats: YYYY-MM-DD, MM/DD/YYYY, or DD.MM.YYYY. Text dates like "March 15, 2027" are not supported.
Next Steps
- Inventory - browse and filter your imported domains
- Registrar Connections - set up automatic syncing instead of CSV import
- Tags - organise your domains after importing