# IPData.info Rust SDK — Free IP Geolocation & Threat Intelligence API
[](https://crates.io/crates/ipdatainfo) [](https://docs.rs/ipdatainfo) [](../../actions/workflows/ci.yml) [](./LICENSE)
Official Rust client for [**ipdata.info**](https://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](https://ipdata.info).
## Get a free API key
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**](https://ipdata.info/register) and manage it in your
[dashboard](https://ipdata.info/dashboard).
## Install
```
cargo add ipdatainfo
```
## Quickstart
```rust
use ipdatainfo::Client;
fn main() {
let client = Client::new(); // free tier; or Client::builder().api_key("KEY").build()
let info = client.lookup("8.8.8.8").unwrap();
println!("{:?} {:?} {:?}", info.city, info.country, info.asn_org);
// Some("Mountain View") Some("United States") Some("Google LLC")
}
```
## Methods
| `lookup(ip)` | Full geolocation record (`""` for own IP) |
| `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**) |
| `asn_detail(n)` | ASN detail incl. prefixes |
| `asn_whois_history(n)` | ASN whois history |
| `asn_changes()` | ASN change feed |
| `threat_domain/threat_hash/threat_url(x)` | Threat-intel lookup (domain / file hash / URL) |
Full response schema: [ipdata.info API docs](https://ipdata.info/docs) ·
[SDK contract](https://ipdata.info/docs/sdks).
## Configuration
```rust
use std::time::Duration;
use ipdatainfo::Client;
let client = Client::builder()
.api_key("KEY") // sent as X-Api-Key; switches to pro.ipdata.info
.base_url("https://ipdata.info")
.timeout(Duration::from_secs(10))
.build();
```
Errors from non-2xx responses are returned as `ipdatainfo::Error::Api { status, message }`.
## Rate limits
- Free (`ipdata.info`): 50 req/min, no key.
- Paid (`pro.ipdata.info`): higher limits + `batch`, with an
[API key](https://ipdata.info/register).
## Other SDKs
12 official SDKs — see the full list at
[**ipdata.info/docs/sdks**](https://ipdata.info/docs/sdks): Python, Node.js, Go,
PHP, Java, Rust, .NET, Kotlin, Swift, Dart, Bash, Objective-C.
## License
MIT © [ipdata.info](https://ipdata.info)