Quick Start
ipdata provides a simple RESTfulRESTful - A web API that obeys the REST constraints is informally described as RESTful. RESTful web APIs are typically loosely based on HTTP methods to access resources via URL-encoded parameters and the use of JSON or XML to transmit data. - Wikipedia API that allows you to lookup the location, ownership and threat profile of any IP address.
Make sure to sign up for a free API key here to test these examples.
The simplest call you can make would be a parameter-less GET call to the API endpoint at https://api.ipdata.co. This will return the location of the device making the API request.
curl "https://api.ipdata.co?api-key=test"
https api.ipdata.co api-key==test
ipdata me
To lookup a specific IP Address, pass the IP address as a path parameter.
curl "https://api.ipdata.co/8.8.8.8?api-key=test"
https api.ipdata.co/8.8.8.8 api-key==test
ipdata 8.8.8.8
We also offer a dedicated EU endpoint to ensure that the end user data you send us stays in the EU. This has the same functionality as our standard endpoint but routes the request through our EU servers (Paris, Ireland and Frankfurt) only.
curl "https://eu-api.ipdata.co?api-key=test"
https eu-api.ipdata.co api-key==test
More Examples
var request = new XMLHttpRequest();
request.open('GET', 'https://api.ipdata.co/?api-key=test');
request.setRequestHeader('Accept', 'application/json');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
};
request.send();
from ipdata import ipdata
from pprint import pprint
# Create an instance of an ipdata object. Replace `test` with your API Key
ipdata = ipdata.IPData('test')
response = ipdata.lookup('69.78.70.144')
pprint(response)
import IPData from 'ipdata';
const ipdata = new IPData('test');
const ip = '1.1.1.1';
ipdata.lookup(ip)
.then(function(data) {
console.log(data)
});
use Ipdata\ApiClient\Ipdata;
use Symfony\Component\HttpClient\Psr18Client;
use Nyholm\Psr7\Factory\Psr17Factory;
$httpClient = new Psr18Client();
$psr17Factory = new Psr17Factory();
$ipdata = new Ipdata('test', $httpClient, $psr17Factory);
$data = $ipdata->lookup('69.78.70.144');
echo json_encode($data, JSON_PRETTY_PRINT);
require 'uri'
require 'net/http'
url = URI("https://api.ipdata.co/?api-key=test")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
package main
import (
"github.com/ipdata/go"
"log"
"fmt"
)
func main() {
ipd, _ := ipdata.NewClient("test")
data, err := ipd.Lookup("8.8.8.8")
if err != nil {
log.Fatalf("%v", err)
}
fmt.Printf("%s (%s)\n", data.IP, data.ASN)
}
var client = new IpDataClient("test");
// Get IP data from IP
var ipInfo = await client.Lookup("8.8.8.8");
Console.WriteLine($"Country name for {ipInfo.Ip} is {ipInfo.CountryName}");
import io.ipdata.client.Ipdata;
URL url = new URL("https://api.ipdata.co");
IpdataService ipdataService = Ipdata.builder().url(url)
.key("test").get();
IpdataModel model = ipdataService.ipdata("1.1.1.1");
System.out.println(jsonSerialize(model));
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "https://api.ipdata.co/?api-key=test")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
let resp = reqwest::blocking::get("https://api.ipdata.co/ip?api-key=test")?.text()?;
println!("{:#?}", resp);
Ok(())
}
Updated about 2 months ago