GeoIP and GeoLite API Requests
On this page
Authorization and Security
The HTTP Authorization header is required for authorization. The username is
your
MaxMind account ID.
The password is your
MaxMind license key.
We use
basic HTTP authentication.
The APIs which require authentication are only available via HTTPS. The
credentials are never transmitted unencrypted. If you attempt to access this
service via HTTP, you will receive a 403 Forbidden HTTP response.
We require TLS 1.2 or greater for all requests to our servers to keep your data secure.
Service Endpoints
The endpoint for each service is as specified below. Each endpoint expects an IP
address to be defined as a path parameter ({ip_address}).
The IP address can be either an IPv4 or an IPv6 address. IPv4 addresses should
be passed in the standard dotted quad form, for example 1.2.3.4. IPv6
addresses should be passed as strings as well. We recommend using the canonical
form as described in RFC 5952, for
example 2001:db8::1:0:0:1, but we will handle any valid IPv6 string
representation.
You can also use the string me as the IP address. In this case, the record for
the IP address you are querying from will be returned. This is useful when your
application does not have easy access to its public IP address, e.g., when the
system making the query is behind a NAT.
GeoIP Endpoints
| Service | HTTP Method | Endpoint |
|---|---|---|
| Country | GET | https://geoip.maxmind.com/geoip/v2.1/country/{ip_address} |
| City Plus | GET | https://geoip.maxmind.com/geoip/v2.1/city/{ip_address} |
| Insights | GET | https://geoip.maxmind.com/geoip/v2.1/insights/{ip_address} |
The geoip.maxmind.com hostname automatically picks the data center
geographically closest to you.
GeoLite Endpoints
| Service | HTTP Method | Endpoint |
|---|---|---|
| Country | GET | https://geolite.info/geoip/v2.1/country/{ip_address} |
| City | GET | https://geolite.info/geoip/v2.1/city/{ip_address} |
The geolite.info hostname automatically picks the data center geographically
closest to you.
Headers
The Authorization header is always required. See
Authorization and Security for more details.
The Accept header for a request is entirely optional. If you do include one,
you must accept one of the following:
application/jsonapplication/vnd.maxmind.com-country+jsonapplication/vnd.maxmind.com-country+json; charset=UTF-8; version=2.1
Substitute the appropriate service’s type for “country”. A request for any other
MIME type will result in a 415 Unsupported Media Type error.
If you set the Accept-Charset header in your client code, you must accept the
UTF-8 character set. If you don’t you will receive a 406 Not Acceptable
response.