Provide current and historical ownership information on domains / IPs. Identify all connections between domains, registrants, registrars, and DNS servers.
Look into all current and historical DNS / IP connections between domains and A, MX, NS, and other records. Monitor suspicious changes to DNS records.
Get detailed context on an IP address, including its user’s geolocation, time zone, connected domains, connection type, IP range, ASN, and other network ownership details.
Access our web-based solution to dig into and monitor all domain events of interest.
Get access to a web-based enterprise-grade solution to search and monitor domain registrations and ownership details for branded terms, fuzzy matches, registrants of interest, and more.
Detect and block access to and from dangerous domain names before malicious actors can weaponize them. Contact us today for more information.
Unlock integrated intelligence on Internet properties and their ownership, infrastructure, and other attributes.
Our complete set of domain, IP, and DNS intelligence available via API calls as an annual subscription with predictable pricing.
Offers complete access to WHOIS, IP, DNS, and subdomain data for product enrichment, threat hunting and more.
Multi-Level API User Administration Now Available - Manage individual API keys for team members in your organization.
Learn MoreBulk Whois API provides Whois records for a list of Domains/IPs via a single REST API query. It is designed for server-to-server communication between your system and the WhoisXmlApi.com network using standard HTTP or HTTPS protocols. Query responses are delivered in either XML or JSON format based on your requests which are made via POST methods.
To get started you need an account with WhoisXmlApi.com. Authentication is required each time in order to use the API. The first 500 Bulk Whois API calls are complimentary when you register for a free account.
Provide the JSON-encoded parameters in the request's body, setting the Content-Type header to application/json. Server response will contain the requestId field which you'll need to retrieve the requested WHOIS records.
{
"domains": [
"google.com",
"yahoo.com"
],
"username": "your_username",
"password": "********",
"outputFormat": "JSON"
}
domains |
Required. An array of domains for which WHOIS data is requested |
username |
Required. Your account username |
password |
Required. Your account password. Make sure it is URL-encoded if it contains special characters (&, %, * etc.). |
outputFormat |
Response output format. Acceptable values: JSON | XML Default: XML |
{
"noDataAvailable": false,
"message": "OK",
"messageCode": 200,
"requestId": "ece0f949-c22a-4ecc-..."
}
Since processing all the input domains may take some time, you'll have to repeatedly query this resource until the returned recordsLeft field value is 0.
Set the maxRecords input parameter to 1 if you don't need to monitor each record's progress.
Otherwise, each element of the whoisRecords array contains the whoisRecordStatus field:
{
"requestId": "ece0f949-c22a-4ecc-...",
"maxRecords": 1,
"username": "your_username",
"password": "********",
"startIndex": 1,
"outputFormat": "JSON"
}
username |
Required. Your account username |
password |
Required. Your account password. Make sure it is URL-encoded if it contains special characters (&, %, * etc.). |
requestId |
Required. String. Bulk request identifier. |
maxRecords |
Required. Number. Maximum amount of WHOIS records to be returned. |
startIndex |
Optional. Number. The first WHOIS record to be returned by the server. Acceptable values: 1+ Default: 1 |
outputFormat |
Optional. Response output format. Acceptable values: JSON | XML Default: XML |
{
"requestId": "ece0f949-c22a-4ecc-...",
"username": "your_username",
"password": "********",
"searchType": "all"
}
username |
Required. Your account username |
password |
Required. Your account password. Make sure it is URL-encoded if it contains special characters (&, %, * etc.). |
requestId |
Required. String. Bulk request identifier. |
searchType |
Optional. String. noError lets you filter out records with processing errors, no data etc. Acceptable values: all | noError Default: all |
{
"noDataAvailable": false,
"userRequests": [
{
"requestId": "f1008d3e-7774-495b-...",
"time": 1498282373092,
"status": "Completed",
"totalRecords": 4,
"fetchedRecords": 0
}
]
}
username |
Required. Your account username |
password |
Required. Your account password. Make sure it is URL-encoded if it contains special characters (&, %, * etc.). |
outputFormat |
Optional. Response output format. Acceptable values: JSON | XML Default: XML |
After Sign Up you automatically get a free subscription plan limited to 500 .
We are here to listen. For a quick response, please select your request type. By submitting a request, you agree to our Terms of Service and Privacy Policy.