TempMail Is Now Using Bun!

We switched to Bun, and the results are outstanding

It’s been a while since we’ve posted last! In the background, the TempMail server is now faster than ever before, thanks to Bun.sh, a JavaScript runtime which has proven to be faster than the default Node runtime in our cases.

First Things First

Thank you to Ashton Memer for converting the server to Bun!


Since switching to Bun, we have seen the startup time for our server decrease from 15+ seconds to less than one second! Users were getting 500-level error codes because the default Node runtime could not keep up with the amount of request per second our server is getting. Since switching to bun, the average API request time went from 100 ms average to 20 milliseconds!

At peak, our service has had more than 200,000 inboxes active at any given time! A feat that would’ve resulted in many 500-level errors given the standard Node runtime.

In terms of memory, we’ve found that Bun, on average, uses 1.5 times more memory than the Node runtime. We believe that this is a fair tradeoff between performance and resources.

Next for TempMail and BananaCrumbs

We’re also excited to announce a new account system for BananaCrumbs, one where you can use your Email to register and create API keys! We will be releasing a post about this in the future.

Upcoming Updates for TempMail

See some of the upcoming features for TempMail in this article!

1,200,000 emails and 500 hourly inboxes are incredible numbers! With the growth of the website, I would like to make some additions to further help people with their privacy in using TempMail.

These features will be added during November of this year through February of next year. They will not be added in any particular order, though.

Desktop App

While navigating to the website is easy, a desktop app can save a few clicks. The desktop app will be available to download on Windows, Mac, and Linux-based systems in the upcoming month.

POP3/IMAP Support

This has been planned for a while. Our customized protocol is not compatible with others; however, we plan to add support for POP3/IMAP soon as well. The intended design will allow users to sign in with the temporary email with the token as the password, instead of using HTTPS with our own protocol.

More Language Support

English is one of the most common languages; however, a great deal of our traffic comes from outside English-speaking countries. We will add multiple language support for the website. Our app, AnonyMail, already supports a few languages!

More (Programming) Language Support

We plan to create more libraries for more programming languages. As of now, we have one for JavaScript, Java, and Python, which are the most commonly used languages for scripting. Our next target languages include Rust, C, and Go.


Thank you to everyone who has used the website so far, and to those who will use it in the future! If you have any questions, feel free to write a comment below.

Major Updates for TempMail

We’ve released one of our biggest updates yet. This update includes custom domains, public domains, and more!

TempMail.lol has been running for almost a year since it started as Exploding Email. In that time, we’ve made a lot of changes to the website. In this article, we’ll go over some of the major changes that have been made recently.

Custom Domains

While this used to be a feature of Exploding Email, it has been added back into TempMail with a great implementation. You can now choose if you want your custom domain to be private (that is, only you can access it), or public (anyone can make Alternative Emails through your domain).

Private Domains

With private domains, you are given a token to “login” to the domain to retrieve emails. This prevents random people from reading the emails on your domain. Note that private domains can only store up to five emails across the entire domain before needing to be emptied by getting the emails (earliest emails are stored).

Public Domains

Public domains are a bit different: they are put into the pool of Alternative Domains, so people can generate emails with your domain, helping to avoid TempMail detection. If you have a spare domain you are not using, consider adding it!

Overview of Custom Domains

Overall, custom domains will help everyone. Private custom domains are currently in beta and are free during this period, they may be behind a subscription-based service in the future. Adding public pool domains will always be free.

Custom domains have also been added to the API. Support for custom domains will be added to libraries within the upcoming weeks.

API Changes

You can now choose a domain you want to generate! This allows you to choose from any existing default/alternative domains. Here’s an example:

curl https://api.tempmail.lol/generate/example.com

This will generate an email at the domain you specify (in this case, example.com).


As September starts, we have added more features to the website while keeping the core principle of the website the same, a temporary email generator. If you just use the normal website with its .com domains, nothing will change. Alternative emails will be getting a larger pool of domains to pick from, which will help avoid detection.

Looking ahead, we plan to add even more features, such as support for the POP3 protocol, bigger storage for private domains, and more!

Lastly, we’ve processed 520,000 emails! This number is insane, and we hope it will continue to grow as more people use our service. Spread the word, and bookmark our site! If you have any questions, suggestions, or just want to talk, join the Discord server below!

Introducing Alternative Domains for TempMail

Introducing our new feature: alternative domains! Alternative domains allow you to generate emails that bypass certain website restrictions.

Ever tried to signup for a website using one of our domains but have had it fail? Thankfully, we are introducing something new: alternative domains.

Alternative domains allows you to use less common website endings (such as .cfd, .lol, and .shop). These endings are much cheaper than common endings (such as .com, .net, or .org), but may not work as reliably as common endings.

What does this mean for me?

If you use the regular domains, nothing will change. The website will still function the same way it has.

