News

IPv6 support across every endpoint

IPv6 is not an edge case anymore. A growing share of the traffic hitting any API today arrives from an IPv6 address, and treating it as an afterthought creates gaps exactly where accuracy matters. My Geocode now handles IPv6 the same way it handles IPv4, everywhere, not just on the /v1/ip endpoint.

Send an IPv6 address to /v1/ip and you get the same shape of response you would get for an IPv4 address: location fields, quota headers, and, with mg_extras=1 or the X-MG-Extras header, the same optional extras like threat and network detail. There is no separate IPv6 endpoint to learn and no separate documentation to read. It is the same lookup, the same headers, the same rules.

The free allowance also treats both address families consistently, just with a grouping that matches how each one is actually assigned. IPv4 addresses share their free daily allowance across the whole /24 they belong to. IPv6 addresses share theirs across the /48, which is the block size an internet provider typically hands to a single customer or site. That means the allowance still maps to something like "one location" or "one office" rather than counting every address in a much larger IPv6 block as if it were a separate customer.

This consistency extends to the compatibility hosts as well. /compatibility/ip-api/, /compatibility/ipinfo/ and /compatibility/ipstack/ all resolve IPv6 addresses the same way they resolve IPv4 ones, using the exact request and response shape of the provider they stand in for. A script written years ago against one of those providers, pointed at our host instead, keeps working the moment an IPv6 address shows up in its input, with no code changes required on your side.

Beyond IP geolocation itself, IPv6 support matters for anything that relies on network identity behind the scenes. Rate limiting, quota tracking and abuse detection all key off the calling address, and all of them now recognize IPv6 ranges properly rather than falling back to rough guesses. The result is the same fairness and the same accuracy regardless of which protocol a given client happens to be using.

If your infrastructure is dual-stack, or moving toward IPv6-only in places, there is nothing extra to configure on our side. Point requests at the same base URL you already use, with either an IPv4 or IPv6 client address, and the response comes back the same way. Full details on both address families are documented at /docs/ipv4-lookup/ and /docs/ipv6-lookup/.