Last week, a friend of mine told me about the release of Disrupt SF 2013 hackathon tickets. Well, it was actually more about how it was sold out in 15 minutes or so. Having been there last year and won a sponsor prize, I was definitely excited about doing it again this year. But, apart from the promise of releasing more tickets in the near future, there was nothing else in sight.

So like any engineer with some time on his hands, I wrote a scraper in 10 minutes. It’s fairly dumb; scrapes the eventbrite widget for the event and sends me a text message via twilio, if the status is not “Sold out”. Then I put a cron to trigger the scraper every 5 minutes and waited. I figured, if I had some free time later, I could write a form scraper that would probably even get me a ticket, when it detects they are available.

Then, three days back at about 4:30 pm, I start getting inundated with text messages every 5 minutes. Yay! for technology, I go to the widget URL and try to get my ticket. Nope, it’s a false positive! New use case unlocked, the status went from “Sold Out” to N/A. Being the good citizen of free technology that I am, I fix it immediately and the alerts stop.

But wait, there’s more to the N/A. The widget also says “Not Started” in the Ends column. That can only mean one thing really: there is a start date configured somewhere, and the state “Not Started” is because right now < start date. To verify this information and learn more about the event model I go to the eventbrite api page, more specifically the event_get endpoint. There is a neat “test this” tool in there, which asks you for an event id. Surely it can’t be as easy as plugging in the disrupt hackathon event id from the widget into the textbox, right? Nope, as with most things with technology, it is really that easy and voila the event opened its kimono :) Here is what the response looks like (I’ve highlighted the relevant portion below:

…“tickets”: [ { “ticket”: { “description”: “Admission to the 24 hour Hackathon at TechCrunch Disrupt “, “end_date”: “2013-09-07 11:30:00", “min”: 1, “max”: 1, “price”: “0.00", “visible”: “true”, “start_date”: “2013-08-11 12:00:00", “currency”: “USD”, “type”: 0, “id”: 19412051, “name”: “Hackers” }…

The relevant info in there (if you missed it) is start_date, which at that time was 3 days in the future. That’s it, I show up on the widget at 12 pm today and voila, I have my ticket before the techcrunch article announcing the ticket goes up. I also inform my friends in time, and 15 minutes later it is all sold out again.


Why is this such a big thing? Disrupt SF is one of the premier Techcrunch events and the best place to be if you are a new startup or want to start one. If you participate in the hackathon, and present on stage, it’s an amazing way to get noticed and even techcrunched. But wait for it…here’s the deal sweetener…you get a free Disrupt ticket (valued at $2000) too.

Now, I’m sure they will offer more tickets, next week and some more, and hopefully everyone who wants to go will get a ticket eventually. But what about those who won’t? Did I cheat to win here? To solve this ethical dilemma for me, I decided to make this information available to everyone as a new endpoint at Keep Calm as a service. Hope that helps!

Hacker achievement unlocked!