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:
RT for chance 2 win 2 tkts & Miami prize pack! #DeeringSeafoodFestival THIS Sun @DeeringEstate http://t.co/mvfuX4IAqS pic.twitter.com/4cF7Hu8B5f
— Greater Miami and Miami Beach (@visitmiami) March 24, 2015
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 percent, 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 customized 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 in my mailbox each day was pretty fun. It ended up being a free way to get this effect:
Here’s a picture of The Haul:
My favorite 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.
High Five to @racer236 who bags the #DestinyBeta #PS4 Beta code! DM me to acknowledge buddy and I'll give you the code #Destiny
— 𝙎𝙩𝙚𝙫𝙚 (@muffled_stoat) July 18, 2014
https://twitter.com/embed/status/525311467709820928
https://twitter.com/embed/status/544554888794234880
@racer236 you won the free wrap giveaway! Inbox me to claim your wrap! #freewrap #winner
— Heather Conklin (@wrapmcheather) November 11, 2014
@racer236 & @jonh_lax47 you won the @TomahawkShades and #dudewipes! hit us with your addresses at [email protected] #sweet
— DUDE (@DUDEproducts) October 23, 2014
https://twitter.com/embed/status/525381873351282688
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. And before you report me to the IRS, yes, I reported and paid taxes on all of the winnings I actually accepted/received.
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.”
https://twitter.com/embed/status/496170638923423745
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
— Wes (@WWiltbank) June 5, 2014
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 mail.
After a while of winning contests, I realized I could use my bot for good too. Lots of people raise money for charities by asking people to retweet. Something like this:
Tweet/RT as much as u can wid #CanGiftHappiness beacause wid the help of us @Micromax_Mobile will donate Re.1 for every RT/tweet @CRYINDIA
— Gopichand Dasari (@DGC_Boss) December 25, 2014
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.
Hunter Scott is a computer engineer who enjoys converting code into prizes that show up on his doorstep. He is also the cofounder of Ohm (getohm.com) where he is in charge of electron herding. This post was syndicated from his websitewith permission.