How do I use it?

Simply toggle the switch on the homepage under the Copy and Regenerate buttons.

If you do not see the switch, hold Control and click F5 on your keyboard to reload the page.

Developers: does this break the API?

No. For the TempMail.lol API, the /generate endpoint will still work. If you wish to generate alternative emails, please use the /generate/rush endpoint instead. This will be added to TempMail APIs in the following weeks. Alternative domains are on the same rate-limit as normal domains (30/minute).


Thank you to everyone who has used the website so far! We are approaching 300,000 emails received and have around 200 hourly active users. We hope this addition to the website will help people get around websites censoring our email addresses.

The TempMail Python API is out!

Want to use the TempMail API using Python? Try our easy-to-use library built for Python!

Ever wanted to interact with the TempMail.lol API using Python but didn’t want to use raw HTTP requests? Well now we got your back.

First off, I would like to say thank you to Alex Torres for making the Python library. You can view the code here, feel free to contribute!

Important – read before using

The TempMail.lol API has a few limitations:

  • You must use the token to check for emails within 10 minutes of the last check or the creation of the inbox, otherwise it is deleted.
  • Inboxes expire after 1 hour.


Use the pip command to install the library:

pip install tempmail-lol

Example Usage

from TempMail import TempMail #imports everything from TempMail library
import time #import time module

inbox = TempMail.generateInbox() #returns an Inbox object with Email and Token

print("Email Address: "+ inbox.address) #View output below
print("Authorization Token: "+ inbox.token)

    Email Address: [email protected]
    Authorization Token: RCfc1og1z1JzuN1mkXL2eFdAc_8uxSRAwcGhUoXuH26e7nnJMdVVtSxxasZLD9D2OHTKIjVEvLhK7S0K5QIanA

while(True): #Infinite Loop
    emails = TempMail.getEmails(inbox) #Returns list of Email objects
    print(emails) # View output below
    time.sleep(30) #wait 30 sec

    [Email ([email protected], [email protected], 
            subject=Subject line, body=Text Area, html=<div dir="ltr">Text Area</div>, 
            date=1652824961713 )]


Thanks again to Alex Torres for making the API. If you found it useful or have any suggestions, feel free to ask on GitHub. Let us know what you end up creating!

TempMail API for JavaScript is Ready!

Ever wanted to make a program that interacted with TempMail.lol but didn’t want to figure out the API yourself? Now, you can use our basic JavaScript/TypeScript library to do so!

Ever wanted to make a program that interacted with TempMail.lol but didn’t want to figure out the API yourself? Now, you can use our basic JavaScript/TypeScript library to do so!

To get started, install the library on your project:

npm i tempmail.lol

You can also use Yarn if you prefer.

yarn add tempmail.lol

Important – Read Before Using

Inboxes have a hard expiration time of one hour. If you do not use the token to check for emails within 10 minutes of the last check, the inbox will expire.


Using the API is very simple. To create an inbox, use the following code:

const {createInbox} = require("tempmail.lol");

createInbox((inbox, err) => {
    if(err) {
        return console.error(err);
    console.log(`Created new inbox: ${inbox.address}`);
    console.log(`Inbox token: ${inbox.token}`);

Or you can use promises if you prefer:

const inbox = await createInboxAsync();
//or you can use .then()

Make sure to save either the Inbox or the token returned, as you will need it to access any received emails.

To access received emails:

const {checkInbox} = require("tempmail.lol");

checkInbox("YOUR_TOKEN", (emails, err) => { //you can also pass in the Inbox object.
    if(err) {
        return console.error(err);
    emails.forEach((e) => {
        console.log(JSON.stringify(e, null, 4));

Of course, you can also use the async method:

const emails = checkInboxAsync("YOUR_TOKEN"); //you can also pass in the Inbox object.

Note: if the token is invalid, the checkInbox and checkInboxAsync methods will throw an error. Keep this in mind for when you use it in production.


I learn from examples, and you might as well! Here is an example program that generates an email, checks for new emails every 10 seconds, then displays if any are received.

const {createInbox, checkInboxAsync} = require("tempmail.lol");

createInbox((inbox, err) => {
    if(err) {
        return console.log(err);
    console.log(`Inbox created: ${inbox.address}`);
    //Check for new emails every 10 seconds
    setInterval(async () => {
        const emails = await checkInboxAsync(inbox);
        if(emails.length > 0) {
            console.log(`${emails.length} emails received`);
            //print out each email.
            emails.forEach((value, index) => {
                console.log(`${index + 1}: ${value.subject}`);
                console.log(`from: ${value.from}`);
                console.log(`date sent: ${new Date(value.date)}`);
                console.log(`body: ${value.body}`);
                console.log(`html: ${value.html}`); //note: html may be undefined.
    }, 10000);

Pretty cool! Let me know what you end up creating, you can reach me at [email protected].