Python
PyPI · v4.0.9pip install ipdata
from ipdata import ipdata
ipdata.api_key = 'KEY'
ipdata.lookup('8.8.8.8')
Bulk lookups, EU endpoint, optional local trie for offline range checks
github.com/ipdata/python ↗Every official client is open source under github.com/ipdata. Each wraps the same API — a lookup takes an IP and returns the full record — so the snippet below is the whole integration.
pip install ipdata
from ipdata import ipdata
ipdata.api_key = 'KEY'
ipdata.lookup('8.8.8.8')
Bulk lookups, EU endpoint, optional local trie for offline range checks
github.com/ipdata/python ↗npm install ipdata
import IPData from 'ipdata'
const ipdata = new IPData('KEY')
await ipdata.lookup('8.8.8.8')
TypeScript types, built-in cache with TTL, EU endpoint
github.com/ipdata/node ↗go get github.com/ipdata/go
client, _ := ipdata.NewClient("KEY")
data, _ := client.Lookup("8.8.8.8")
Context-aware requests, typed response struct
github.com/ipdata/go ↗composer require ipdata/api-client
$ipdata = new Ipdata('KEY', $httpClient, $psr17Factory);
$data = $ipdata->lookup('8.8.8.8');
PSR-18 HTTP client, bring your own transport
github.com/ipdata/php ↗dotnet add package ipdata
var client = new IpdataClient("KEY");
var data = await client.LookupAsync("8.8.8.8");
Async API, targets .NET Standard
github.com/ipdata/dotnet ↗gem install ipdata
client = Ipdata::Client.new('KEY')
data = client.lookup('8.8.8.8')
github.com/ipdata/ruby ↗
cargo add ipdata
let client = ipdata::Client::new("KEY");
let data = client.lookup("8.8.8.8").await?;
Async, reqwest-based
github.com/ipdata/rust ↗cpanm Net::IPData
my $ipdata = Net::IPData->new(api_key => 'KEY');
my $data = $ipdata->lookup('8.8.8.8');
github.com/ipdata/perl ↗
{deps, [ipdata]}.
{ok, Data} = ipdata:lookup(<<"8.8.8.8">>, #{api_key => <<"KEY">>}).
rebar3; works from Elixir too
github.com/ipdata/erlang ↗<dependency>
<groupId>co.ipdata.client</groupId>
<artifactId>ipdata-java-client</artifactId>
<version>0.2.0</version>
</dependency>
Ipdata client = Ipdata.builder("KEY").build();
IpdataModel data = client.lookup("8.8.8.8");
Java 8+, builder-configured client
github.com/ipdata/java ↗.package(url: "https://github.com/ipdata/swift.git", from: "1.0.1")
let client = IPDataClient(apiKey: "KEY")
let data = try await client.lookup("8.8.8.8")
iOS, macOS; async/await
github.com/ipdata/swift ↗The API is one GET with a key in the query string, and every response is JSON. Anything that can make an HTTPS request can use it — and ipdata.free needs no key at all.
curl "https://api.ipdata.co/8.8.8.8?api-key=KEY"