How can I tell if an email is from a personal email provider or a business email?

When users sign up in my app, which is SaaS for businesses, it’s likely that several users from the same company will sign up without necessarily knowing about the others before an “official” company account is created. These initial users likely won’t be decision-makers as far as purchase, but will be the actual users.

I’d like to link them to each other and email domain seems the best way to do that - IF I can verify that they’re using their work email. This seems to require that I have a list of personal email domains to check against, and if it’s not on the list assume that it’s a work email.

Is there such a list that is up to date and maintained that I could pull from?

Is there another way of linking accounts/screening for work emails that doesn’t rely on this list?

Any thoughts are appreciated. Thanks!

Kickbox has a free API for this (identifying free/disposable domains and more).

(Also described in NPM here: kickbox - npm)

I don’t think it’s a good idea to connect users at your free/trial level with each other and I’ve never seen any enterprise SaaS that does this. And I try/buy/recommend a lot of SaaS products. (It’s kind of a privacy issue, yeah?)

However, once you have a paid user account from some validated domain, I could see sending alerts to the admin user of your product saying, “Hey, we noticed that just signed up for our free trial. You might want to reach out to them if that’s a real person.” And of course you could build functionality that lets the admin easily invite the new user to the correct instance/account.

1 Like

Kickboxer validates that an email address is valid, but what I’m trying to do is determine whether it’s a work email or personal email. For instance, is it, etc? If people sign up with personal emails, then any connection I try (whether it’s connecting the account or just sending a notification to the admin of a paying account) won’t work.

I’ve gone back and forth on when to connect the users. The way the app is set up, the user can’t see anything being part of the company, they have to specifically be added to projects. But there would be other issues - like automatically filling a seat without the admin’s approval.

But I did find that Asana does this - automatically connects accounts with the same domain. There’s still an approval for access to workspaces so you can’t see anything until that’s approved, but the account is connected directly.

It does that. Go read the docs (the NPM link has a short version of the docs, but of course their site has the complete API spec).

Right, that’s like what I said in the second part.

Well generally, organizations emails won’t have the domain gmail, ymail etc, so you could test for those domains. And then again, some businesses do use gmail or others the same. So is there really a good way to do what you’re wanting? Maybe not.

@keith Interesting about kickboxer, I see that it does indicate a “free” field for free email providers. I guess I’m assuming there are also paid email providers on domains we’d also want to weed out.

If I understood you correctly, Asana is actually not doing what you said in the second part, but what you said you hadn’t seen. A non-personal email has an organization created automatically upon the first person signing up, and that email domain is added to the list of Associated email domains which can automatically join the Org:


It’s an interesting way of doing things that I’m partially trying to imitate - my users will not automatically become members of the org, but upon signup they will have the option to request to join if there is another PAYING (good suggestion) org using the same domain.

@doug.burden The trick is capturing ALL domains like gmail, ymail, etc. Those ones are easy, but there are a bunch more and it’s not a static list. That’s the challenge. I know some small mom and pop or solo operations use gmail or some other free email, but fortunately for us this is extremely rare in our target market if it exists at all.

There are various GitHub repos of such stuff that you can search for, but Kickbox is better as that’s their business. Go read about it. I’ve not connected to them in a bit so I have no idea how much API you can consume for free but it’s probably more than sufficient for a Bubble MVP type app.

Yeah I did some reading - it’s very affordable, I may just end up integrating it. Thanks for the rec!

This topic was automatically closed after 70 days. New replies are no longer allowed.