Skip to content

Response Formats

IPWho supports multiple response formats to fit different integration needs. Use the format query parameter to specify your desired format.

Jump to format:

Supported Formats

FormatUse CaseExample
jsonStructured data for APIs and applications?format=json
xmlIntegration with XML-based systems?format=xml
csvData export for spreadsheets and analysis tools?format=csv

Endpoint Support

Format conversion is supported on the Single IP Lookup endpoint only:

  • βœ“ GET /ip/{ip}?apiKey=sk.xxx&format=json|xml|csv
  • βœ— Bulk IP endpoint does not support format conversion

JSON Format (Default)

No format parameter needed β€” JSON is the default response type.

Request

GET https://api.ipwho.org/ip/76.102.11.203?apiKey=sk.xxx

Response

{
"success": true,
"data": {
"ip": "76.102.11.203",
"continent": "North America",
"continentCode": "NA",
"country": "United States",
"countryCode": "US",
"capital": "Washington",
"region": "California",
"regionCode": "CA",
"city": "Los Altos",
"postal_Code": "94022",
"dial_code": "+1",
"is_in_eu": false,
"latitude": 37.3793,
"longitude": -122.12,
"accuracy_radius": 10,
"timezone": {
"time_zone": "America/Los_Angeles",
"abbr": "PST",
"offset": -28800,
"is_dst": false,
"utc": "-08:00",
"current_time": "2026-03-02T03:30:36-08:00"
},
"flag": {
"flag_Icon": "πŸ‡ΊπŸ‡Έ",
"flag_unicode": "U+1F1FA U+1F1F8"
},
"currency": {
"code": "USD",
"symbol": "$",
"name": "US Dollar",
"name_plural": "US dollars",
"hex_unicode": "24"
},
"connection": {
"number": 7922,
"org": "COMCAST-7922"
},
"security": {
"isVpn": false,
"isTor": false,
"isThreat": "low"
}
}
}

XML Format

Add ?format=xml to return the response as XML.

Request

GET https://api.ipwho.org/ip/76.102.11.203?apiKey=sk.xxx&format=xml

Response

<?xml version="1.0"?>
<response>
<success>true</success>
<data>
<ip>76.102.11.203</ip>
<continent>North America</continent>
<continentCode>NA</continentCode>
<country>United States</country>
<countryCode>US</countryCode>
<capital>Washington</capital>
<region>California</region>
<regionCode>CA</regionCode>
<city>Los Altos</city>
<postal_Code>94022</postal_Code>
<dial_code>+1</dial_code>
<is_in_eu>false</is_in_eu>
<latitude>37.3793</latitude>
<longitude>-122.12</longitude>
<accuracy_radius>10</accuracy_radius>
<timezone>
<time_zone>America/Los_Angeles</time_zone>
<abbr>PST</abbr>
<offset>-28800</offset>
<is_dst>false</is_dst>
<utc>-08:00</utc>
<current_time>2026-03-02T03:30:36-08:00</current_time>
</timezone>
<flag>
<flag_Icon>πŸ‡ΊπŸ‡Έ</flag_Icon>
<flag_unicode>U+1F1FA U+1F1F8</flag_unicode>
</flag>
<currency>
<code>USD</code>
<symbol>$</symbol>
<name>US Dollar</name>
<name_plural>US dollars</name_plural>
<hex_unicode>24</hex_unicode>
</currency>
<connection>
<number>7922</number>
<org>COMCAST-7922</org>
</connection>
<security>
<isVpn>false</isVpn>
<isTor>false</isTor>
<isThreat>low</isThreat>
</security>
</data>
</response>

CSV Format

Add ?format=csv to return the response as CSV. Nested objects are flattened with dot notation.

Request

GET https://api.ipwho.org/ip/76.102.11.203?apiKey=sk.xxx&format=csv

Response

ip,continent,continentCode,country,countryCode,capital,region,regionCode,city,postal_Code,dial_code,is_in_eu,latitude,longitude,accuracy_radius,timezone.time_zone,timezone.abbr,timezone.offset,timezone.is_dst,timezone.utc,timezone.current_time,flag.flag_Icon,flag.flag_unicode,currency.code,currency.symbol,currency.name,currency.name_plural,currency.hex_unicode,connection.number,connection.org,security.isVpn,security.isTor,security.isThreat
76.102.11.203,North America,NA,United States,US,Washington,California,CA,Los Altos,94022,+1,false,37.3793,-122.12,10,America/Los_Angeles,PST,-28800,false,-08:00,2026-03-02T03:30:36-08:00,πŸ‡ΊπŸ‡Έ,U+1F1FA U+1F1F8,USD,$,US Dollar,US dollars,24,7922,COMCAST-7922,false,false,low

Format Parameter Rules

  • Formats are case-insensitive: ?format=JSON, ?format=json, and ?format=Json all work
  • JSON is returned if the format parameter is omitted or invalid
  • Field ordering may vary in CSV and XML formats
  • Nested data structures are flattened in CSV (e.g., timezone.time_zone)