Support and social
Check email domains, links and website contacts in Sprout Social
Check the email addresses attached to the people and leads you work with in Sprout Social, and see which sit on a free mailbox, a throwaway domain or a role address.
Why the data matters in Sprout Social
In Sprout Social the people on the other end of a conversation are mostly handles, and an email address only appears when someone hands it over in a message, a form or a lead capture. Those addresses are typed by hand in a hurry and often point to disposable domains or shared inboxes. If they flow on into a follow-up campaign or a customer record unchecked, the team reports on contacts that cannot be reached.
What LookValid checks
| Product | What it does here | Credits |
|---|---|---|
| Email Domain Check | Checks the domain behind an address for mail servers, SPF and DMARC records and returns a good, risky or undeliverable signal. It never contacts the mail server, so it cannot confirm that a mailbox exists. Flags disposable domains, free mailbox providers and role addresses such as info@, so a team can tell a personal lead from a shared inbox. | 1 credit per address checked |
| Link Safety Check | Checks the domain of a link a customer posts against a published list of reported malicious domains. A link on no list is not proof it is safe. | 1 credit per URL checked (a check that cannot run is free) |
| Website Contacts Scraper | Reads the public pages of a company domain and returns the emails, phone numbers and social profile links it publishes, for enriching a lead that gave only a website. | 10 credits per domain with contacts found |
Connect it in four steps
- Register for LookValid and add a key in the dashboard under API keys.
- Set the key as the LOOKVALID_API_KEY environment variable of the job that runs the script, beside the Sprout API token it uses (created under Settings, Global Features, API in Sprout; the account needs a plan with API access), and keep both out of the files the script reads.
- For each address call the email domain check endpoint; a found:false row goes to a review list, and an error answer stops the run with the returned code and fix.
- Write email_signal, is_disposable_domain and is_role_address as new columns beside each lead, then filter the leads you hand to the follow-up campaign on them.
A Python script you run on a schedule that reads message data from the Sprout API Messages endpoint, or leads you export from your own reporting, and checks each email address it finds. 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_social_lead_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"),
"is_disposable_domain": result.get("data", {}).get("disposable"),
"is_role_address": result.get("data", {}).get("role_account"),
}
| Response field | Goes into |
|---|---|
| data.deliverability_signal | email_signal |
| data.disposable | is_disposable_domain |
| data.role_account | is_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
To avoid writing a script, use an automation platform that can read the places you collect leads, and add a generic HTTP request step that posts each address to the email domain check endpoint. Map the signal and the disposable flag back to the record that holds the lead. The step needs no dedicated app, only the endpoint URL, your key in a header and a JSON body.
Questions
What does checking one address cost in credits?
The amount per check is on the pricing page, and it is the same whether the lead came from a message or a form.
Does a good signal mean the mailbox exists?
No. The check is at domain level: mail servers, SPF, DMARC and the disposable, free and role flags. It never talks to the mail server, so it cannot confirm a particular mailbox.
Where is the key stored for a scheduled script?
In the environment of the machine or scheduler that runs it, read at run time as LOOKVALID_API_KEY, apart from the Sprout API token and never written into the lead files.
Sources
- Sprout API documentation https://api.sproutsocial.com/docs/, 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