{"id":2315,"date":"2017-06-11T17:59:59","date_gmt":"2017-06-11T12:59:59","guid":{"rendered":"https:\/\/ahmadawais.com\/?p=2315"},"modified":"2023-08-16T05:48:34","modified_gmt":"2023-08-16T12:48:34","slug":"best-api-geolocating-an-ip-address","status":"publish","type":"post","link":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/","title":{"rendered":"What Is the Best API for Geolocating an IP Address? [2021]"},"content":{"rendered":"<p>While working on a recent project for a client, I found myself in the need of a good and reasonably reliable Geolocation API to find out more about a user that visits your site.<\/p>\n<p>So, I did a little research for currently available APIs and came up with somewhat an exhaustive list. That is what I plan to share today.<\/p>\n<p>I would use a web service that can return JSON data. Below are all the free<br \/>\n<strong>active<\/strong> IP lookup services I could find and the information they return. If you know of any more, then do add a comment below. If you own one, reach out to me through <strong><a href=\"https:\/\/AhmadAwais.com\/contact\">the contact form, I&#8217;d love to talk<\/a><\/strong>.<\/p>\n<blockquote><p><em>JUST A NOTE!<\/em><\/p>\n<p>\ud83d\udc68\u200d\ud83d\udcbb I&#8217;m teaching thousands of devs how to become <a href=\"https:\/\/NodeCLI.com\/?utm_source=ahmadawais.com&amp;utm_medium=referral&amp;utm_campaign=GEO-IP-API-Listing\" target=\"_blank\" rel=\"noopener noreferrer\">Node.js CLI Automation<\/a>, <a href=\"https:\/\/VSCode.pro\/?utm_source=ahmadawais.com&amp;utm_medium=referral&amp;utm_campaign=GEO-IP-API-Listing\" target=\"_blank\" rel=\"noopener noreferrer\">VSCode Power Users<\/a>, and this site is super fast, isn&#8217;t it?! <a href=\"https:\/\/kinsta.com\/?kaid=WMDAKYHJLNJX&amp;utm_source=TheDevCouple&amp;utm_medium=Partner\">It&#8217;s hosted with Kinsta on Google servers<\/a> \u2192<\/p><\/blockquote>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"%f0%9f%8c%9f-ipstack-%e2%86%92-recommended\">\ud83c\udf1f <a href=\"https:\/\/ipstack.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">IPStack \u2192<\/a> <span style=\"color: #999999;\">(recommended)<\/span><a href=\"#%f0%9f%8c%9f-ipstack-%e2%86%92-recommended\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\"> Remember FreeGEOIP.net? Well, it is now called IPStack. It has much better offerings, a good enough free package, and affordable premium packages. IPStack offers so much more inside the API response that has made me not only use IPStack for personal use but I also recommend you to take a look:<\/p>\n<ul>\n<li>\u2705 Standard\/Bulk\/Requester lookups<\/li>\n<li>\ud83d\udcb5 Currency-related data (name, symbol)<\/li>\n<li>\ud83c\udf10 Connection-related data (Internet service provider)<\/li>\n<li>\ud83d\udd56 Timezone-related data (daylight saving, GMT Offset)<\/li>\n<li>\ud83d\udccd Comprehensive location-related data (languages, calling code)<\/li>\n<li>\u2699 <a href=\"https:\/\/ipstack.com\/documentation#fields\">Specify fields<\/a> to only get the data you want and save bandwidth<\/li>\n<li>\ud83d\udc82\u200d\u2642\ufe0f Security-related data (Info on proxy, crawler, tor, threat level\/type)<\/li>\n<\/ul>\n<div class=\"wide\">\n<a href=\"https:\/\/ipstack.com\/\"><br \/>\n<video autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"300\" height=\"150\"><source src=\"https:\/\/res.cloudinary.com\/cdemo\/video\/upload\/q_auto,w_auto,dpr_auto,vc_auto\/Placeholders\/iz22gllvsebfocndwsgx.webm\" type=\"video\/webm\" \/><source src=\"https:\/\/res.cloudinary.com\/cdemo\/video\/upload\/q_auto,w_auto,dpr_auto,vc_auto\/Placeholders\/iz22gllvsebfocndwsgx.mp4\" type=\"video\/mp4\" \/><\/video><br \/>\n<\/a>\n<\/div>\n<p>Just use this link <code>https:\/\/api.ipstack.com\/check?access_key=YOUR_ACCESS_KEY<\/code> with the language of your choice to get all the details <span class=\"orange\"><span class=\"pln\">for more details, read the <a href=\"https:\/\/ipstack.com\/documentation\">documentation \u2192<\/a><\/span><\/span><\/p>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n\t\"ip\": \"8.8.4.4\",\r\n\t\"type\": \"ipv4\",\r\n\t\"continent_code\": \"NA\",\r\n\t\"continent_name\": \"North America\",\r\n\t\"country_code\": \"US\",\r\n\t\"country_name\": \"United States\",\r\n\t\"region_code\": \"CA\",\r\n\t\"region_name\": \"California\",\r\n\t\"city\": \"Mountain View\",\r\n\t\"zip\": \"94043\",\r\n\t\"latitude\": 37.419158935546875,\r\n\t\"longitude\": -122.07540893554688,\r\n\t\"location\": {\r\n\t\t\"geoname_id\": 5375480,\r\n\t\t\"capital\": \"Washington D.C.\",\r\n\t\t\"languages\": [\r\n\t\t\t{\r\n\t\t\t\t\"code\": \"en\",\r\n\t\t\t\t\"name\": \"English\",\r\n\t\t\t\t\"native\": \"English\"\r\n\t\t\t}\r\n\t\t],\r\n\t\t\"country_flag\": \"https:\/\/assets.ipstack.com\/flags\/us.svg\",\r\n\t\t\"country_flag_emoji\": \"\ud83c\uddfa\ud83c\uddf8\",\r\n\t\t\"country_flag_emoji_unicode\": \"U+1F1FA U+1F1F8\",\r\n\t\t\"calling_code\": \"1\",\r\n\t\t\"is_eu\": false\r\n\t},\r\n\t\"time_zone\": {\r\n\t\t\"id\": \"America\/Los_Angeles\",\r\n\t\t\"current_time\": \"2020-12-10T03:32:54-08:00\",\r\n\t\t\"gmt_offset\": -28800,\r\n\t\t\"code\": \"PST\",\r\n\t\t\"is_daylight_saving\": false\r\n\t},\r\n\t\"currency\": {\r\n\t\t\"code\": \"USD\",\r\n\t\t\"name\": \"US Dollar\",\r\n\t\t\"plural\": \"US dollars\",\r\n\t\t\"symbol\": \"$\",\r\n\t\t\"symbol_native\": \"$\"\r\n\t},\r\n\t\"connection\": {\r\n\t\t\"asn\": 15169,\r\n\t\t\"isp\": \"Google LLC\"\r\n\t}\r\n}<\/pre>\n<h3 id=\"pros\">Pros:<a href=\"#pros\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li><strong>10,000 API requests per month for free.<\/strong><\/li>\n<li><strong>100% uptime<\/strong> as <a href=\"https:\/\/status.ipstack.com\/\">reported by UpTimeRobot<\/a> which is another signal<br \/>\nof a good IP to GEO API service. API speed is pretty much unmatchable.<\/li>\n<li><strong>Extra data points:<\/strong> <strong>Location<\/strong> (languages, country flag SVG\/emoji, calling code, also helps with <strong>GDPR<\/strong> by reporting <code>is_eu<\/code> as true\/false), <strong>timezone<\/strong> (daylight saving, GMT Offset), <strong>currency<\/strong> (name, symbol), <strong>connection<\/strong> (ISP), and much more.<\/li>\n<li><strong>Security Module:<\/strong> Which can be used to assess risks and threats originating from certain IP addresses before any harm can be done to a website or web application. Info about proxy, crawler, tor, threat level\/type \u2014 makes this service great at many levels.<\/li>\n<li><strong>SMB + Enterprise: <\/strong>IPStack is backed by a company named <a href=\"https:\/\/apilayer.com\/\">apilayer<\/a> I<br \/>\nalready <a href=\"https:\/\/AhmadAwais.com\/uses\">use their invoicing SaaS<\/a> and a couple of other API services. It&#8217;s also trusted by enterprise companies like Microsoft, Airbnb, Samsung, and more. They can support millions of requests per day.<\/li>\n<\/ul>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>Requires an email address to get your API key<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"%f0%9f%8c%9f-ipapi-com-%e2%86%92-recommended\">\ud83c\udf1f <a href=\"https:\/\/ipapi.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">IPAPI.com \u2192<\/a> <span style=\"color: #999999;\">(recommended)<\/span><a href=\"#%f0%9f%8c%9f-ipapi-com-%e2%86%92-recommended\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\"> Remember GeoIP Nekudo that used to require an IP Address parameter? Well, it is now ipapi.com \u2014 a fully-fledged<br \/>\nIP Geolocation API platform capable of offering more than 45 data points for each processed IP address, including Time Zone data,<br \/>\nCurrency data, Language data, Connection data, and Risk Assessment data.<\/p>\n<p><code>ipapi.com<\/code> offers a vast range of features which puts it alongside the top recommendations I have for GEO IP API<br \/>\nLocation finding services. Let&#8217;s take a look:<\/p>\n<ul>\n<li>\ud83d\uddc3\ufe0f Bulk IP Requests<\/li>\n<li>\ud83d\udc40 Advanced IP Data<\/li>\n<li>\u2705 ASN &amp; ISP Lookup<\/li>\n<li>\ud83d\udcb2 Currency Detection<\/li>\n<li>\ud83d\udde3\ufe0f Language Detection<\/li>\n<li>\u23f0 Timezone Detection<\/li>\n<li>\ud83c\udfc7 Faster Response Times<\/li>\n<li>\ud83d\ude0e Security &amp; Fraud Prevention<\/li>\n<\/ul>\n<div class=\"wide\">\n<a href=\"https:\/\/ipapi.com\/\"><br \/>\n<video autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"300\" height=\"150\"><source src=\"https:\/\/res.cloudinary.com\/cdemo\/video\/upload\/q_auto,w_auto,dpr_auto,vc_auto\/Placeholders\/arzmxoo0wwmgu1fuswqa.webm\" type=\"video\/webm\" \/><source src=\"https:\/\/res.cloudinary.com\/cdemo\/video\/upload\/q_auto,w_auto,dpr_auto,vc_auto\/Placeholders\/arzmxoo0wwmgu1fuswqa.mp4\" type=\"video\/mp4\" \/><\/video><br \/>\n<\/a>\n<\/div>\n<p>Just use this link <code>https:\/\/api.ipapi.com\/api\/check?access_key=YOUR_ACCESS_KEY<\/code> with the language of your choice to get all the details <span class=\"orange\"><span class=\"pln\">for more details, read the <a href=\"https:\/\/ipapi.com\/documentation\">documentation \u2192<\/a><\/span><\/span><\/p>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n\t\"ip\": \"8.8.4.4\",\r\n\t\"type\": \"ipv4\",\r\n\t\"continent_code\": \"NA\",\r\n\t\"continent_name\": \"North America\",\r\n\t\"country_code\": \"US\",\r\n\t\"country_name\": \"United States\",\r\n\t\"region_code\": \"CA\",\r\n\t\"region_name\": \"California\",\r\n\t\"city\": \"Mountain View\",\r\n\t\"zip\": \"94043\",\r\n\t\"latitude\": 37.419158935546875,\r\n\t\"longitude\": -122.07540893554688,\r\n\t\"location\": {\r\n\t\t\"geoname_id\": 5375480,\r\n\t\t\"capital\": \"Washington D.C.\",\r\n\t\t\"languages\": [\r\n\t\t\t{\r\n\t\t\t\t\"code\": \"en\",\r\n\t\t\t\t\"name\": \"English\",\r\n\t\t\t\t\"native\": \"English\"\r\n\t\t\t}\r\n\t\t],\r\n\t\t\"country_flag\": \"https:\/\/assets.ipstack.com\/flags\/us.svg\",\r\n\t\t\"country_flag_emoji\": \"\ud83c\uddfa\ud83c\uddf8\",\r\n\t\t\"country_flag_emoji_unicode\": \"U+1F1FA U+1F1F8\",\r\n\t\t\"calling_code\": \"1\",\r\n\t\t\"is_eu\": false\r\n\t},\r\n\t\"time_zone\": {\r\n\t\t\"id\": \"America\/Los_Angeles\",\r\n\t\t\"current_time\": \"2020-12-10T03:34:09-08:00\",\r\n\t\t\"gmt_offset\": -28800,\r\n\t\t\"code\": \"PST\",\r\n\t\t\"is_daylight_saving\": false\r\n\t},\r\n\t\"currency\": {\r\n\t\t\"code\": \"USD\",\r\n\t\t\"name\": \"US Dollar\",\r\n\t\t\"plural\": \"US dollars\",\r\n\t\t\"symbol\": \"$\",\r\n\t\t\"symbol_native\": \"$\"\r\n\t},\r\n\t\"connection\": {\r\n\t\t\"asn\": 15169,\r\n\t\t\"isp\": \"Google LLC\"\r\n\t}\r\n}<\/pre>\n<h3 id=\"pros\">Pros:<a href=\"#pros\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li><strong>10,000 API requests per month for free.<\/strong><\/li>\n<li><strong>99.996% uptime<\/strong> as <a href=\"https:\/\/status.ipapi.com\/\">reported by UpTimeRobot<\/a> which is impressive.<\/li>\n<li><strong>Extra data points:<\/strong> <strong>Location<\/strong> (languages, country flag SVG\/emoji, calling code, <strong>timezone<\/strong> (daylight saving, GMT Offset), <strong>currency<\/strong> (name, symbol), <strong>connection<\/strong> (ISP), and much more.<\/li>\n<li><strong>Security Module:<\/strong> Which can be used to assess risks and threats originating from certain IP addresses before any harm can be done to a website or web application. Info about proxy, crawler, tor, threat level\/type \u2014 makes this service great at many levels.<\/li>\n<li><strong>SMB + Enterprise: <\/strong><code>ipapi<\/code> is trusted by some impressive enterprise companies like Wix, Gengo, userflip, Obey, and more.<\/li>\n<\/ul>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>The free tier has no HTTPS support.<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"ipinfo-%e2%86%92\"><a href=\"https:\/\/ipinfo.io\" target=\"_blank\" rel=\"noopener noreferrer\">IPInfo \u2192<\/a><a href=\"#ipinfo-%e2%86%92\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\"> IPInfo is another major player in the IP information niche. Since 2013 they have built a <a href=\"https:\/\/ipinfo.io\/about\">customer base of over 100,000<\/a> including npm, CBS, Dell, Vodafone, and serve 12 Billion IP API requests per month. The company was founded by a former Facebook engineer Ben Dowling. IPInfo boasts an incredible amount of data sets and features as listed below:<\/p>\n<ul>\n<li><img decoding=\"async\" class=\"emoji\" draggable=\"false\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/2705.svg\" alt=\"\u2705\" \/> Standard\/Bulk\/Requester lookups<\/li>\n<li><img decoding=\"async\" class=\"emoji\" draggable=\"false\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/1f310.svg\" alt=\"\ud83c\udf10\" \/> Connection and carrier-related data<\/li>\n<li>\ud83c\udfdb\ufe0f ASN IP Operator related proprietary data<\/li>\n<li><img decoding=\"async\" class=\"emoji\" draggable=\"false\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/1f4cd.svg\" alt=\"\ud83d\udccd\" \/> Comprehensive GeoIP data form an IPInfo self-built solution<\/li>\n<li><img decoding=\"async\" class=\"emoji\" draggable=\"false\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/2699.svg\" alt=\"\u2699\" \/> <a href=\"https:\/\/ipinfo.io\/developers\/responses\">Specify fields<\/a> to only get the data you want and save bandwidth<\/li>\n<li>\ud83e\udd2f Global <a href=\"https:\/\/ipinfo.io\/countries\">ASN<\/a>, <a href=\"https:\/\/ipinfo.io\/hosting\">Hosted Domains<\/a>, and <a href=\"https:\/\/ipinfo.io\/ips\">IP range<\/a> data \u2014 one of it&#8217;s kind<\/li>\n<\/ul>\n<div class=\"wide\">\n<a href=\"https:\/\/ipinfo.io\/\"><br \/>\n<video autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"300\" height=\"150\"><source src=\"https:\/\/res.cloudinary.com\/cdemo\/video\/upload\/q_auto,w_auto,dpr_auto,vc_auto\/Placeholders\/zzkhckyt7depuxew5s1m.webm\" type=\"video\/webm\" \/><source src=\"https:\/\/res.cloudinary.com\/cdemo\/video\/upload\/q_auto,w_auto,dpr_auto,vc_auto\/Placeholders\/zzkhckyt7depuxew5s1m.mp4\" type=\"video\/mp4\" \/><\/video><br \/>\n<\/a>\n<\/div>\n<pre class=\"lang:javascript\">var requestOptions = {\r\n  method: 'GET',\r\n  redirect: 'follow'\r\n};\r\n\r\nfetch(\"https:\/\/ipinfo.io\/8.8.8.8\/json?token=TOKEN_HERE\", requestOptions)\r\n  .then(response =&gt; response.text())\r\n  .then(result =&gt; console.log(result))\r\n  .catch(error =&gt; console.log('error', error));<\/pre>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n    \"ip\": \"8.8.8.8\",\r\n    \"hostname\": \"dns.google\",\r\n    \"city\": \"Mountain View\",\r\n    \"region\": \"California\",\r\n    \"country\": \"US\",\r\n    \"loc\": \"37.4056,-122.0775\",\r\n    \"postal\": \"94043\",\r\n    \"timezone\": \"America\/Los_Angeles\",\r\n    \"asn\": {\r\n        \"asn\": \"AS15169\",\r\n        \"name\": \"Google LLC\",\r\n        \"domain\": \"google.com\",\r\n        \"route\": \"8.8.8.0\/24\",\r\n        \"type\": \"business\"\r\n    },\r\n    \"company\": {\r\n        \"name\": \"Google LLC\",\r\n        \"domain\": \"google.com\",\r\n        \"type\": \"business\"\r\n    }\r\n}<\/pre>\n<h3 id=\"pros\">Pros:<a href=\"#pros\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li><strong>30,000 API requests per month for free.<\/strong><\/li>\n<li><strong>100% uptime<\/strong> since it&#8217;s based on top of Amazon Web Services. The deployments are on a daily basis with Elastic Beanstalk. The API speed is pretty much unmatchable.<\/li>\n<li><strong>Data<\/strong>: Huge data sets for ASN, Carrier, etc. can be beneficial in building content customization. Imagine targeting AT&amp;T and T-Mobile users differently for your next ad campaign.<\/li>\n<li><strong>Enterprise Tested:<\/strong> IPInfo&#8217;s data has been sought by several enterprise companies, e.g. Tesla, Dell, TripAdvisor, and Xerox \u2014 which is a testament to how far they have come. Many SMB to Large-scale enterprise companies listed on the about page.<\/li>\n<\/ul>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>1,000 requests per day on the free plan.<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"ipwhois-io\"><a href=\"https:\/\/ipwhois.io\/\">IPWHOIS.io<\/a><a href=\"#ipwhois-io\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<pre class=\"lang:javascript\">var requestOptions = {\r\n  method: 'GET',\r\n  redirect: 'follow'\r\n};\r\n\r\nfetch(\"ipwhois.app\/json\/8.8.4.4\", requestOptions)\r\n  .then(response =&gt; response.text())\r\n  .then(result =&gt; console.log(result))\r\n  .catch(error =&gt; console.log('error', error));<\/pre>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n\t\"ip\": \"8.8.4.4\",\r\n\t\"success\": true,\r\n\t\"type\": \"IPv4\",\r\n\t\"continent\": \"North America\",\r\n\t\"continent_code\": \"NA\",\r\n\t\"country\": \"United States\",\r\n\t\"country_code\": \"US\",\r\n\t\"country_flag\": \"https:\/\/cdn.ipwhois.io\/flags\/us.svg\",\r\n\t\"country_capital\": \"Washington\",\r\n\t\"country_phone\": \"+1\",\r\n\t\"country_neighbours\": \"CA,MX,CU\",\r\n\t\"region\": \"New Jersey\",\r\n\t\"city\": \"Newark\",\r\n\t\"latitude\": \"40.735657\",\r\n\t\"longitude\": \"-74.1723667\",\r\n\t\"asn\": \"AS15169\",\r\n\t\"org\": \"Google LLC\",\r\n\t\"isp\": \"Google LLC\",\r\n\t\"timezone\": \"America\/New_York\",\r\n\t\"timezone_name\": \"Eastern Standard Time\",\r\n\t\"timezone_dstOffset\": \"0\",\r\n\t\"timezone_gmtOffset\": \"-18000\",\r\n\t\"timezone_gmt\": \"GMT -5:00\",\r\n\t\"currency\": \"US Dollar\",\r\n\t\"currency_code\": \"USD\",\r\n\t\"currency_symbol\": \"$\",\r\n\t\"currency_rates\": \"1\",\r\n\t\"currency_plural\": \"US dollars\",\r\n\t\"completed_requests\": 0\r\n}<\/pre>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>10,000 requests per month for free<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"geobytes-com\"><a href=\"http:\/\/geobytes.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">geobytes.com<\/a><a href=\"#geobytes-com\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<pre class=\"lang:javascript\">var requestOptions = {\r\n  method: 'GET',\r\n  redirect: 'follow'\r\n};\r\n\r\nfetch(\"gd.geobytes.com\/GetCityDetails\", requestOptions)\r\n  .then(response =&gt; response.text())\r\n  .then(result =&gt; console.log(result))\r\n  .catch(error =&gt; console.log('error', error));<\/pre>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n    \"geobytesforwarderfor\": \"\",\r\n    \"geobytesremoteip\": \"39.37.167.56\",\r\n    \"geobytesipaddress\": \"39.37.167.56\",\r\n    \"geobytescertainty\": \"100\",\r\n    \"geobytesinternet\": \"PK\",\r\n    \"geobytescountry\": \"Pakistan\",\r\n    \"geobytesregionlocationcode\": \"PKNW\",\r\n    \"geobytesregion\": \"North-West Frontier\",\r\n    \"geobytescode\": \"NW\",\r\n    \"geobyteslocationcode\": \"PKNWPESH\",\r\n    \"geobytesdma\": \"0\",\r\n    \"geobytescity\": \"Peshawar\",\r\n    \"geobytescityid\": \"4655\",\r\n    \"geobytesfqcn\": \"Peshawar, NW, Pakistan\",\r\n    \"geobyteslatitude\": \"34.016998\",\r\n    \"geobyteslongitude\": \"71.550003\",\r\n    \"geobytescapital\": \"Islamabad\",\r\n    \"geobytestimezone\": \"+05:00\",\r\n    \"geobytesnationalitysingular\": \"Pakistani\",\r\n    \"geobytespopulation\": \"144616639\",\r\n    \"geobytesnationalityplural\": \"Pakistanis\",\r\n    \"geobytesmapreference\": \"Asia \",\r\n    \"geobytescurrency\": \"Pakistan Rupee\",\r\n    \"geobytescurrencycode\": \"PKR\",\r\n    \"geobytestitle\": \"Pakistan\"\r\n}<\/pre>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>16,384 requests per hour<\/li>\n<li>Can return the wrong location (I am not in that location)<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"geoplugin-com\"><a href=\"http:\/\/www.geoplugin.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">geoplugin.com<\/a><a href=\"#geoplugin-com\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<pre class=\"lang:javascript\">var requestOptions = {\r\n  method: 'GET',\r\n  redirect: 'follow'\r\n};\r\n\r\nfetch(\"\/\/www.geoplugin.net\/json.gp\", requestOptions)\r\n  .then(response =&gt; response.text())\r\n  .then(result =&gt; console.log(result))\r\n  .catch(error =&gt; console.log('error', error));<\/pre>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n\t\"geoplugin_request\": \"39.37.167.56\",\r\n\t\"geoplugin_status\": 200,\r\n\t\"geoplugin_delay\": \"2ms\",\r\n\t\"geoplugin_city\": \"Lahore\",\r\n\t\"geoplugin_region\": \"Punjab\",\r\n\t\"geoplugin_regionCode\": \"PB\",\r\n\t\"geoplugin_regionName\": \"Punjab\",\r\n\t\"geoplugin_areaCode\": \"\",\r\n\t\"geoplugin_dmaCode\": \"\",\r\n\t\"geoplugin_countryCode\": \"PK\",\r\n\t\"geoplugin_countryName\": \"Pakistan\",\r\n\t\"geoplugin_inEU\": 0,\r\n\t\"geoplugin_euVATrate\": false,\r\n\t\"geoplugin_continentCode\": \"AS\",\r\n\t\"geoplugin_continentName\": \"Asia\",\r\n\t\"geoplugin_latitude\": \"31.4909\",\r\n\t\"geoplugin_longitude\": \"74.3681\",\r\n\t\"geoplugin_locationAccuracyRadius\": \"1\",\r\n\t\"geoplugin_timezone\": \"Asia\/Karachi\",\r\n\t\"geoplugin_currencyCode\": \"PKR\",\r\n\t\"geoplugin_currencySymbol\": \"\u20a8\",\r\n\t\"geoplugin_currencySymbol_UTF8\": \"\u20a8\",\r\n\t\"geoplugin_currencyConverter\": 160.8406\r\n}<\/pre>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>120 requests per minute<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"ip-api-com\"><a href=\"http:\/\/ip-api.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">ip-api.com<\/a><a href=\"#ip-api-com\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<pre class=\"lang:javascript\">var requestOptions = {\r\n  method: 'GET',\r\n  redirect: 'follow'\r\n};\r\n\r\nfetch(\"ip-api.com\/json\", requestOptions)\r\n  .then(response =&gt; response.text())\r\n  .then(result =&gt; console.log(result))\r\n  .catch(error =&gt; console.log('error', error));<\/pre>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n    \"status\": \"success\",\r\n    \"country\": \"Pakistan\",\r\n    \"countryCode\": \"PK\",\r\n    \"region\": \"PB\",\r\n    \"regionName\": \"Punjab\",\r\n    \"city\": \"Lahore\",\r\n    \"zip\": \"54000\",\r\n    \"lat\": 31.4888,\r\n    \"lon\": 74.3686,\r\n    \"timezone\": \"Asia\/Karachi\",\r\n    \"isp\": \"Pakistan Telecommuication company limited\",\r\n    \"org\": \"Pakistan Telecommuication company limited\",\r\n    \"as\": \"AS17557 Pakistan Telecommunication Company Limited\",\r\n    \"query\": \"39.37.167.56\"\r\n}<\/pre>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>150 requests per minute<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"ipify-org\"><a href=\"https:\/\/www.ipify.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">ipify.org<\/a><a href=\"#ipify-org\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<pre class=\"lang:javascript\">var requestOptions = {\r\n  method: 'GET',\r\n  redirect: 'follow'\r\n};\r\n\r\nfetch(\"api.ipify.org?format=json\", requestOptions)\r\n  .then(response =&gt; response.text())\r\n  .then(result =&gt; console.log(result))\r\n  .catch(error =&gt; console.log('error', error));<\/pre>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n\"ip\": \"8.8.8.8\"\r\n}<\/pre>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>Unlimited bandwidth<\/li>\n<li>Controlled and bit slow<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"ipinfodb-com\"><a href=\"http:\/\/ipinfodb.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">ipinfodb.com<\/a><a href=\"#ipinfodb-com\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<pre class=\"lang:javascript\">var requestOptions = {\r\n  method: 'GET',\r\n  redirect: 'follow'\r\n};\r\n\r\nfetch(\"api.ipinfodb.com\/v3\/ip-city\/?key=KEY_HERE&amp;format=json\", requestOptions)\r\n  .then(response =&gt; response.text())\r\n  .then(result =&gt; console.log(result))\r\n  .catch(error =&gt; console.log('error', error));<\/pre>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n\t\"statusCode\": \"OK\",\r\n\t\"statusMessage\": \"\",\r\n\t\"ipAddress\": \"119.152.180.314\",\r\n\t\"countryCode\": \"PK\",\r\n\t\"countryName\": \"Pakistan\",\r\n\t\"regionName\": \"Pakistan\",\r\n\t\"cityName\": \"Pakistan\",\r\n\t\"zipCode\": \"54000\",\r\n\t\"latitude\": \"1.28967\",\r\n\t\"longitude\": \"103.85\",\r\n\t\"timeZone\": \"+08:00\"\r\n}\r\n<\/pre>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>Two requests per second &#8211; Requires registration to get your API key<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"db-ip-com\"><a href=\"https:\/\/db-ip.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">db-ip.com<\/a><a href=\"#db-ip-com\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<pre class=\"lang:javascript\">var requestOptions = {\r\n  method: 'GET',\r\n  headers: myHeaders,\r\n  redirect: 'follow'\r\n};\r\n\r\nfetch(\"api.db-ip.com\/addrinfo?api_key=KEY_HERE\", requestOptions)\r\n  .then(response =&gt; response.text())\r\n  .then(result =&gt; console.log(result))\r\n  .catch(error =&gt; console.log('error', error));<\/pre>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n\t\"address\": \"119.152.180.314\",\r\n\t\"country\": \"PK\",\r\n\t\"stateprov\": \"Central Pakistan\",\r\n\t\"city\": \"Pakistan\"\r\n}\r\n<\/pre>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>2,500 requests per hour &#8211; Doesn&#8217;t support JSONP callbacks &#8211; Requires IP address parameter &#8211; Requires an email address to get<br \/>\nyour API key<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"jsonip-com\"><a href=\"http:\/\/getjsonip.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">jsonip.com<\/a><a href=\"#jsonip-com\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<pre class=\"lang:javascript\">var requestOptions = {\r\n  method: 'GET',\r\n  redirect: 'follow'\r\n};\r\n\r\nfetch(\"jsonip.com\/\", requestOptions)\r\n  .then(response =&gt; response.text())\r\n  .then(result =&gt; console.log(result))\r\n  .catch(error =&gt; console.log('error', error));<\/pre>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n    \"ip\": \"8.8.8.8\",\r\n}<\/pre>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>None (unlimited bandwidth) but a bit slow<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"jsontest-com\"><a href=\"http:\/\/www.jsontest.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">jsontest.com<\/a><a href=\"#jsontest-com\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<pre class=\"lang:javascript\">var requestOptions = {\r\n  method: 'GET',\r\n  redirect: 'follow'\r\n};\r\n\r\nfetch(\"ip.jsontest.com\", requestOptions)\r\n  .then(response =&gt; response.text())\r\n  .then(result =&gt; console.log(result))\r\n  .catch(error =&gt; console.log('error', error));<\/pre>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n    \"ip\": \"8.8.8.8\"\r\n}<\/pre>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>Goes down a lot ( over quota ), so I wouldn&#8217;t use it for production<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"ipdata-co-%e2%86%92\"><a href=\"https:\/\/ipdata.co\/\" target=\"_blank\" rel=\"noopener noreferrer\">IPData.co \u2192<\/a><a href=\"#ipdata-co-%e2%86%92\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<pre class=\"lang:javascript\">var requestOptions = {\r\n  method: 'GET',\r\n  redirect: 'follow'\r\n};\r\n\r\nfetch(\"https:\/\/api.ipdata.co\/8.8.8.8?api-key=test\", requestOptions)\r\n  .then(response =&gt; response.text())\r\n  .then(result =&gt; console.log(result))\r\n  .catch(error =&gt; console.log('error', error));<\/pre>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n    \"ip\": \"8.8.8.8\",\r\n    \"is_eu\": false,\r\n    \"city\": null,\r\n    \"region\": null,\r\n    \"region_code\": null,\r\n    \"country_name\": \"United States\",\r\n    \"country_code\": \"US\",\r\n    \"continent_name\": \"North America\",\r\n    \"continent_code\": \"NA\",\r\n    \"latitude\": 37.751,\r\n    \"longitude\": -97.822,\r\n    \"postal\": null,\r\n    \"calling_code\": \"1\",\r\n    \"flag\": \"https:\/\/ipdata.co\/flags\/us.png\",\r\n    \"emoji_flag\": \"\ud83c\uddfa\ud83c\uddf8\",\r\n    \"emoji_unicode\": \"U+1F1FA U+1F1F8\",\r\n    \"asn\": {\r\n        \"asn\": \"AS15169\",\r\n        \"name\": \"Google LLC\",\r\n        \"domain\": \"google.com\",\r\n        \"route\": \"8.8.8.0\/24\",\r\n        \"type\": \"hosting\"\r\n    },\r\n    \"languages\": [\r\n        {\r\n            \"name\": \"English\",\r\n            \"native\": \"English\"\r\n        }\r\n    ],\r\n    \"currency\": {\r\n        \"name\": \"US Dollar\",\r\n        \"code\": \"USD\",\r\n        \"symbol\": \"$\",\r\n        \"native\": \"$\",\r\n        \"plural\": \"US dollars\"\r\n    },\r\n    \"time_zone\": {\r\n        \"name\": \"America\/Chicago\",\r\n        \"abbr\": \"CST\",\r\n        \"offset\": \"-0600\",\r\n        \"is_dst\": false,\r\n        \"current_time\": \"2020-12-10T06:03:33.149166-06:00\"\r\n    },\r\n    \"threat\": {\r\n        \"is_tor\": false,\r\n        \"is_proxy\": false,\r\n        \"is_anonymous\": false,\r\n        \"is_known_attacker\": false,\r\n        \"is_known_abuser\": false,\r\n        \"is_threat\": false,\r\n        \"is_bogon\": false\r\n    },\r\n    \"count\": \"1596\"\r\n}<\/pre>\n<h3 id=\"pros\">Pros:<a href=\"#pros\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li><strong>1,500 requests daily for free<\/strong>.<\/li>\n<li><strong>11 endpoints around the world<\/strong>, 4 in the US, 1 in Canada, 2 in Europe (London and Frankfurt), Mumbai,<br \/>\nSeoul, Sydney and Sao Paulo. Being this global is a big plus.<\/li>\n<li><strong>2x Speed<\/strong> as compared to others. If you take a look at <a href=\"https:\/\/updown.io\/ndkd\">this data<\/a> you<br \/>\ncan see that IPData.co is quite fast as compared to other IP API Services \u2014 this matters a lot if you&#8217;re building a<br \/>\ncommercial site.<\/li>\n<li><strong>Extra data points<\/strong> i.e. calling code, currency code, name, symbol, time_zone data, current time, UTC<br \/>\noffset and the flag file &amp; emoji flag.<\/li>\n<li><strong>Enterprise level threat data<\/strong> &#8211; Only for paid users but have pretty great threat intelligence data to<br \/>\ncheck if an IP is a proxy, a known attacker, abuser, tor user or a bogon.<\/li>\n<\/ul>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>Lesser free requests per day (but it&#8217;s a paid service which is far better than free services available, and is here to<br \/>\nstay).<\/li>\n<li>Wrong city analysis for me, which&#8217;s quite common. Not sure if it&#8217;s related to my ISP or what.<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"geoipify-whoisxmlapi-com\"><a href=\"https:\/\/geoipify.whoisxmlapi.com\/\">GeoIPify.WhoIsXMLAPI.com<\/a><a href=\"#geoipify-whoisxmlapi-com\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<pre class=\"lang:javascript\">var requestOptions = {\r\n  method: 'GET',\r\n  headers: myHeaders,\r\n  redirect: 'follow'\r\n};\r\n\r\nfetch(\"https:\/\/ip-geolocation.whoisxmlapi.com\/api\/v1?apiKey=YOUR_API_KEY\", requestOptions)\r\n  .then(response =&gt; response.text())\r\n  .then(result =&gt; console.log(result))\r\n  .catch(error =&gt; console.log('error', error));<\/pre>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n\t\"ip\": \"110.170.64.0\",\r\n\t\"location\": {\r\n\t\t\"country\": \"TH\",\r\n\t\t\"region\": \"Bangkok\",\r\n\t\t\"city\": \"Bangkok\",\r\n\t\t\"lat\": 13.7086,\r\n\t\t\"lng\": 100.4553,\r\n\t\t\"postalCode\": \"10110\",\r\n\t\t\"timezone\": \"+07:00\",\r\n\t\t\"geonameId\": 1609350\r\n\t},\r\n\t\"isp\": \"True Internet\",\r\n\t\"connectionType\": \"broadband\",\r\n\t\"domains\": [\"110-170-64-0.static.asianet.co.th\"],\r\n\t\"as\": {\r\n\t\t\"asn\": 7470,\r\n\t\t\"name\": \"TRUE INTERNET Co.,Ltd.\",\r\n\t\t\"route\": \"110.170.64.0\/18\",\r\n\t\t\"domain\": \"trueinternet.co.th\",\r\n\t\t\"type\": \"Cable\/DSL\/ISP\"\r\n\t}\r\n}\r\n<\/pre>\n<h3 id=\"pros\">Pros:<a href=\"#pros\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li><strong>1,000 requests per month for free<\/strong>.<\/li>\n<li><span class=\"m_-9121286396664583711highlight\"><span class=\"m_-9121286396664583711colour\"><span class=\"m_-9121286396664583711font\"><span class=\"m_-9121286396664583711size\"><b>Three payment tiers<\/b> you can use it for free, pay one time, or go ahead and subscribe on a monthly<br \/>\nto yearly basis.&lt;\/span &gt;&lt;\/span &gt;&lt;\/span &gt;&lt;\/span &gt; <\/span><\/span><\/span><\/span><\/li>\n<li>Awesome clientele with lots of related solutions like WHOIS\/DNS lookup service, email verification, reverse IP lookup, to<br \/>\ngo along with GEO IP API.<\/li>\n<\/ul>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>1,000 requests per month<\/li>\n<li>Requires IP address parameter<\/li>\n<li>Requires an email address to get your API key<\/li>\n<li>Lesser free requests per day (but it&#8217;s a paid service which is far better than free services available, and is here to<br \/>\nstay).<\/li>\n<\/ul>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"ipgeolocation-io\"><a href=\"https:\/\/ipgeolocation.io\/\">IPGeoLocation.io<\/a><a href=\"#ipgeolocation-io\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<p><code>\/\/api.ipgeolocation.io\/ipgeo?apiKey=API_KEY<\/code><\/p>\n<h3 id=\"returns\">Returns:<a href=\"#returns\" class=\"heading-link\">#<\/a><\/h3>\n<pre class=\"lang:json\">{\r\n\t\"ip\": \"39.45.201.56\",\r\n\t\"continent_code\": \"AS\",\r\n\t\"continent_name\": \"Asia\",\r\n\t\"country_code2\": \"PK\",\r\n\t\"country_code3\": \"PAK\",\r\n\t\"country_name\": \"Pakistan\",\r\n\t\"country_capital\": \"Islamabad\",\r\n\t\"state_prov\": \"Khyber Pakhtunkhwa\",\r\n\t\"district\": \"Peshawar\",\r\n\t\"city\": \"Peshawar\",\r\n\t\"zipcode\": \"25120\",\r\n\t\"latitude\": \"34.015\",\r\n\t\"longitude\": \"71.5805\",\r\n\t\"is_eu\": false,\r\n\t\"calling_code\": \"+92\",\r\n\t\"country_tld\": \".pk\",\r\n\t\"languages\": \"ur-PK,en-PK,pa,sd,ps,brh\",\r\n\t\"country_flag\": \"https:\/\/ipgeolocation.io\/static\/flags\/pk_64.png\",\r\n\t\"isp\": \"PTCL Triple Play Project Sialkot\",\r\n\t\"connection_type\": \"\",\r\n\t\"organization\": \"Pakistan Telecommuication company limited\",\r\n\t\"geoname_id\": \"1168197\",\r\n\t\"currency\": {\r\n\t\t\"name\": \"Rupee\",\r\n\t\t\"code\": \"PKR\"\r\n\t},\r\n\t\"time_zone\": {\r\n\t\t\"name\": \"Asia\/Karachi\",\r\n\t\t\"offset\": 5,\r\n\t\t\"is_dst\": false,\r\n\t\t\"current_time\": \"2018-06-16 16:07:07.708+0500\"\r\n\t}\r\n}<\/pre>\n<h3 id=\"pros\">Pros:<a href=\"#pros\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>50,000 requests per month for free without any daily limit.<\/li>\n<li>Extra data points such as currency, the local language, time zone, flags, ISO2 and ISO3 country codes, and company<br \/>\ninformation.<\/li>\n<li>Economical <a href=\"https:\/\/ipgeolocation.io\/pricing\">paid plans<\/a> \u2014 this service is here to stay.<\/li>\n<\/ul>\n<h3 id=\"limitations\">Limitations:<a href=\"#limitations\" class=\"heading-link\">#<\/a><\/h3>\n<ul>\n<li>Requires an email address to get your API key.<\/li>\n<\/ul>\n<h2 id=\"before-you-begin\">Before You Begin!<a href=\"#before-you-begin\" class=\"heading-link\">#<\/a><\/h2>\n<p>Keep in mind that since these are all free services, your mileage may vary in terms of exceeding quota and uptime, and who knows<br \/>\nwhen\/if they will be taken offline down the road. Most of these services also offer a paid tier in case you want something more<br \/>\nrobust.<\/p>\n<div class=\"alert gray\"><a href=\"https:\/\/twitter.com\/home?status=%F0%9F%91%89%20%40MrAhmadAwais%20built%20an%20exhaustive%20list%20of%20Geolocation%20APIs,%20their%20response%20%26%20limitations!%20%F0%9F%8E%AFGeolocate%20an%20IP%20https%3A\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/\">It&#8217;d be great if you can tweet this post<\/a><\/div>\n<blockquote><p><em>JUST A NOTE!<\/em><\/p>\n<p>\ud83d\udc68\u200d\ud83d\udcbb I&#8217;m teaching thousands of devs how to become<\/p>\n<ul>\n<li><a href=\"https:\/\/NodeCLI.com\/?utm_source=ahmadawais.com&amp;utm_medium=referral&amp;utm_campaign=GEO-IP-API-Listing\" target=\"_blank\" rel=\"noopener noreferrer\">Node.js CLI Automation<\/a> \u2192<\/li>\n<li><a href=\"https:\/\/VSCode.pro\/?utm_source=ahmadawais.com&amp;utm_medium=referral&amp;utm_campaign=GEO-IP-API-Listing\" target=\"_blank\" rel=\"noopener noreferrer\">VSCode Power Users<\/a> \u2192<\/li>\n<\/ul>\n<p>\ud83d\udcee This site is super fast, isn&#8217;t it?!<\/p>\n<p><a href=\"https:\/\/kinsta.com\/?kaid=WMDAKYHJLNJX&amp;utm_source=TheDevCouple&amp;utm_medium=Partner\">It&#8217;s hosted with Kinsta on Google servers<\/a> \u2192<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Looking for a reasonably stable Geolocation API to find out more about an IP address (user) that visits your site or application? It&#8217;s your lucky day \u2014 because I built an exhaustive list for that. It includes Gelocating APIs, their responses, and limitations.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[215],"tags":[152,217,153],"class_list":["post-2315","post","type-post","status-publish","format-standard","hentry","category-web","tag-free-api","tag-geo-ip-api","tag-geolocation-api-ip"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What Is the Best API for Geolocating an IP Address? [2021]<\/title>\n<meta name=\"description\" content=\"Looking for a reasonably stable Geolocation API to find out more about an IP address (user) that visits your site or application? It&#039;s your lucky day \u2014 because I built an exhaustive list for that. It includes Gelocating APIs, their responses, and limitations.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Is the Best API for Geolocating an IP Address? [2021]\" \/>\n<meta property=\"og:description\" content=\"Looking for a reasonably stable Geolocation API to find out more about an IP address (user) that visits your site or application? It&#039;s your lucky day \u2014 because I built an exhaustive list for that. It includes Gelocating APIs, their responses, and limitations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/\" \/>\n<meta property=\"og:site_name\" content=\"Ahmad Awais\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/AhmadAwais\" \/>\n<meta property=\"article:author\" content=\"https:\/\/facebook.com\/AhmadAwais\" \/>\n<meta property=\"article:published_time\" content=\"2017-06-11T12:59:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-16T12:48:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/2705.svg\" \/>\n<meta name=\"author\" content=\"Ahmad Awais\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MrAhmadAwais\" \/>\n<meta name=\"twitter:site\" content=\"@MrAhmadAwais\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ahmad Awais\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/\"},\"author\":{\"name\":\"Ahmad Awais\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#\\\/schema\\\/person\\\/1d1b9504182dca2315cf039fb4ebb85b\"},\"headline\":\"What Is the Best API for Geolocating an IP Address? [2021]\",\"datePublished\":\"2017-06-11T12:59:59+00:00\",\"dateModified\":\"2023-08-16T12:48:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/\"},\"wordCount\":1534,\"commentCount\":22,\"publisher\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#\\\/schema\\\/person\\\/1d1b9504182dca2315cf039fb4ebb85b\"},\"image\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/s.w.org\\\/images\\\/core\\\/emoji\\\/11\\\/svg\\\/2705.svg\",\"keywords\":[\"free api\",\"geo ip api\",\"geolocation api ip\"],\"articleSection\":[\"Web\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/\",\"url\":\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/\",\"name\":\"What Is the Best API for Geolocating an IP Address? [2021]\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/s.w.org\\\/images\\\/core\\\/emoji\\\/11\\\/svg\\\/2705.svg\",\"datePublished\":\"2017-06-11T12:59:59+00:00\",\"dateModified\":\"2023-08-16T12:48:34+00:00\",\"description\":\"Looking for a reasonably stable Geolocation API to find out more about an IP address (user) that visits your site or application? It's your lucky day \u2014 because I built an exhaustive list for that. It includes Gelocating APIs, their responses, and limitations.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/#primaryimage\",\"url\":\"https:\\\/\\\/s.w.org\\\/images\\\/core\\\/emoji\\\/11\\\/svg\\\/2705.svg\",\"contentUrl\":\"https:\\\/\\\/s.w.org\\\/images\\\/core\\\/emoji\\\/11\\\/svg\\\/2705.svg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/best-api-geolocating-an-ip-address\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ahmadawais.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What Is the Best API for Geolocating an IP Address? [2021]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#website\",\"url\":\"https:\\\/\\\/ahmadawais.com\\\/\",\"name\":\"Ahmad Awais\",\"description\":\"Founder &amp; CEO of CommandCode.ai f\\\/k\\\/a Langbase | Google Developers Advisory Board (gDAB) founding member\",\"publisher\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#\\\/schema\\\/person\\\/1d1b9504182dca2315cf039fb4ebb85b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ahmadawais.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#\\\/schema\\\/person\\\/1d1b9504182dca2315cf039fb4ebb85b\",\"name\":\"Ahmad Awais\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Ahmad-Awais-face.jpg\",\"url\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Ahmad-Awais-face.jpg\",\"contentUrl\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Ahmad-Awais-face.jpg\",\"width\":2299,\"height\":1705,\"caption\":\"Ahmad Awais\"},\"logo\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Ahmad-Awais-face.jpg\"},\"description\":\"Founder & CEO of \u2318 Command Code coding agent with taste. Founded Langbase.com, AI cloud to build, deploy, and scale AI agents with tools & memory \u00b7 Creator of Command.new. \\\"Awais is an awesome example for developers\\\" \u2014 Satya Nadella, CEO of Microsoft. NASA Mars Ingenuity Helicopter mission code contributor 8th GitHub Stars Award recipient with 5x GitHub Stars Award (Listed as GitHub's #1 JavaScript trending developer). Google Developers Expert Web DevRel. Ex VP Eng (DevTools & DevRel) Rapid \u00b7 Google Developers Advisory Board (gDAB) founding member \u00b7 AI\\\/ML\\\/DevTools Angel Investor (Replit, Resend, Daytona, Gumroad and you?) \u276f AI\\\/ML Advisory Board San Francisco, DevNetwork. Award-winning Open Source Engineering leader authored hundreds of open-source dev-tools and software libraries used by millions of developers, including Shades of Purple code theme and corona-cli. Linux Foundation (Node.js Committee Lead), OpenAPI Business Governing Board. Taught 108K+ developers via NodeCLI.com and VSCode.pro course. 274 million views, blogging for 24 yrs. \u276f Read more about Ahmad Awais or come say hi on \ud835\udd4f @MrAhmadAwais.\",\"sameAs\":[\"https:\\\/\\\/AhmadAwais.com\\\/\",\"https:\\\/\\\/facebook.com\\\/AhmadAwais\",\"https:\\\/\\\/instagram.com\\\/MrAhmadAwais\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/MrAhmadAwais\\\/\",\"https:\\\/\\\/x.com\\\/MrAhmadAwais\",\"https:\\\/\\\/youtube.com\\\/AhmadAwais\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What Is the Best API for Geolocating an IP Address? [2021]","description":"Looking for a reasonably stable Geolocation API to find out more about an IP address (user) that visits your site or application? It's your lucky day \u2014 because I built an exhaustive list for that. It includes Gelocating APIs, their responses, and limitations.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/","og_locale":"en_US","og_type":"article","og_title":"What Is the Best API for Geolocating an IP Address? [2021]","og_description":"Looking for a reasonably stable Geolocation API to find out more about an IP address (user) that visits your site or application? It's your lucky day \u2014 because I built an exhaustive list for that. It includes Gelocating APIs, their responses, and limitations.","og_url":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/","og_site_name":"Ahmad Awais","article_publisher":"https:\/\/facebook.com\/AhmadAwais","article_author":"https:\/\/facebook.com\/AhmadAwais","article_published_time":"2017-06-11T12:59:59+00:00","article_modified_time":"2023-08-16T12:48:34+00:00","og_image":[{"url":"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/2705.svg","type":"","width":"","height":""}],"author":"Ahmad Awais","twitter_card":"summary_large_image","twitter_creator":"@MrAhmadAwais","twitter_site":"@MrAhmadAwais","twitter_misc":{"Written by":"Ahmad Awais","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/#article","isPartOf":{"@id":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/"},"author":{"name":"Ahmad Awais","@id":"https:\/\/ahmadawais.com\/#\/schema\/person\/1d1b9504182dca2315cf039fb4ebb85b"},"headline":"What Is the Best API for Geolocating an IP Address? [2021]","datePublished":"2017-06-11T12:59:59+00:00","dateModified":"2023-08-16T12:48:34+00:00","mainEntityOfPage":{"@id":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/"},"wordCount":1534,"commentCount":22,"publisher":{"@id":"https:\/\/ahmadawais.com\/#\/schema\/person\/1d1b9504182dca2315cf039fb4ebb85b"},"image":{"@id":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/#primaryimage"},"thumbnailUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/2705.svg","keywords":["free api","geo ip api","geolocation api ip"],"articleSection":["Web"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/","url":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/","name":"What Is the Best API for Geolocating an IP Address? [2021]","isPartOf":{"@id":"https:\/\/ahmadawais.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/#primaryimage"},"image":{"@id":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/#primaryimage"},"thumbnailUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/2705.svg","datePublished":"2017-06-11T12:59:59+00:00","dateModified":"2023-08-16T12:48:34+00:00","description":"Looking for a reasonably stable Geolocation API to find out more about an IP address (user) that visits your site or application? It's your lucky day \u2014 because I built an exhaustive list for that. It includes Gelocating APIs, their responses, and limitations.","breadcrumb":{"@id":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/#primaryimage","url":"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/2705.svg","contentUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/2705.svg"},{"@type":"BreadcrumbList","@id":"https:\/\/ahmadawais.com\/best-api-geolocating-an-ip-address\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ahmadawais.com\/"},{"@type":"ListItem","position":2,"name":"What Is the Best API for Geolocating an IP Address? [2021]"}]},{"@type":"WebSite","@id":"https:\/\/ahmadawais.com\/#website","url":"https:\/\/ahmadawais.com\/","name":"Ahmad Awais","description":"Founder &amp; CEO of CommandCode.ai f\/k\/a Langbase | Google Developers Advisory Board (gDAB) founding member","publisher":{"@id":"https:\/\/ahmadawais.com\/#\/schema\/person\/1d1b9504182dca2315cf039fb4ebb85b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ahmadawais.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/ahmadawais.com\/#\/schema\/person\/1d1b9504182dca2315cf039fb4ebb85b","name":"Ahmad Awais","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/06\/Ahmad-Awais-face.jpg","url":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/06\/Ahmad-Awais-face.jpg","contentUrl":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/06\/Ahmad-Awais-face.jpg","width":2299,"height":1705,"caption":"Ahmad Awais"},"logo":{"@id":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/06\/Ahmad-Awais-face.jpg"},"description":"Founder & CEO of \u2318 Command Code coding agent with taste. Founded Langbase.com, AI cloud to build, deploy, and scale AI agents with tools & memory \u00b7 Creator of Command.new. \"Awais is an awesome example for developers\" \u2014 Satya Nadella, CEO of Microsoft. NASA Mars Ingenuity Helicopter mission code contributor 8th GitHub Stars Award recipient with 5x GitHub Stars Award (Listed as GitHub's #1 JavaScript trending developer). Google Developers Expert Web DevRel. Ex VP Eng (DevTools & DevRel) Rapid \u00b7 Google Developers Advisory Board (gDAB) founding member \u00b7 AI\/ML\/DevTools Angel Investor (Replit, Resend, Daytona, Gumroad and you?) \u276f AI\/ML Advisory Board San Francisco, DevNetwork. Award-winning Open Source Engineering leader authored hundreds of open-source dev-tools and software libraries used by millions of developers, including Shades of Purple code theme and corona-cli. Linux Foundation (Node.js Committee Lead), OpenAPI Business Governing Board. Taught 108K+ developers via NodeCLI.com and VSCode.pro course. 274 million views, blogging for 24 yrs. \u276f Read more about Ahmad Awais or come say hi on \ud835\udd4f @MrAhmadAwais.","sameAs":["https:\/\/AhmadAwais.com\/","https:\/\/facebook.com\/AhmadAwais","https:\/\/instagram.com\/MrAhmadAwais\/","https:\/\/www.linkedin.com\/in\/MrAhmadAwais\/","https:\/\/x.com\/MrAhmadAwais","https:\/\/youtube.com\/AhmadAwais"]}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/posts\/2315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/comments?post=2315"}],"version-history":[{"count":5,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/posts\/2315\/revisions"}],"predecessor-version":[{"id":7977,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/posts\/2315\/revisions\/7977"}],"wp:attachment":[{"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/media?parent=2315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/categories?post=2315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/tags?post=2315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}