27 karma · joined November 3, 2015
We have thought about some other DNS related APIs.. what would you be using it for?
Also, you are greatly over simplifying these problems with a "I could build that" type statement. In my experience (more than 15 years as as professional software developer) this is something junior developers say all the time...
While i'm sure you might be able to roll some of these yourself in most cases its a waste of time and money and the constant maintenance of data is a real problem (as well as the quality of data). Some of our methods have taken a long time to perfect and test (years!) while other methods you would just not be able to implement yourself (e.g. HLR)
Lets examine one of the more simple APIs: IP Info (IP Geolocation). So you wan't to roll this yourself and run on your own gear. OK first, the data source. You need to find a quality source of IP geo data and load that into your database of choice. Great it works well, job done. Not quite, IP geo data is changing rapidly these days (mostly due to IPv4 exhaustion) so you have to keep downloading (and most likely paying for) database updates. The provider doesn't provide an automated way to do this, so you have to build that as well. They also seem to charge a lot of money for the "full" database. Later it turns out some of their data is highly inaccurate, so you have to find other suppliers, they use a totally different format so you have to re-implement that as well.. I think you can see where this is going..
That's just a trivial example. Most of our APIs are far more complex than IP info is and require much more work and maintenance to keep running.
Firstly, although python has loads of great open source libraries, you wont find any that can do all the things we can do.
Secondly, the volume of data that needs to be maintained and updated (on daily basis) is massive and way out of the scope of most projects (e.g. we maintain databases with more than 5 billion records which have to be updated daily).
Finally, although some of the APIs could run in a 100% local environment (we are looking into some ways to distribute this way) most either require a constant fresh data feed or need to connect to external systems e.g. to make and HLR query you must connect to the SS7 network which is not easily obtained and simply something most developers don't want to have to deal with.