Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .precious.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ type = "lint"
cmd = [
"pnpm",
"run",
"--silent",
"lint:scripts"
]
invoke = "once"
Expand Down Expand Up @@ -42,6 +43,7 @@ include = ["*.md"]
cmd = [
"pnpm",
"run",
"--silent",
"lint:cspell",
]
ok-exit-codes = 0
Expand Down Expand Up @@ -72,6 +74,7 @@ type = "tidy"
cmd = [
"pnpm",
"run",
"--silent",
"format:rawhtml"
]
path-args = "absolute-file"
Expand All @@ -83,6 +86,7 @@ type = "lint"
cmd = [
"pnpm",
"run",
"--silent",
"lint:shortcode-parity"
]
invoke = "once"
Expand All @@ -94,6 +98,7 @@ type = "lint"
cmd = [
"pnpm",
"run",
"--silent",
"lint:prettierignore-rawhtml"
]
invoke = "once"
Expand All @@ -105,6 +110,7 @@ type = "lint"
cmd = [
"pnpm",
"run",
"--silent",
"lint:internal-links"
]
path-args = "absolute-file"
Expand Down
70 changes: 68 additions & 2 deletions content/geoip/docs/web-services/responses.md
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,9 @@ For full examples of response bodies, select one of the following:
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,
Expand All @@ -245,7 +248,12 @@ only.
"is_residential_proxy": true,
"is_tor_exit_node": true,
"network_last_seen": "2025-01-15",
"provider_name": "nordvpn"
"provider_name": "nordvpn",
"residential": {
"confidence": 82,
"network_last_seen": "2026-05-11",
"provider_name": "quickshift"
}
}
```

Expand Down Expand Up @@ -323,6 +331,59 @@ only.

[Learn more about VPN provider detection on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)
{{</ geoip-schema-row >}}

{{< geoip-schema-row key="residential" valueType="object" insights="true">}}
This object contains data about the residential proxy network associated
with the IP address.

See the [Anonymizer > Residential](#schema--response--anonymizer--residential)
section below for details.
{{</ geoip-schema-row >}}
{{</ schema-table >}}

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

### Anonymizer > Residential

{{< anchor-target schema--response--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 -->

{{< schema-table key="anonymizer--residential" >}}
{{< geoip-schema-row key="confidence" valueType="integer" valueTypeNote="min: 1, max: 99" insights="true">}}
A score ranging from 1 to 99 that represents our percent confidence that the network is an actively used residential proxy.

[Learn more about anonymizer confidence on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

When a sentence ends with a Markdown link, the period should be placed outside the link brackets and parentheses, not inside the link text.

Suggested change
[Learn more about anonymizer confidence on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)
[Learn more about anonymizer confidence on our Knowledge Base](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind).
References
  1. When a sentence ends with a Markdown link, the period should be placed outside the link brackets and parentheses, not inside the link text.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude, on behalf of Greg: Keeping the period inside the link — that placement is this file's existing convention (30+ occurrences throughout responses.md), so changing only the new lines would make them inconsistent with the surrounding document.

{{</ geoip-schema-row >}}

{{< geoip-schema-row key="network_last_seen" valueType="string" insights="true">}}
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).

[Learn more about anonymizer and proxy detection on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

When a sentence ends with a Markdown link, the period should be placed outside the link brackets and parentheses, not inside the link text.

Suggested change
[Learn more about anonymizer and proxy detection on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)
[Learn more about anonymizer and proxy detection on our Knowledge Base](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind).
References
  1. When a sentence ends with a Markdown link, the period should be placed outside the link brackets and parentheses, not inside the link text.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude, on behalf of Greg: Keeping the period inside the link — that placement is this file's existing convention (30+ occurrences throughout responses.md), so changing only the new lines would make them inconsistent with the surrounding document.

{{</ geoip-schema-row >}}

{{< geoip-schema-row key="provider_name" valueType="string" insights="true">}}
The name of the residential proxy provider (e.g., `oxylabs`, `smartproxy`) associated with the network.

Please note that MaxMind identifies a subset of residential proxy providers. A current list of identified providers is available on request.

[Learn more about residential proxy provider detection on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

When a sentence ends with a Markdown link, the period should be placed outside the link brackets and parentheses, not inside the link text.

Suggested change
[Learn more about residential proxy provider detection on our Knowledge Base.](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind)
[Learn more about residential proxy provider detection on our Knowledge Base](https://support.maxmind.com/knowledge-base/articles/anonymizer-and-proxy-data-maxmind).
References
  1. When a sentence ends with a Markdown link, the period should be placed outside the link brackets and parentheses, not inside the link text.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude, on behalf of Greg: Keeping the period inside the link — that placement is this file's existing convention (30+ occurrences throughout responses.md), so changing only the new lines would make them inconsistent with the surrounding document.

{{</ geoip-schema-row >}}
{{</ schema-table >}}

<!-- prettier-ignore-end -->
Expand Down Expand Up @@ -1405,7 +1466,12 @@ request.
"is_residential_proxy": true,
"is_tor_exit_node": true,
"network_last_seen": "2025-01-15",
"provider_name": "nordvpn"
"provider_name": "nordvpn",
"residential": {
"confidence": 82,
"network_last_seen": "2026-05-11",
"provider_name": "quickshift"
}
},
"traits": {
"ip_address": "1.2.3.4",
Expand Down
23 changes: 23 additions & 0 deletions content/geoip/release-notes/2026.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,29 @@ outputs: ['html', 'markdown']
[Sign up to be notified](https://comms.maxmind.com/geoip-rss-release-notes)
whenever a new GeoIP release note is posted. {{</ alert >}}

{{< release-note date="2026-07-17" title="New residential sub-object added to the anonymizer object" >}}

We have added a `residential` sub-object to the
[`anonymizer` object](/geoip/docs/web-services/responses/#anonymizer), providing
data about residential proxy networks:

| new data | description |
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| `anonymizer/residential/confidence` | A score ranging from 1 to 99 that represents our percent confidence that the network is an actively used residential proxy. |
| `anonymizer/residential/network_last_seen` | 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). |
| `anonymizer/residential/provider_name` | The name of the residential proxy provider associated with the network. |

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

This change will be reflected in the following products and services:

- GeoIP Insights web service
- minFraud Insights
- minFraud Factors

{{</ release-note >}}

{{< release-note date="2026-06-30" title="GeoIP Legacy web service now returns HTTP status codes for errors" >}}

The GeoIP Legacy web service now returns meaningful HTTP status codes for error
Expand Down
24 changes: 24 additions & 0 deletions content/minfraud/release-notes/2026.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,30 @@ outputs: ['html', 'markdown']
[Sign up to be notified](https://comms.maxmind.com/minfraud-rss-release-notes)
whenever a new minFraud release note is posted. {{</ alert >}}

{{< release-note date="2026-07-17" title="New residential sub-object added to the anonymizer object" >}}

We have added a `residential` sub-object to the
[`anonymizer` object](/geoip/docs/web-services/responses/#anonymizer) returned
in the `ip_address` object for minFraud Insights and Factors, providing data
about residential proxy networks:

| new data | description |
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| `anonymizer/residential/confidence` | A score ranging from 1 to 99 that represents our percent confidence that the network is an actively used residential proxy. |
| `anonymizer/residential/network_last_seen` | 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). |
| `anonymizer/residential/provider_name` | The name of the residential proxy provider associated with the network. |

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

This change will be reflected in the following products and services:

- minFraud Insights
- minFraud Factors
- GeoIP Insights web service

{{</ release-note >}}

{{< release-note date="2026-06-30" title="minFraud Legacy and Proxy Detection web services now return HTTP status codes for errors" >}}

The minFraud Legacy and Proxy Detection web services now return meaningful HTTP
Expand Down
5 changes: 3 additions & 2 deletions lychee.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
# CI runs against built HTML with --root-dir:
# hugo && lychee './public/**/*.html' --root-dir "$(pwd)/public"

# Include URL fragments in checks
include_fragments = true
# Include URL fragments in checks: "full" checks both anchor fragments
# (#section) and text fragments (#:~:text=example)
include_fragments = "full"

# Resolve directory URLs to index.html for fragment checking (Hugo pretty URLs)
index_files = ["index.html"]
Expand Down
116 changes: 67 additions & 49 deletions mise.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading