This is the story of how I wrote a Twitter bot to automatically enter contests and ended up winning an average of four contests per day, every day, for about nine months straight.
If you’ve ever used Twitter, you’ve probably seen a tweet that looks something like this:
Maybe you’ve actually retweeted it, maybe not, but everyone wants to know: does anyone ever win those contests? To discover the answer to that question, I wrote a Python script that logs into Twitter, searches for tweets that say something along the lines of “retweet to win!” and then retweets them.
I’m not sure if anyone else has done this before, but I didn’t see any evidence of other bots that were behaving like mine. I did however see evidence of real people who were manually doing the job of my bot by retweeting hundreds of contests over several hours.
Some contests require you to follow the original poster, so after discovering a candidate tweet I made sure it wasn’t an entry to a contest, but the original contest itself, and then checked to see if they wanted a follow. If so, I followed them and retweeted.
The most difficult part of this project was preventing the bot from getting banned by Twitter. They have rate limits which prevent you from tweeting too often, retweeting too aggressively, and creating “following churn” by rapidly following and unfollowing people. Twitter doesn’t publish these numbers, so I had to figure them out by trial and error. Twitter also limits the total number of people you can follow given a certain number of followers. If you have below a few hundred followers, you cannot follow more than 2000 people.
Since a lot of contests required following the original poster, I used a FIFO to make sure I was only following the 2000 most recent contest entries. That gave me long enough to make sure the person I unfollowed had already ended their contest and it kept the follow/unfollow churn rate below the rate limit. I got lucky in that the rate of new contests launched on Twitter is less than the rate that I could retweet, meaning I was able to enter every contest I could find.
How many was that? Well, over the nine months I ran my script, I entered approximately 165,000 contests. Of those, I won around 1000.
So that means my win rate was just over half a per cent, which is pretty miserable, especially when you consider that a good portion of those winnings were things like logos and graphics, which is Twitter slang for a customised image for use in a gaming or YouTube profile. They tend to look like this.
Another very large percentage of the things I won were tickets to events. I did manage to go to an event that I won tickets to, but the majority of them were for concerts and events in other countries that I obviously couldn’t go to. I also won a lot of currency to online games like FIFA. And when the game Destiny was giving out beta codes, I won about 30 of them through as many contests. I won a lot of cool stuff too though, and getting mysterious things through my letterbox each day was pretty fun. It ended up being a free way to get this effect:
My favourite thing that I won was a cowboy hat autographed by the stars of a Mexican soap opera that I had never heard of. I love it because it really embodies the totally random outcome of these contests. The most valuable thing I won was a trip to New York Fashion Week, which included a limo ride to the show if you lived in a state near New York for you and a friend, and $500 spending money each, and tickets to some of the shows. That had a retail value of $4000, but I didn’t claim it because 1) I don’t live near New York and 2) I didn’t want to pay the taxes on a $4000 prize.
@racer236 Hi, congrats, you have won x4 VIP wristbands for our NYE Mardi Gras party! Follow us & DM your details so we can get them to you!!
Tonight's competition winner is @racer236 congratulations on your prize you have won a bottle of Louis Dornier champagne on your next visit
I ended up not claiming the majority of the things I won because I wasn’t able to use them or attend them. In those cases, I just messaged them back and told them to give the prize to someone else.
I had a lot of pretty interesting interactions with the unwashed masses of Twitter, like this:
Most contests informed the winners by direct message, and a lot of people have an automatic direct message sent to you when you follow them (like the one above), so I had to spend a decent amount of time going though my DMs to find legit winner notifications.
Some people thought it would be hilarious if they mimicked contests by tweeting things like “RT this and you could win absolutely nothing!!”. Naturally, my bot found those tweets and dutifully retweeted them. So there were several instances of me winning “absolutely nothing.”
@racer236 you win nothing, ill dm you the prize
Another variation on that was this guy who offered a unique prize:
RT for a chance to win these tupaware LIDS that have been warped in the dishwasher. Must be following. pic.twitter.com/EypItZvCyl
Yes indeed, I won this contest and the fantastic prize of warped “tupaware” lids. Unfortunately, like lots of other contests, I never got anything in the post.
After a while of winning contests, I realised I could use my bot for good too. Lots of people raise money for charities by asking people to retweet. Something like this:
Sometimes they’re fake, but what do I care? I added search terms for tweets like this and had enough bandwidth to retweet every tweet of this kind without going over the rate limit.
If you want to see the full list of stuff I won, it’s here. There are a few gems in there and I’ll leave it to you to discover them.