Similar to the way that many startups get going, IPInfo's IP-based geolocation APIs were originally written to scratch an itch, so to say. Determining the approximate geographic location of a machine based on its IP address is actually relatively easy to do. That machine could belong to an individual Internet user or it could be a Web server in a data center. Either way, by triangulating multiple sources of public data (for example, the geographic area serviced by a block of IP addresses belonging to an ISP) with the information that's buried in electronic packets going to and from a system as it interacts with other systems across the Internet, it isn't terribly difficult to get an idea of where a system is located based on its unique IP (Internet Protocol) address.
There are several use cases for such information. For example, such capability might be useful to operators of a Web site wanting to know where its visitors are coming from.
Whereas command line utiltiies for getting at this data have existed ever since the Internet was born, programmatically summarizing that data and including it into a business process is a different story. Looking to have a bit of fun, Ben Dowling one-day went looking for an API that was up to the task. But the best he could find was a laborious XML-based Web service. So he took it upon himself to launch his own RESTful API to make it easier for his own personal use cases. It worked well enough that he decided to let other developers have free access to it and it wasn't long before the API was overwhelmed with traffic (a good problem to have).
Sensing a clear business opportunity to monetize the API, Dowling continued to allow a free tier of service, but not to the heavier users who were glad to pay. IPinfo was off to the races. But just like with any good idea, as soon as IPinfo started generating revenue, other startups wanted in on the action. Fortunately, IPinfo has been able to weather the competition. First mover advantage was very important in terms of seizing the early lead. With that early lead and the revenue that went with it, Dowling says he's been doubling down on the sorts of API characteristics (eg: reliability) that differentiate IPInfo from the competitors. As more developers have come to IPinfo, the company has diversified into other related areas, resulting a wider portfolio of APIs (not uncommond for API providers that successfully start with just one API). In other words, staying "customer-driven" (aka "developer-driven") is what has fueled IPinfo's growth.
To see (or hear more) about Dowling's journey with IPInfo, you can watch the entire interview, listen to it as podcast, or read the full transcript below.
Video Interview of Ben Dowling
Editor's Note: This and other original video content (interviews, demos, etc.) from ProgrammableWeb can also be found on ProgrammableWeb's YouTube Channel.
Editor's note: ProgrammableWeb has started a podcast called ProgrammableWeb's Developers Rock Podcast. To subscribe to the podcast with an iPhone, go to ProgrammableWeb's iTunes channel. To subscribe via Google Play Music, go to our Google Play Music channel. Or point your podcatcher to our SoundCloud RSS feed or tune into our station on SoundCloud.
Full Transcript of David Berlind's Interview with Ben Dowling, CEO and founder of IPinfo
David Berlind: Hi, I'm David Berlind, Editor-In-Chief of ProgrammableWeb, and this is another Developers Rock podcast. With me, today is Ben Dowling. He is a CEO and founder of IPinfo. This is a special sponsored podcast.
Ben, thank you for joining us today.
Ben Dowling: Yeah, thanks, David.
David: So, it's great to have you here on the ProgrammableWeb podcast and we've exchanged a few notes and, been speaking to each other in preparation for this particular podcast. The first question I want to ask you is a little bit about the history of IPinfo. How did it get started? What were you trying to accomplish when you first got going?
Ben: Sure, yes. So I started it six years ago, and I had just been kind of Googling trying to find some data on my IP address. I was just curious, and was struggling to find a website, much less an API. I thought this could be just a fun little project to build; just to satisfy myself, and kind of knock something together pretty quickly. I launched it and posted it to Stack Overflow, and a few other places. And the site started getting some traction. And more and more people were using it. And that's when I realized, I was like, wow, I should keep building this out and add some more fields, make it more useful. And so it kind of happened very organically. It started as something I had kind of no expectation around. I'd seen that there was no easy, simple solution to kind of pull your IP address data, or view it on a webpage or get it through an API.
There were datasets that were available that had the data, but it was a case of you'd had to download that, set it up, the data would get out of date so you would have to, update it and write scripts to update that or do it manually. And there's nothing that was kind of super simple, super easy to use. I think that's why, a lot of people started using this, because it was just much more easy to use than the alternatives and it kind of took off from there.
David: So, fundamentally, how does IPinfo work?
So this helps websites kind of customize content and things based on where the user is visiting from or their provider. And then the other way you can kind of pass in an actual IP address, you can server aside say, okay, here's users IP address or here's an IP address that I actually want information for that you could pass that into us, and we'll send the details back.
David: So, presumably when you first basically started to scratch and itch so to say, a bunch of other people saw what you had done, it got some traction. Was it free at the beginning for them and is it free now?
Ben: Yes, initially it was 100% free. I had really no plans to commercialize it, it was just like, well this is cool, it works for me, it would be useful to some other people, let's kind of launch it. And then after a few months I saw it was getting some traction and I got an alert from my server provider at the time was like oh yeah your CPU pegged at 100% it like, oh yeah there's probably a block in the code or somethings gone wrong, take a look at the server logs and millions and millions of requests are coming in.
David: Great problem to have , right ?
Ben: Yeah it was, so at that point it like well this is interesting. There's lots of people using this, much more heavily than I assumed and so I'd love to let people use it for free, hobbyists and things. But for these people that are using it at a high frequency, lets see if they're either interested in paying for it or they can stop using it, right? And either one is kind of fine. At that point my server bill was kind of going up, and so I kind of looked at the usage patterns and kind of said let's keep it free for one thousand requests a day that was kind of what I thought a hobbyist's project might get up to.
But anybody that wants to use this for more than that, then we set various tiers I think starting at, ten bucks a month and going up from there based on how much usage there was. And kind of launched those prices with very little expectation of how much people might kind of go for those, and then very quickly we had paying costumers that were more than happy to pay those prices based on the pointers that they needed. And that was when it kind of became a business and its like, wow okay time to take this more seriously.
David: Well congratulations, I mean a lot of companies that want to be a successful API provider, are looking for ways to monetize their APIs, they don't know how to get started. And it sounds like you sort of, kind of, fell into it by accident almost and that's a great way to get started. One question I have though is, when we look at the ProgrammableWeb API directory, we see that there are quite a few other providers of this same sort of information, IP-based geolocation. What sets you apart, in your mind, from all the other guys that are out there?
Ben: Yeah absolutely, so, there are a lot of these other kind of IP geolocation APIs around, and it seems like there's a new one starting almost every week. I think that some of these guys have seen the success that we've had and it's kinda simple to set something up. What is difficult to do, is to do that at scale, so we now handle twenty billion, over twenty billion API requests a month. We've been around for a long time, a lot of these API providers will kind of spin up, try it for a few months and be like oh you know it's not having the traction I want, so I'll kind of shut it down.
I think we are totally committed to being around for the long term and being a provider of the long term. I think in our six year history, we haven't had any major outages. There's been a few incidences when I've deployed a bug, there [might] have been some issues for a while [after that], or we ran on AWS for a while, and there was like an AWS outage, and we were down for a little bit when AWS was down. We take reliability very seriously and in our six year history there have been no kinds of major outages while other providers might go down for a couple of days and then come up or their latency can be all over the place. I think our API is reliable, we are a trustworthy company to work with. We take the latency of our API very seriously. And also we have at this point you know we have been around for a long time, we've got all the customers, we've got a team of engineers that are working on this, right. We are constantly improving our product, improving our data. If you want a reliable trustworthy solution that you know is kind of going to be around for the long term, then we are the right team to go with.
David: It seems a little bit like you had some first mover advantage though too, because when you've got that many API calls happening on a daily, weekly or monthly basis and you have a business model attached to it, and you are generating revenue and another competitor comes alone and tries to take a slice of your pie, they need to scale to some number of API calls before they're going to generate enough revenue to compete with you right? So it seems like a little bit of a first mover advantage. You mentioned AWS, are you still on AWS?
Ben: No, so the history of our infrastructure actually, so the very first version was just on a Linode VPS, I think it was like a twenty bucks a month server. Then, the first diversification of that was, like wow we need this to be a reliable service, we've got customers that, at that time they weren't paying customers, there is just a bunch of people using us. If the server goes down, or there has been an outage, that's been a problem. So the first version, redundancy that we set up was to have Linode VPS and the DigitalOcean VPS and just have round-robin DNS. And that worked okay for a while but it was kind of a pain to manage and then we switched to AWS. And that AWS served us pretty well for a while, we were able to have a lot of traffic on AWS.
But, about a year ago, maybe two years ago, we switched over to Google's cloud. That's been ... That was a great move for us and we use a lot of it, obviously we have our API. We get a lot of data processing to create all the data that goes into our API and so we have been making a lot of use of Google; Google Composer, Google BigQuery. And do a lot of great stuff with the Google tools there.
David: I see. So, you've had a lot of success doing IP geolocation over the last six years. You've got a business model up and running, an extraordinary number of API calls a day. Have you diversified into other areas? Are you looking to diversify?
Ben: Yeah, absolutely. Our Geolocation API, or IP details API that has the geolocation and the ISP data and things like that; That's still the bulk of our business and the bulk of our API requests. But over time we'll build out other products and will continue to do that. Some of those, we built out additional ASN details, so we have our ASN classification products. One thing ...
David: I am sorry ASN, what does that stand for?
Ben: So ASN is basically, the way IPs are structured is each IP range has an ASN that is responsible for it, so that would usually be ISP where it could be a business or something ...
David: I see, okay.
Ben: So given an IP address, you can map that to an ASN, which kind of organization that is responsible for that IP address. And so what we have done, is we have gone through, we have created, we have collected a lot of data on ASN's which feeds into our products. We have also created, done some machine learning around our ASN data and classified each ASN. We classified it as to one of four types, so it is either ISP, Hosting Provider, a business or educational institution. And that has been really useful for some of our customers, for a bunch of different things.
One use we had a customer that is using this to block, what they suspect is suspicious activity on a website so if they see ... the expect basically most things to be done on their site from consumers or businesses. Whereas if they say okay look we are seeing some activity from this IP address that's been classified as a hosting provider, the chances are it is a script or some automation or it's been used as a proxy. So they can either block that or they can queue that for review.
That's been an interesting thing, that's been a lot a fun to work with actually. We've got other APIs, so one thing we do is we have all the domains that host an IP address, so you can say give me this IP address, what domain is hosting or how many domains, we classify that as well we can say is well here is the top million bank domains, how many of those are on this IP range or IP address. And what we are doing is looking more and more domain data as well, so we've obviously to create that product we have to go find out where are all the domains and what are all the domains hosted on. So the one thing we started looking at is okay were else can we kind of put domain data and where can we use that.
Another thing is IP ranges is for a business and so we've got a few customers that started using this recently. What domains are Facebook responsible for? So you can pass in Facebook.com to IP ranges API and it will return a list of all the different IP ranges that Facebook either owns or operates or is responsible for. That's been useful for, vast ranges of things from ad targeting to some security stuff where you might want to give access to ranges or block access to ranges. We are working hard on basically, putting in lots of different data and then working out ways we can make that data accessible to different businesses and for different use cases.
David: And I am assuming that these different models or these different classes of data that you offer may trigger an additional fee from a business model perspective, is that how it works?
Ben: Yes that is usually how it works. And most of these have come from ... The normally start as like a customer request, so we start with our main API, we get customers on that and then they come to us and say, hey, your API has been really useful helping us do whatever X is, but if you could come up with this data, that would be even more helpful for what we are trying to do.
David: So you are very customer driven. When customers give you feedback, you take that back into your lab and say, okay, ya we can probably do that. And then it becomes a part of the product?
Ben: Exactly. Kind of like our core competency is to be able to deal with these API's at scale and the other core competency is that we have gotten really good at data processing, data plot-points and things like that. So when a customer comes to us and is just like hey you know could you come up with this IP-rated dataset, well it is like well sure we will take a look at that and see what we can figure out. And that kind of works its way through a product pipeline. It might start as something you can just for that customer, but over time it ends up being, okay great this works its way into the main API that everybody then has access to.
David: One last question. Has anybody come along to you and said, hey boy, that data that you're collecting, on an IP address is an area of sensitivity these days. You know, everybody's under the gun for ensuring the privacy of users, protecting sensitive information. Is that an issue for you?
Ben: That hasn't been an issue for us, specifically. There's nobody that has really come to us and said that. I definitely think it is an environment right now where people are more concerned about privacy. I think what's sometimes gets kind of a bit ... I see there's been a lot of confusion on IP address geolocation. I think that suppose the police of been raiding someone's house in the middle of nowhere. I think that ... So with IP geolocation, at least with our accuracy with most solutions, it's city-level accuracy. So we are not saying okay, there is someone at this exact location, there is someone at this exact place.
Ben: It's like there is someone in Seattle or there is someone in San Francisco.
David: I see ... general vicinity.
Ben: Exactly, so it's not a good solution for, like say, creating an Uber. No one is going to come pick you up in Seattle. But it is great for lots of applications like where is your nearest airport. There is normally only one airport near [you] or a handful of airports. And so in that case it is like there is definitely, it gives you more information than you otherwise might not might have. [inaudible]. It's not like someone might not know they're Seattle if they didn't have IP geolocation. But knowing I am in Seattle is not as much of a privacy concern, okay we know that Ben's here right now, right?
David: So, where can developers find you if after hearing this podcast or like, boy that's what I need in my application? How do they find your website and your developer portal?
Ben: Sure, so our website is ipinfo.io. We've got a ton of development documentation available at ipinfo.io/developers. Our own Github is ipinfo . Twitter is ipinfoio. We have got a bunch of SDK's, so we've got them for the major programming languages, PHP, Python, Go, Java, Ruby, and we have also recently ...
David: A lot of the server side platforms there right?
Ben: Yeah absolutely. So what we've just launched were a couple of server-side [SDKs] as well; but a sort of middleware for Django and Rails. The kind that does all the heavy lifting for you. For the longest time we didn't ... we wanted to make our API as simple as possible, so we kind of resisted writing SDKs. We've actually made it so easy that you don't need one. We get more and more requests for the same things over and over. Things like, oh hey your [requested] the country code before the country name with these few lines of code. And then we were like actually, instead of telling ten people to write these two lines of code, we will just do it [both country code and country name] for them. So we kind of built in a bunch of common use cases into our SDKs like caching, filtering button user agents.
David: Sure. Developers love that stuff, cause it makes it so much easier for them to just get it an application up and running. Eventually they may scale back and go through the raw API but SDKs really makes the onboarding process go a lot more smoothly for some developers.
Ben: For sure.
David: Yeah. Well, Ben Dowling, CEO and founder of IPinfo, thanks very much for joining us today on ProgrammableWeb's Developers Rock podcast.
Ben: Yeah, thank you David.
David: Okay everybody, well thanks very much for joining us. You can find our coverage of this and other APIs on ProgrammableWeb.com. You can see this video either on ProgrammableWeb.com or up on our YouTube channel, where other videos can be found www.youtube.com/ProgrammableWeb.
For ProgrammableWeb, I'm David Berlind. Thanks for joining us.