---
title: "IP to Geolocation Standard Database | Accurate City-Level Data"
slug: "/documentation/ip-geolocation-standard-database.html"
parent: "IP Geolocation Databases"
description: "Pinpoint any IP instantly with country, city, ZIP, coordinates, timezone & network data. Boost personalization, routing & marketing"
---

# IP Location Database (Standard)

* * *

## Overview

Our Standard Tier IP to Geolocation Database provides you with accurate city-level geolocation data for both IPv4 and IPv6 addresses. It includes standard geolocation data such as country, state, district, city, ZIP code, geographic coordinates, time zone, GeoNames ID, and connection type. If your use case is more critical and you need more granular details on location, please check out our advanced ip to location database.

Every IP range is linked to countries, states, districts, and cities, with multilingual place names resolved through reference tables for consistency. This structure makes it easy to join datasets and work with standardized metadata across different regions and languages.

We update our databases every single day, and it's available in CSV, MMDB, or custom formats to fit your needs. Below, you'll find full documentation of the archive contents, schema definitions, file specifications, and integration notes to help you get up and running quickly.

* * *

## Available Database Formats

**CSV**

*   File Size: 345.17 MB

*   Entries: 30.5M

*   Fields: 12

*   Last Updated: Yesterday

[Documentation](https://ipgeolocation.io/documentation/ip-geolocation-standard-database.html#csv-database-documentation)

**MMDB**

*   File Size: 1.40 GB

*   Entries: 30.5M

*   Fields: 12

*   Last Updated: Yesterday

[Documentation](https://ipgeolocation.io/documentation/ip-geolocation-standard-database.html#mmdb-database-documentation)

> [!IMPORTANT]
> If you require our Standard IP to Location Database in a different format, such as Parquet or any custom structure, please feel free to reach out to us via our [Contact form](https://ipgeolocation.io/db-pricing.html#contact-us-for-quote). We are happy to accommodate specific format requests to meet your needs.

* * *

## CSV Database Documentation

* * *

### 1. Overview

The CSV version of our Standard IP to Location Database is delivered as a ZIP archive that includes Gzip-compressed files with IP ranges, location details, and multilingual place names. It's well-suited for bulk imports and easy integration into relational databases.

* * *

### 2. Archive Content

After downloading and extracting the Standard IP to Location CSV database archive, you'll find the following files (with their types noted):

**db-country.csv.gz**

Standardized country and continent metadata with codes, currency, calling codes, TLDs, and languages.

*   File Size: 9.67 KB

*   Entries: 254

*   Fields: 15

**db-place.csv.gz**

Multilingual place names for cities, districts, states, countries, and continents.

*   File Size: 13.10 MB

*   Entries: 347.1K

*   Fields: 13

**db-ip-location.csv.gz**

IP ranges mapped to locations with place IDs (for multilingual responses), ZIP codes, coordinates, time zone, and connection type.

*   File Size: 332.05 MB

*   Entries: 30.5M

*   Fields: 12

**README.md**

Documentation for dataset contents, schema, usage, and support.

*   File Size: 9.11 KB

**checksum.txt**

SHA-256 checksums for verifying file integrity.

*   File Size: 330 Bytes

* * *

## Schema

This section describes the schema of each file included in the Standard IP to Location Database archive. For every file, you'll find its purpose, field definitions, and examples to help with integration.

* * *

### 1. db-ip-location.csv.gz

This file provides geolocation data for IPv4 and IPv6 ranges, mapped down to the city level. Each record links an IP block to country, state, district, and city (through place IDs for multilingual response), geographic coordinates, time zone, GeoNames ID, and connection type.

| Field | Type | Description | Can be empty? | Example |
| --- | --- | --- | --- | --- |
| start_ip | string | The starting IP address of the range in IPv4 or IPv6 format. | No  | 192.168.0.1 |
| end_ip | string | The ending IP address of the range in IPv4 or IPv6 format. | No  | 192.168.0.255 |
| country_id | number | The unique identifier for the country associated with the IP range. | No  | 192 |
| state_place_id | number | The unique identifier for the state or province associated with the IP range. | Yes | 5332921 |
| state_code | string | The two-letter code representing the state or province with country-code, following ISO 3166-2 standards. | Yes | CA  |
| district_place_id | number | The unique identifier for the district associated with the IP range. | Yes | 5332923 |
| city_place_id | number | The unique identifier for the city associated with the IP range. | Yes | 5375480 |
| zip_code | string | The postal code for the location associated with the IP range. | Yes | 94043 |
| latitude | number | The latitude coordinate of the location associated with the IP range. | No  | 37.3861 |
| longitude | number | The longitude coordinate of the location associated with the IP range. | No  | -122.0838 |
| geo_name_id | number | The GeoNames ID for the location associated with the IP range. | Yes | 5375480 |
| time_zone_name | string | The time zone name for the location associated with the IP range. | No  | America/Los_Angeles |

> [!TIP]
> The country_id field links to `db-country.id` , which provides standardized country metadata such as different names, codes, currency, and language information. Similarly, the *_place_id fields (e.g., state_place_id, district_place_id, city_place_id) link to `db-place.id` . These joins let you query multilingual names for countries, states, districts, and cities, ensuring consistency across different languages and regions.

#### I. Example Records

**Example**

```json
start_ip,end_ip,country_id,state_place_id,state_code,district_place_id,city_place_id,zip_code,latitude,longitude,geo_name_id,time_zone_name
94.174.67.56,94.174.67.56,58,360,GB-ENG,1616,4454,GL1,51.86425,-2.23816,6952659,Europe/London
160.3.225.159,160.3.225.159,172,374,US-AZ,5667,64068,85603,31.44815,-109.92841,5284905,America/Phoenix
2a04:4540:6d01:1a00:3d61:a071:2af6:20c6,2a04:4540:6d01:1a00:3d61:a071:2af6:20c6,41,561,DE-SH,240077,240077,22,53.69931,10.00088,2869711,Europe/Berlin
63.231.160.91,63.231.160.91,172,377,US-MN,5743,31844,55311,45.07246,-93.45579,5036493,America/Chicago
77.203.149.0,77.203.149.255,56,353,FR-NOR,2759,11021,14400,49.27644,-0.70155,8289739,Europe/Paris
14.96.218.2,14.96.218.2,76,276,IN-TN,3703,3703,600003,13.0843,80.27046,10246076,Asia/Kolkata
160.250.49.62,160.250.49.62,14,754,BD-13,754,754,1361,23.716775,90.468558,1192509,Asia/Dhaka
98.115.10.11,98.115.10.11,172,381,US-PA,4360,4360,19107,39.95222,-75.16218,6502983,America/New_York
85.103.193.103,85.103.193.103,166,70120,TR-63,16894,70120,63040,37.1674,38.79552,10113124,Europe/Istanbul
73.234.171.69,73.234.171.69,172,384,US-MA,4480,34817,02649,41.61775,-70.51459,4943230,America/New_York
```

* * *

### 2. db-place.csv.gz

This file contains multilingual names for countries, continents, states, districts, and cities worldwide. It serves as the reference dictionary for the IP Location Database, allowing you to resolve place IDs into multilingual responses across different regions and languages.

| Field | Type | Description | Can be empty? | Example |
| --- | --- | --- | --- | --- |
| id  | number | The unique identifier for the place. | No  | 5375480 |
| place_english | string | The name of the place in English. | No  | Mountain View |
| place_german | string | The name of the place in German. | Yes | Mountain View |
| place_russian | string | The name of the place in Russian. | Yes | Маунтин-Вью |
| place_korean | string | The name of the place in Korean. | Yes | 마운틴 뷰 |
| place_portuguese | string | The name of the place in Portuguese. | Yes | Mountain View |
| place_japanese | string | The name of the place in Japanese. | Yes | マウンテンビュー |
| place_persian | string | The name of the place in Farsi. | Yes | ماونتین ویو |
| place_french | string | The name of the place in French. | Yes | Mountain View |
| place_chinese | string | The name of the place in Chinese. | Yes | 山景城 |
| place_spanish | string | The name of the place in Spanish. | Yes | Mountain View |
| place_czech | string | The name of the place in Czech. | Yes | Mountain View |
| place_italian | string | The name of the place in Italian. | Yes | Mountain View |

> [!TIP]
> The id field in `db-place.csv.gz` is used as a reference key to resolve place names. It joins with the placeid fields in db-ip-location.csv.gz (such as state_place_id, district_place_id, and city_place_id) and also with placeid fields in `db-country.csv.gz` (such as country_name_place_id and country_capital_place_id). These joins ensure that every IP range or country record can be enriched with multilingual place names from the reference table, making it possible to deliver consistent, localized responses across different regions and languages.

#### I. Example Records

**Example**

```json
id,place_english,place_german,place_russian,place_korean,place_portuguese,place_japanese,place_persian,place_french,place_chinese,place_spanish,place_czech,place_italian
381,Pennsylvania,Pennsylvania,Пенсильвания,Pensilvânia,Pensilvânia,ペンシルベニア州,پنسیلوانیا,Pennsylvanie,宾夕法尼亚州,Pensilvania,Pensylvánie,Pennsylvania
4480,Barnstable County,Barnstable,Барнстейбл,,Condado de Barnstable,バーンスタブル郡,شهرستان برنستبل، ماساچوست,Comté de Barnstable,巴恩斯特布爾縣,Барнстейбл,Barnstable,Contea di Barnstable
5,Asia,Asien,Азия,Ásia,Ásia,アジア, آسیا,Asie,亚洲,Asia,Asie,Asia
6,North America,Nordamerika,Северная Америка,América do Norte,América Do Norte,北アメリカ, امریکای شمالی,Amérique du Nord,北美洲,Norteamérica,Severní Amerika,America del Nord
7,Europe,Europa,Европа,Europa,Europa,ヨーロッパ, اروپا,Europe,欧洲,Europa,Evropa,Europa
353,Normandy,Normandie,Нормандия,노르망디,,ノルマンディー,,Normandie,诺曼底,Normandía,Normandie,Normandia
3723,New Delhi,Neu-Delhi,Нью-Дели,Nova Deli,,ニューデリー,,New Delhi,新德里,Nueva Delhi,New Delhi,Nuova Delhi
239886,People’s Republic of Bangladesh,,,,,,,,,,,
15,India,Indien,Индия,Índia,Índia,インド,هند,Inde,印度,India,Indie,India
240014,Republic of Turkey,,,,,,,,,,,
240018,United States of America,,,,,,,,,,,
240019,"Washington, D.C.",,,,,,,,,,,
64068,Bisbee,Bisbee,Бисби,비즈비,,ビスビー,بیسبی، آریزونا,Bisbee,比斯比,Bisbee,Bisbee,Bisbee
28,United States,USA,США,Estados Unidos,Estados Unidos,アメリカ合衆国,ایالات متحدهٔ امریکا,États-Unis,美国,Estados Unidos,Spojené státy americké,Stati Uniti d'America
31,France,Frankreich,Франция,França,França,フランス共和国,فرانسه,France,法国,Francia,Francie,Francia
33,Germany,Deutschland,Германия,Alemanha,Alemanha,ドイツ連邦共和国,آلمان,Allemagne,德国,Alemania,Německo,Germania
239906,Federal Republic of Germany,,,,,,,,,,,
36,United Kingdom,Vereinigtes Königreich,Великобритания,Reino Unido,Reino Unido,イギリス,بریتانیا,Royaume-Uni,英国,Reino Unido,Spojené království Velké Británie a Severního Irska,Regno Unito
2759,Calvados,Calvados,Кальвадос,,,カルヴァドス,,Calvados,卡尔瓦多斯,Calvados,Calvados,Calvados
360,England,England,Англия,Inglaterra,Inglaterra,イングランド,انگلستان,Angleterre,英格兰,Inglaterra,Anglie,Inghilterra
70120,Sanliurfa,Şanlıurfa,Эдесса,,,サンルウルファ,,Şanlıurfa,桑利乌法,Edesa,Sanliurfa,Sanliurfa
41,Turkey,Türkei,Турция,Turquia,Turquia,トルコ共和国,ترکیه,Turquie,土耳其,Turquía,Turecko,Turchia
16894,Haliliye,Haliliye,Халилия,,,ハリリエ,,Haliliye,哈利耶,Haliliye,Haliliye,Haliliye
3630,Paris,Paris,Париж,,,パリだ,,Paris,巴黎,París,Paříž,Parigi
239920,Republic of France,,,,,,,,,,,
239922,United Kingdom of Great Britain and Northern Ireland,,,,,,,,,,,
562,Berlin,Berlin,Берлин,베를린,Berlim,ベルリン,برلین,Berlin,柏林,Berlín,Berlín,Berlino
384,Massachusetts,Massachusetts,Массачусетс,매사추세츠 주,,マサチューセッツ州,ماساچوست,Massachusetts,麻薩諸塞州,Massachusetts,Massachusetts,Massachusetts
5667,Cochise County,Cochise County,Кочис,,Condado de Cochise,コチセ郡,شهرستان کوچیز، آریزونا,Comté de Cochise,科奇斯縣,Кочис,Cochise County (Texas),Contea di Cochise
276,Tamil Nadu,Tamil Nadu,Тамилнад,타밀나두 주,,タミル・ナードゥ州,تامیل نادو,Tamil Nadu,泰米尔纳德邦,Tamilnádu,Tamilnádu,Tamil Nadu
5743,Hennepin County,Hennepin,Хеннепин,,Condado de Hennepin,ヘネピン郡,شهرستان هنپین، مینه‌سوتا,Comté de Hennepin,亨内平县,Хеннепин,Hennepin,Contea di Hennepin
239935,Republic of India,,,,,,,,,,,
4454,Gloucester,Gloucester,Глостер,,Condado de Gloucester,グロスター郡,شهرستان گلاستر، نیوجرسی,Comté de Gloucester,格洛斯特縣,Gloucesteru,Gloucesteru,Gloucester
34817,Mashpee,Mashpee,Машпи,,,マシュピー,ماشپی، ماساچوست,Mashpee,马什比,Mashpee,Mashpee,Mashpee
240077,Segeberg,,,,,,,,,,,
11021,Bayeux,Bayeux,Байё,,,バイユーだ,,Bayeux,贝叶,Bayeux,Bayeux,Bayeux
561,Schleswig-Holstein,Schleswig-Holstein,Шлезвиг-Гольштейн,슐레스비히홀슈타인 주,,シュレースヴィヒ＝ホルシュタイン州,شلسویگ-هولشتاین,Schleswig-Holstein,石勒苏益格-荷尔斯泰因,Schleswig-Holstein,Šlesvicko-Holštýnsko,Schleswig-Holstein
754,Dhaka,Dhaka,Дакка,,,ダッカ,,Dhâkâ,达卡,Dháka,Dháka,Dacca
4360,Philadelphia,Philadelphia,Филадельфия,필라델피아 군,,フィラデルフィア郡,,Comté de Philadelphie,費城縣,Filadelfie,Filadelfie,Filadelfia
724,Ankara,Ankara,Анкара,Ancara,Ancara,アンカラ,,Ankara,安卡拉省,Provincia de Ankara,Ankara,Ankara
3703,Chennai,Chennai,Ченнаи,Chennai,,チェンナイ,,Chennai,金奈,Madrás,Chennai,Chennai
96,Bangladesh,Bangladesch,Бангладеш,Bangladexe,Bangladesh,バングラディッシュ人民共和国,بنگلادش,Bangladesh,孟加拉,Bangladesh,Bangladéš,Bangladesh
1616,Gloucestershire,Gloucestershire,Глостершир,글로스터셔 주,,グロスタシャー,گلاسترشر,Gloucestershire,格洛斯特郡,Gloucestershire,Gloucestershire,Gloucestershire
374,Arizona,Arizona,Аризона,Arizona,Arizona,アリゾナ州,آریزونا,Arizona,亞利桑那州,Arizona,Arizona,Arizona
31844,Maple Grove,Ahornhain,Мейпл-Гров,,,メープルグローブ,میپل گروو، مینه‌سوتا,Maple Grove,枫树林,Maple Grove,Maple Grove,Acero Grove
1650,London,London,Лондон,London,,ロンドン,,London,伦敦,London,Londýn,Londra
377,Minnesota,Minnesota,Миннесота,Minesota,Minesota,ミネソタ州,مینه‌سوتا,Minnesota,明尼苏达州,Minnesota,Minnesota,Minnesota
754,Dhaka,Dhaka,Дакка,,,ダッカ,,Dhâkâ,达卡,Dháka,Dháka,Dacca
```

* * *

### 3. db-country.csv.gz

This file contains standardized country metadata for the IP Location Database. It includes continent codes and names, ISO-2/ISO-3/IOC country codes, country and official names (as place IDs), capital (place ID), currency (code, name, symbol), international calling codes, top-level domains (TLDs), and supported language tags.

| Field | Type | Description | Can be empty? | Example |
| --- | --- | --- | --- | --- |
| id  | number | The unique identifier for the country. | No  | 192 |
| continent_code | string | The continent code associated with the country. | No  | NA  |
| continent_name_place_id | number | The unique identifier for the continent place. | No  | 6255148 |
| country_code2 | string | The ISO 3166-1 alpha-2 code of the country. | No  | US  |
| country_code3 | string | The ISO 3166-1 alpha-3 code of the country. | No  | USA |
| country_code_ioc | string | The IOC country code. | No  | USA |
| country_name_place_id | number | The unique identifier for the country place. | No  | 6252001 |
| country_name_official_place_id | number | The unique identifier for the official country place. | No  | 6252001 |
| country_capital_place_id | number | The unique identifier for the capital place. | No  | 5375480 |
| currency_code | string | The ISO 4217 currency code of the country. | No  | USD |
| currency_name | string | The name of the currency used in the country. | No  | United States Dollar |
| currency_symbol | string | The symbol of the currency used in the country. | No  | $   |
| calling_code | string | The international calling code of the country. | No  | +1  |
| tld | string | The top-level domain (TLD) of the country. | No  | .us |
| languages | string | The official languages spoken in the country, represented as a comma-separated list of ISO 639-1 codes. | No  | en,es |

> [!TIP]
> The id field in `db-country.csv.gz` serves as the reference key for country metadata. It is used by the country_id field in db-ip-location.csv.gz to link each IP range to standardized country details such as ISO codes, continent, capital, currency, calling codes, and languages. In addition, *_place_id fields within `db-country.csv.gz` (e.g., country_name_place_id, country_capital_place_id) join to `db-place.csv.gz` to resolve multilingual names for countries and capitals. Together, these joins ensure that country-level information can be consistently linked, enriched, and localized.

#### I. Example Records

**Example**

```json
id,continent_code,continent_name_place_id,country_code2,country_code3,country_code_ioc,country_name_place_id,country_name_official_place_id,country_capital_place_id,currency_code,currency_name,currency_symbol,calling_code,tld,languages
58,EU,7,GB,GBR,GBR,36,239922,1650,GBP,Pound Sterling,£,+44,.uk,"en-GB,cy-GB,gd"
14,AS,5,BD,BGD,BAN,96,239886,754,BDT,Bangladeshi Taka,৳,+880,.bd,"bn-BD,en"
56,EU,7,FR,FRA,FRA,31,239920,3630,EUR,Euro,€,+33,.fr,"fr-FR,frp,br,co,ca,eu,oc"
41,EU,7,DE,DEU,GER,33,239906,562,EUR,Euro,€,+49,.de,de
76,AS,5,IN,IND,IND,15,239935,3723,INR,Indian Rupee,₹,+91,.in,"en-IN,hi,bn,te,mr,ta,ur,gu,kn,ml,or,pa,as,bh,sat,ks,ne,sd,kok,doi,mni,sit,sa,fr,lus,inc"
172,NA,6,US,USA,USA,28,240018,240019,USD,US Dollar,$,+1,.us,"en-US,es-US,haw,fr"
166,AS,5,TR,TUR,TUR,41,240014,724,TRY,Turkish Lira,₺,+90,.tr,"tr-TR,ku,diq,az,av"
```

* * *

### 4. File Relationship Diagram

![Image](https://static.ipgeolocation.io/web-assets/images/database/er-diagrams/ip-location.svg)

* * *

## File Format & Encoding

All Standard IP to Location CSV datasets are provided in UTF-8 encoding, comma-separated, and compressed with Gzip (.csv.gz). Each file includes a header row listing the field names for clarity and consistency.

Field values are unquoted by default, with quotes applied only in the following cases:

*   Line breaks within text fields.
*   Commas inside a value (e.g., addresses).
*   Lists of values (e.g., languages).
*   Spaces that may be auto-quoted by export tools.

* * *

## MMDB Database Documentation

* * *

### 1. Overview

The MMDB version of our Standard IP to Location is delivered as a ZIP archive that includes a single MMDB file with all geolocation data (including multilingual place fields), a README file, and a checksum file. It's optimized for fast lookups in applications and services, making it ideal for real-time queries and direct integration into your systems.

* * *

### 2. Archive Content

After downloading and extracting the Standard IP to Location MMDB database archive, you'll find the following files (with their types noted):

**db-ip-location.mmdb**

*   File Size: 1.40 GB

*   Entries: 30.5M

**README.md**

Documentation for dataset contents, schema, usage, and support.

*   File Size: 12.11 KB

**checksum.txt**

SHA-256 checksums for verifying file integrity.

*   File Size: 162 Bytes

* * *

## Response Schema

This section describes the structure of the data returned from the Standard IP to Location MMDB file. Each field is detailed with its type, meaning, and example values to help you interpret responses and integrate them into your applications.

* * *

### 1. db-ip-geolocation.mmdb

This file provides city-level geolocation data for IPv4 and IPv6 ranges. Each response includes multilingual details for country, state, district, and city, along with geographic coordinates, time zone, GeoNames ID, connection type, and supporting metadata such as codes, currency, and language tags.

* * *

### 2. Field Reference

The following reference lists all fields available in the MMDB response. Each entry includes the field path, its description, data type, and example value to help you understand how to parse and integrate the data.

* * *

### 2. Example Records

**Example**

```json
{
  "location": {
    "city": {
      "name": {
        "cs": "Gloucesteru",
        "de": "Gloucester",
        "en": "Gloucester",
        "es": "Gloucesteru",
        "fa": "شهرستان گلاستر، نیوجرسی",
        "fr": "Comté de Gloucester",
        "it": "Gloucester",
        "ja": "グロスター郡",
        "ko": "",
        "pt": "Condado de Gloucester",
        "ru": "Глостер",
        "zh": "格洛斯特縣"
      }
    },
    "coordinates": {
      "latitude": "51.86425",
      "longitude": "-2.23816"
    },
    "country": {
      "capital": {
        "cs": "Londýn",
        "de": "London",
        "en": "London",
        "es": "London",
        "fa": "",
        "fr": "London",
        "it": "Londra",
        "ja": "ロンドン",
        "ko": "London",
        "pt": "",
        "ru": "Лондон",
        "zh": "伦敦"
      },
      "code2": "GB",
      "code3": "GBR",
      "code_ioc": "GBR",
      "continent": {
        "code": "EU",
        "name": {
          "cs": "Evropa",
          "de": "Europa",
          "en": "Europe",
          "es": "Europa",
          "fa": " اروپا",
          "fr": "Europe",
          "it": "Europa",
          "ja": "ヨーロッパ",
          "ko": "Europa",
          "pt": "Europa",
          "ru": "Европа",
          "zh": "欧洲"
        }
      },
      "currency": {
        "code": "GBP",
        "name": {
          "en": "Pound Sterling"
        },
        "symbol": "£"
      },
      "metadata": {
        "calling_code": "+44",
        "languages": "en-GB,cy-GB,gd",
        "tld": ".uk"
      },
      "name": {
        "cs": "Spojené království Velké Británie a Severního Irska",
        "de": "Vereinigtes Königreich",
        "en": "United Kingdom",
        "es": "Reino Unido",
        "fa": "بریتانیا",
        "fr": "Royaume-Uni",
        "it": "Regno Unito",
        "ja": "イギリス",
        "ko": "Reino Unido",
        "pt": "Reino Unido",
        "ru": "Великобритания",
        "zh": "英国"
      },
      "name_official": {
        "cs": "",
        "de": "",
        "en": "United Kingdom of Great Britain and Northern Ireland",
        "es": "",
        "fa": "",
        "fr": "",
        "it": "",
        "ja": "",
        "ko": "",
        "pt": "",
        "ru": "",
        "zh": ""
      }
    },
    "district": {
      "name": {
        "cs": "Gloucestershire",
        "de": "Gloucestershire",
        "en": "Gloucestershire",
        "es": "Gloucestershire",
        "fa": "گلاسترشر",
        "fr": "Gloucestershire",
        "it": "Gloucestershire",
        "ja": "グロスタシャー",
        "ko": "글로스터셔 주",
        "pt": "",
        "ru": "Глостершир",
        "zh": "格洛斯特郡"
      }
    },
    "geoname_id": "6952659",
    "state": {
      "code": "GB-ENG",
      "name": {
        "cs": "Anglie",
        "de": "England",
        "en": "England",
        "es": "Inglaterra",
        "fa": "انگلستان",
        "fr": "Angleterre",
        "it": "Inghilterra",
        "ja": "イングランド",
        "ko": "Inglaterra",
        "pt": "Inglaterra",
        "ru": "Англия",
        "zh": "英格兰"
      }
    },
    "zipcode": "GL1"
  },
  "time_zone": "Europe/London"
}
```

* * *

## Database Integrity & Authenticity Verification

There are two methods of verifying the integrity and authenticity of our Database:

* * *

### 1. Using the Signature File (Recommended)

IPGeolocation.io signs every database release to ensure its authenticity and integrity. This allows customers to verify that a downloaded Standard IP to Location database file originates directly from IPGeolocation.io and has not been altered, corrupted, or tampered with during transfer or storage.

Each database update includes a corresponding signature file, generated using our private signing key. Customers can validate the database using the provided public verification key. To verify a database file, you need:

1.  Database file (the downloaded archive)
2.  Signature file (the matching signature for that archive)
3.  Public key (public-key.pem)

These files are available via official IPGeolocation.io download endpoints and are also shared in database update notifications.

> [!NOTE]
> The public key may be provided as PEM-encoded text. Save it to a file named public-key.pem
>
> Ensure OpenSSL is installed on your system. If not, install it using the following commands
>
> On Linux, if openssl is not installed
>
> ```shell
> sudo apt install openssl
> ```
>
> Verify OpenSSL installation:
>
> ```shell
> openssl version
> ```
>
> To verify the database file, run the following command, replacing the placeholders with your actual file paths:
>
> ```shell
> openssl dgst -sha256 -verify <path-to-public-key.pem> -signature <path-to-signature-file.sig> <path-to-database-file.zip>
> ```
>
> Example output:
>
> ```shell
> Verified OK
> ```
>
> if verification `FAILED` do not use the file, re-download the database and signature from official IPGeolocation endpoints. If the issue persists, please [contact our support team](https://ipgeolocation.io/contact.html).

* * *

### 2. Using the Checksum File (Legacy)

Each database archive includes a checksum.txt file containing the SHA-256 checksums for the files packaged in the archive. You can use this file to validate that the extracted contents are complete and unchanged.

> [!TIP]
> Always verify downloaded files with the provided checksum before importing.
>
> On Linux, if sha256sum is not installed, first run:
>
> ```shell
> sudo apt-get install coreutils
> ```
>
> Then check the archive files against the checksum file with:
>
> ```shell
> sha256sum -c checksum.txt
> ```
>
> Example output:
>
> ```shell
> db-country.csv.gz: OK
> db-place.csv.gz: OK
> db-ip-location.csv.gz: OK
> README.md: OK
> ```
>
> *your output may differ depending on the specific database archive you downloaded.
>
> If a file's checksum does not match, `FAILED` will be shown instead of `OK` . If verification fails, first confirm that the download completed correctly; if the issue persists, please [contact our support team](https://ipgeolocation.io/contact.html).

> [!IMPORTANT]
> Signature verification confirms both authenticity and integrity. Checksum verification confirms integrity only (it detects corruption/modification, but does not independently prove who produced the file).

* * *

## Data Format & Constraints

*   All fields defined in the schema are always present in the Standard IP to Location MMDB response.
*   Fields may contain empty strings (""), but never null, so null checks are not required.
*   Place names such as countries, states, districts, and cities are available in multiple translations.
*   All text values are encoded in UTF-8.
*   Field names and response structure remain stable across updates for backward compatibility.

* * *

## Database Updates & Delivery

When you subscribe to our Standard IP to Location database, we'll send you static download links. These links never change, so you can use them both for your initial download and for all future updates. You will receive:

1.  **Database Archive URL :** downloads the latest release of your subscribed database (_CSV, MMDB or requested formats_).
2.  **Signature File URL :** downloads the matching signature file for the latest release (_used for authenticity verification_).
3.  **Public Key URL :** downloads the public verification key (_used with the signature file_).
4.  **Status Endpoint URL :** returns the database's most recent update timestamp.

Our databases are refreshed daily and weekly, ensuring you always have access to the most current data. Each time your subscribed dataset is updated, you'll also receive an email notification so you don't miss a release.

For automated workflows, you can check our status endpoint to see the last update timestamp. When the date changes, simply re-fetch the archive using your static download URL to pull the latest version into your system.
