Smilebot: Transform Amazon Links to AmazonSmile on Twitter

TL;DR: Smilebot is a Twitter bot which, when mentioned, will transform links in the mention (or original tweet if it’s a reply) and reply with the links. If you shop through the latter, you pay the same but Amazon gives 0.5% of your order to a charity of your choice.

What’s AmazonSmile?

From the Help page:

AmazonSmile is a website operated by Amazon with the same products, prices and shopping features as Amazon. The difference is that when you shop on AmazonSmile, Amazon will donate 0.5% of the net purchase price (excluding VAT, returns and shipping fees) from your eligible AmazonSmile purchases.

Everything is the same as when you shop on Amazon (price, delivery, experience, etc) but Amazon give 0.5% of your order to a charity of your choice. In 5+ years of shopping on Amazon I’ve never found a product that isn’t eligible on AmazonSmile.

The program launched in October 2013 and to date (June 2020) Amazon has donated over $180m to charities via the program (press release when they passed $100m):

It’s too good to be true, but it’s true. Full T&Cs are published here.

How used is it?

Hard to tell.

I started trying to figure out the total amount that would have been generated if all orders were through Smile, but there are too many unknowns: figuring out the share of eligible products, which countries are in the program (I don’t France is in it for instance), and getting the revenue of excluding AWS, Wholefoods, Twitch, Nest, etc.

A better route might be asking around for a sample:

Asking offline friends I found about a third knew about it (and all who knew about it used it religiously 👍)

I consider my friend and twitter following groups to be way more savvy than the average Amazon user (you can thank me later guys) so all in all I think it’s probably fewer than 1 in 10 people who use it.

Enter SmileBot 💛

The low use of AmazonSmile can also be witnessed on Twitter, looking at all tweets passing by with links instead of

So I built a Twitter bot (@ShopOnSmile) which, when mentioned, would transform amazon links in the mention (or original tweet if it’s a reply) and reply with the links.


There, simple.

It would have been even better for the bot to automatically respond to any Amazon link posted on twitter, but that’s against the API terms so I’d get quickly ban.

What I’m hoping is that this is so low-friction to do (reply + mention @ShopOnSmile when you see a tweet with an Amazon link) that it can go a little viral.

Kind of like how the @ThreadReader bot has gone viral for a small service: compiling a tweet storm onto a single web page (albeit one riddled with ads 🤢).

So, next time you see an link on twitter, just reply mentioning @ShopOnSmile and the Smile link will be posted, with an explanation of what Smile is.

How does it work?

The bot is written in Python (about 300 lines), authenticated with Twitter app-auth, and deployed on Heroku.

It was a fun little project that took me about 15 hours in total. Which is a longer amount of time than I expected… but I’m very rusty and made lots of mistakes along the way (some of which I captured here).

This code is bad (and I feel bad) so please feel free to contribute!

Forget Smilebot. How to shop on AmazonSmile by default

This bot is just a band-aid. If everyone does the below it won’t be needed 😉


If you haven’t already, go to (or the equivalent for whichever country you shop in) and choose the charity you want to support.

Install a browser extension

These extensions will automatically redirect you to AmazonSmile if you go to the normal Amazon site.

Set up the app to default to AmazonSmile

Go to settings and turn AmazonSmile ON by default.

Full instructions are here:

Thanks for reading, happy shopping! 💛

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s