Country.is

App · 5 actions

Find the country behind an IP address with Country.is, the free, keyless IP geolocation API: the country and continent of any IPv4 or IPv6 address, with the city, region, postal code, coordinates, time zone and network where known, for up to 100 addresses in one step. Check whether an address is in the countries you name, to branch a workflow on where a sign-up, an order or a visitor comes from, and see which country Lodol itself calls out from. The data is MaxMind's GeoLite2, updated daily. No account or API key required.

Actions

ActionWhat it does
Check whether an IP address is in a countryAnswer whether an IPv4 or IPv6 address is used in one of the countries you name, as a plain true or false to branch on, with the country it is in.
Get data freshnessGet Country.is's version, the data sources it answers from (MaxMind, and Cloudflare for the address Lodol calls from) and when its data was last updated, with that age in hours, so a workflow can tell when the daily update has stopped arriving.
Look up an IP addressFind where an IPv4 or IPv6 address is used: its country and continent, and where MaxMind knows them, the city, region, postal code, coordinates with their accuracy, time zone, and the network's AS number and organization.
Look up IP addresses in bulkFind where up to 100 IPv4 or IPv6 addresses are used in one request, each with the same details as Look up an IP address, in the order given.
Look up the address Lodol calls fromFind the public IP address Lodol's servers call out from and the country it is in, as Country.is sees the request, with the same details as Look up an IP address.

Check whether an IP address is in a country

Answer whether an IPv4 or IPv6 address is used in one of the countries you name, as a plain true or false to branch on, with the country it is in. Pick countries from the list, or pass two-letter codes or English names from an earlier step. Use it to flag a sign-up or an order from outside the countries you serve, or to send a visitor to the right regional site.

Inputs

IP addressip_addresstextRequired
The IPv4 or IPv6 address to look up, such as 8.8.8.8 or 2001:4860:4860::8888. A domain name is not accepted.
CountriescountrieslistRequired
The countries to check the address against. Pick from the list, or pass two-letter codes or names such as Germany, DE or UK from an earlier step, as a list or separated by commas.One or more of: AF (Afghanistan), AX (Åland Islands), AL (Albania), DZ (Algeria), AD (Andorra), AO (Angola), AI (Anguilla), AQ (Antarctica), AG (Antigua & Barbuda), AR (Argentina), and 239 more.

Outputs

continenttext
The two-letter code of its continent: 'AF', 'AN', 'AS', 'EU', 'NA', 'OC' or 'SA'. Null when unknown.
continent_nametext
The continent's name, e.g. 'North America'. Null when unknown.
countrieslist
The countries checked against, as two-letter codes in the order given, repeats removed.
countrytext
The two-letter ISO 3166-1 code of the country the address is used in, e.g. 'US'. Null when Country.is cannot place it.
country_nametext
The country's English name, e.g. 'United States'. Null when there is no country.
iptext
The address looked up, as Country.is read it, e.g. '8.8.8.8'.
matchedtrue/false
True when the address is in one of the countries listed.
matched_countrytext
The two-letter code of the listed country it is in, e.g. 'DE'. Null when it is in none of them.
Example output
{
  "continent": "EU",
  "continent_name": "Europe",
  "countries": [
    "DE",
    "FR"
  ],
  "country": "DE",
  "country_name": "Germany",
  "ip": "77.1.2.3",
  "matched": true,
  "matched_country": "DE"
}

Get data freshness

Get Country.is's version, the data sources it answers from (MaxMind, and Cloudflare for the address Lodol calls from) and when its data was last updated, with that age in hours, so a workflow can tell when the daily update has stopped arriving.

Inputs

None.

Outputs

data_age_hoursnumber
How many hours ago that was, to one decimal, e.g. 25.8. Null when Country.is did not say.
data_sourceslist
Where the answers come from, e.g. 'maxmind' and 'cloudflare'.
last_updatedtext
When the data was last updated, as an ISO 8601 time in UTC, e.g. '2026-10-13T17:25:50.000Z'.
versiontext
The version of Country.is answering, e.g. '4.2.3'.
Example output
{
  "data_age_hours": 25.8,
  "data_sources": [
    "maxmind",
    "cloudflare"
  ],
  "last_updated": "2026-10-13T17:25:50.000Z",
  "version": "4.2.3"
}

Look up an IP address

Find where an IPv4 or IPv6 address is used: its country and continent, and where MaxMind knows them, the city, region, postal code, coordinates with their accuracy, time zone, and the network's AS number and organization. The country comes with its English name. A private or reserved address, such as 192.168.1.1, has no country and fails with the reason, as does a public address Country.is has no record of.

Inputs

IP addressip_addresstextRequired
The IPv4 or IPv6 address to look up, such as 8.8.8.8 or 2001:4860:4860::8888. A domain name is not accepted.

Outputs

