Querying WorldIP geolocation service via the published API returns the most up-to-date and detailed results on geographic location of an IP address, than downloading the database.
Using "Free"-API is free for any personal or business purpose, and it is unlimited per day.
In the "Professional"-version, besides the possibility to use any of the API-servers worldwide, and also other additional functions, the foreign exchange rate is available.
A simple yet powerful API allowing you to query the WorldIP database with a single link in text-, JSON and XML format.
| Free | Professional personal/SMB |
Corporate/Business | |
|---|---|---|---|
| Lite | |||
| Regular updates | ![]() |
![]() |
![]() |
| Zero-Time Response ** | ![]() |
![]() |
![]() |
| Number of requests | ∞ | ∞ | ∞ |
| Speed limit | 10 queries/sec | 10 queries/sec | ∞ |
| Requester limit | 1 IP per key | 1 IP per key | 255 IP (/24 CIDR) no limit possible |
| Availability | 99.50 % | 99.95 % | 99.95 - 99.9999 % |
| Daily statistic | For registered users | ![]() |
![]() |
| API-servers | 6 via GeoDNS *** |
Denver Kansas-City London Stockholm Paris Madrid Frankfurt Milan Moscow Nagano Hong-Kong Singapore Sydney Viña del Mar |
Denver Kansas-City London Stockholm Paris Madrid Frankfurt Milan Moscow Nagano Hong-Kong Singapore Sydney Viña del Mar |
| Free choice of server | ![]() |
![]() |
|
| The other servers as backup servers | ![]() |
![]() |
|
| Separate dedicated server(-s) |
|
||
| Support | Basic | Premium | |
| Free | Professional personal/SMB |
Corporate/Business | |
| Lite | |||
| Continent | ![]() |
![]() |
|
| Subregion | ![]() |
![]() |
|
| Country | ![]() |
![]() |
![]() |
| Languages of the country | ![]() |
![]() |
|
| Currency of the country | ![]() |
![]() |
|
| Currency rate **** | ![]() |
![]() |
|
| Phone country code | ![]() |
![]() |
|
| Zoom for Google Maps | ![]() |
![]() |
|
![]() |
![]() |
||
| Service-Code: | Free | Professional personal/SMB |
Corporate/Business |
| Lite | |||
| Bots | ![]() |
![]() |
|
| Satellite Providers, Mobile Proxies |
![]() |
![]() |
|
| Price: | Free | Professional personal/SMB |
Corporate/Business |
| Lite | |||
| Free | 10 € / month 100 € / year |
Individual | |
| How | Buy | Inform | |
|
* Customers with Irish billing addresses and private Customers (without a valid VAT registration number) with EU billing addresses should add 23% VAT (Ireland's standard VAT rate). For Customers with European Union billing addresses with a valid VAT registration number and for "Rest of World Customers" prices are exclusive of VAT. ** Query time only depends on distance between servers *** GeoDNS: USA, Germany, Chile, Singapore, Japan, Australia. The location of the free API-server can be changed at any time without notice **** Updated several times a day. There are currently 130 currencies, which cover 99.5% of Internet users worldwide. Exchange Rate for the currencies: AED, ALL, AMD, ANG, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BMD, BND, BOB, BRL, BSD, BTN, BYR, BZD, CAD, CHF, CLP, CMG, CNY, COP, CRC, CUC, CVE, CZK, DOP, DJF, DKK, DZD, EEK, EGP, ERN, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GTQ, HKD, HNL, HRK, HUF, IDR, ILS, IMP, INR, IQD, IRR, ISK, JEP, JMD, JOD, JPY, KES, KGS, KHR, KMF, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LSL, LTL, LVL, MAD, MDL, MKD, MMK, MOP, MVR, MXN, MYR, NAD, NGN, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, SAR, SDG, SEK, SGD, SHP, SYP, SZL, THB, TJS, TMT, TND, TRY, TTD, TVD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEF, VND, XAF, XCD, XOF, XPF, ZAR | |||
Request to the API-Server
Request Format "Free":
http://api.wipmania.com/[IPADDR]?[URL]
| IPADDR | requested IP. For example, the address of the visitor |
| URL | domain name of the website, which sends the request (needless parameter) |
Request Format "Free(registered) / Professional / Corporate":
http://[API].wipmania.com/[IPADDR]?k=[KEY]
http://[API].wipmania.com/[IPADDR]?k=[KEY]&t=[TYP]&v=[VALUTA]
| API | server to choose from, for example, the closest one |
| IPADDR | requested IP. For example, the address of the visitor |
| KEY | private key |
| TYP | server response format: text, json, xml. By default: "text". In this format only country and service code |
| VALUTA | your currency, for which the rate is calculated. The list of available currencies |
Only method GET is accepted.
Server response
TEXT (text/html):
2_LETTER_COUNTRY_CODE
JSON (application/json; encoding UTF-8):
{
"continent":"CONTINENT",
"subregion":"SUBREGION",
"country":{
"name":"COUNTRY_NAME",
"code":"2_LETTER_COUNTRY_CODE",
"code3":"3_LETTER_COUNTRY_CODE",
"coded":"3_DIGIT_COUNTRY_CODE",
"phone":["COUNTRY_PHONE_PREFIX","COUNTRY_PHONE_PREFIX"],
"valuta":"CURRENCY_CODE",
"valuta_rate":CURRENCY_RATE,
"valuta2":"CURRENCY_CODE",
"lang":[
{"code":"LANGUAGE_CODE_1","code3":"LANGUAGE_CODE_3","name":"LANGUAGE_ORIG_NAME"},
{"code":"LANGUAGE_CODE_1","code3":"LANGUAGE_CODE_3","name":"LANGUAGE_ORIG_NAME"},
]
},
"zoom":GOOGLE_MAPS_ZOOM,
"isp":{
"name":"ISP_NAME",
"as":"ISP_AS",
"asname":"ISP_ASNAME"
},
"sc":"SERVICE_CODE"
}
XML (text/xml; encoding UTF-8):
<?xml version="1.0" encoding="UTF-8"?>
<ip>
<country continent="CONTINENT" subregion="SUBREGION">
<name code="2_LETTER_COUNTRY_CODE" code3="3_LETTER_COUNTRY_CODE"
coded="3_DIGIT_COUNTRY_CODE">COUNTRY_NAME</name>
<lang code="LANGUAGE_CODE_1" code3="LANGUAGE_CODE_3">LANGUAGE_ORIG_NAME</lang>
<lang code="LANGUAGE_CODE_1" code3="LANGUAGE_CODE_3">LANGUAGE_ORIG_NAME</lang>
<valuta rate="CURRENCY_RATE">CURRENCY_CODE</valuta>
<valuta2>CURRENCY_CODE</valuta2>
<phone>COUNTRY_PHONE_PREFIX</phone>
<phone>COUNTRY_PHONE_PREFIX</phone>
<zoom>GOOGLE_MAPS_ZOOM</zoom>
</country>
<isp as="ISP_AS" asname="ISP_ASNAME">ISP_NAME</isp>
<sc typ="SERVICE_CODE"></sc>
</ip>
Variable values:
| CONTINENT | two-letter continent code: NA(North America), SA(South America), AF(Africa), EU(Europe), AS(Asia), AO(Australia/Oceania) |
| SUBREGION | three-number subregion (UN-Number) code |
| COUNTRY_NAME | country name in English |
| 2_LETTER_COUNTRY_CODE | two-letter country code ISO-3166-α2 |
| 3_LETTER_COUNTRY_CODE | three-letter country code ISO-3166-α3 |
| 3_DIGIT_COUNTRY_CODE | three-number country code ISO-3166-numeric |
| COUNTRY_PHONE_PREFIX | phone country code (only numbers without a leading plus). In JSON format, separated by commas |
| CURRENCY_CODE | currency code according to ISO-4217 |
| CURRENCY_RATE | exchange rate between currency of requested IP and your currency |
| LANGUAGE_CODE_1 | two-letter language code according to ISO-639-1 |
| LANGUAGE_CODE_3 | three-letter language code according to ISO-639-3 |
| LANGUAGE_ORIG_NAME | native name of language |
| GOOGLE_MAPS_ZOOM | country zoom level for Google Maps |
| ISP_NAME | provider |
| ISP_AS | provider's AS number |
| ISP_ASNAME | provider's AS name |
| SERVICE_CODE | Service-code |
Examples
1) Google.com makes request for the country of the user's IP 123.45.67.89
Request:
http://api.wipmania.com/123.45.67.89?google.com
Result:
KR
two-letter country code, "KR" – Republic of Korea (South Korea).
2) a user with API key "test" makes JSON-request for IP 192.232.69.132, its own currency is USD
Request:
http://api.wipmania.com/192.232.69.132?k=test&t=json&v=USD
Result:
{
"continent":"AS",
"subregion":"035",
"country":{
"name":"Singapore",
"code":"SG",
"code3":"SGP",
"coded":"826",
"phone":["65"],
"valuta":"SGD",
"valuta_rate":1.2339,
"valuta2":"BND",
"lang":[
{"code":"en","code3":"eng","name":"English"},
{"code":"ch","code3":"cho","name":"中文(简体)"},
{"code":"ms","code3":"msa","name":"Bahasa Melayu"},
{"code":"ta","code3":"tam","name":"தமிழ்"}
]
},
"zoom":5,
"isp":{
"name":"Singapore Telecom",
"as":"9911",
"asname":"CONNECTPLUS-AP"
},
"sc":""
}
3) the same user with the key makes XML-request
Request:
http://api.wipmania.com/192.232.69.132?k=test&t=xml&v=USD
Result:
<?xml version="1.0" encoding="UTF-8"?>
<ip>
<country continent="AS" subregion="035">
<name code="SG" code3="SGP" coded="826">Singapore</name>
<lang code="en" code3="eng">English</lang>
<lang code="ch" code3="cho">中文(简体)</lang>
<lang code="ms" code3="msa">Bahasa Melayu</lang>
<lang code="ta" code3="tam">தமிழ்</lang>
<valuta rate="1.2339">SGD</valuta>
<valuta2>BND</valuta2>
<phone>65</phone>
<zoom>10</zoom>
</country>
<isp as="9911" asname="CONNECTPLUS-AP">Singapore Telecom</isp>
<sc typ=""></sc>
</ip>
Testing
To test JSON and XML in the "Professional"-version, you can use the test key "test" and the following requests-examples:
http://api.wipmania.com/192.232.69.132?k=test&t=json&v=USD
http://api.wipmania.com/192.232.69.132?k=test&t=xml&v=USD
Results will always be, like shown above.

English