Sales engagement
Validate a list exported from Dux-Soup
A guide to checking the email addresses in a prospect list you have taken out of Dux-Soup as a CSV file, before you load it into the tool you email from.
Why the data matters in Dux-Soup
A list exported from Dux-Soup is only as clean as the contact details collected along the way: many rows have an email that was typed by the prospect, guessed or inherited from an old profile. Loading that file as it is into an email tool makes the first send bounce on throwaway domains and shared inboxes. Checking the file you own, row by row, before it goes anywhere else fixes that without touching the tool it came from.
What LookValid checks
| Product | What it does here | Credits |
|---|---|---|
| Email Domain Check | Checks the domain of each email in your exported file for mail servers, SPF and DMARC and returns a good, risky or undeliverable signal. It cannot confirm that a mailbox exists. Marks rows on disposable domains and role addresses such as sales@, so you can drop or separate them in the file. | 1 credit per address checked |
| Link Safety Check | Checks the website domain in a row against a published list of reported malicious domains, which is not proof that an unlisted site is safe. | 1 credit per URL checked (a check that cannot run is free) |
| Domain Age | Returns the registration date and age in days of a company domain in a row, a quick way to spot a domain registered last week. | 2 credits per registered domain (unregistered domains are free) |
Connect it in four steps
- Make a LookValid account and add a key from the API keys area of the dashboard, then take your prospect data out of Dux-Soup as a CSV file on your computer. Its Funnel Flow view lets you pick a campaign and timeframe and copy all the data into a document you can save as a CSV file; open that CSV in Excel with the text import so the columns split correctly.
- Put the key in the LOOKVALID_API_KEY environment variable in the terminal session that runs the script, so it is never written into the exported file or the script.
- The script reads the exported file one row at a time and calls the email domain check endpoint with each email; a found:false row is copied out unchanged for review, and an error answer stops the run.
- It adds email_signal, disposable_domain and role_address as new columns in a copy of the file, which you filter before loading the list anywhere else.
A Python script on your own computer that reads the exported CSV file row by row and writes a checked copy beside it. The call is POST https://YOUR_API_HOST/v1/email-domain-check and costs 1 credit per address checked.
import json
import os
import urllib.error
import urllib.request
API_URL = "https://YOUR_API_HOST/v1/email-domain-check"
def check_dux_export_email(value):
request = urllib.request.Request(
API_URL,
data=json.dumps({
"email": value,
}).encode(),
headers={
"Authorization": "Bearer " + os.environ["LOOKVALID_API_KEY"],
"Content-Type": "application/json",
},
method="POST",
)
try:
with urllib.request.urlopen(request, timeout=30) as response:
result = json.load(response)
except urllib.error.HTTPError as error:
failure = json.load(error)["error"]
raise RuntimeError(failure["code"] + ": " + failure["fix"])
if not result["found"]:
return None
return {
"email_signal": result.get("data", {}).get("deliverability_signal"),
"disposable_domain": result.get("data", {}).get("disposable"),
"role_address": result.get("data", {}).get("role_account"),
}
| Response field | Goes into |
|---|---|
| data.deliverability_signal | email_signal |
| data.disposable | disposable_domain |
| data.role_account | role_address |
The recipe returns nothing when the lookup finds nothing, which costs no credits for this product, and stops with the error code and fix on a failed request.
Without code
If you do not want to run a script, upload the exported file to a spreadsheet or an automation platform that can loop over rows, and add a generic HTTP request step per row that posts the email to the email domain check endpoint. Write the signal and flags into new columns of the sheet. No dedicated app is needed, and nothing connects back to the tool the file came from.
Questions
How much does it cost to check a whole export?
Each row is one check at the credit price on the pricing page. The pricing page figure times your row count is the ceiling.
Does LookValid connect to Dux-Soup itself?
No. This guide only works on a file you have already exported and own. Nothing in it logs into or drives the tool.
What does the check not tell me?
Whether a given mailbox exists. It reads domain level facts only: mail servers, SPF, DMARC, disposable, free and role flags.
Sources
- Dux-Soup knowledge base: Profile Data and Export https://support.dux-soup.com/category/789-profile-data-export, read 2026-10-18
- Dux-Soup knowledge base: Download data from Funnel Flow https://support.dux-soup.com/article/239-download-data-from-funnel-flow, read 2026-10-18
- Dux-Soup knowledge base: Importing CSV into Excel https://support.dux-soup.com/article/127-importing-csv-into-excel, read 2026-10-18
- LookValid API reference: Email Domain Check https://lookvalid.com/docs/api/email-domain-check, read 2026-10-18
LookValid is run by Meralume Labs. It is not connected to, endorsed by or a partner of any company or product named on this page, and every product name belongs to its owner.
Related pages
LookValid bills every lookup in credits from one shared balance, so the same key works for each check above.
See Email Domain Check