The Best GitHub Lists for Disposable Email Domains
If you run an app, SaaS product, or any online service with free sign-ups, you've likely faced the hassle of disposable email addresses. These temporary emails can lead to spam, fraudulent accounts, and inflated user metrics, making it harder to understand your true user base.
Why Block Disposable Emails?
Blocking disposable emails helps prevent spam, reduces fraudulent sign-ups, and ensures your user metrics reflect genuine engagement. Even starting with a basic publicly maintained GitHub list can significantly reduce the volume of throwaway accounts harming your service.
TL;DR
- Best for accuracy: Disposable-Email-Domains/Disposable-Email-Domains (~4,000 domains, vetted by community)
- Biggest list (but mixed quality): Disposable/Disposable (~100,000 domains, updated daily)
- Best automated option: 7c/fakefilter (daily automated updates, fewer false positives than some larger lists)
Below, I've personally reviewed the most reliable disposable email domain lists on GitHub, highlighting the pros and cons of each. If manually maintaining blocklists seems like too much work, I'll also suggest a simpler and more effective automated solution: UserCheck.
1. Disposable-Email-Domains/Disposable-Email-Domains
- 🌐 Domains
- ~4,000
- 🔄 Update Frequency
- Weekly/Monthly
- ⭐ Stars
- 3,500
This list has been around since 2014 and is one of the most popular lists. It's community-maintained and has a validation process for adding new domains. I find it to be the best crowd-sourced list.
Pros:
- Maintainers ask for screenshot evidences that a domain is disposable, making the list more accurate and reducing false positives.
- Community-maintained and has a validation process for adding new domains.
Cons:
- Some domains are not added to the list because the maintainers didn't find a way to verify them as disposable.
- The list is not updated daily, so there might be a delay in adding new disposable domains.
My experience: When I manually tested this list against newly discovered disposable email services, I found it to be the most reliable in terms of accuracy. While it doesn't catch every disposable domain, the ones it does identify are almost certainly disposable, making it ideal if you're concerned about false positives.
Metrics
Weekly Domain Changes
This chart shows weekly additions and removals, indicating how many domains are added or removed from the list each week.
Weekly Contributors
This chart shows the number of contributors to the list each week. This give an idea of how many people are contributing to the list.
2. Disposable/Disposable
- 📁 Repository
- github.com/disposable/disposable
- 🚫 Blocklist
- raw.githubusercontent.com/disposable/disposable/refs/heads/main/disposable_email_blocklist.conf
- 🌐 Domains
- ~100,000
- 🔄 Update Frequency
- Daily
- ⭐ Stars
- 1,000
This list aggregates other lists, as well as scrapes a few disposable email providers (I counted about 20, though around half of those sources aren't responsive anymore). If you're looking for the most domains, this is the list, but more domains doesn't mean better results.
Pros:
- Comprehensive list, by pulling in other lists.
- New domains are added daily.
Cons:
- No validation process
- Contributors cannot directly add domains to the list.
- It includes domains considered as spam, which are not disposable.
My experience: When I manually tested this list, I noticed several domains hadn't been active in years, inflating the size but not adding real protection. If you're getting hammered by spam from obscure domains and don't mind a few false positives, this list covers more ground, but expect occasional legitimate users to be blocked.
Metrics
Weekly Contributors
Only 1 contributor since it's automated.
3. 7c/Fakefilter
- 📁 Repository
- github.com/7c/fakefilter
- 🌐 Domains
- ~5,000
- 🔄 Update Frequency
- Daily
- ⭐ Stars
- 239
7c/Fakefilter stands out from other lists because it's entirely automated. It monitors known disposable email providers and adds their domains to the list daily.
Pros:
- Automated
- Daily updates
- Domains are tracable to the source
Cons:
- Limited number of domains (as of today, none of the domains from EmailOnDeck over the past four weeks are included)
- No direct contribution possible
My experience: This list is a good balance between automation and accuracy. While it misses some newer disposable domains, the ones it does include are generally reliable. It's a good option if you want regular updates without the massive size of the Disposable/Disposable list.
Metrics
Weekly Contributors
Only 1 contributor since it's automated.
4. WesBos/Burner-Email-Providers
- 📁 Repository
- github.com/wesbos/burner-email-providers
- 🌐 Domains
- ~5,000
- 🔄 Update Frequency
- Weekly/Monthly
- ⭐ Stars
- 1,100
This repository is community-maintained and includes a good range of domains.
Pros:
- It's community-maintained and offers a substantial variety of domains.
Cons:
- No validation process leading to occasional false positives (see this issue)
- Slow to update
- Not as many contributions as other lists
My experience: This list is popular but not as actively maintained as the others. In my testing, I found it to be less reliable than Disposable-Email-Domains for accuracy, and less comprehensive than Disposable/Disposable for coverage.
Metrics
How to Use GitHub Lists in Your Project
Integrating a GitHub blocklist into your project is simple and helps filter out disposable emails automatically. Here's a basic Python script to check if an email domain is on a blocklist:
import requests
def is_disposable(email, blocklist_url):
domain = email.split('@')[-1]
blocklist = requests.get(blocklist_url).text.splitlines()
return domain in blocklist
# Example Usage
email = "[email protected]"
blocklist_url = "https://raw.githubusercontent.com/disposable-email-domains/disposable-email-domains/refs/heads/main/disposable_email_blocklist.conf"
if is_disposable(email, blocklist_url):
print(f"Blocked: {email} is disposable.")
else:
print(f"Allowed: {email}")
To avoid checking the list from GitHub every time, store it locally and refresh it periodically using a scheduled job. Also, watch for false positives, some domains may get flagged mistakenly. Keeping logs of blocked emails can help fine-tune your approach.
Better solution: UserCheck
While GitHub lists provide a good starting point for blocking disposable emails, they come with limitations:
- Update Delays: New disposable domains appear daily, but GitHub lists update only when contributors have time
- False Positives: These lists include domains that are sometimes not disposable, which means you might block legitimate users
- Maintenance Burden: Self-hosting requires regular downloads, deployment, and monitoring for false positives
- Limited Context: Domains from these lists are not traceable, so it's hard to know if a domain is disposable or not
UserCheck is a simple API that solves these challenges with a comprehensive, maintenance-free solution:
- Real-time Updates: Our systems continuously monitor for new disposable domains, updating our database instantly and blocking tens of new domains every day
- Simple Integration: Our API integrates in minutes with your existing infrastructure
- More Context: We can provide the source of the domain, so we know for certain that it's disposable
- Additional Features: We can also tell if a domain comes from a forwarding email service, or if a Gmail address is disposable.
- Flexible Pricing: Start with our free tier (1,000 requests/month) and scale as your business grows
By delegating email validation to UserCheck, your team can focus on building your core product while ensuring robust protection against disposable emails.
Conclusion
We've seen that GitHub lists are a good starting point for basic blocking of disposable emails. I'd recommend using them as an indicator of disposable emails, but not as a definitive source.
If your priority is accuracy and fewer false positives, stick with the smaller Disposable-Email-Domains/Disposable-Email-Domains. If you're getting hammered by spam from obscure domains and don't mind a few mistakes, Disposable/Disposable covers more ground, but expect occasional false positives.
For most businesses, the maintenance burden of keeping these lists updated eventually outweighs the initial simplicity. When you reach that point, consider a managed solution like UserCheck.
Complete list
For the sake of completeness, here is the full list of Github repositories that I reviewed, most of them were not included because they were unmaintained or were including domains that are not disposable.spo
- https://github.com/7c/fakefilter
- https://github.com/amieiro/disposable-email-domains
- https://github.com/Dahoom152/disposable-email
- https://github.com/disposable-email-domains/disposable-email-domains
- https://github.com/disposable/disposable
- https://github.com/eser/sanitizer-svc
- https://github.com/FGRibreau/mailchecker
- https://github.com/gblmarquez/disposable-email-domains
- https://github.com/GeroldSetz/emailondeck.com-domains
- https://github.com/groundcat/disposable-email-domain-list
- https://github.com/IntegerAlex/disposable-email-detector
- https://github.com/jespernissen/disposable-maildomain-list
- https://github.com/kslr/disposable-email-domains
- https://github.com/MattKetmo/EmailChecker
- https://github.com/sublime-security/static-files
- https://github.com/unkn0w/disposable-email-domain-list
- https://github.com/wesbos/burner-email-providers
- https://github.com/willwhite/freemail