Get IP2Company lookup
curl --request GET \
--url https://company.leadpipe.com/v1/lookup \
--header 'X-API-Key: <api-key>'import requests
url = "https://company.leadpipe.com/v1/lookup"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://company.leadpipe.com/v1/lookup', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://company.leadpipe.com/v1/lookup",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://company.leadpipe.com/v1/lookup"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://company.leadpipe.com/v1/lookup")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://company.leadpipe.com/v1/lookup")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"ip": "192.0.2.10",
"status": "missing",
"data": null,
"stale": null,
"pollAfterSeconds": null,
"refreshStatus": null,
"meta": {
"enabled": true,
"limit": 10000,
"used": 0,
"reserved": 1,
"remaining": 9999,
"periodStart": "2026-11-12T00:00:00.000Z",
"creditsConsumed": 0
}
}{
"ip": "192.0.2.10",
"status": "pending",
"data": null,
"stale": null,
"pollAfterSeconds": 15,
"refreshStatus": null,
"meta": {
"enabled": true,
"limit": 10000,
"used": 0,
"reserved": 1,
"remaining": 9999,
"periodStart": "2026-11-12T00:00:00.000Z",
"creditsConsumed": 0
}
}{
"error": {
"code": "HTTP_ERROR",
"message": "Invalid request"
},
"meta": {
"timestamp": "2026-11-12T00:00:00.000Z",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}{
"error": {
"code": "HTTP_ERROR",
"message": "Missing X-API-Key header"
},
"meta": {
"timestamp": "2026-11-12T00:00:00.000Z",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}{
"error": {
"code": "HTTP_ERROR",
"message": "IP2Company API access is disabled"
},
"meta": {
"timestamp": "2026-11-12T00:00:00.000Z",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}{
"error": {
"code": "HTTP_ERROR",
"message": "Use GET or POST for IP2Company lookups"
},
"meta": {
"timestamp": "2026-11-12T00:00:00.000Z",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}{
"error": {
"code": "HTTP_ERROR",
"message": "IP2Company credit allowance exhausted"
},
"meta": {
"timestamp": "2026-11-12T00:00:00.000Z",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}{
"error": {
"code": "HTTP_ERROR",
"message": "IP2Company temporarily unavailable"
},
"meta": {
"timestamp": "2026-11-12T00:00:00.000Z",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}Company lookup
Get IP2Company lookup
Read a saved IP2Company result or poll accepted enrichment. ISP-classified results are free; inspect freshness and refreshStatus before treating saved data as a finished refresh.
GET
/
v1
/
lookup
Get IP2Company lookup
curl --request GET \
--url https://company.leadpipe.com/v1/lookup \
--header 'X-API-Key: <api-key>'import requests
url = "https://company.leadpipe.com/v1/lookup"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://company.leadpipe.com/v1/lookup', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://company.leadpipe.com/v1/lookup",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://company.leadpipe.com/v1/lookup"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://company.leadpipe.com/v1/lookup")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://company.leadpipe.com/v1/lookup")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"ip": "192.0.2.10",
"status": "missing",
"data": null,
"stale": null,
"pollAfterSeconds": null,
"refreshStatus": null,
"meta": {
"enabled": true,
"limit": 10000,
"used": 0,
"reserved": 1,
"remaining": 9999,
"periodStart": "2026-11-12T00:00:00.000Z",
"creditsConsumed": 0
}
}{
"ip": "192.0.2.10",
"status": "pending",
"data": null,
"stale": null,
"pollAfterSeconds": 15,
"refreshStatus": null,
"meta": {
"enabled": true,
"limit": 10000,
"used": 0,
"reserved": 1,
"remaining": 9999,
"periodStart": "2026-11-12T00:00:00.000Z",
"creditsConsumed": 0
}
}{
"error": {
"code": "HTTP_ERROR",
"message": "Invalid request"
},
"meta": {
"timestamp": "2026-11-12T00:00:00.000Z",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}{
"error": {
"code": "HTTP_ERROR",
"message": "Missing X-API-Key header"
},
"meta": {
"timestamp": "2026-11-12T00:00:00.000Z",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}{
"error": {
"code": "HTTP_ERROR",
"message": "IP2Company API access is disabled"
},
"meta": {
"timestamp": "2026-11-12T00:00:00.000Z",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}{
"error": {
"code": "HTTP_ERROR",
"message": "Use GET or POST for IP2Company lookups"
},
"meta": {
"timestamp": "2026-11-12T00:00:00.000Z",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}{
"error": {
"code": "HTTP_ERROR",
"message": "IP2Company credit allowance exhausted"
},
"meta": {
"timestamp": "2026-11-12T00:00:00.000Z",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}{
"error": {
"code": "HTTP_ERROR",
"message": "IP2Company temporarily unavailable"
},
"meta": {
"timestamp": "2026-11-12T00:00:00.000Z",
"request_id": "11111111-1111-4111-8111-111111111111"
}
}See IP2Company lookup, polling, and credits for request examples and how to interpret ISP data, freshness, reservations, and errors.
Authorizations
Query Parameters
Response
Saved or missing lookup with current credit balance; ISP data is free and may include a pending refresh.
Refresh state for saved data, including HTTP 200 responses. pending confirms accepted unfinished work; deferred requires retrying POST after pollAfterSeconds; not_requested means this read started no refresh; not_needed means no refresh is required. Null without saved data. stale independently describes the saved result age.
Available options:
not_needed, not_requested, pending, deferred, null Was this page helpful?