accuracy_radiusnumber
How far, in kilometres, the real location may be from the coordinates, e.g. 10 for a city, 1000 for a country. Null when unknown.
asnnumber
The number of the autonomous system that announces the address, e.g. 15169 for Google. Null when unknown.
asn_organizationtext
The organization that runs that network, e.g. 'Google LLC'. Null when unknown.
citytext
The city, e.g. 'Hamburg'. Null when MaxMind has none.
continenttext
The two-letter code of its continent: 'AF', 'AN', 'AS', 'EU', 'NA', 'OC' or 'SA'. Null when unknown.
continent_nametext
The continent's name, e.g. 'North America'. Null when unknown.
countrytext
The two-letter ISO 3166-1 code of the country the address is used in, e.g. 'US'. Null when Country.is cannot place it.
country_nametext
The country's English name, e.g. 'United States'. Null when there is no country.
iptext
The address looked up, as Country.is read it, e.g. '8.8.8.8'.
latitudenumber
The latitude of the address's approximate location, e.g. 37.751. Null when unknown.
longitudenumber
The longitude of the address's approximate location, e.g. -97.822. Null when unknown.
postaltext
The postal code, e.g. '94043'. Null when MaxMind has none.
subdivisiontext
The code of the region, state or province, e.g. 'CA' for California or 'HH' for Hamburg. Null when MaxMind has none.
time_zonetext
The IANA time zone at that location, e.g. 'Europe/Berlin'. Null when unknown.
Example output
{
  "accuracy_radius": 10,
  "asn": 6805,
  "asn_organization": "Telefonica Germany",
  "city": "Hamburg",
  "continent": "EU",
  "continent_name": "Europe",
  "country": "DE",
  "country_name": "Germany",
  "ip": "77.1.2.3",
  "latitude": 53.5774,
  "longitude": 10.0785,
  "postal": "22041",
  "subdivision": "HH",
  "time_zone": "Europe/Berlin"
}

Look up IP addresses in bulk

Find where up to 100 IPv4 or IPv6 addresses are used in one request, each with the same details as Look up an IP address, in the order given. A repeated address is looked up once. An address with no country, such as a private one, is not an error: it is listed under not found, and the rest are still answered.

Inputs

IP addressesip_addresseslistRequired
The addresses to look up, as a list or separated by commas: up to 100 IPv4 or IPv6 addresses.

Outputs

countnumber
How many different addresses were looked up, repeats counted once.
foundnumber
How many of them Country.is placed in a country.
not_foundlist
The addresses Country.is has no country for, such as private ones. Empty when every address was placed.
resultslist
One record per address Country.is placed, in the order the addresses were given.
Example output
{
  "count": 3,
  "found": 2,
  "not_found": [
    "192.168.1.1"
  ],
  "results": [
    {
      "accuracy_radius": 1000,
      "asn": 15169,
      "asn_organization": "Google LLC",
      "city": null,
      "continent": "NA",
      "continent_name": "North America",
      "country": "US",
      "country_name": "United States",
      "ip": "8.8.8.8",
      "latitude": 37.751,
      "longitude": -97.822,
      "postal": null,
      "subdivision": null,
      "time_zone": "America/Chicago"
    },
    {
      "accuracy_radius": 10,
      "asn": 6805,
      "asn_organization": "Telefonica Germany",
      "city": "Hamburg",
      "continent": "EU",
      "continent_name": "Europe",
      "country": "DE",
      "country_name": "Germany",
      "ip": "77.1.2.3",
      "latitude": 53.5774,
      "longitude": 10.0785,
      "postal": "22041",
      "subdivision": "HH",
      "time_zone": "Europe/Berlin"
    }
  ]
}

Look up the address Lodol calls from

Find the public IP address Lodol's servers call out from and the country it is in, as Country.is sees the request, with the same details as Look up an IP address. The address and the country are Lodol's, not yours or your visitors'.

Inputs

None.

Outputs

accuracy_radiusnumber
How far, in kilometres, the real location may be from the coordinates, e.g. 10 for a city, 1000 for a country. Null when unknown.
asnnumber
The number of the autonomous system that announces the address, e.g. 15169 for Google. Null when unknown.
asn_organizationtext
The organization that runs that network, e.g. 'Google LLC'. Null when unknown.
citytext
The city, e.g. 'Hamburg'. Null when MaxMind has none.
continenttext
The two-letter code of its continent: 'AF', 'AN', 'AS', 'EU', 'NA', 'OC' or 'SA'. Null when unknown.
continent_nametext
The continent's name, e.g. 'North America'. Null when unknown.
countrytext
The two-letter ISO 3166-1 code of the country the address is used in, e.g. 'US'. Null when Country.is cannot place it.
country_nametext
The country's English name, e.g. 'United States'. Null when there is no country.
iptext
The address looked up, as Country.is read it, e.g. '8.8.8.8'.
latitudenumber
The latitude of the address's approximate location, e.g. 37.751. Null when unknown.
longitudenumber
The longitude of the address's approximate location, e.g. -97.822. Null when unknown.
postaltext
The postal code, e.g. '94043'. Null when MaxMind has none.
subdivisiontext
The code of the region, state or province, e.g. 'CA' for California or 'HH' for Hamburg. Null when MaxMind has none.
time_zonetext
The IANA time zone at that location, e.g. 'Europe/Berlin'. Null when unknown.
Example output
{
  "accuracy_radius": 1000,
  "asn": 15169,
  "asn_organization": "Google LLC",
  "city": null,
  "continent": "NA",
  "continent_name": "North America",
  "country": "US",
  "country_name": "United States",
  "ip": "203.0.113.7",
  "latitude": 37.751,
  "longitude": -97.822,
  "postal": null,
  "subdivision": null,
  "time_zone": "America/Chicago"
}

On this page