Official Kotlin client for ipdata.info — a free, fast IP geolocation, ASN, and threat-intelligence API. Look up country, city, ASN, timezone, currency, and security flags (proxy/VPN/Tor/hosting) for any IPv4 or IPv6 address. Powered by ipdata.info.
The public endpoint is free — 50 requests/min, no signup, no key. For higher rate limits and batch lookups, create a free API key at ipdata.info/register and manage it in your dashboard.
JitPack hosts this library directly from GitHub — no separate publish step. Add the JitPack repository, then the dependency.
repositories {
maven { url = uri("https://jitpack.io") }
}
dependencies {
implementation("com.github.IPDataInfo:ipdata-kotlin:0.1.0")
}repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.IPDataInfo:ipdata-kotlin:0.1.0'
}<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.IPDataInfo</groupId>
<artifactId>ipdata-kotlin</artifactId>
<version>0.1.0</version>
</dependency>import info.ipdata.sdk.IPDataClient
fun main() {
// Free tier: no key required, 50 req/min.
val client = IPDataClient()
val info = client.lookup("8.8.8.8")
println("${info.country} / AS${info.asn} (${info.isp})")
// With a key: higher limits + batch(), defaults to the pro host.
val proClient = IPDataClient(apiKey = "YOUR_API_KEY")
val results = proClient.batch(listOf("8.8.8.8", "1.1.1.1"))
}| Method | What it returns |
|---|---|
lookup(ip = "") |
Full geolocation record (own IP if omitted) |
geo(ip) |
Geo subset (city/region/country/lat/lon/tz) |
asn(ip) |
ASN + ISP/registry for an IP |
batch(ips) |
Many IPs at once (requires an API key) |
asnDetail(n) |
ASN detail incl. prefixes (raw JsonElement) |
asnWhoisHistory(n) |
ASN whois history (raw JsonElement) |
asnChanges() |
ASN change feed (raw JsonElement) |
threatDomain/Hash/Url(x) |
Threat-intel lookup (domain / file hash / URL) |
All non-2xx responses throw IpDataException(status, message). Data classes
are annotated with kotlinx.serialization and ignore unknown/missing fields,
so the SDK stays forward-compatible with new API fields.
Full response schema: ipdata.info API docs · SDK contract.
- Free (
ipdata.info): 50 req/min, no key. - Paid (
pro.ipdata.info): higher limits +batch, with an API key.
12 official SDKs — see the full list at ipdata.info/docs/sdks: Python, Node.js, Go, PHP, Java, Rust, .NET, Kotlin, Swift, Dart, Bash, Objective-C.
MIT © ipdata.info