
## Headers

The `Content-Type` for a successful response varies based on the service as
outlined below:

| Service         | Content-Type                                                            |
| --------------- | ----------------------------------------------------------------------- |
| GeoIP Country   | `application/vnd.maxmind.com-country+json; charset=UTF-8; version=2.1`  |
| GeoIP City Plus | `application/vnd.maxmind.com-city+json; charset=UTF-8; version=2.1`     |
| GeoIP Insights  | `application/vnd.maxmind.com-insights+json; charset=UTF-8; version=2.1` |
| GeoLite Country | `application/vnd.maxmind.com-country+json; charset=UTF-8; version=2.1`  |
| GeoLite City    | `application/vnd.maxmind.com-city+json; charset=UTF-8; version=2.1`     |

Errors may be returned with the `Content-Type` set to
`application/vnd.maxmind.com-error+json; charset=UTF-8; version=2.1`. If this is
the case, then the body of the response contains a JSON document with two keys,
`code` and `error`. See the [Errors](#errors) section for more details.

The response will always include a `Content-Length` header as well.

## Errors

When the server returns an error (`4xx` or `5xx`), the response may include a
JSON document in the body. This document is a single object with the keys `code`
and `error`. The `code` field is a static error code for machine use. The value
of any given code will never change, though codes can be added or removed. The
`error` field is a human-readable description of the error and may change at any
time.

Not all errors include a JSON body. Some `4xx` errors, such as a `403` for a
plain HTTP request, and many `5xx` errors, which typically happen outside of our
web service request handling code, do not include one. You
should check the `Content-Type` header of an error response before attempting
to decode the body as JSON.

In addition to the errors documented below, client code should also be prepared
to handle any valid HTTP `4xx` or `5xx` status code.



<div class="table">
  <table>
    <thead>
      <tr>
        <th>Code</th>
        <th>HTTP Status</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><code>IP_ADDRESS_INVALID</code></td>
        <td>400 Bad Request</td>
        <td>You have not supplied a valid IPv4 or IPv6 address.</td>
      </tr>
      <tr>
        <td><code>IP_ADDRESS_REQUIRED</code></td>
        <td>400 Bad Request</td>
        <td>You have not supplied an IP address, which is a required field.</td>
      </tr>
      <tr>
        <td><code>IP_ADDRESS_RESERVED</code></td>
        <td>400 Bad Request</td>
        <td>
          You have supplied an IP address which belongs to a reserved or private
          range.
        </td>
      </tr>
      <tr>
        <td><code>SERVICE_INVALID</code></td>
        <td>400 Bad Request</td>
        <td>
          The requested service is not available on this host. Only Country and
          City are available on <code>geolite.info</code>.
        </td>
      </tr>
      <tr>
        <td><code>AUTHORIZATION_INVALID</code></td>
        <td>401 Unauthorized</td>
        <td>
          You have supplied an invalid
          <a href="https://www.maxmind.com/en/accounts/current/license-key"
            >MaxMind account ID and/or license key</a
          >
          in the
          <a href="/geoip/docs/web-services/requests#authorization-and-security"
            >Authorization</a
          >
          header.
        </td>
      </tr>
      <tr>
        <td><code>LICENSE_KEY_REQUIRED</code></td>
        <td>401 Unauthorized</td>
        <td>
          You have not supplied a
          <a href="https://www.maxmind.com/en/accounts/current/license-key"
            >MaxMind license key</a
          >
          in the
          <a href="/geoip/docs/web-services/requests#authorization-and-security"
            >Authorization</a
          >
          header.
        </td>
      </tr>
      <tr>
        <td><code>ACCOUNT_ID_REQUIRED</code></td>
        <td>401 Unauthorized</td>
        <td>
          You have not supplied a
          <a
            href="https://support.maxmind.com/knowledge-base/articles/find-your-maxmind-account-id"
            >MaxMind account ID</a
          >
          in the
          <a href="/geoip/docs/web-services/requests#authorization-and-security"
            >Authorization</a
          >
          header.
        </td>
      </tr>
      <tr>
        <td><code>INSUFFICIENT_FUNDS</code></td>
        <td>402 Payment Required</td>
        <td>
          The license key you have provided does not have sufficient funds to
          use this service. Please
          <a href="https://www.maxmind.com/en/geoip-api-web-services"
            >purchase more service credits</a
          >.
        </td>
      </tr>
      <tr>
        <td><code>PERMISSION_REQUIRED</code></td>
        <td>403 Forbidden</td>
        <td>
          You do not have permission to use the service. Please
          <a href="https://support.maxmind.com/knowledge-base"
            >contact our support team</a
          >
          for more information.
        </td>
      </tr>
      <tr>
        <td><code>IP_ADDRESS_NOT_FOUND</code></td>
        <td>404 Not Found</td>
        <td>The supplied IP address is not in the database.</td>
      </tr>
      <tr>
        <td>(none)</td>
        <td>429 Too Many Requests</td>
        <td>
          Your request has been denied due to rate-limiting imposed by MaxMind.
          This is likely due to excessive previous requests resulting in error
          responses.
        </td>
      </tr>
      <tr>
        <td><code>SERVER_ERROR</code></td>
        <td>500 Internal Server Error</td>
        <td>There was an error when processing this request.</td>
      </tr>
      <tr>
        <td>(none)</td>
        <td>503 Service Unavailable</td>
        <td>
          There is a problem with the web service server. You can try this
          request again later.
        </td>
      </tr>
    </tbody>
  </table>
</div>


For GeoLite Country and GeoLite City, `INSUFFICIENT_FUNDS` (HTTP 402) means
that the account has reached its daily query limit.

### Rate-limiting

If customer requests result in excessive errors, MaxMind may impose rate limits
for a period of time.

## Response

All services return data as a JSON document. The document that is returned
always consists of an object (aka map or hash). Each key in the object in turn
maps to an object or an array of objects.

```json
{
  "anonymizer":           { ... },
  "city":                 { ... },
  "continent":            { ... },
  "country":              { ... },
  "location":             { ... },
  "postal":               { ... },
  "registered_country":   { ... },
  "represented_country":  { ... },
  "subdivisions":         [{ ... }, ... ],
  "traits":               { ... },
  "maxmind":              { ... }
}
```

The exact set of top-level keys varies based on the particular GeoIP web service
you are using. If a key maps to an undefined or empty value, it is not included
in the JSON object. This applies both to top-level keys and the objects they map
to.

Successful GeoIP and GeoLite responses always include the `traits` object with
`ip_address` and `network`. Other fields may be omitted as described above.

The data returned in the document will be in UTF-8 encoding.

The examples show available fields using illustrative values. They do not
describe a single real lookup.

For full examples of response bodies, select one of the following:

- [GeoIP Country Body Example](#geoip-country-body-example)
- [GeoIP City Plus Body Example](#geoip-city-plus-body-example)
- [GeoIP Insights Body Example](#geoip-insights-body-example)

### Anonymizer



`anonymizer` is a JSON object that indicates whether the IP address is part of
an anonymizing service or network. This data is available for GeoIP Insights
only.

The `residential` sub-object may be present even when none of the other
`anonymizer` fields are populated.

```json
{
  "confidence": 99,
  "is_anonymous": true,
  "is_anonymous_vpn": true,
  "is_hosting_provider": true,
  "is_public_proxy": true,
  "is_residential_proxy": true,
  "is_tor_exit_node": true,
  "network_last_seen": "2025-01-15",
  "provider_name": "nordvpn",
  "residential": {
    "confidence": 82,
    "network_last_seen": "2026-05-11",
    "provider_name": "quickshift"
  }
}
```

<!-- prettier-ignore-start -->

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
  <tr>
  <td>
    <code>confidence</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>A score ranging from 1 to 99 that represents our percent confidence that the network is currently part of an actively used VPN service.</p>
<p>Currently, we will only provide values of 30 and 99, but the number of values will increase as we improve our confidence ratings.</p>
<p>[Learn more about anonymizer confidence on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)</p>

    
      <p>
        <em>min: 1, max: 99</em>
      </p>
    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_anonymous</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p>This is <code>true</code> if the IP address belongs to any sort of anonymous network. Otherwise, the key is not included in the <code>anonymizer</code> object.</p>
<p><strong>Note:</strong> This field has been moved from the <code>traits</code> object to the <code>anonymizer</code> object. It is still returned in the <code>traits</code> object for backwards compatibility but is deprecated there.</p>
<p>[Learn more about anonymizer and proxy detection on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind#anon-detection)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_anonymous_vpn</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p>This is <code>true</code> if the IP address is registered to an anonymous VPN provider. Otherwise, the key is not included in the <code>anonymizer</code> object.</p>
<p>If a VPN provider does not register subnets under names associated with them, we will likely only flag their IP ranges using the <code>is_hosting_provider</code> flag.</p>
<p><strong>Note:</strong> This field has been moved from the <code>traits</code> object to the <code>anonymizer</code> object. It is still returned in the <code>traits</code> object for backwards compatibility but is deprecated there.</p>
<p>[Learn more about VPNs on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind#VPN)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_hosting_provider</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p>This is <code>true</code> if the IP address belongs to a hosting provider. Otherwise, the key is not included in the <code>anonymizer</code> object.</p>
<p><strong>Note:</strong> This field has been moved from the <code>traits</code> object to the <code>anonymizer</code> object. It is still returned in the <code>traits</code> object for backwards compatibility but is deprecated there.</p>
<p>[Learn more about hosting providers used for anonymizing on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind#hosting-provider)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_public_proxy</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p>This is <code>true</code> if the IP address belongs to a public proxy. Otherwise, the key is not included in the <code>anonymizer</code> object.</p>
<p><strong>Note:</strong> This field has been moved from the <code>traits</code> object to the <code>anonymizer</code> object. It is still returned in the <code>traits</code> object for backwards compatibility but is deprecated there.</p>
<p>[Learn more about public proxies on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind#public-proxies)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_residential_proxy</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p>This is <code>true</code> if the IP address is on a suspected anonymizing network and belongs to a residential ISP. Otherwise, the key is not included in the <code>anonymizer</code> object.</p>
<p><strong>Note:</strong> This field has been moved from the <code>traits</code> object to the <code>anonymizer</code> object. It is still returned in the <code>traits</code> object for backwards compatibility but is deprecated there.</p>
<p>[Learn more about residential proxies on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind#residential-proxies)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_tor_exit_node</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p>This is <code>true</code> if the IP address is a Tor exit node. Otherwise, the key is not included in the <code>anonymizer</code> object.</p>
<p><strong>Note:</strong> This field has been moved from the <code>traits</code> object to the <code>anonymizer</code> object. It is still returned in the <code>traits</code> object for backwards compatibility but is deprecated there.</p>
<p>[Learn more about Tor exit nodes on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind#tor-exit-nodes)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>network_last_seen</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The last day that the network was sighted in our analysis of anonymized networks. This is in the ISO 8601 date format (YYYY-MM-DD).</p>
<p>[Learn more about anonymizer and proxy detection on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>provider_name</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The name of the VPN provider (e.g., <code>nordvpn</code>, <code>surfshark</code>) associated with the network.</p>
<p>Please note that MaxMind identifies a subset of VPN providers. A current list of VPN providers identified in the Anonymous Plus database is available on request.</p>
<p>[Learn more about VPN provider detection on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>residential</code>
  </td>
  <td>
    object
  </td>
  <td>
    <p>This object contains data about the residential proxy network associated
with the IP address.</p>
<p>See the [Anonymizer &gt; Residential](#schema--response--anonymizer--residential)
section below for details.</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>

</tbody>
</table>

<!-- prettier-ignore-end -->

### Anonymizer > Residential



`residential` is a JSON object that contains data about the residential proxy
network associated with the IP address. This data is available for GeoIP
Insights only.

The `residential` object may be present even when none of the other
`anonymizer` fields are populated.

```json
{
  "confidence": 82,
  "network_last_seen": "2026-05-11",
  "provider_name": "quickshift"
}
```

<!-- prettier-ignore-start -->

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
  <tr>
  <td>
    <code>confidence</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>A score ranging from 1 to 99 that represents our percent confidence that the network is an actively used residential proxy.</p>
<p>[Learn more about anonymizer confidence on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)</p>

    
      <p>
        <em>min: 1, max: 99</em>
      </p>
    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>network_last_seen</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The last day that the network was sighted in our analysis of residential proxies. This is in the ISO 8601 date format (YYYY-MM-DD).</p>
<p>[Learn more about anonymizer and proxy detection on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>provider_name</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The name of the residential proxy provider (e.g., <code>oxylabs</code>, <code>smartproxy</code>) associated with the network.</p>
<p>Please note that MaxMind identifies a subset of residential proxy providers. A current list of identified providers is available on request.</p>
<p>[Learn more about residential proxy provider detection on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>

</tbody>
</table>

<!-- prettier-ignore-end -->

### City



`city` is a JSON object that contains details about the city associated with the
IP address.

```json
{
  "confidence": 25,
  "geoname_id": 54321,
  "names": {
    "de": "Los Angeles",
    "en": "Los Angeles",
    "es": "Los Ángeles",
    "fr": "Los Angeles",
    "ja": "ロサンゼルス市",
    "pt-BR": "Los Angeles",
    "ru": "Лос-Анджелес",
    "zh-CN": "洛杉矶"
  }
}
```

<!-- prettier-ignore-start -->

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
  <tr>
  <td>
    <code>confidence</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>A value from 0-100 representing our confidence that the city is correct.</p>
<p>[Learn more about confidence factors on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#confidence-factors)</p>

    
      <p>
        <em>min: 0, max: 100</em>
      </p>
    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>geoname_id</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>A unique identifier for the city as specified by [GeoNames](https://www.geonames.org/).</p>
<p>[Learn more about GeoNames IDs on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#geonames-ids)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>names</code>
  </td>
  <td>
    object
  </td>
  <td>
    <p>A map from locale codes, such as <code>en</code>, to the localized names for the feature.</p>
<p>[Learn more about localized geolocation names on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#names)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>

</tbody>
</table>

<!-- prettier-ignore-end -->

### Continent



`continent` is a JSON object that contains information about the continent
associated with the IP address.

```json
{
  "code": "NA",
  "geoname_id": 123456,
  "names": {
    "de": "Nordamerika",
    "en": "North America",
    "es": "América del Norte",
    "fr": "Amérique du Nord",
    "ja": "北アメリカ",
    "pt-BR": "América do Norte",
    "ru": "Северная Америка",
    "zh-CN": "北美洲"
  }
}
```

<!-- prettier-ignore-start -->

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
  <tr>
  <td>
    <code>code</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>A two-character code for the continent associated with the IP address. The possible codes are:</p>
<ul>
<li><code>AF</code> – Africa</li>
<li><code>AN</code> – Antarctica</li>
<li><code>AS</code> – Asia</li>
<li><code>EU</code> – Europe</li>
<li><code>NA</code> – North America</li>
<li><code>OC</code> – Oceania</li>
<li><code>SA</code> – South America</li>
</ul>
<p>[Learn more about continent codes on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#codes)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>geoname_id</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>A unique identifier for the continent as specified by [GeoNames](https://www.geonames.org/).</p>
<p>[Learn more about GeoNames IDs on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#geonames-ids)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>names</code>
  </td>
  <td>
    object
  </td>
  <td>
    <p>A map from locale codes, such as <code>en</code>, to the localized names for the feature.</p>
<p>[Learn more about localized geolocation names on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#names)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>

</tbody>
</table>

<!-- prettier-ignore-end -->

### Country



`country` is a JSON object that contains details about the country where MaxMind
believes the end user is located.

```json
{
  "confidence": 75,
  "geoname_id": 6252001,
  "iso_code": "US",
  "names": {
    "de": "USA",
    "en": "United States",
    "es": "Estados Unidos",
    "fr": "États-Unis",
    "ja": "アメリカ合衆国",
    "pt-BR": "Estados Unidos",
    "ru": "США",
    "zh-CN": "美国"
  }
}
```

<!-- prettier-ignore-start -->

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
  <tr>
  <td>
    <code>confidence</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>A value from 0-100 representing our confidence that the country is correct.</p>
<p>[Learn more about confidence factors on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#confidence-factors)</p>

    
      <p>
        <em>min: 0, max: 100</em>
      </p>
    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>geoname_id</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>A unique identifier for the country as specified by [GeoNames](https://www.geonames.org/).</p>
<p>[Learn more about GeoNames IDs on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#geonames-ids)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_in_european_union</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p>This is <code>true</code> if the country is a member state of the European Union. Otherwise, the key is not included in the <code>country</code> object.</p>
<p>[Learn more about the European Union flag on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#eu-flag)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>iso_code</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>A two-character [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code for the country associated with the IP address.</p>
<p>[Learn more about country codes on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#codes)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>names</code>
  </td>
  <td>
    object
  </td>
  <td>
    <p>A map from locale codes, such as <code>en</code>, to the localized names for the feature.</p>
<p>[Learn more about localized geolocation names on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#names)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>

</tbody>
</table>

<!-- prettier-ignore-end -->

### Location



`location` is a JSON object that contains specific details about the location
associated with the IP address.

```json
{
  "accuracy_radius": 20,
  "average_income": 128321,
  "latitude": 37.6293,
  "longitude": -122.1163,
  "metro_code": 807,
  "population_density": 1234,
  "time_zone": "America/Los_Angeles"
}
```

<!-- prettier-ignore-start -->

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
  <tr>
  <td>
    <code>accuracy_radius</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>The approximate accuracy radius, in kilometers, around the latitude and longitude for the geographical entity (country, subdivision, city or postal code) associated with the IP address. We have a 67% confidence that the location of the end-user falls within the area defined by the accuracy radius and the latitude and longitude coordinates.</p>
<p>[Learn about the geolocation area defined by latitude, longitude, and accuracy radius, on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#geolocation-area)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>average_income</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>The average annual income associated with the IP address in US dollars. This is only available for IP addresses in the US.</p>
<p>[Learn more about average income data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-user-context-data#income-pop-density)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>latitude</code>
  </td>
  <td>
    decimal
  </td>
  <td>
    <p>The approximate [WGS84](https://en.wikipedia.org/wiki/World_Geodetic_System) latitude of the postal code, city, subdivision or country associated with the IP address.</p>
<p><strong>The coordinates are not precise and should not be used to identify a particular street address
or household. To better represent a level of accuracy, please include the <code>accuracy_radius</code> when
displaying latitude and longitude and make it clear that the coordinates refer to a larger
geographical area instead of a precise location.</strong></p>
<p>[Learn about the geolocation area defined by latitude, longitude, and accuracy radius, on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#geolocation-area)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>longitude</code>
  </td>
  <td>
    decimal
  </td>
  <td>
    <p>The approximate [WGS84](https://en.wikipedia.org/wiki/World_Geodetic_System) longitude of the postal code, city, subdivision or country associated with the IP address.</p>
<p><strong>The coordinates are not precise and should not be used to identify a particular street address
or household. To better represent a level of accuracy, please include the <code>accuracy_radius</code> when
displaying latitude and longitude and make it clear that the coordinates refer to a larger
geographical area instead of a precise location.</strong></p>
<p>[Learn about the geolocation area defined by latitude, longitude, and accuracy radius, on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#geolocation-area)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>metro_code</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <strong>Deprecated</strong>. This is a no-longer-maintained code for targeting advertisements in Google.
    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>population_density</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>The estimated number of people per square kilometer. This is only available for IP addresses in the US.</p>
<p>[Learn more about population density data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-user-context-data#income-pop-density)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>time_zone</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The time zone associated with the location, as specified by the [IANA Time Zone Database](https://www.iana.org/time-zones), e.g., <code>America/New_York</code>.</p>
<p>[Learn more about time zone data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#time-zone)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>

</tbody>
</table>

<!-- prettier-ignore-end -->

### Postal



`postal` is a JSON object that contains details about the postal code associated
with the IP address.

```json
{
  "code": "90001",
  "confidence": 10
}
```

<!-- prettier-ignore-start -->

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
  <tr>
  <td>
    <code>code</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>A postal code close to the user’s location. For the following countries, we return partial postal codes with the number of characters indicated below:</p>
<ul>
<li>United States: 5</li>
<li>Canada: 3</li>
<li>United Kingdom: 2-4</li>
<li>Brazil: 5</li>
<li>Ireland: 3</li>
<li>Japan: 7 (accurate for the first 6 digits. The last digit defaults to 1)</li>
<li>Netherlands: 4</li>
<li>Portugal: 7 (accurate for the first 4 digits. The last 3 often default to <code>-001</code>)</li>
<li>Singapore: 2</li>
</ul>
<p>[Learn more about postal code data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#codes)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>confidence</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>A value from 0-100 representing our confidence that the postal code is correct.</p>
<p>[Learn more about confidence factors on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#confidence-factors)</p>

    
      <p>
        <em>min: 0, max: 100</em>
      </p>
    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>

</tbody>
</table>

<!-- prettier-ignore-end -->

### Registered Country



`registered_country` is a JSON object that contains details about the country in
which the ISP has registered the IP address.

[Learn about registered countries on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/country-level-and-city-level-geolocation-maxmind)

```json
{
  "geoname_id": 6252001,
  "is_in_european_union": true,
  "iso_code": "US",
  "names": {
    "de": "USA",
    "en": "United States",
    "es": "Estados Unidos",
    "fr": "États-Unis",
    "ja": "アメリカ合衆国",
    "pt-BR": "Estados Unidos",
    "ru": "США",
    "zh-CN": "美国"
  }
}
```

<!-- prettier-ignore-start -->

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
  <tr>
  <td>
    <code>geoname_id</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>A unique identifier for the country as specified by [GeoNames](https://www.geonames.org/).</p>
<p>[Learn more about GeoNames IDs on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#geonames-ids)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_in_european_union</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p>This is <code>true</code> if the country is a member state of the European Union. Otherwise, the key is not included in the <code>registered_country</code> object.</p>
<p>[Learn more about the European Union flag on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#eu-flag)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>iso_code</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>A two-character [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code for the country associated with the IP address.</p>
<p>[Learn more about country codes on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#codes)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>names</code>
  </td>
  <td>
    object
  </td>
  <td>
    <p>A map from locale codes, such as <code>en</code>, to the localized names for the feature.</p>
<p>[Learn more about localized geolocation names on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#names)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>

</tbody>
</table>

<!-- prettier-ignore-end -->

### Represented Country



`represented_country` is a JSON object that contains details about the country
which is represented by users of the IP address. For instance, the country
represented by an overseas military base.

[Learn about represented countries on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/country-level-and-city-level-geolocation-maxmind)

```json
{
  "geoname_id": 6252001,
  "is_in_european_union": true,
  "iso_code": "US",
  "names": {
    "de": "USA",
    "en": "United States",
    "es": "Estados Unidos",
    "fr": "États-Unis",
    "ja": "アメリカ合衆国",
    "pt-BR": "Estados Unidos",
    "ru": "США",
    "zh-CN": "美国"
  },
  "type": "military"
}
```

<!-- prettier-ignore-start -->

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
  <tr>
  <td>
    <code>geoname_id</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>A unique identifier for the country as specified by [GeoNames](https://www.geonames.org/).</p>
<p>[Learn more about GeoNames IDs on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#geonames-ids)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_in_european_union</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p>This is <code>true</code> if the country is a member state of the European Union. Otherwise, the key is not included in the <code>represented_country</code> object.</p>
<p>[Learn more about the European Union flag on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#eu-flag)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>iso_code</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>A two-character [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code for the country associated with the IP address.</p>
<p>[Learn more about country codes on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#codes)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>names</code>
  </td>
  <td>
    object
  </td>
  <td>
    <p>A map from locale codes, such as <code>en</code>, to the localized names for the feature.</p>
<p>[Learn more about localized geolocation names on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#names)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>type</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The type of represented country. Currently limited to <code>military</code>, but may include other types in the future.</p>
<p>[Learn more about represented countries on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/country-level-and-city-level-geolocation-maxmind)</p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>

</tbody>
</table>

<!-- prettier-ignore-end -->

### Subdivisions



`subdivisions` is an array of JSON objects. Each of these objects contains
details about a subdivision of the country in which the IP address resides.
Subdivisions are arranged from largest to smallest.

```json
[
  {
    "confidence": 50,
    "geoname_id": 5332921,
    "iso_code": "CA",
    "names": {
      "de": "Kalifornien",
      "en": "California",
      "es": "California",
      "fr": "Californie",
      "ja": "カリフォルニア",
      "ru": "Калифорния",
      "zh-CN": "加州"
    }
  }
]
```

<!-- prettier-ignore-start -->

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
  <tr>
  <td>
    <code>confidence</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>A value from 0-100 representing our confidence that the region is correct.</p>
<p>[Learn more about confidence factors on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#confidence-factors)</p>

    
      <p>
        <em>min: 0, max: 100</em>
      </p>
    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>geoname_id</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>A unique identifier for the region as specified by [GeoNames](https://www.geonames.org/).</p>
<p>[Learn more about GeoNames IDs on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#geonames-ids)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>iso_code</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>A string of up to three characters containing the region-portion of the [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) code for the region associated with the IP address.</p>
<p>[Learn more about ISO code data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#codes)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>names</code>
  </td>
  <td>
    object
  </td>
  <td>
    <p>A map from locale codes, such as <code>en</code>, to the localized names for the feature.</p>
<p>[Learn more about localized geolocation names on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-geolocation-data#names)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>

</tbody>
</table>

<!-- prettier-ignore-end -->

### Traits



`traits` is a JSON object that contains general traits associated with the IP
address.

```json
{
  "autonomous_system_number": 1239,
  "autonomous_system_organization": "Linkem IR WiMax Network",
  "connection_type": "Cable/DSL",
  "domain": "example.com",
  "ip_address": "1.2.3.4",
  "ip_risk_snapshot": 45.5,
  "is_anonymous": true,
  "is_anonymous_vpn": true,
  "is_anycast": true,
  "is_hosting_provider": true,
  "is_public_proxy": true,
  "is_residential_proxy": true,
  "is_tor_exit_node": true,
  "isp": "Linkem spa",
  "mobile_country_code": "310",
  "mobile_network_code": "004",
  "organization": "Linkem IR WiMax Network",
  "network": "1.2.3.0/24",
  "static_ip_score": 1.5,
  "user_count": 1,
  "user_type": "traveler"
}
```

<!-- prettier-ignore-start -->

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
  <tr>
  <td>
    <code>autonomous_system_number</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>The [autonomous system number](https://en.wikipedia.org/wiki/Autonomous_system_(Internet)) associated with the IP address.</p>
<p>[Learn more about autonomous system data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-network-data#autonomous-system-data)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>autonomous_system_organization</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The organization associated with the registered [autonomous system number](https://en.wikipedia.org/wiki/Autonomous_system_(Internet)) for the IP address.</p>
<p>[Learn more about autonomous system data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-network-data#autonomous-system-data)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>connection_type</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>One of the following values: <code>Cable/DSL</code>, <code>Cellular</code>, <code>Corporate</code>, or <code>Satellite</code>. Additional values may be added in the future.</p>
<p><strong>This field is not present in the GeoLite City web service.</strong></p>
<p>[Learn more about connection type data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-network-data#connection-type-data)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>domain</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The second-level domain associated with the IP address. This will be something like “example.com” or “example.co.uk”, not “foo.example.com”.</p>
<p><strong>This field is not present in the GeoLite City web service.</strong></p>
<p>[Learn more about domain name data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-network-data#domain-name-data)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>ip_address</code>
  </td>
  <td>
    string
  </td>
  <td>
    The requested IP address.
    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>ip_risk_snapshot</code>
  </td>
  <td>
    decimal
  </td>
  <td>
    <p>This field contains the risk associated with the IP address. The value ranges from 0.01 to 99. A higher score indicates a higher risk.</p>
<p>Please note that the IP risk score provided in GeoIP products and services is more static than the IP risk score provided in minFraud and is not responsive to traffic on your network. If you need real-time IP risk scoring based on behavioral signals on your own network, please use minFraud.</p>
<p>We do not provide an IP risk snapshot for low-risk networks. If this field is not populated, we either do not have signals for the network or the signals we have show that the network is low-risk. If you would like to get signals for low-risk networks, please use the minFraud web services.</p>

    
      <p>
        <em>min: 0.01, max: 99</em>
      </p>
    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_anonymous</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p><strong>Deprecated.</strong> This field has been moved to the [<code>anonymizer</code>](#anonymizer) object. It is still returned here for backwards compatibility.</p>
<p>This is <code>true</code> if the IP address belongs to any sort of anonymous network. Otherwise, the key is not included in the <code>traits</code> object.</p>
<p>[Learn more about anonymizer and proxy detection on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind#anon-detection)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_anonymous_vpn</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p><strong>Deprecated.</strong> This field has been moved to the [<code>anonymizer</code>](#anonymizer) object. It is still returned here for backwards compatibility.</p>
<p>This is <code>true</code> if the IP address is registered to an anonymous VPN provider. Otherwise, the key is not included in the <code>traits</code> object.</p>
<p>If a VPN provider does not register subnets under names associated with them, we will likely only flag their IP ranges using the <code>is_hosting_provider</code> flag.</p>
<p>[Learn more about VPNs on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind#VPN)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_anycast</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    This is <code>true</code> if the IP address belongs to an [anycast network](https://en.wikipedia.org/wiki/Anycast).
    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_hosting_provider</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p><strong>Deprecated.</strong> This field has been moved to the [<code>anonymizer</code>](#anonymizer) object. It is still returned here for backwards compatibility.</p>
<p>This is <code>true</code> if the IP address belongs to a hosting provider. Otherwise, the key is not included in the <code>traits</code> object.</p>
<p>[Learn more about hosting providers used for anonymizing on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind#hosting-provider)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_public_proxy</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p><strong>Deprecated.</strong> This field has been moved to the [<code>anonymizer</code>](#anonymizer) object. It is still returned here for backwards compatibility.</p>
<p>This is <code>true</code> if the IP address belongs to a public proxy. Otherwise, the key is not included in the <code>traits</code> object.</p>
<p>[Learn more about public proxies on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind#public-proxies)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_residential_proxy</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p><strong>Deprecated.</strong> This field has been moved to the [<code>anonymizer</code>](#anonymizer) object. It is still returned here for backwards compatibility.</p>
<p>This is <code>true</code> if the IP address is on a suspected anonymizing network and belongs to a residential ISP. Otherwise, the key is not included in the <code>traits</code> object.</p>
<p>[Learn more about residential proxies on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind#residential-proxies)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>is_tor_exit_node</code>
  </td>
  <td>
    boolean
  </td>
  <td>
    <p><strong>Deprecated.</strong> This field has been moved to the [<code>anonymizer</code>](#anonymizer) object. It is still returned here for backwards compatibility.</p>
<p>This is <code>true</code> if the IP address is a Tor exit node. Otherwise, the key is not included in the <code>traits</code> object.</p>
<p>[Learn more about Tor exit nodes on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind#tor-exit-nodes)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>isp</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The name of the ISP associated with the IP address.</p>
<p><strong>This field is not present in the GeoLite City web service.</strong></p>
<p>[Learn more about ISP data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-network-data#isp-org-data)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>mobile_country_code</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The [mobile country code (MCC)](https://en.wikipedia.org/wiki/Mobile_country_code) associated with the IP address and ISP.</p>
<p><strong>This field is not present in the GeoLite City web service.</strong></p>
<p>[Learn more about mobile country code data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-network-data#mobile-codes)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>mobile_network_code</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The [mobile network code (MNC)](https://en.wikipedia.org/wiki/Mobile_country_code) associated with the IP address and ISP.</p>
<p><strong>This field is not present in the GeoLite City web service.</strong></p>
<p>[Learn more about mobile network code data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-network-data#mobile-codes)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>network</code>
  </td>
  <td>
    string
  </td>
  <td>
    The network in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) associated with the record. In particular, this is the largest network where all of the fields besides <code>ip_address</code> have the same value.
    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>organization</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The name of the organization associated with the IP address.</p>
<p><strong>This field is not present in the GeoLite City web service.</strong></p>
<p>[Learn more about organization data on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-ip-network-data#isp-org-data)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>static_ip_score</code>
  </td>
  <td>
    decimal
  </td>
  <td>
    <p>An indicator of how static or dynamic an IP address is. The value ranges from 0 to 99.99 with higher values meaning a greater static association. For example, many IP addresses with a <code>user_type</code> of <code>cellular</code> have a score under one. Broadband IPs that don’t change very often typically have a score above thirty.</p>
<p>This indicator can be useful for deciding whether an IP address represents the same user over time.</p>
<p>[Learn more about the static IP score on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-user-context-data#static-ip-scoring)</p>

    
      <p>
        <em>min: 0, max: 99.99</em>
      </p>
    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>user_count</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>The estimated number of users sharing the IP/network during the past 24 hours. For IPv4, the count is for the individual IP. For IPv6, the count is for the /64 network.</p>
<p>[Learn more about the user count on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-user-context-data#user-counts)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>


  <tr>
  <td>
    <code>user_type</code>
  </td>
  <td>
    string
  </td>
  <td>
    <p>The user type associated with the IP address. This will be one of the following values:</p>
<ul>
<li><code>business</code></li>
<li><code>cafe</code></li>
<li><code>cellular</code></li>
<li><code>college</code></li>
<li><code>consumer_privacy_network</code></li>
<li><code>content_delivery_network</code></li>
<li><code>government</code></li>
<li><code>hosting</code></li>
<li><code>library</code></li>
<li><code>military</code></li>
<li><code>residential</code></li>
<li><code>router</code></li>
<li><code>school</code></li>
<li><code>search_engine_spider</code></li>
<li><code>traveler</code></li>
</ul>
<p>[Learn more about the user type on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/maxmind-user-context-data#user-types)</p>

    
    <div>
      <span>✗ GeoIP Country</span>
      <span>✗ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>

</tbody>
</table>

<!-- prettier-ignore-end -->

### MaxMind



`maxmind` is a JSON object that contains information related to your MaxMind
account.

```json
{
  "queries_remaining": 54321
}
```

<!-- prettier-ignore-start -->

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
  <tr>
  <td>
    <code>queries_remaining</code>
  </td>
  <td>
    integer
  </td>
  <td>
    <p>The approximate number of remaining queries available for the endpoint that is being called.</p>
<p><strong>This field is not present in the GeoLite City web service.</strong></p>

    
    <div>
      <span>✓ GeoIP Country</span>
      <span>✓ GeoIP City Plus</span>
      <span>✓ GeoIP Insights</span>
    </div>
  </td>
</tr>

</tbody>
</table>

<!-- prettier-ignore-end -->

## Miscellaneous Notes

### Languages

Many of the objects listed above include a `names` key. The value of that key is
in turn an object which maps locale codes to a name in the appropriate language
and script.

Currently, this web service may return the following locale codes:



<div class="table">
  <table>
    <thead>
      <tr>
        <th>Code</th>
        <th>Language</th>
        <th>Notes</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>de</td>
        <td>German</td>
        <td></td>
      </tr>
      <tr>
        <td>en</td>
        <td>English</td>
        <td>
          English names may still include accented characters if that is the
          accepted spelling in English. In other words, English does not mean
          ASCII.
        </td>
      </tr>
      <tr>
        <td>es</td>
        <td>Spanish</td>
        <td></td>
      </tr>
      <tr>
        <td>fr</td>
        <td>French</td>
        <td></td>
      </tr>
      <tr>
        <td>ja</td>
        <td>Japanese</td>
        <td></td>
      </tr>
      <tr>
        <td>pt-BR</td>
        <td>Brazilian Portuguese</td>
        <td></td>
      </tr>
      <tr>
        <td>ru</td>
        <td>Russian</td>
        <td></td>
      </tr>
      <tr>
        <td>zh-CN</td>
        <td>Chinese (Simplified)</td>
        <td></td>
      </tr>
    </tbody>
  </table>
</div>


If an object has any name data, then `en` will be one of the keys in the `names`
object. No other language is guaranteed. However, it is possible that we might
not have any name data at all for a given object.

### Returned Values as Database, Map, Dict, or Hash Keys

> **⚠️ Warning**
> 
 We strongly discourage you from using a value from any
`names` field as a key in a database or map/dict/hash data structure.


These names may change between releases. Instead, we recommend using one of the
following:

| Data object                                                | Recommended key            |
| ---------------------------------------------------------- | -------------------------- |
| `city`                                                     | `geoname_id`               |
| `continent`                                                | `code` or `geoname_id`     |
| `country`, `registered_country`, and `represented_country` | `iso_code` or `geoname_id` |
| `postal`                                                   | `code`                     |
| `subdivisions`                                             | `iso_code` or `geoname_id` |

## Example Response Bodies

Each service returns data as a JSON document. The document that is returned
always consists of an object (aka map or hash). Below are full examples of each
service's response body.

### GeoIP Country Body Example

The following is an example of a full response to a GeoIP Country web service
request.

A GeoLite Country request follows the same structure, but the data returned will
be less accurate. In addition, GeoLite Country requests will not return the
`maxmind` object.

```json
{
  "continent": {
    "code": "NA",
    "geoname_id": 123456,
    "names": {
      "de": "Nordamerika",
      "en": "North America",
      "es": "América del Norte",
      "fr": "Amérique du Nord",
      "ja": "北アメリカ",
      "pt-BR": "América do Norte",
      "ru": "Северная Америка",
      "zh-CN": "北美洲"
    }
  },
  "country": {
    "geoname_id": 6252001,
    "iso_code": "US",
    "names": {
      "de": "USA",
      "en": "United States",
      "es": "Estados Unidos",
      "fr": "États-Unis",
      "ja": "アメリカ合衆国",
      "pt-BR": "Estados Unidos",
      "ru": "США",
      "zh-CN": "美国"
    }
  },
  "maxmind": {
    "queries_remaining": 54321
  },
  "registered_country": {
    "geoname_id": 6252001,
    "is_in_european_union": true,
    "iso_code": "US",
    "names": {
      "de": "USA",
      "en": "United States",
      "es": "Estados Unidos",
      "fr": "États-Unis",
      "ja": "アメリカ合衆国",
      "pt-BR": "Estados Unidos",
      "ru": "США",
      "zh-CN": "美国"
    }
  },
  "represented_country": {
    "geoname_id": 6252001,
    "is_in_european_union": true,
    "iso_code": "US",
    "names": {
      "de": "USA",
      "en": "United States",
      "es": "Estados Unidos",
      "fr": "États-Unis",
      "ja": "アメリカ合衆国",
      "pt-BR": "Estados Unidos",
      "ru": "США",
      "zh-CN": "美国"
    },
    "type": "military"
  },
  "traits": {
    "ip_address": "1.2.3.4",
    "is_anycast": true,
    "network": "1.2.3.0/24"
  }
}
```

### GeoIP City Plus Body Example

The following is an example of a full response to a GeoIP City Plus web service
request.

A GeoLite City request follows the same structure, but the data returned will be
less accurate. In addition, GeoLite City requests will not return the
`connection_type`, `domain`, `isp`, `mobile_country_code`,
`mobile_network_code`, or `organization` values in the `traits` object, and it
will not return the `maxmind` object.

```json
{
  "continent": {
    "code": "NA",
    "geoname_id": 123456,
    "names": {
      "de": "Nordamerika",
      "en": "North America",
      "es": "América del Norte",
      "fr": "Amérique du Nord",
      "ja": "北アメリカ",
      "pt-BR": "América do Norte",
      "ru": "Северная Америка",
      "zh-CN": "北美洲"
    }
  },
  "country": {
    "geoname_id": 6252001,
    "iso_code": "US",
    "names": {
      "de": "USA",
      "en": "United States",
      "es": "Estados Unidos",
      "fr": "États-Unis",
      "ja": "アメリカ合衆国",
      "pt-BR": "Estados Unidos",
      "ru": "США",
      "zh-CN": "美国"
    }
  },
  "maxmind": {
    "queries_remaining": 54321
  },
  "registered_country": {
    "geoname_id": 6252001,
    "is_in_european_union": true,
    "iso_code": "US",
    "names": {
      "de": "USA",
      "en": "United States",
      "es": "Estados Unidos",
      "fr": "États-Unis",
      "ja": "アメリカ合衆国",
      "pt-BR": "Estados Unidos",
      "ru": "США",
      "zh-CN": "美国"
    }
  },
  "represented_country": {
    "geoname_id": 6252001,
    "is_in_european_union": true,
    "iso_code": "US",
    "names": {
      "de": "USA",
      "en": "United States",
      "es": "Estados Unidos",
      "fr": "États-Unis",
      "ja": "アメリカ合衆国",
      "pt-BR": "Estados Unidos",
      "ru": "США",
      "zh-CN": "美国"
    },
    "type": "military"
  },
  "traits": {
    "ip_address": "1.2.3.4",
    "is_anycast": true,
    "network": "1.2.3.0/24",
    "autonomous_system_number": 1239,
    "autonomous_system_organization": "Linkem IR WiMax Network",
    "connection_type": "Cable/DSL",
    "domain": "example.com",
    "isp": "Linkem spa",
    "mobile_country_code": "310",
    "mobile_network_code": "004",
    "organization": "Linkem IR WiMax Network"
  },
  "city": {
    "geoname_id": 54321,
    "names": {
      "de": "Los Angeles",
      "en": "Los Angeles",
      "es": "Los Ángeles",
      "fr": "Los Angeles",
      "ja": "ロサンゼルス市",
      "pt-BR": "Los Angeles",
      "ru": "Лос-Анджелес",
      "zh-CN": "洛杉矶"
    }
  },
  "location": {
    "accuracy_radius": 20,
    "latitude": 37.6293,
    "longitude": -122.1163,
    "metro_code": 807,
    "time_zone": "America/Los_Angeles"
  },
  "postal": {
    "code": "90001"
  },
  "subdivisions": [
    {
      "geoname_id": 5332921,
      "iso_code": "CA",
      "names": {
        "de": "Kalifornien",
        "en": "California",
        "es": "California",
        "fr": "Californie",
        "ja": "カリフォルニア",
        "ru": "Калифорния",
        "zh-CN": "加州"
      }
    }
  ]
}
```

### GeoIP Insights Body Example

The following is an example of a full response to a GeoIP Insights web service
request.

```json
{
  "continent": {
    "code": "NA",
    "geoname_id": 123456,
    "names": {
      "de": "Nordamerika",
      "en": "North America",
      "es": "América del Norte",
      "fr": "Amérique du Nord",
      "ja": "北アメリカ",
      "pt-BR": "América do Norte",
      "ru": "Северная Америка",
      "zh-CN": "北美洲"
    }
  },
  "country": {
    "geoname_id": 6252001,
    "iso_code": "US",
    "names": {
      "de": "USA",
      "en": "United States",
      "es": "Estados Unidos",
      "fr": "États-Unis",
      "ja": "アメリカ合衆国",
      "pt-BR": "Estados Unidos",
      "ru": "США",
      "zh-CN": "美国"
    },
    "confidence": 75
  },
  "maxmind": {
    "queries_remaining": 54321
  },
  "registered_country": {
    "geoname_id": 6252001,
    "is_in_european_union": true,
    "iso_code": "US",
    "names": {
      "de": "USA",
      "en": "United States",
      "es": "Estados Unidos",
      "fr": "États-Unis",
      "ja": "アメリカ合衆国",
      "pt-BR": "Estados Unidos",
      "ru": "США",
      "zh-CN": "美国"
    }
  },
  "represented_country": {
    "geoname_id": 6252001,
    "is_in_european_union": true,
    "iso_code": "US",
    "names": {
      "de": "USA",
      "en": "United States",
      "es": "Estados Unidos",
      "fr": "États-Unis",
      "ja": "アメリカ合衆国",
      "pt-BR": "Estados Unidos",
      "ru": "США",
      "zh-CN": "美国"
    },
    "type": "military"
  },
  "anonymizer": {
    "confidence": 99,
    "is_anonymous": true,
    "is_anonymous_vpn": true,
    "is_hosting_provider": true,
    "is_public_proxy": true,
    "is_residential_proxy": true,
    "is_tor_exit_node": true,
    "network_last_seen": "2025-01-15",
    "provider_name": "nordvpn",
    "residential": {
      "confidence": 82,
      "network_last_seen": "2026-05-11",
      "provider_name": "quickshift"
    }
  },
  "traits": {
    "ip_address": "1.2.3.4",
    "ip_risk_snapshot": 45.5,
    "is_anycast": true,
    "network": "1.2.3.0/24",
    "autonomous_system_number": 1239,
    "autonomous_system_organization": "Linkem IR WiMax Network",
    "connection_type": "Cable/DSL",
    "domain": "example.com",
    "isp": "Linkem spa",
    "mobile_country_code": "310",
    "mobile_network_code": "004",
    "organization": "Linkem IR WiMax Network",
    "is_anonymous": true,
    "is_anonymous_vpn": true,
    "is_hosting_provider": true,
    "is_public_proxy": true,
    "is_residential_proxy": true,
    "is_tor_exit_node": true,
    "static_ip_score": 1.5,
    "user_count": 1,
    "user_type": "traveler"
  },
  "city": {
    "confidence": 25,
    "geoname_id": 54321,
    "names": {
      "de": "Los Angeles",
      "en": "Los Angeles",
      "es": "Los Ángeles",
      "fr": "Los Angeles",
      "ja": "ロサンゼルス市",
      "pt-BR": "Los Angeles",
      "ru": "Лос-Анджелес",
      "zh-CN": "洛杉矶"
    }
  },
  "location": {
    "accuracy_radius": 20,
    "latitude": 37.6293,
    "longitude": -122.1163,
    "metro_code": 807,
    "time_zone": "America/Los_Angeles",
    "average_income": 128321,
    "population_density": 1234
  },
  "postal": {
    "code": "90001",
    "confidence": 10
  },
  "subdivisions": [
    {
      "geoname_id": 5332921,
      "iso_code": "CA",
      "names": {
        "de": "Kalifornien",
        "en": "California",
        "es": "California",
        "fr": "Californie",
        "ja": "カリフォルニア",
        "ru": "Калифорния",
        "zh-CN": "加州"
      },
      "confidence": 50
    }
  ]
}
```
