CINXE.COM
Frequently Asked Questions About IP Geolocation APIs
<!DOCTYPE html> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> <head> <meta charset="utf-8"> <title>Frequently Asked Questions About IP Geolocation APIs</title> <meta name="description" content="If you have any questions about IP geolocation APIs or IP address databases here at DB-IP, you can get in-depth answers through our FAQ here. If you have any additional questions you would like to ask, you can contact us at any time for more information." /> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, shrink-to-fit=no"> <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,500,600,700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="/css/dbip.css" /> <link rel="search" href="https://db-ip.com/search.xml" type="application/opensearchdescription+xml" title="DB-IP" /> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" /> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" /> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" /> <link rel="manifest" href="/manifest.json" /> <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#007bff" /> <meta name="theme-color" content="#007bff" /> <script async src="https://www.googletagmanager.com/gtag/js?id=G-4TPGRVC5H7"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-4TPGRVC5H7'); </script> <!-- to be removed 2023-07 --> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-32777297-1']); _gaq.push(['_setDomainName', 'db-ip.com']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> </head> <body> <div id="pagetop"></div> <!--[if lt IE 7]> <p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p> <![endif]--> <div class="container-fluid"> <div id="particles-js" class="navbarcontainer"> <nav class="navbar navbar-expand-lg navbar-dark"> <a class="navbar-brand" href="/"><img src="/logo/ip-geolocation.png" width="48" height="32" alt="IP Geolocation API and database" /></a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav"> <li class='nav-item'><a class='nav-link' href='/api/'>API</a></li><li class='nav-item'><a class='nav-link' href='/api/doc.php'>Developers</a></li><li class='nav-item'><a class='nav-link' href='/db/'>Database</a></li><li class='nav-item'><a class='nav-link' href='/tools/'>Tools</a></li><li class='nav-item'><a class='nav-link' href='/about/'>Statistics</a></li><li class='nav-item'><a class='nav-link active' href='/faq.php'>FAQ</a></li> </ul> <form method="POST" class="form-inline ml-4 mr-2" role="search"> <div class="input-group"> <input id="search_input" type="text" name="address" class="form-control m-0" value="8.222.208.146" placeholder="Lookup IP address" data-placement="bottom" title="Lookup IP address" data-content="Explore our API information by entering any IPv4 or IPv6 address in the search bar above." data-trigger="hover" /> <div class="input-group-append"> <button type="submit" class="btn lightblue"> <i class="fa fa-search" aria-hidden="true"></i> <span class="sr-only">Search</span> </button> </div> </div> </form> <span class="navbar-text ml-3 d-none d-lg-inline-block"><a href="/account/" class="h2" title="Customer sign-in"><i class="fa fa-user-circle"></i></a></span> </div> </nav> </div> <section class="space-lg"> <div class="container"> <div class="title head"> <div class="sub purple">FAQ</div> <h1 class="main display-4">IP Geolocation API and Database FAQ</h1> <p>Frequently Asked Questions about the DB-IP databases and API services</p> </div> </div> </section> <section class="space-xl grey-bg"> <div class="container"> <div class="accordion" id="faqAccordion"> <div class="card general"> <div class="card-header" id="faq_h_54a2e849"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_54a2e849" aria-expanded="false" aria-controls="faq_c_54a2e849"> <span>General</span>Where can I find a list of the country codes present in the database or returned by the API ? </button> </h2> </div> <div id="faq_c_54a2e849" class="collapse show" aria-labelledby="faq_h_54a2e849" data-parent="#faqAccordion"> <div class="card-body"> <p>The country codes in our databases and API services are standard ISO 3166-1 alpha-2 codes with the addition of two non-standard codes : XK which is used by the European Commission, Switzerland, the Deutsche Bundesbank, SWIFT, and other organizations as a temporary country code for Kosovo, and ZZ which is assigned to address blocks that have by definition no location and owner such as private or multicast IP addresses</p> <p>A complete list of codes can be found at Wikipedia : <a href='https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2' target='_blank'>https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2</a>.</p> </div> </div> </div> <div class="card general"> <div class="card-header" id="faq_h_e404c493"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_e404c493" aria-expanded="false" aria-controls="faq_c_e404c493"> <span>General</span>What is the update schedule of the DB-IP database ? </button> </h2> </div> <div id="faq_c_e404c493" class="collapse " aria-labelledby="faq_h_e404c493" data-parent="#faqAccordion"> <div class="card-body"> <p>Our API backend update frequency varies depending on the type data, proxy/tor/vpn detection and threats related data are updated several times per hour whereas location data is updated on average twice a day. Database downloads are updated monthly usually on the 1st of each month.</p> </div> </div> </div> <div class="card general"> <div class="card-header" id="faq_h_b35c7dd2"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_b35c7dd2" aria-expanded="false" aria-controls="faq_c_b35c7dd2"> <span>General</span>How can I update a location in the database ? </button> </h2> </div> <div id="faq_c_b35c7dd2" class="collapse " aria-labelledby="faq_h_b35c7dd2" data-parent="#faqAccordion"> <div class="card-body"> <p>We use several methods in order to catch up with address blocks moving from one ISP or country to another. When you update your whois records at RIPE, ARIN or another RIR, our systems will detect it and usually trigger a block refresh on our side.</p> <p>If you still identify addresses with wrong location data, you may report them manually through the report link that is present on our website address search result page. Another way is to set up and publish a geofeed (see <a href='https://tools.ietf.org/html/draft-google-self-published-geofeeds-02' target='_blank'>https://tools.ietf.org/html/draft-google-self-published-geofeeds-02</a>). Geofeeds are suitable for ISPs with large numbers of heterogenous address blocks, like IPv6 brokers or big hosting companies with worldwide presence. You may also send batch updates in you preferred format to our support team using this <a href='/contact/' target='_blank'>form</a>.</p> </div> </div> </div> <div class="card general"> <div class="card-header" id="faq_h_dd3bb039"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_dd3bb039" aria-expanded="false" aria-controls="faq_c_dd3bb039"> <span>General</span>How accurate are the locations in the database ? </button> </h2> </div> <div id="faq_c_dd3bb039" class="collapse " aria-labelledby="faq_h_dd3bb039" data-parent="#faqAccordion"> <div class="card-body"> <p>The accuracy of a location depends on many factors, the most important being the ISP the address belongs to. For some providers we have street level accuracy, for most city level, for the worst and rare cases only country level, and a lot of intermediate situations. Accuracy is also generally higher for fixed lines than it is for cellular networks.</p> <p>You can use the IP address query form on our website to see live results from our latest database, this way you may explore our data and test various addresses you own or know about.</p> </div> </div> </div> <div class="card general"> <div class="card-header" id="faq_h_6e816b08"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_6e816b08" aria-expanded="false" aria-controls="faq_c_6e816b08"> <span>General</span>Can I use the DB-IP database or API in a commercial product ? </button> </h2> </div> <div id="faq_c_6e816b08" class="collapse " aria-labelledby="faq_h_6e816b08" data-parent="#faqAccordion"> <div class="card-body"> <p>Our free database downloads are licensed under a Creative Commons license, you are allowed to use the database in a commercial product and redistribute it as long as you comply with the rest of the licensing terms.</p> <p>Our paid downloads are licensed under the terms listed on <a href='/tos.php' target='_blank'>this page</a>, you are allowed to use the database in a commercial product as long as you do not redistribute or give total access to the data in any way to third parties.</p> </div> </div> </div> <div class="card download"> <div class="card-header" id="faq_h_ae148362"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_ae148362" aria-expanded="false" aria-controls="faq_c_ae148362"> <span>Downloads</span>Are the monthly updates diff files or complete data sets ? </button> </h2> </div> <div id="faq_c_ae148362" class="collapse " aria-labelledby="faq_h_ae148362" data-parent="#faqAccordion"> <div class="card-body"> <p>The monthly update is a new CSV file that is meant to be imported and replace the previous one, we do not offer complete lists of changes from one release to another.</p> </div> </div> </div> <div class="card download"> <div class="card-header" id="faq_h_3feb81d6"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_3feb81d6" aria-expanded="false" aria-controls="faq_c_3feb81d6"> <span>Downloads</span>Which field should I use to determine local time, tz_name or tz_offset ? </button> </h2> </div> <div id="faq_c_3feb81d6" class="collapse " aria-labelledby="faq_h_3feb81d6" data-parent="#faqAccordion"> <div class="card-body"> <p>In countries with daylight saving time, the day of the switch is not likely to match our release cycle and the tz_offset field may not always reflect the current DST offset if there was a change in the last few weeks.</p> <p>Our recommendation is to use the tz_name value combined with a local timezone database and only use tz_offset where a timezone lookup is not possible and potential small inaccuracies are acceptable.</p> </div> </div> </div> <div class="card download"> <div class="card-header" id="faq_h_1fffabec"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_1fffabec" aria-expanded="false" aria-controls="faq_c_1fffabec"> <span>Downloads</span>Do you offer smaller database downloads with only records for country X ? </button> </h2> </div> <div id="faq_c_1fffabec" class="collapse " aria-labelledby="faq_h_1fffabec" data-parent="#faqAccordion"> <div class="card-body"> <p>We do not offer country-specific exports at the moment, and our CSV databases downloads cover the whole IP address spaces.</p> </div> </div> </div> <div class="card download"> <div class="card-header" id="faq_h_31684f1"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_31684f1" aria-expanded="false" aria-controls="faq_c_31684f1"> <span>Downloads</span>What are the differences between the free IP address to city and paid IP address to location databases ? </button> </h2> </div> <div id="faq_c_31684f1" class="collapse " aria-labelledby="faq_h_31684f1" data-parent="#faqAccordion"> <div class="card-body"> <p>The IP to Country Lite and IP to City Lite database are subsets of the commercial IP to Country and IP to Location databases, they have reduced accuracy and do not undergo the same QA process.</p> </div> </div> </div> <div class="card api"> <div class="card-header" id="faq_h_c0c4a1e3"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_c0c4a1e3" aria-expanded="false" aria-controls="faq_c_c0c4a1e3"> <span>API</span>How does the daily query quota work ? </button> </h2> </div> <div id="faq_c_c0c4a1e3" class="collapse " aria-labelledby="faq_h_c0c4a1e3" data-parent="#faqAccordion"> <div class="card-body"> <p>Every day your key is allowed a fixed number of queries. There is a counter that is incremented with every API call and it is reset every day at midnight CET (Central European Time).</p> </div> </div> </div> <div class="card api"> <div class="card-header" id="faq_h_623ed50a"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_623ed50a" aria-expanded="false" aria-controls="faq_c_623ed50a"> <span>API</span>What happens if I reach my daily query limit ? </button> </h2> </div> <div id="faq_c_623ed50a" class="collapse " aria-labelledby="faq_h_623ed50a" data-parent="#faqAccordion"> <div class="card-body"> <p>If you go over the daily limit, the service won't answer further requests with IP address information but will instead respond with an error message.</p> </div> </div> </div> <div class="card api"> <div class="card-header" id="faq_h_9f096f2d"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_9f096f2d" aria-expanded="false" aria-controls="faq_c_9f096f2d"> <span>API</span>What is your unlimited API plan and how much does it cost ? </button> </h2> </div> <div id="faq_c_9f096f2d" class="collapse " aria-labelledby="faq_h_9f096f2d" data-parent="#faqAccordion"> <div class="card-body"> <p>The unlimited option means one or more physical servers 100% dedicated to your usage so we can guarantee consistent high speed and low latency queries, eventually the price depends on your estimated load and desired performance levels. Please <a href='/contact/' target='_blank'>contact us</a> with an estimate of your query volume to get a quotation.</p> </div> </div> </div> <div class="card api"> <div class="card-header" id="faq_h_c4b1edc8"> <h2> <button class="collapsed" type="button" data-toggle="collapse" data-target="#faq_c_c4b1edc8" aria-expanded="false" aria-controls="faq_c_c4b1edc8"> <span>API</span>How can I query your API services directly from a client web browser ? </button> </h2> </div> <div id="faq_c_c4b1edc8" class="collapse " aria-labelledby="faq_h_c4b1edc8" data-parent="#faqAccordion"> <div class="card-body"> <p>In order to use the API in a web browser you have to use your public key. Paid API service users have the option to enable their public key in their API dashboard.</p> <p>The easiest way to write location-aware client side applications is <a href='/api/jsdoc.php'>dbip.js</a>. It provides easy access to features such as visitor IP address lookup, form elements autofill, live conversions into visitor currency or augmented browser geolocation</p> </div> </div> </div> </div> </div> </section> <footer class="footer"> <div class="container"> <div class="row"> <div class="col-lg-3"> <ul class="list-unstyled"> <li> <a href="https://db-ip.com/"><img loading="lazy" width="180" height="112" src="/img/footer-logo.svg"></a> <p>The ultimate resource for IP address geolocation and network intelligence</p> </li> </ul> </div> <div class="col-lg-3"> <h5 class="">Company</h5> <ul class="list-unstyled"> <li> <a href="/api/">IP Geolocation API</a> </li> <li> <a href="/db/">IP Geolocation Database</a><br /> </li> <li> <a href="/api/doc.php">Developers</a> </li> <li> <a href="/tools/">Geolocation tools</a> </li> <li> <a href="/about/">Statistics</a> </li> <li> <a href="/account/">Customer sign-in</a><br /> </li> </ul> </div> <div class="col-lg-3"> <h5 class="">Resources</h5> <ul class="list-unstyled"> <li> <a href="/faq.php">FAQ</a> </li> <li> <a href="/tutorials/">Tutorials</a> </li> <li> <a href="/articles/">Articles</a> </li> <li> <a href="/all/">Browse IPs</a><br /> </li> <li> <a href="/asn/">ASN List</a><br /> </li> <li> <a href="https://stats.uptimerobot.com/l75BNSRBk">Service status</a><br /> </li> </ul> </div> <div class="col-lg-3"> <h5 class="">Get in touch</h5> <ul class="list-unstyled contact"> <li> Eris Networks S.A.S<br/> 62 boulevard Jean Mermoz<br/> 22700 Perros-Guirec<br/> France </li> <li> <a href="/contact/">Email contact</a> </li> </ul> </div> </div> <div class="row bottom-footer"> <div class="col-8">漏 2024 db-ip.com - <a href="/tos.php">Terms of service</a> - <a href="/privacy.php">Privacy policy</a> - <a href="/affiliate/">Affiliate program</a></div> </div> </div> </footer> </div> <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script>window.jQuery || document.write('<script src="/js/vendor/jquery-1.11.3.min.js"><\/script>')</script> <script src="//cdnjs.cloudflare.com/ajax/libs/tether/1.3.1/js/tether.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integritity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/particles.js@2.0.0/particles.min.js"></script> <script> $(function() { // search bar popover $("#search_input").popover(); particlesJS('particles-js', { "particles": { "number": { "value": 80, "density": { "enable": true, "value_area": 700 } }, "color": { "value": "#ffffff" }, "shape": { "type": "circle", "stroke": { "width": 0, "color": "#000000" }, "polygon": { "nb_sides": 5 }, "image": { "src": "img/github.svg", "width": 100, "height": 100 } }, "opacity": { "value": 0.5, "random": false, "anim": { "enable": false, "speed": 1, "opacity_min": 0.1, "sync": false } }, "size": { "value": 5, "random": true, "anim": { "enable": false, "speed": 40, "size_min": 0.1, "sync": false } }, "line_linked": { "enable": true, "distance": 150, "color": "#ffffff", "opacity": 0.4, "width": 1 }, "move": { "enable": true, "speed": 1, "direction": "none", "random": false, "straight": false, "out_mode": "out", "attract": { "enable": false, "rotateX": 600, "rotateY": 1200 } } }, "interactivity": { "detect_on": "window", "events": { "onhover": { "enable": true, "mode": "bubble" }, "onclick": { "enable": true, "mode": "push" }, "resize": true }, "modes": { "grab": { "distance": 400, "line_linked": { "opacity": 1 } }, "bubble": { "distance": 131.8597012778406, "size": 15.982994094283706, "duration": 2, "opacity": 0.39957485235709267, "speed": 3 }, "repulse": { "distance": 0, "duration": 0.4 }, "push": { "particles_nb": 1 }, "remove": { "particles_nb": 2 } } }, "retina_detect": true, "config_demo": { "hide_card": false, "background_color": "#b61924", "background_image": "", "background_position": "50% 50%", "background_repeat": "no-repeat", "background_size": "cover" } } ); // call page specific onLoad if (typeof dbipOnLoad === "function") { dbipOnLoad.call(); } $(".free_download_link").click(function(ev) { if (!$("#license_agree").prop("checked")) { alert("You must first read and agree to the licensing terms."); ev.preventDefault(); return false; } }); }); (function( w ){ "use strict"; if( !w.loadCSS ){ w.loadCSS = function(){}; } var rp = loadCSS.relpreload = {}; rp.support = (function(){ var ret; try { ret = w.document.createElement( "link" ).relList.supports( "preload" ); } catch (e) { ret = false; } return function(){ return ret; }; })(); rp.bindMediaToggle = function( link ){ var finalMedia = link.media || "all"; function enableStylesheet(){ if( link.addEventListener ){ link.removeEventListener( "load", enableStylesheet ); } else if( link.attachEvent ){ link.detachEvent( "onload", enableStylesheet ); } link.setAttribute( "onload", null ); link.media = finalMedia; } if( link.addEventListener ){ link.addEventListener( "load", enableStylesheet ); } else if( link.attachEvent ){ link.attachEvent( "onload", enableStylesheet ); } setTimeout(function(){ link.rel = "stylesheet"; link.media = "only x"; }); setTimeout( enableStylesheet, 3000 ); }; rp.poly = function(){ if( rp.support() ){ return; } var links = w.document.getElementsByTagName( "link" ); for( var i = 0; i < links.length; i++ ){ var link = links[ i ]; if( link.rel === "preload" && link.getAttribute( "as" ) === "style" && !link.getAttribute( "data-loadcss" ) ){ link.setAttribute( "data-loadcss", true ); rp.bindMediaToggle( link ); } } }; if( !rp.support() ){ rp.poly(); var run = w.setInterval( rp.poly, 500 ); if( w.addEventListener ){ w.addEventListener( "load", function(){ rp.poly(); w.clearInterval( run ); } ); } else if( w.attachEvent ){ w.attachEvent( "onload", function(){ rp.poly(); w.clearInterval( run ); } ); } } if( typeof exports !== "undefined" ){ exports.loadCSS = loadCSS; } else { w.loadCSS = loadCSS; } }( typeof global !== "undefined" ? global : this ) ); </script> <!-- AddThis Smart Layers BEGIN --> <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=six0r"></script> <script type="text/javascript"> addthis.layers({ 'theme' : 'transparent', 'share' : { 'position' : 'left', 'numPreferredServices' : 5 } }); </script> <!-- AddThis Smart Layers END --> </body> </html>