{"id":7543,"date":"2020-04-09T12:32:20","date_gmt":"2020-04-09T07:32:20","guid":{"rendered":"https:\/\/thedevcouple.com\/?p=7543"},"modified":"2020-06-09T14:17:42","modified_gmt":"2020-06-09T09:17:42","slug":"ipapi-review","status":"publish","type":"post","link":"https:\/\/thedevcouple.com\/ipapi-review\/","title":{"rendered":"IPAPI Review \u2013\u00a0Location, Timezone, Security Data All In One Place"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">There are thousands of courses out on the Internet right now. Some of these courses are on platforms like <\/span><a href=\"http:\/\/coursera.org\/\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">Coursera<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><a href=\"http:\/\/pluralsight.com\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">Pluralsight<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><a href=\"https:\/\/frontendmasters.com\/\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">Frontend Masters<\/span><\/a><span style=\"font-weight: 400;\">, etc. But there are still developers who prefer to have their course on a separate learning management system. By doing this they can offer different discounts.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Some of these developers use geolocation APIs to get their visitor\u2019s locations and then offer them a discount accordingly. This is one of the many benefits of geolocation APIs.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the wide variety of these APIs, there exists a geolocation API that not only provides you with the location of your customer but also with the currency, timezone in their location. I am talking about none other than <\/span><a href=\"https:\/\/ipapi.com\/\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">IPAPI<\/span><\/a><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Today, I am going to share my thoughts about IPAPI and I will also show you how it works, what are the different features it provides. We will also take a dive into its performance. So without any further ado, let\u2019s jump in! \ud83d\ude4c\ud83c\udffb<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-7545\" src=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover.png\" alt=\"Cover\" width=\"6000\" height=\"4000\" srcset=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover.png 6000w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-300x200.png 300w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-1024x683.png 1024w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-768x512.png 768w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-1536x1024.png 1536w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-2048x1365.png 2048w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-1920x1280.png 1920w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-1680x1120.png 1680w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-1240x827.png 1240w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-860x573.png 860w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-680x453.png 680w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-500x333.png 500w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-400x267.png 400w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-250x167.png 250w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-200x133.png 200w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-100x67.png 100w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-76x51.png 76w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-50x33.png 50w\" sizes=\"(max-width: 6000px) 100vw, 6000px\" \/><\/p>\n<h2><b>\u26a1\ufe0f IPAPI<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Originally developed as part of an internal IP address validation and lookup tool, <\/span><a href=\"https:\/\/ipapi.com\/\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">IPAPI<\/span><\/a><span style=\"font-weight: 400;\"> is another flagship product of API Layer. The company was founded by Paul <\/span><a href=\"https:\/\/twitter.com\/pzehetmayr\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">Zehetmayr<\/span><\/a><span style=\"font-weight: 400;\"> who is also the man behind <\/span><a href=\"http:\/\/ipstack.com\/\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">ipstack<\/span><\/a><span style=\"font-weight: 400;\">, another powerful geolocation API. To this point, IPAPI has helped more than 30,000 businesses worldwide to gain control over their audience and deliver user experience and content at an unparalleled speed and quality.<\/span><\/p>\n<p><a href=\"https:\/\/ipapi.com\/\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">IPAPI<\/span><\/a><span style=\"font-weight: 400;\"> provides a lot of useful information to its users. This information mostly revolves around the location, timezone, currency, and the connection and security of the visitor. The information is extremely detailed which means that you are not only getting the location of your audience but also getting their continent, country, region, city, ZIP Code, latitude, longitudes, and whatnot. \ud83e\udd42<\/span><\/p>\n<div class=\"eckosc eckosc_full_width_block\">\n<p><a href=\"https:\/\/ipapi.com\/\" rel=\"nofollow noopener\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-7546\" src=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple.png\" alt=\"Ipapi Thedevcouple\" width=\"1440\" height=\"811\" srcset=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple.png 1440w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-300x169.png 300w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-1024x577.png 1024w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-768x433.png 768w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-1240x698.png 1240w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-860x484.png 860w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-680x383.png 680w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-500x282.png 500w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-400x225.png 400w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-250x141.png 250w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-200x113.png 200w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-100x56.png 100w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-76x43.png 76w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-thedevcouple-50x28.png 50w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/><\/a><\/p>\n<\/div>\n<h2><b>\ud83d\udcbb Experimenting with the API<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Now I will take a deep dive into this API by making a call to it using JavaScript and in the process showing you how it works.\u00a0<\/span><\/p>\n<h3><b>\u2192 Step #1<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">The first and foremost step is to open the <\/span><a href=\"https:\/\/ipapi.com\/\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">IPAPI<\/span><\/a><span style=\"font-weight: 400;\"> website. After you have done it, select <\/span><b>pricing<\/b><span style=\"font-weight: 400;\"> from the navigation bar. It will take you to a page that will show different features of the API associated with different prices. I am using the free version of the API for this extensive review. You can choose whatever plan that suits you.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Once you have successfully signed up, you will be directed to a dashboard where you can easily see your API access key. Copy it! \ud83d\udcaf<\/span><\/p>\n<div class=\"eckosc eckosc_full_width_block\">\n<p><a href=\"https:\/\/ipapi.com\/dashboard\" rel=\"nofollow noopener\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-7547\" src=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple.png\" alt=\"Ipapi Dashboard Thedevcouple\" width=\"1440\" height=\"811\" srcset=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple.png 1440w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-300x169.png 300w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-1024x577.png 1024w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-768x433.png 768w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-1240x698.png 1240w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-860x484.png 860w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-680x383.png 680w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-500x282.png 500w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-400x225.png 400w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-250x141.png 250w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-200x113.png 200w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-100x56.png 100w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-76x43.png 76w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-dashboard-thedevcouple-50x28.png 50w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/><\/a><\/p>\n<\/div>\n<h3><b>\u2192 Step #2<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">The next step is to write a small program. I have already done that part and you can see it in the gist below. I have also added the response you will receive in the gist if you are too using the free version of the API.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Make sure you understand that the response you will receive will be somewhat different from mine since it would be according to the region you are currently residing in.<\/span><\/p>\n<pre class=\"eckosc_syntax eckosc_syntax_theme_dark\"><code data-language=\"json\">\/\/ importing axios\nconst axios = require('axios');\n\n\/\/ making the API call\n(async () =&gt; {\n    await axios\n        .get('http:\/\/api.ipapi.com\/182.185.176.244?access_key=YOUR_API_ACCESS_TOKEN&amp;format=1')\n        .then(({ data }) =&gt; console.log(data))\n        .catch((err) =&gt; console.log(err));\n})();\n\n\/\/ response I received\n\n{ ip: '182.185.176.244',\n  type: 'ipv4',\n  continent_code: 'AS',\n  continent_name: 'Asia',\n  country_code: 'PK',\n  country_name: 'Pakistan',\n  region_code: 'PB',\n  region_name: 'Punjab',\n  city: 'Lahore',\n  zip: '54000',\n  latitude: 24.882999420166016,\n  longitude: 67.05799865722656,\n  location:\n\n   { geoname_id: 1174872,\n     capital: 'Islamabad',\n     languages: [ { code: 'en', name: 'English', native: 'English' },\n                 { code: 'ur', name: 'Urdu', native: '\u0627\u0631\u062f\u0648', rtl: 1 } ],\n     country_flag: 'http:\/\/assets.ipapi.com\/flags\/pk.svg',\n     country_flag_emoji: '\ud83c\uddf5\ud83c\uddf0',\n     country_flag_emoji_unicode: 'U+1F1F5 U+1F1F0',\n     calling_code: '92',\n     is_eu: false }\n}<\/code><\/pre>\n<h2><b>\ud83d\ude80 Features<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">IPAPI free plan lets you access all the geolocation data of the visitor looking up at your website. This is extremely beneficial if you are interested in getting only this information.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Now I am going to break down the information I received when I made the API to IPAPI free version. I am going to discuss each of them in detail.\u00a0<\/span><\/p>\n<ul>\n<li><b>\ud83d\udccc IP:<span style=\"font-weight: 400;\"> This is the IP address that you give to the API as an endpoint. All of the data you receive will be related to this IP address.<\/span><\/b><\/li>\n<\/ul>\n<ul>\n<li><strong>\ud83d\udca5 Type:<\/strong><span style=\"font-weight: 400;\"> The next thing you will see is the type of IP address which in my case is Internet Protocol version 4 (IPv4). IPv4 uses a 32-bit address space which provides 4,294,967,296 (2<\/span><span style=\"font-weight: 400;\">32<\/span><span style=\"font-weight: 400;\">) unique addresses but large blocks are reserved for special networking methods.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong>\ud83d\udd25 Continent Code:<\/strong><span style=\"font-weight: 400;\"> Every continent in this world has been given a code, for instance, for Europe it is the <\/span>EU<span style=\"font-weight: 400;\">, and for Antarctica, it is the <\/span>AN<span style=\"font-weight: 400;\">. Since I am making this API call from Asia, I received <\/span>AS<span style=\"font-weight: 400;\"> in the response.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><b>\ud83c\udf0e <\/b>Continent Name:<\/strong><span style=\"font-weight: 400;\"> This will show you the name of the continent your visitor is currently living at the moment, from where he has opened your website or product.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong>\ud83d\udca1 Country Code:<\/strong><span style=\"font-weight: 400;\"> Moving a little down the road, you will see next to the Continent Name, the country code of your visitor. From here on now, you will have a more specific idea about your visitor\u2019s location.\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong>\ud83c\udf10 Country Name:<\/strong><span style=\"font-weight: 400;\"> This will provide you with the name of the country where your visitor is currently living in. This information can give all sorts of ideas about the culture of your visitor or any other useful information you may need about their country.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong>\ud83d\ude9d Region Code:<\/strong> <span style=\"font-weight: 400;\">Region Code is the code given to a particular area of a country. It\u2019s mostly the states or provinces of a country.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong>\ud83d\ude80 Region Name:<\/strong> <span style=\"font-weight: 400;\">This is the name of the area from where your visitor is checking out your website. In my case, I received Punjab.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong>\ud83c\udfd9 City:<\/strong> <span style=\"font-weight: 400;\">This is the name of the city where your customer is residing. When I made the API call, I got Lahore as you can see in the gist above.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong>\u2709\ufe0f Zip<\/strong><span style=\"font-weight: 400;\"><strong>:<\/strong> The zip code of your visitor\u2019s location.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong>\ud83c\udf0d Latitudes &amp; Longitudes:<\/strong> <span style=\"font-weight: 400;\">These are the geographic coordinates and they will provide you with a more precise location of your customer. You can use these coordinates on a map to get the location.<\/span><\/li>\n<li><b>\ud83d\udccd Location: <\/b>Then after all this you will see a location object which will contain the <b>geoname_id, capital, languages, country flag, country flag emoji, country flag emoji Unicode, calling code, <\/b>and last but not the least <b>is_eu <\/b>information.<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">You can find more detailed information about these features <\/span><a href=\"https:\/\/ipapi.com\/documentation#api_response_objects\" rel=\"nofollow noopener\" target=\"_blank\"><b>here<\/b><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h2><b>\ud83d\udd17 API Endpoints<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Like any other good API service, IPAPI provides three different types of API endpoints. Considering the nature of the data this service provides its customer, it is only fair that most of these endpoints are available to those who have purchased their plan.<\/span><\/p>\n<h3><b>\ud83d\udccd Standard IP Lookup<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">You can make use of this endpoint in every plan of IPAPI even if you are using a free account. This endpoint is what I used earlier when I showed you how IPAPI works. You only need to provide the IP address and the API takes care of the rest.<\/span><\/p>\n<pre class=\"eckosc_syntax eckosc_syntax_theme_dark\"><code>curl http:\/\/api.ipapi.com\/api\/161.185.160.93?access_key=YOUR_ACCESS_KEY<\/code><\/pre>\n<p><span style=\"font-weight: 400;\">You will get a response somewhat like the following when you make the API call.\u00a0<\/span><\/p>\n<pre class=\"eckosc_syntax eckosc_syntax_theme_dark\"><code data-language=\"json\">{\n\"ip\": \"161.185.160.93\",\n\"type\": \"ipv4\",\n\"continent_code\": \"NA\",\n\"continent_name\": \"North America\",\n\"country_code\": \"US\",\n\"country_name\": \"United States\",\n\"region_code\": \"NY\",\n\"region_name\": \"New York\",\n\"city\": \"Brooklyn\",\n\"zip\": \"11238\",\n\"latitude\": 40.676,\n\"longitude\": -73.9629,\n\"location\": {\n\"geoname_id\": 5110302,\n\"capital\": \"Washington D.C.\",\n\"languages\": [\n{\n\"code\": \"en\",\n\"name\": \"English\",\n\"native\": \"English\"\n}\n],\n\"country_flag\": \"http:\/\/assets.ipapi.com\/flags\/us.svg\",\n\"country_flag_emoji\": \"\ud83c\uddfa\ud83c\uddf8\",\n\"country_flag_emoji_unicode\": \"U+1F1FA U+1F1F8\",\n\"calling_code\": \"1\",\n\"is_eu\": false\n},\n\"time_zone\": {\n\"id\": \"America\/New_York\",\n\"current_time\": \"2018-09-24T05:07:10-04:00\",\n\"gmt_offset\": -14400,\n\"code\": \"EDT\",\n\"is_daylight_saving\": true\n},\n\"currency\": {\n\"code\": \"USD\",\n\"name\": \"US Dollar\",\n\"plural\": \"US dollars\",\n\"symbol\": \"$\",\n\"symbol_native\": \"$\"\n},\n\"connection\": {\n\"asn\": 22252,\n\"isp\": \"The City of New York\"\n}\n}<\/code><\/pre>\n<p><span style=\"font-weight: 400;\">If you see the above response one more time, you will notice that it also contains timezone, currency, and connection information. You will only get this information if you have subscribed to IPAPI paid plan.<\/span><\/p>\n<h3><b>\ud83d\ude80 Bulk IP Lookup<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">If you have multiple IP addresses and you need to get information for all of them, then this endpoint is designed just for you. You can do all this by putting IPs in the API URL separated by a comma. That\u2019s it!\u00a0<\/span><\/p>\n<pre class=\"eckosc_syntax eckosc_syntax_theme_dark\"><code>curl http:\/\/api.ipapi.com\/api\/161.185.160.93,87.111.168.248,210.138.184.59?access_key=YOUR_ACCESS_KEY<\/code><\/pre>\n<p><span style=\"font-weight: 400;\">Once you hit the API with multiple IPs, you will get an array of results, containing subarray per IP address looked up.\u00a0<\/span><\/p>\n<pre class=\"eckosc_syntax eckosc_syntax_theme_dark\"><code data-language=\"json\">[\n    {\n      \"ip\": \"161.185.160.93\",\n      \"type\": \"ipv4\",\n      \"continent_code\": \"NA\",\n      \"continent_name\": \"North America\",\n      \"country_code\": \"US\",\n      \"country_name\": \"United States\",\n      \"region_code\": \"NY\",\n      \"region_name\": \"New York\",\n      \"city\": \"Brooklyn\",\n      \"zip\": \"11238\",\n      \"latitude\": 40.676,\n      \"longitude\": -73.9629,\n      [...]\n  },\n  {\n      \"ip\": \"161.185.160.93\",\n      \"type\": \"ipv4\",\n      \"continent_code\": \"EU\",\n      \"continent_name\": \"Europe\",\n      \"country_code\": \"ES\",\n      \"country_name\": \"Spain\",\n      \"region_code\": \"GA\",\n      \"region_name\": \"Galicia\",\n      \"city\": \"Santiago de Compostela\",\n      \"zip\": \"15781\",\n      \"latitude\": 42.88,\n      \"longitude\": -8.5448,\n      [...]\n  },\n  {\n      \"ip\": \"210.138.184.59\",\n      \"type\": \"ipv4\",\n      \"continent_code\": \"AS\",\n      \"continent_name\": \"Asia\",\n      \"country_code\": \"JP\",\n      \"country_name\": \"Japan\",\n      \"region_code\": \"13\",\n      \"region_name\": \"Tokyo\",\n      \"city\": \"Tokyo\",\n      \"zip\": \"102-0082\",\n      \"latitude\": 35.685,\n      \"longitude\": 139.7514,\n      [...]\n  }\n]<\/code><\/pre>\n<h3><b>\u26a1\ufe0f Origin IP Lookup<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Last but not the least, they have an Origin IP lookup that lets you get the information of your visitor without you needing to provide their IP address. To work with this endpoint, all you need to do is write a <\/span><b>check<\/b><span style=\"font-weight: 400;\"> instead of the IP address in the API base URL.<\/span><\/p>\n<pre class=\"eckosc_syntax eckosc_syntax_theme_dark\"><code>curl http:\/\/api.ipapi.com\/api\/check?access_key=YOUR_ACCESS_KEY<\/code><\/pre>\n<p><span style=\"font-weight: 400;\">You will get a response like this.\u00a0<\/span><\/p>\n<pre class=\"eckosc_syntax eckosc_syntax_theme_dark\"><code data-language=\"json\">{\n\"ip\": \"161.185.160.93\",\n\"type\": \"ipv4\",\n\"continent_code\": \"NA\",\n\"continent_name\": \"North America\",\n\"country_code\": \"US\",\n\"country_name\": \"United States\",\n\"region_code\": \"NY\",\n\"region_name\": \"New York\",\n\"city\": \"Brooklyn\",\n\"zip\": \"11238\",\n\"latitude\": 40.676,\n\"longitude\": -73.9629,\n\"location\": {\n\"geoname_id\": 5110302,\n\"capital\": \"Washington D.C.\",\n\"languages\": [\n{\n\"code\": \"en\",\n\"name\": \"English\",\n\"native\": \"English\"\n}\n],\n\"country_flag\": \"http:\/\/assets.ipapi.com\/flags\/us.svg\",\n\"country_flag_emoji\": \"\ud83c\uddfa\ud83c\uddf8\",\n\"country_flag_emoji_unicode\": \"U+1F1FA U+1F1F8\",\n\"calling_code\": \"1\",\n\"is_eu\": false\n},\n\"time_zone\": {\n\"id\": \"America\/New_York\",\n\"current_time\": \"2018-09-24T05:07:10-04:00\",\n\"gmt_offset\": -14400,\n\"code\": \"EDT\",\n\"is_daylight_saving\": true\n},\n\"currency\": {\n\"code\": \"USD\",\n\"name\": \"US Dollar\",\n\"plural\": \"US dollars\",\n\"symbol\": \"$\",\n\"symbol_native\": \"$\"\n},\n\"connection\": {\n\"asn\": 22252,\n\"isp\": \"The City of New York\"\n}\n}<\/code><\/pre>\n<p><span style=\"font-weight: 400;\">This is a sample response and again it contains information like a currency that is available only in paid IPAPI plans.<\/span><\/p>\n<h2><b>\ud83d\udd25 Performance<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">It goes without saying that performance is extremely important for geolocation APIs. They need to be lightning-fast to not be responsible for any kind of lag. Also, with the speed, they need to maintain the quality of their work. For instance, if I do not like an API which is fast but gets me different results every time I hit it.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">So, the next thing I am going to test is the performance of IPAPI. I am using Postman to make the API call and checking the performance. Also, all of the following results are the average of many attempts I have performed using this API.<\/span><\/p>\n<div class=\"eckosc eckosc_contrast_block\"><div class=\"eckosc_contrast_block_inner\">\n<p style=\"text-align: center;\">\ud83d\udca1<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">\u26a1\ufe0f On the first test, I received a response time of <\/span><b>356ms<\/b><span style=\"font-weight: 400;\"> which is quite fast.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">\ud83d\ude80 Then I tested the API with Bulk IP lookup and Origin IP lookup and the response time never went above <\/span><b>400ms<\/b><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ul>\n<\/div><\/div>\n<p>The test results are quite satisfactory. The API has shown blazing fast speed and is also showing all the correct data. \ud83d\udcaf<\/p>\n<div class=\"eckosc eckosc_full_width_block\">\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-7548\" src=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple.png\" alt=\"Performance Thedevcouple\" width=\"1440\" height=\"811\" srcset=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple.png 1440w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-300x169.png 300w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-1024x577.png 1024w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-768x433.png 768w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-1240x698.png 1240w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-860x484.png 860w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-680x383.png 680w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-500x282.png 500w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-400x225.png 400w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-250x141.png 250w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-200x113.png 200w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-100x56.png 100w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-76x43.png 76w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/performance-thedevcouple-50x28.png 50w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/><\/p>\n<\/div>\n<h2><b>\ud83d\udcd6 Documentation<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">This is the area in which I look for the first whenever I am testing a service. What kind of documentation they provide. In my opinion, good documentation is essential for a product to succeed.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">IPAPI <\/span><a href=\"https:\/\/ipapi.com\/documentation\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">documentation<\/span><\/a><span style=\"font-weight: 400;\"> is one of the best API documentation I have seen so far. It contains just the right amount of information that the user needs to work with their API. They even included the information about the response object you receive when you make the API call.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Their documentation includes everything related to their API whether it\u2019s about the endpoints, API error codes, specific response format, etc. They have also provided <\/span><a href=\"https:\/\/ipapi.com\/documentation#php_curl\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">code examples<\/span><\/a><span style=\"font-weight: 400;\"> that you can see if you find something wrong when working with their API. Currently, these examples are only available in PHP and JavaScript.<\/span><\/p>\n<div class=\"eckosc eckosc_full_width_block\">\n<p><a href=\"https:\/\/ipapi.com\/documentation\" rel=\"nofollow noopener\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-7549\" src=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple.png\" alt=\"Ipapi Documentation Thedevcouple\" width=\"1440\" height=\"811\" srcset=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple.png 1440w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-300x169.png 300w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-1024x577.png 1024w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-768x433.png 768w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-1240x698.png 1240w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-860x484.png 860w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-680x383.png 680w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-500x282.png 500w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-400x225.png 400w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-250x141.png 250w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-200x113.png 200w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-100x56.png 100w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-76x43.png 76w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/ipapi-documentation-thedevcouple-50x28.png 50w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/><\/a><\/p>\n<\/div>\n<h2><b>\ud83d\udcb0 Pricing<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Unlike the IP Geolocation API, IPAPI is not entirely free service. It provides you <a href=\"https:\/\/ipapi.com\/plan\" rel=\"nofollow noopener\" target=\"_blank\">different plans<\/a> that include <\/span><b>Free, Standard, Business, Business Pro, <\/b><span style=\"font-weight: 400;\">and <\/span><b>Enterprise<\/b><span style=\"font-weight: 400;\">. All of these plans offer different API features. You also have the option to purchase any of these plans on a monthly basis or a yearly basis. A yearly base plan gets you a 20%<\/span> <span style=\"font-weight: 400;\">discount.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">On a free plan, you get 10,000 lookups, location data, and limited support from the IPAPI. But on a $10\/month standard plan, you get more features. You have 50,000 lookups, unlimited support, location data, HTTPs encryption while making the API call, currency, timezone, and also connection data.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you have purchased a business plan that costs $50\/month, you get all the standard plan features with 500,000 lookups instead of 50,000 and also Bulk lookups. On the other hand, a $100\/month plan gets you all the business plan features and also 2M lookups instead of 500,000 and security data of your visitors as well. \u26a1\ufe0f<\/span><\/p>\n<div class=\"eckosc eckosc_full_width_block\">\n<p><a href=\"https:\/\/ipapi.com\/product\" rel=\"nofollow noopener\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-7550\" src=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple.png\" alt=\"Pricing Thedevcouple\" width=\"1440\" height=\"811\" srcset=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple.png 1440w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-300x169.png 300w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-1024x577.png 1024w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-768x433.png 768w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-1240x698.png 1240w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-860x484.png 860w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-680x383.png 680w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-500x282.png 500w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-400x225.png 400w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-250x141.png 250w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-200x113.png 200w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-100x56.png 100w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-76x43.png 76w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/pricing-thedevcouple-50x28.png 50w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/><\/a><\/p>\n<\/div>\n<h2><b>\ud83d\ude4c\ud83c\udffb Wrapping Up<\/b><\/h2>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/ipapi.com\/\" rel=\"nofollow noopener\" target=\"_blank\">IPAPI<\/a> is one of the best geolocation API I have used so far. It has amazing documentation. The whole API\u00a0 works stupendously and is crazy fast as well.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It is definitely my go-to service if I will ever need the kind of service it provides. So far, I have not seen any fault or irregularities while working with the API. So you should definitely give it a shot if you are planning to buy something similar.<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\">Have you used IPAPI or any similar service to drill user\u2019s information? Which service did you use and how was your experience? Let us know your thoughts in the comments section below.\u00a0<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">Peace! \ud83e\udd1e<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Originally developed as part of an internal IP address validation and lookup tool, IPAPI is another flagship product of API Layer. IPAPI provides a lot of useful information to its users. This information mostly revolves around the location, timezone, currency, and the connection and security of the visitor. The information is extremely detailed which means that you are not only getting the location of your audience but also getting their continent, country, region, city, ZIP Code, latitude, longitudes, and whatnot.<\/p>\n","protected":false},"author":9,"featured_media":7544,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":""},"categories":[18],"tags":[222,226,225],"coauthors":[214],"jetpack_featured_media_url":"https:\/\/thedevcouple.com\/wp-content\/uploads\/2020\/06\/cover-scaled.jpg","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/posts\/7543"}],"collection":[{"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/comments?post=7543"}],"version-history":[{"count":5,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/posts\/7543\/revisions"}],"predecessor-version":[{"id":7572,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/posts\/7543\/revisions\/7572"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/media\/7544"}],"wp:attachment":[{"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/media?parent=7543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/categories?post=7543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/tags?post=7543"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/coauthors?post=7543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}