A powerful lookup service that offers APIs to check and validate IPs, Phone numbers, and Emails.
Detect if the user's IP is from a VPN. Check if the email is deliverable. Lookup if the user's phone number exists.
Ensure users don't deceive your system by using a VPN to redeem multiple freebies and validate the IP, email, and phone at registration or transaction stages for risk assessment.
curl -X POST "https://lookup.im/api.php" -d "action=checkIP&ip=8.8.8.8&token=your_token"
$url = 'https://lookup.im/api.php';
$post_data = array(
'action' => 'checkIP',
'ip' => '8.8.8.8',
'token' => 'your_token'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$response = curl_exec($ch);
curl_close($ch);
URL url = new URL("https://lookup.im/api.php");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
String data = "action=checkIP&ip=8.8.8.8&token=your_token";
con.getOutputStream().write(data.getBytes("UTF-8"));
con.getInputStream();
In case of checkIP
action, if it is VPN, TOR, or
server, the 'status' will be 'found', and 'type' will be one of:
If the status is 'notfound', then the IP belongs to an actual user.
{
"status": "found",
"type": "vpn"
}
Note:
1) Crawlers are legitimate web crawlers from services like Google
and Bing.
2) Lesser Knowns is a more extensive list of IPs that consist of
servers known to host VPNs. The VPN services frequently change these
servers, hence their IPs, and it takes a few days for them to be
included in the VPN list. The Lesser Known list can be used to fill
that gap.
curl -X POST "https://lookup.im/api.php" -d "action=checkEmail&email=test@example.com&token=your_token"
$url = 'https://lookup.im/api.php';
$post_data = array(
'action' => 'checkEmail',
'email' => 'test@example.com',
'token' => 'your_token'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$response = curl_exec($ch);
curl_close($ch);
URL url = new URL("https://lookup.im/api.php");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
String data = "action=checkEmail&email=test@example.com&token=your_token";
con.getOutputStream().write(data.getBytes("UTF-8"));
con.getInputStream();
In case of checkEmail
action, the following keys will be returned with their respective values:
result
: The result of the email check, either 'valid', 'invalid' or 'unknown'.reason
: The reason for the result, e.g. 'rejected_email', 'syntax_error'.is_role
: A boolean value indicating if the email address has a role associated with it (e.g. info@example.com, support@example.com).is_free
: A boolean value indicating if the email address belongs to a free email provider (e.g. gmail.com, yahoo.com).is_accept_all
: A boolean value indicating if the email server accepts all emails sent to it.is_disposable
: A boolean value indicating if the email address is a temporary or disposable address.is_spamtrap
: A boolean value indicating if the email address is a known spam trap.suggestion
: Suggested alternative email address if the provided email contains a possible typo.user
: The user part of the email address (e.g. 'john' in john@example.com).domain
: The domain part of the email address (e.g. 'example.com' in john@example.com).email
: The complete email address (e.g. john@example.com).is_mx_valid
: A boolean value indicating if the mx servers are valid.mx_server
: An array of MX servers associated with the email domain.{
"result": "invalid",
"reason": "rejected_email",
"is_role": false,
"is_free": true,
"is_accept_all": false,
"is_disposable": false,
"is_spamtrap": false,
"suggestion": null,
"user": "baduser",
"domain": "example.com",
"email": "baduser@example.com",
"is_mx_valid": true
"mx_server": ["mx1.example.com"],
}
curl -X POST "https://lookup.im/api.php" -d "action=checkPhone&phone=+919411000005&token=your_token"
$url = 'https://lookup.im/api.php';
$post_data = array(
'action' => 'checkPhone',
'phone' => '+919411000005',
'token' => 'your_token'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$response = curl_exec($ch);
curl_close($ch);
URL url = new URL("https://lookup.im/api.php");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
String data = "action=checkPhone&phone=+919411000005&token=your_token";
con.getOutputStream().write(data.getBytes("UTF-8"));
con.getInputStream();
When making a checkPhone
action, the following keys will be returned with their respective values:
status
: The status of the request, 'success' indicates the request was successfully processed.result
: The result of the phone number check, either 'valid' or 'invalid'.carrier
: The mobile network carrier of the phone number (e.g. 'BSNL/MTNL - Central Gov.'), when the number was first issued.circle
: The telecom circle or region of the phone number (e.g. 'UP (West)').country
: The country associated with the phone number (e.g. 'India').country_code
: The country code of the phone number (e.g. '91').phone
: The complete mobile phone number (e.g. '919411000005').notes
: Additional notes about the phone number.{
"status": "success",
"result": "invalid",
"info": {
"carrier": "BSNL/MTNL - Central Gov.",
"circle": "UP (West)",
"country": "India",
"country_code": "91",
"phone": "919411000005",
"notes": ""
}
}