13 ms·
How I Took an API Side Project to 250M Daily Requests
- firloop 9y agoRelated, some other adventures while running an API to retrieve IP addresses. https://news.ycombinator.com/item?id=11010856 https://news.ycombinator.com/item?id=11010856
- WA 9y agoI use ipinfo.io mostly to see my own public facing IP address and for me, it's 2 reasons: - I somehow can remember that domain. I don't have to google "my ip" and dig through weird domains that change all the time - The design is clean and simple. Not too many information, no ads, loads fast.
- secure 9y agoWhen I google “my ip”, I get a onebox showing me my IP. Dose that not appear in your search results?
- synapse0 9y agoOk have a look at canihazip.com then! Love it!
- penagwin 9y agoOr the super easy to remember http://ip4.me http://ip4.me (ip6.me is a thing too)
- kuschku 9y agoGoogle gives you your IPv6, but ipinfo only supports IPv4 – which can be useful sometimes.
- guessmyname 9y agoLike this [1]? These custom results are usually limited to some countries. Like when you search for "color picker" [2] and "bubble level" [3] on mobile. Google is known for testing these features in their services in specific locations so I wouldn't be surprised if people from other countries cannot see them. [1] http://i.imgur.com/gVFAMhz.png http://i.imgur.com/gVFAMhz.png [2] http://i.imgur.com/JGVNDMN.png http://i.imgur.com/JGVNDMN.png [3] http://i.imgur.com/As7Dp2p.png http://i.imgur.com/As7Dp2p.png
- WA 9y agoGerman Google, no. Also not when writing it in German.
- VonGallifrey 9y agoStrange, both google.com and google.de show a info box with my IP for the query "my ip" for me (from Germany). Does not work with "meine IP" but that is more to type anyways.
- WA 9y agoMobile or desktop?
- QUFB 9y agoI prefer (and operate) https://wtfismyip.com/ https://wtfismyip.com/
- kevinbowman 9y agoI often use: curl curlmyip.org
- heipei 9y agoAs a Linux user, I mostly go for 'curl ifconfig.co' ;)
- coderholic 9y agoCurl ipinfo.io gives you a lot more information!
- TheAceOfHearts 9y agoFor someone looking for a simple CLI option to get your remote IPv4, you can use the following: dig +short myip.opendns.com @resolver1.opendns.com In my case, I have a ip_remote.fish file in my $HOME/.config/fish/functions folder which defines an ip_remote function that executes the line above. As an added bonus, you can get all local IPv4 with: ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'
- coderholic 9y agoCurl ipinfo.io seems simpler, and provides a lot more information! If you do just want the ip then curl ipinfo.io/ip
- westoque 9y agoGood strategy! That's also what I did to get my side project (Cookie Inspector - Google Chrome Cookie Editor) project to having 80,000/daily users. https://chrome.google.com/webstore/detail/cookie-inspector/jgbbilmfbammlbbhmmgaagdkbkepnijn?hl=en https://chrome.google.com/webstore/detail/cookie-inspector/j... I solely marketed it at Stack Overflow and was getting upvotes and that was all my marketing. https://superuser.com/questions/244062/how-do-i-view-add-or-edit-cookies-in-google-chrome https://superuser.com/questions/244062/how-do-i-view-add-or-... Also a big factor there are good reviews. When users like your project/product, they will market it for you.
- zschuessler 9y agoHN users clicking through: take a look at reviews before installing. Appears there may be an issue with adware. westoque - might want to check your code base, if the adware is unintentional.
- harrisi 9y agoI'm on mobile currently and apparently cannot look at reviews for Chrome extensions. Cookie Inspector is open source[0] according to the extension page, so you could try finding any adware-related code yourself, couldn't you? [0]: https://github.com/westoque/cookie_inspector https://github.com/westoque/cookie_inspector
- OJFord 9y agoChrome does nothing to guarantee that an extension is built from the source that it claims. You can verify that source, enable external sources in Chrome, ('developer mode' or somthing) and then install it - but that says nothing about what's on the Chrome store.
- generj 9y agoThankfully, all Chrome extensions can at least have the source viewed. The .crz file type for Chrome extensions is actually a .zip file, so the code can be inspected. If it's obfuscated this doesn't mean much though.
- merb 9y agowell currently my location is basically totally wrong. from https://www.iplocation.net/ https://www.iplocation.net/ I've only seen one service that tracks my location 100% correct (correct village), all the others are 200 or more km away from my real location.
- XCSme 9y agoIt just depends on the database they are using. Anyway, nowadays it's getting harder and harder to detect accurate location from the IP address (many users are on 4G or behind a proxy).
- unclebucknasty 9y agoYeah, and features like Data Saver on mobile Chrome will quietly proxy your requests through Google servers. Not sure if G forwards the proper X-FORWARDED-FOR headers (or if all IP detection services read them).
- coderholic 9y agoYeah Google does, and we take the first public IP from x forwarded for, so we'll show your actual details in that case.
- martinald 9y agoYup, even other a lot of fixed broadband is moving to CG-NAT. I wonder if having an IPv6 version would work a lot better?
- smokybay 9y agoThe author does not say how much does maintaining the service cost and what is the long term plan. As others have referred to already, a similar existed before and ended for a simple reason – no point in maintaining it with constant loss and no clear revenue plan. https://news.ycombinator.com/item?id=11010856 https://news.ycombinator.com/item?id=11010856
- coderholic 9y agoOh it generates revenue, and we have a lot of big customers! See https://ipinfo.io/about https://ipinfo.io/about https://ipinfo.io/customers https://ipinfo.io/customers and https://ipinfo.io/pricing https://ipinfo.io/pricing
- sscarduzio 9y agoYes but what's your revenue? Please consider going transparent (i.e. http://www.transparentstartups.com/ http://www.transparentstartups.com/) and making an interview with one of my fav websites indiehackers.com
- packetslave 9y agoI'm confused why you think you're entitled to this information?
- scalablenotions 9y agoWhy do you hear "Please consider" as "I demand/expect"?
- rgrieselhuber 9y ago"Yes but what's your revenue?" sounds rather demanding.
- blackoil 9y agoProviding revenue and financial metrics are really get eyeballs as this info is rarely available for early stage companies. Balasmiq used this very well, they released early on monthly financial status blogs, which almost all managed to reach front page/top of HN. So, take it as another guerilla marketing channel.
- niko001 9y agoThis has worked well for me, too. I saw an influx of "How to offer a time-based trial version on Android" on SO and developed a trial SDK as an answer: https://www.trialy.io/ https://www.trialy.io/
- aphextron 9y agoVery neat. How successful have you been with this?
- jacquesm 9y agoThat's great. Question: does it make money? The words 'profit', 'money', 'income' and 'revenue' do not appear in the article.
- XCSme 9y agoWell, he said it is his full-time job, so you can safely assume it generates revenue and also you can see they have a Pricing section on their site.
- eriknstr 9y agoHe could have saved up money and be living off of his savings while working full-time, and the amount of money that he is being paid by his customers might be less than the sum of his business and/or personal expenses. Not saying that such is the case here but just pointing out that it's possible.
- coderholic 9y agoYes, it's profitable. See https://ipinfo.io/pricing https://ipinfo.io/pricing for details of our paid plans.
- jacquesm 9y agoNeat, congratulations! I know a few people that were active in that space and none of them managed to make it profitable and they all faded out again. It's important that services like these exist and even more important that they are viable businesses otherwise you are building on quicksand.
- Scirra_Tom 9y agoWhere did you get the IP DB from? My understanding is most you can't resell access to?
- IAmGraydon 9y agoDo you really think he's going to answer that question?
- phillmv 9y agoyeah, especially because "[they] built the API in a few hours". having hosers abuse your free geoip service listed off the first hit from google is nice but the data being provided can't just be "hacked together" :P.
- maddyboo 9y agoDo you think free IP DB providers insert "fictitious entries" [1] to identify breach of TOS like this, similar to what happened between Google/Bing a few years ago [2]? 1: https://en.wikipedia.org/wiki/Fictitious_entry https://en.wikipedia.org/wiki/Fictitious_entry 2: http://www.cnn.com/2011/TECH/web/02/02/google.bing.sting/index.html http://www.cnn.com/2011/TECH/web/02/02/google.bing.sting/ind...
- deleted 9y ago[deleted]
- mrskitch 9y agoI'm employing a similar strategy for my library https://github.com/joelgriffith/navalia https://github.com/joelgriffith/navalia as I couldn't find any solution to manage headless chrome (plus the API for that protocol is pretty heavy). Building for what folks want, even developers, is so obvious that I think we often forget about it. It's also not as glamorous as self driving cars or rockets, so gets discredited easily. Sound points though
- babuskov 9y agoI'm baffled why anyone would use this, when you can import data in a database and run it on your own server? I mean, you might spend 20 minutes more to set it up, but you are safe from having to rely on 3rd party service. Anyway, kudos to coderholic for creating this and sharing the story.
- matt2000 9y agoWhere is this data available for download?
- theoneone 9y agoGood question!
- guessmyname 9y agoMaxMind databases are the first options you can find if you search for "GeoIP Download" [1][2][3][4][5]. [1] https://www.google.com/search?q=geoip+download https://www.google.com/search?q=geoip+download [2] https://dev.maxmind.com/geoip/legacy/geolite/ https://dev.maxmind.com/geoip/legacy/geolite/ [3] https://dev.maxmind.com/geoip/legacy/downloadable/ https://dev.maxmind.com/geoip/legacy/downloadable/ [4] https://dev.maxmind.com/geoip/geoip2/geolite2/ https://dev.maxmind.com/geoip/geoip2/geolite2/ [5] https://dev.maxmind.com/geoip/geoip2/downloadable/ https://dev.maxmind.com/geoip/geoip2/downloadable/
- timdorr 9y agoIn environments where you don't control the whole stack, such as a plugin or library code.
- diminish 9y agoCongrats. I m not sure but ipinfo could be very interesting to startups and programmers. So a good idea could be writing attractive articles and posting them on HN and Reddit programming and some other subreddits. That would bring more customers with zero marketing. See also: https://news.ycombinator.com/from?site=ipinfo.io https://news.ycombinator.com/from?site=ipinfo.io
- kasbah 9y agoDoes anyone know how ipinfo compares to running your own instance of https://freegeoip.net https://freegeoip.net?
- justboxing 9y agoI was wondering about this too. The answers on the SO question https://stackoverflow.com/q/409999/325521 https://stackoverflow.com/q/409999/325521 that OP refers to (in his blog post) also has another answer using freegeoip.net => https://stackoverflow.com/a/16589641/325521 https://stackoverflow.com/a/16589641/325521 From the comments on this answer (not OP's answer linking to his API), it seems like freegeoip is not all that reliable (i.e. it's down a lot). Funnily enough, 1 of the comments on this answers links to another free service, called "freegeoip2" which seems to work just fine as of right now.
- kasbah 9y agoThat was my experience with freegeoip.net actually, which is why I host my own instance of it.
- reacharavindh 9y agoHappy user here. My GF came up to me and asked if I could somehow get country names for the ip addresses she had of her survey respondants. I Googled and found this neat little API. True, I could have downloaded the raw databases from elsewhere and worry about the SQL I need, whether the data is recent or ancient or even correct. I decided it was an overkill for my need, and just used this API in a throttled(1 req/s) mode and left it overnight. If I need this IP to Location need again, I'd happily pay for this API.
- davidivadavid 9y agoI'm not sure why people are proud to do things without spending money on marketing. What if spending money on marketing had made you grow twice larger? Twice faster? When people say "I didn't spend money on marketing", the only translation is "I knowingly overlooked massive growth opportunities."
- artursapek 9y agoIt's prideful because using ads is the easy way out, and it's often not very cost-efficient. Doing it the hard way is cool.
- davidivadavid 9y agoYes, that seems to be the sentiment. And that sentiment is puzzling to me.
- artursapek 9y agoWhy? People hate ads. If your service grows with no spending on ads, it means you're getting traffic from word-of-mouth. And that indicates that you've built a great service that people are happy to promote for you. It just shows your product has virtue and it's naturally taken as a compliment. I'd compare it to having a kid. If you have money you can probably buy your kid into a good school and hook them up with a good job when they graduate. Or you can set them up with the right foundation and watch them succeed on their own. I did the same as the OP with a project of mine. I never spent a penny on ads and it's grown into a very popular charting/trading tool among cryptocurrency traders. I also take pride in the fact that I grew it organically.
- davidivadavid 9y agoWhat you're addressing here seems orthogonal to me. You can use "marketing" for a crappy product, and you can use it for a good product. All combinations exist. What's puzzling is that you would deprive yourself from making your great product known to more people simply because you want to do it the "hard way." Forgive me, but I'd call it "the dumb way."
- erikb 9y agoHow much money do you make per api req?
- justboxing 9y agoSee https://ipinfo.io/pricing https://ipinfo.io/pricing Although I must admit, I'm a bit surprised as to why anyone would pay for this, as several HN readers have listed atleast 5 other free (and some self-hosted) alternatives here...
- nu11p01n73R 9y agoSeveral HN readers have also pointed out that some of the free solutions have shutdown because of lack of funding. When money is on the table, user may expect that the provider is "more" answerable than a free service.
- rodionos 9y agoChecked one of our static IPs: the country is correct, but the city is 500 miles off.
- martin_hnuid 9y agoThanks for sharing. I am ready to launch a startup and currently trying to figure out what to focus on (so many ideas!). I posted an "Ask HN" earlier today. Wondering if anyone might have some thoughts or advice on this: https://news.ycombinator.com/item?id=14677939 https://news.ycombinator.com/item?id=14677939
- kpsychwave 9y agoGiven the fast lookup time, it would be useful if you could provide a JS API fot synchronous loading. Essentially, a blocking script in the dom <script src="...api.js" /> that prepopulates the window object. With clever error handling, this could improve perceived performance significantly. A few questions: 1. What differentiates you from ip-api.com and other providers? 2. Do you use MaxMind? 3. Is there an option for no-throttling? 100s of simultaneous requests? I aggregate multiple IP databases for my SaaS (https://www.geoscreenshot.com https://www.geoscreenshot.com) and I need highly performant / reliable IP look ups.
- Etheryte 9y agoWhy would you _want_ a synchronous, blocking script in the first place?
- kpsychwave 9y agoFor conditionally loading other blocking assets in JS. For example, if IP is in China, local fallback for Google CDN as it will fail.
- Etheryte 9y agoYou can also do all of these things asynchronously, without blocking the whole page.
- kpsychwave 9y agoYes but like all async ops not without expense to the UX.
- kalal 9y agoYou are great! My karma goes down, please!
- craigmi 9y agoPretty cool man, use your site all the time for ASN lookups, although I find your carrier information wildly conflicts with digital element's DB.
- SirLJ 9y agoI see the author is posting the same thing every 20 days or so, so here is the 0 marketing...
- Tloewald 9y agoI'd like to point out that the things he says he's doing instead of marketing are, in fact, marketing. It's "guerilla" marketing, and it's being paid for with the writer's time. Nothing wrong with that, just don't confuse "marketing" with "advertising".
- pier25 9y agoSo what's your stack? Still running PHP?
- imaginenore 9y agoJust some rough calculations. Assuming the worst-case scenario, everyone in the highest tiers (the cheapest per request), 250M daily requests means he makes 400 * 250M / 320K = $312,500 per month. Or $3.75M per year. Not counting the expenses.
- venning 9y agoThe cheapest per request is $0. There is a free tier where, presumably, the long tail lives.
- fusionflo 9y agoKudos to you guys for building this. There is always a lot of scepticism from people on "why would anyone pay for this" . Reality is not everyone has the time or resources to build their own kit. There are literally 1000s of businesses on the internet that that are in the business of selling "time" or timesavers and removing the risk of maintenance, ongoing support. Keep improving this and with the rise of web personalization, the demand will continue to grow.
- larsnystrom 9y agoIpinfo seems to have the exact same logo as Podio (https://podio.com https://podio.com), a service owned by Citrix.
- IAmGraydon 9y agoThat's interesting. It's almost exactly the same. I did a trademark search, and although "Podio" is registered as a word mark, the logo design is not registered. So IPInfo is probably in the clear, but they may want to consider a new logo.
- overcast 9y agoThat's essentially identical, except for the connecting bar, and a slightly darker shade of blue. They are even both SVG files.
- kevan 9y ago>90% of our 250 million daily requests get handled in less than 10 milliseconds. Minor nit, but with that level of traffic I'd expect you to be bragging about P99.99 latency, not P90.
- motyar 9y agoSuch stories don't let me stay focused on my freelance work. I got inspired and start researching and Building. ( btw failing yet)
- ribrars 9y agoGreat overview here on how you solved a problem and built a business around that. I read that you use Elastic Beanstalk for your server config, but I wanted to ask: 1. What programming language did you use? 2. What, if any, configuration did you have to do to the Elastic Beanstalk config to deal with network spikes and autoscaling? Thanks!
- skynode 9y agoI was going to ask why AWS Lambda was not used instead. Or any other serverless offering from the major cloud providers.
- ribrars 9y agoYeah, that would be totally hands off. But I believe you'd have to ensure that your requests didn't timeout, (3 seconds in lambda) and in this example of 10ms response times I couldn't see any issue here. If you're into python, checkout Chalice, it's being built as a "flask" like interface on top of AWS Lambda. https://github.com/awslabs/chalice https://github.com/awslabs/chalice
- ge96 9y agoThat's crazy the details like lat/long, what if proxy or where does that data even come from? ISP? Or you take time to build it out ie research. At any rate cool.
- unchaotic 9y agoCrowded space. Quick google search of any of these keywords "ip address location api" , "ip lookup API" , "geolocation API by IP" etc. shows : - https://db-ip.com/api https://db-ip.com/api - https://ipapi.co https://ipapi.co - https://freegeoip.net https://freegeoip.net - ipinfodb.com - https://www.iplocation.net https://www.iplocation.net - http://neutrinoapi.com http://neutrinoapi.com - http://www.ip2location.com http://www.ip2location.com - https://www.telize.com https://www.telize.com and a few dozen more. I wonder if collectively they are serving over a few billion requests per day. Microservices & API culture FTW !
- geuis 9y agoI've been running https://jsonip.com https://jsonip.com for years. Been serving millions of requests a day for most of that time. Doesn't really show up in searches well because it's just an API.
- voltagex_ 9y agoHow do you pay for it?
- buro9 9y agoI run a few small services, nothing of this scale, but one thing to bear in mind is that it's easy to pay for a lot of little side projects if they have virtually no costs. The one cited simply echoes back your IP. That's it. How cheaply could you do that and how many requests per second could you handle on one small VPS? Example, I recently ran https://www.tactical2017.com/ https://www.tactical2017.com/ which is a tactical voting website for the UK general election. The cost for serving that whole website to 2.6 million people over 5 weeks, and 650k people in the last day and a half, was $20. Just push costs down.
- geuis 9y agoI use linode. Been a loyal customer from years. Basic service is $40 a month with $10 for automated backups. Fits within the bandwidth contraints. I've also spent a lot of time optimizing the hell out of the server.
- rickduggan 9y agoThis is super cool. I use a similar API to provide a client-side service called IP Request Mapper (https://chrome.google.com/webstore/detail/ip-request-mapper/ghhmhholmphdnpndngkhmpknekgicmbp https://chrome.google.com/webstore/detail/ip-request-mapper/...). Coming soon to a Show HN near you. What it does is show where every asset on a web page is loaded from. It allows you to visualize how many different requests go into building just one web page. While it's gotten much better, the Houston Chronicle (https://chron.com https://chron.com) used to make about 500 individual requests to build its home page. It's down to about 125. It's best to run it across two different monitors, with IP Request Mapper on one monitor and your "normal" browser window on another. Then enter any URL and watch the map start populating based on the geolocating every request made by the page. But it's projects like ipinfo.io that make these other things possible. Standing on the shoulders of giants and all that...kudos to you, coderholic.
- heipei 9y agoThat's the same motivation that started me to build https://urlscan.io https://urlscan.io. I wanted an easy way for everyone to visualise the amount, size and destinations of the various HTTP requests that a single page-load triggers. Incidentally I also created a tool that is being used by a lot of Security / Phishing researchers. If you ever want some inspiration for additional IP / domain annotation sources, check it out. I should really do a "Show HN" soon ;) Meanwhile, this is a scan for a particularly noisy German newspaper website (faz.net): https://urlscan.io/result/f23e2e7e-e1eb-4591-9794-92f97957dd75 https://urlscan.io/result/f23e2e7e-e1eb-4591-9794-92f97957dd... This website contacted 35 IPs in 7 countries across 24 domains to perform 302 HTTP transactions. Of those, 51 were HTTPS (17 %) and 35% were IPv6. The main IP is 92.123.94.227, located in European Union and belongs to AKAMAI-ASN1. In total, 4 MB of data was transfered, which is 9 MB uncompressed. It took 2.51 seconds to load this page. 16 cookies were set, and 42 messages to the console were logged.
- random_rr 9y agoVery cool tool. Thanks for posting this!
- elnygren 9y agoThe author says I took even though this was pure luck and coincidence. Attribution bias is strong in this one. However, it is important to acknowledge that he did put himself into a position where he was available to become lucky (= he built the API and linked to it).
- drej 9y agoI see it's still a thing. Back in high school, some ten+ years ago, I coded up an 'ip2country' website. Not sure why, there were dozens of those. I guess I had a free domain and a lot of time on my hands. I put some Google AdSense on it and let it go. I checked my AdSense account some six months later and found out I was cashing $20/month. Easiest money I've ever made.
- reefoctopus 9y agoAre you just using the max mind data? What percentage of those 250,000,000 is from paid plans? Even if it's only 20% you'd be doing $xx,xxx per day. Is that in the ballpark?
- GordonS 9y ago> Our servers use latency based DNS routing to serve over 90% of all requests handled in less than 10ms. What exactly does that actually mean though? Does it mean that processing time at your server is 10ms, or 10ms to time to first byte, or something else? Giving it a quick test, I generally get the actual JSON result in around 400ms. The lowest I got was 200ms, the highest around 1000ms. It didn't seem to make any difference if I used the HTTP endpoint instead of the HTTPS one.