Metadata-Version: 2.4
Name: ipdatainfo
Version: 0.1.0
Summary: Official Python client for the ipdata.info IP geolocation, ASN, and threat-intelligence API
Project-URL: Homepage, https://ipdata.info
Project-URL: Repository, https://github.com/IPDataInfo/ipdata-python
Project-URL: Documentation, https://ipdata.info/docs/sdks
Project-URL: Changelog, https://github.com/IPDataInfo/ipdata-python/blob/main/CHANGELOG.md
Author: ipdata.info
License-Expression: MIT
License-File: LICENSE
Keywords: geoip,ip-api,ip-geolocation,ip-lookup,ipdata,threat-intelligence
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.8
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == 'dev'
Description-Content-Type: text/markdown

# IPData.info Python SDK — Free IP Geolocation & Threat Intelligence API

[![PyPI](https://img.shields.io/pypi/v/ipdatainfo.svg)](https://pypi.org/project/ipdatainfo/) [![CI](../../actions/workflows/ci.yml/badge.svg)](../../actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)

Official Python 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

```
pip install ipdatainfo
```

## Quickstart

```python
from ipdatainfo import Client

# Free tier — no API key needed. For higher limits + batch, get a free key
# at https://ipdata.info/register and use Client(api_key="...").
client = Client()

info = client.lookup("8.8.8.8")
print(info.city, info.country, info.asn_org)  # Mountain View United States Google LLC
```

## Methods

| 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**) |
| `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

```python
from ipdatainfo import Client

client = Client(
    api_key="KEY",                        # sent as X-Api-Key; switches to pro.ipdata.info
    base_url="https://ipdata.info",       # override the host
    timeout=10.0,                          # seconds
)
```

Errors from non-2xx responses are raised as `ipdatainfo.IpDataError` with
`.status` and `.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)
