Home / Role Based Email Detection: Flag It, Then Decide What to Do
Role Based Email Detection: Flag It, Then Decide What to Do
Published 2026-10-13
Some addresses belong to a person. Others belong to a job: admin@, info@, the shared inbox nobody really owns. Role based email detection tells you which one you are looking at.
Getting the flag is the easy part. Deciding what to do with it is harder, and the right answer depends on where the address came from. This page covers how ContactLint detects role addresses, then gives a plain policy for signup forms, B2B leads, CRM cleanup, and AI agents.
Want to try it first? Get a free API key. You get 100 checks per month, no card required.
What counts as a role based email address
A role address points to a function or a team, not one named person. Whoever reads it today may not be reading it next month. Several people might read it at once.
The examples ContactLint gives are admin@ and info@.
A role address is not a fake address. Plenty of them are real inboxes that someone checks. That is why blocking them all usually costs you more than it saves.
How ContactLint detects role addresses
ContactLint is an email and phone validation API. Role detection is one part of the email check. You send one address and get one result back.
What the email check covers
Each email check looks at: - Practical RFC syntax - MX and A records, looked up through Cloudflare DNS-over-HTTPS - Disposable domains, using the disposable-email-domains list - Role addresses such as admin@ and info@ - Whether the address uses a free mail provider
What it does not do
ContactLint never opens an SMTP connection to the mailbox, so it cannot tell you whether one specific inbox is live. What it tells you is whether the domain is set up to receive mail and what kind of address you have. For role addresses, that is usually enough to make the call.
Example request
curl -X POST https://contactlint.com/v1/email/validate \
-H "Authorization: Bearer YOUR_KEY" \
-H "content-type: application/json" \
-d '{"email":"someone@example.com"}'
You can also send your key as an x-api-key header. The OpenAPI 3.1 spec lives at https://contactlint.com/openapi.json.
What to do with a role address, by use case
A role flag means something different on a signup form than it does in a five-year-old CRM. Use this table as a starting policy and adjust it to fit your business.
| Use case | What a role address usually means here | Suggested action | What to avoid |
|---|---|---|---|
| Signup form | A person signing up with a shared or work inbox | Accept, then ask for a personal address or a name | Hard blocking real users |
| B2B lead form | A real company, but no named contact yet | Route to a person who can find the right contact | Adding it to a one-to-one sales sequence |
| CRM cleanup | A shared inbox sitting where a contact should be | Tag it as a shared inbox, keep the company record | Deleting the record outright |
| AI agent outreach | The agent found a contact, but not a person | Pause and ask, or look for a named contact first | Sending automated messages to a shared inbox |
Signup forms
Here, a role address usually means someone typed whatever inbox they had open. Maybe their work inbox. Maybe one they share with a team.
Let them in. On the next screen, ask for a personal address, or at least a name. If your product really does need one named person per account, a block can make sense. Just tell the user why.
B2B lead forms
An info@ address at a real company domain is still a lead. It lands in a shared inbox first, that's all.
Read it as a company signal, not a contact signal. Hand it to someone on your team who can track down the right buyer. Keep it out of automated sequences written for one reader, because those land awkwardly in a shared inbox.
CRM cleanup
Old CRMs fill up with role addresses. Somebody typed info@ because it was the only address on the company website.
Keep these records. The company is still worth having. Tag the address as a shared inbox, keep the account, and flag it so someone can add a named contact. Pace your calls to stay under the rate limit covered below.
AI agents and automated outreach
Agents are good at finding addresses and bad at telling a person from a mailbox. So give the agent the check and a rule to follow.
The agent can call /v1/email/validate directly. ContactLint also runs an MCP server: point any MCP client that supports streamable HTTP at https://contactlint.com/mcp with the header Authorization: Bearer YOUR_KEY. The tools are validate_email and validate_phone. Each tool call uses one check.
A simple rule: if the address is a role address, don't send. Ask the user, or keep looking for a named contact.
A simple role address policy in code
This sketch turns the table into one function. Rename the action strings to match your app.
// Call the email check. Returns the parsed response, or null on error.
async function checkEmail(email) {
const res = await fetch("https://contactlint.com/v1/email/validate", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_KEY",
"content-type": "application/json"
},
body: JSON.stringify({ email })
});
if (!res.ok) return null; // 400, 401, 402, 429: retry or review
return res.json();
}
// isRole: the role address flag from the response.
// See https://contactlint.com/openapi.json for the field name.
function roleAction(isRole, useCase) {
if (!isRole) return "accept";
switch (useCase) {
case "signup": return "accept_and_ask_for_personal";
case "b2b_lead": return "route_to_account_team";
case "crm_cleanup": return "tag_shared_inbox";
case "agent": return "pause_and_ask";
default: return "review";
}
}
Keep the policy in one place. When your rules change, you edit one function instead of five forms.
Limits and errors worth knowing
- 401: missing or invalid key.
- 402: free checks used up and no credits left.
- 429: more than 60 requests per minute per key.
- 400: bad input.
For a big CRM cleanup, keep it under 60 calls per minute per key. GET /v1/usage shows how many free checks you have used this month and your credit balance.
The emails and phone numbers you check are processed only to return a result. They are not stored. For the details, read the ContactLint privacy policy and the terms of service.
Pricing
Role detection is part of the email check. One check is one API or MCP call to a validation tool. Prices are in USD.
- Free: 100 checks per month, $0, no card required.
- Credit packs: 5,000 checks for $9, 25,000 for $35, or 100,000 for $99.
Credits do not expire. Unused credits are refundable within 14 days of purchase. See ContactLint pricing for current plans.
Role based email detection FAQ
What is role based email detection?
Role based email detection checks whether an address belongs to a function or team instead of one person. Examples include admin@ and info@. ContactLint flags role addresses as part of its email check, alongside syntax, DNS records, disposable domains, and free mail providers. It does not open an SMTP connection to the mailbox.
Should I block role addresses on my signup form?
Usually not outright. A role address is often a real, working inbox, and some people sign up with one on purpose. A softer approach is to accept it and ask for a personal address as well, or flag the account for review. Block only if your product truly needs one named person per account.
Is a role address a bad B2B lead?
Not always. An info@ address at a real company domain can still reach a buyer. It just reaches a shared inbox first. Treat it as a company signal, not a contact signal. Route it to a team that can find the right person, rather than dropping it into a one-to-one sales sequence.
Does ContactLint check whether the role mailbox actually exists?
No. ContactLint never opens an SMTP connection to the mailbox. It checks syntax, looks up MX and A records through DNS-over-HTTPS, and flags role addresses and disposable domains. That tells you whether the domain is set up to receive mail and what kind of address it is, not whether one inbox is live.
How much does role based email detection cost?
Role detection is part of the ContactLint email check. One check is one API or MCP call to a validation tool. The free plan includes 100 checks per month with no card required. After that, credit packs cost $9 for 5,000 checks, $35 for 25,000, or $99 for 100,000, in USD. Credits do not expire.
Can an AI agent use role detection?
Yes. An agent can call the /v1/email/validate endpoint directly, or connect to the ContactLint MCP server at https://contactlint.com/mcp with an MCP client that supports streamable HTTP. The MCP tools are validate_email and validate_phone, and each tool call uses one check. Give the agent a rule for role addresses: send, ask for a better contact, or skip.
Get a free API key
Flag role addresses, then handle them the way your business needs. You start with 100 free checks per month. No card, and no email is sent. Your key is shown once on the next page, so save it.
Want the full endpoint list first? Read the endpoints on the ContactLint homepage.
Questions: support@contactlint.com
Get a free API key. 100 checks per month, no card required.
Signup Form Validation Checklist
One decision per field, role_address and free_provider included, plus the phone fields, error codes, and a credits worksheet. Fill it in and keep it next to your form code.
Nothing is emailed to you automatically. The checklist opens on this page as soon as you send the form. We do not sell your data. Privacy policy.