Analytics and product tools

Check email domains, phone numbers and domain age in FullStory

Check the email domain of identified users before you build segments, so throwaway and role addresses do not skew who you replay.

Why the data matters in FullStory

Session replay is most useful when the user behind a session is a real customer you can segment. Test accounts, throwaway signups and shared role mailboxes blur those segments, and a replay of a person who left after a minute with a fake address teaches the team nothing about real churn.

What LookValid checks

LookValid checks for FullStory
ProductWhat it does hereCredits
Email Domain CheckReads the domain of a user email: mail records, SPF, DMARC, throwaway domains, free providers and role mailboxes. It never contacts the mail server.1 credit per address checked
Phone Numbering-Plan ValidationChecks a user phone attribute against its country numbering plan and returns E.164.1 credit per valid number
Domain AgeReturns registration date and age in days for a company domain, useful before you treat a signup as a business account.2 credits per registered domain (unregistered domains are free)

Connect it in four steps

  1. Create a LookValid account and an API key from the dashboard, which a person does once.
  2. Put the key in LOOKVALID_API_KEY in the environment of the job that runs the script, and keep the exported user list in a folder with limited access.
  3. Run the script per email; null means found was false, so leave the user unlabeled, and a failed call stops with the error code and fix.
  4. Send the signal, free provider and role mailbox values to FullStory with its Server API V2 Users endpoint, or the batch import endpoint for a long list, using an API key you created in FullStory; the email you send is the same field FullStory uses to look up users and sessions.

A shell script that reads a list of user emails exported from your product, prints a result for each, and feeds the labels to the Server API Users endpoint. The call is POST https://YOUR_API_HOST/v1/email-domain-check and costs 1 credit per address checked.

check_user_email.sh
#!/bin/sh
# Usage: check_user_email.sh <value>
set -eu
jq -n --arg value "$1" '{"email": $value}' \
  | curl --fail-with-body -sS -X POST "https://YOUR_API_HOST/v1/email-domain-check" \
      -H "Authorization: Bearer $LOOKVALID_API_KEY" \
      -H "Content-Type: application/json" \
      -d @- \
  | jq 'if .error then ((.error.code + ": " + .error.fix + "\n") | halt_error(1)) elif .found then {"email_signal": .data.deliverability_signal, "free_provider": .data.free_provider, "role_mailbox": .data.role_account} else null end'
Where each response field goes in FullStory
Response fieldGoes into
data.deliverability_signalemail_signal
data.free_providerfree_provider
data.role_accountrole_mailbox

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

Without a script, an automation platform's generic HTTP request step can read each new user row from your database or sheet, call LookValid and then call FullStory's Users endpoint with the labels. No dedicated LookValid app is needed.

REST and MCPOne shared credit balance

Questions

What does it cost in credits?

The pricing page lists the credits for the email domain check. You pay once per user you label.

What does the check not do?

It reads domain level signals only. It cannot prove that a user's mailbox exists or that the user is a real person.

Where does the key go?

In an environment variable of the job that runs the script. Do not paste it into a shared document.

Sources

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.

LookValid bills every lookup in credits from one shared balance, so the same key works for each check above.

See Email Domain Check