Every domain disposable email providers hand out.
Each domain a disposable email provider was seen giving out addresses at, with the first and last day it was seen and the providers that did. The providers are a file of their own, with each one's name, website, and whether it's still running. Rebuilt daily.
Schema at a glance.
See documentation →The schema and metadata are in the docs. It is published as CSVGZ.
| domain | first_seen | last_seen | providers |
|---|---|---|---|
| 10mail.org | 2023-01-08 | 2026-10-16 | dropmail_me|rotvpn_com|torvpn_com |
| any.pink | 2024-03-16 | 2026-10-16 | tempmail_plus |
| guerrillamail.biz | 2022-12-28 | 2026-10-16 | guerrillamail_com|spam4_me |
| maxxspace.com | 2026-10-03 | 2026-10-16 | internxt_com|mail_tm |
| smartnator.com | 2022-12-28 | 2026-10-16 | emailnator_com |
The operators behind the ids.
providers names each provider by its id, pipe-joined. Disposable Domain Provider resolves each one to the provider's name and website, whether we track the domains it hands out now, and whether the provider itself is gone. Join each one on id.
| id | name | url | active | defunct |
|---|---|---|---|---|
| guerrillamail_com | Guerrilla Mail | https://guerrillamail.com/ | t | f |
| mail_tm | Mail.tm | https://mail.tm/ | t | f |
| getnada_com | getnada.com | https://getnada.com/ | f | t |
Downloading it from code.
Database API reference →One call gets you the current Disposable Domain build. Every official client wraps it three ways: straight to disk, a time-limited link you hand to your own runner, or bytes in memory, and checksums() returns the published digests to verify it against.
download()downloadUrl()downloadBytes()metadata()checksums()import osfrom internetdata import InternetDataclient = InternetData(os.environ["INTERNETDATA_API_KEY"])# what is in today's build, without moving the filemeta = client.database.metadata("disposable_domain_v1")client.database.download("disposable_domain_v1", "csvgz", "./disposable_domain_v1.csv.gz")sums = client.database.checksums("disposable_domain_v1", "csvgz")print(meta.updated, meta.entries, sums["sha256"])
Getting your hands on it.
Teams match Disposable Domain against the names they already see, inside their own infrastructure, and never send a name anywhere to get an answer.
Signup screening
Flag a signup whose address is at a domain a disposable provider hands out, before it takes a free trial or a coupon.
List hygiene
Drop the throwaway addresses from a mailing list before they bounce or go unread, and keep your sender reputation.
Abuse investigation
See which providers hand out a domain and since when, to tell a long-running disposable domain from one seen once.
An official client for every major language.
All SDKs on GitHub →Twelve official clients for the languages you ship in, each wrapping the database endpoints: list what you're licensed for, poll a build, follow the download redirect and verify what landed. Install commands are in the docs.
What makes a domain disposable?
A disposable email provider was seen giving out an address at it: the temporary inboxes people use once, to get past a signup without their own address. The domain is in the file from the first day a provider was seen handing it out.
Why does a domain list several providers?
Providers share domains. providers lists every one seen handing a domain out, joined by |, each an id in the provider file, which gives its name and website.
Is a subdomain ever a row?
Yes, when a provider gives out addresses at one. Some give each inbox a random subdomain of a domain they control, and each of those is its own row.
Is first_seen when the domain was registered?
No. first_seen and last_seen are the first and last days a provider was seen handing out an address there. A domain last seen long ago may have gone out of use.
How often is it rebuilt?
Daily. The metadata call answers when the current build landed and how many rows it holds, before you fetch it.
Which formats does a build ship in?
Gzipped CSV. It's keyed by name, so there is no address lookup to build. Poll the metadata call first and fetch only when the build has changed.
What if a row looks wrong?
Send it to us and we'll tell you what we hold on it, when we last saw it and how. Corrections land in the next build.
Test the real build first.
An evaluation license puts a full current build in your hands, with no sampling, so you can measure it against your own traffic before anyone talks about terms.