Return values

In case we don't have data on a specific field, the returned value will be, depending on the field type:
string: empty ("")
float: 0
bool: false

Successful query

namedescriptionexampletype
statusalways successsuccessstring
countrycountryUnited Statesstring
countryCodecountry shortUSstring
regionregion/state shortCA or 10string
regionNameregion/stateCaliforniastring
citycityMountain Viewstring
zipzip code94043string
latlatitude37.4192float
lonlongitude-122.0574float
timezonecity timezoneAmerica/Los_Angelesstring
ispISP nameGooglestring
orgOrganization nameGooglestring
asAS number and name, separated by spaceAS15169 Google Inc.string
reverseReverse DNS of the IPwi-in-f94.1e100.netstring
mobilemobile (cellular) connectiontruebool
proxyproxy (anonymous)truebool
queryIP used for the query173.194.67.94string

Failed query

namedescriptionexampletype
statusalways failfailstring
messageerror messagereserved rangestring
queryIP used for the query173.194.67.94string

Localization

Localized city, regionName and country can be requested by setting the GET parameter lang to one of the following:

lang (ISO 639)description
enEnglish (default)
deDeutsch (German)
esEspañol (Spanish)
pt-BREspañol - Argentina (Spanish)
frFrançais (French)
ja日本語 (Japanese)
zh-CN中国 (Chinese)
ruРусский (Russian)
Example:
http://ip-api.com/xml/8.8.8.8?lang=ja


Selectable output

If you don't require all the returned fields, use the GET parameter fields to specify which fields to return.

Separate the fields by comma (example: fields=status,message,query,country,city) or use a generated, numeric value (to save bandwidth).

Field generator

Tip: disabling reverse may improve performance

nameX

Human readable
Example:



Numeric
Example: