domainIQ offers an API interface that can be used to access commonly-used tools and services available on the site. The API can be accessed by a wide range of scripts using simple HTTP GET and POST requests.
Use of the API requires a current, valid domainIQ account. All paid account types include API access. The features available in the API are the same as the ones offered through the site, and the API uses the same account-based limits. In other words, queries performed using the API to access services that have daily, monthly or count-based limits will be the asme as their web equivalents.
Interaction with the API is performed using HTTP (web) requests. Parameters to the API may be sent via either GET or POST; note, however, that larger requests should be sent using POST.
The API endpoint is https://www.domainiq.com/api
. All requests to the API will use this URL.
Authentication to the API is performed using a 32-character key, which is available under the Tools page. Click here to view or change your key.
Keep your key safe and treat it as you would a password. Remember that while you can change your key at any time, doing so will immediately deactivate the previous one.
API requests consist of at least two parameters: the API key, the service name, and, in almost all cases, one or more service parameters.
An example API request might look something like this:
https://www.domainiq.com/api?key=sample&service=domain_report&domain=google.com
At a minimum, the key
and service
parameters are required.
Results from the API are returned in XML format. Some services can provide other output modes, such as CSV or text. Available output modes for each service are specified below. If the specified mode is unavailable for the service, the default XML format will be used.
Pass the output_mode
parameter to the API to specify the mode of output for the results. Valid output modes include:
xml
: standard XML outputjson
: standard JSON outputcsv
: CSV output; fields enclosed by "
and separated by ,
.ini
: INI file format output. Any tool that can produce output in CSV format can also use the INI format. Note that INI records will include an extra record_index
property for each row (starting at 1).The API is intended primarily for automated use, but it can also be used in a web browser.
For JSON output modes, we recommend using a JSON formatting plugin such as this one for Chrome. Most browsers will automatically format XML for readability.
If you wish to download an API request as a file, pass the parameter as_file=1
with your request. For example:
https://www.domainiq.com/api?key=sample&service=whois&domain=google.com&output_mode=xml&as_file=1
will result in a file download titled API.whois.NNNNN.xml
(where NNNNN
is a timestamp number).
Some API calls may take longer than a few seconds to execute, depending on the amount and complexity of the data involved. For API calls that are expected to take time, a feature called "queued mode" exists. When you specify queued=1
, the API will instantly return a session token that can be used in subsequent calls to check on the status of a queued call or retrieve its output.
Most API calls can be made in queued mode. See the section below for examples of how to check status and retrieve results.
Note: Results from the queue
service will always default to XML format if CSV or INI format is used, except when calling the results
action, which will return the results of your original API call in the original format you specified.
To start a queued request, use a normal API call and add the queued=1
parameter.
https://www.domainiq.com/api?key=sample&service=domain_report&domain=google.com&queued=1
Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<queue>
<queued>1</queued>
<hash>g1aqpj6c7qdcoe4yiqi9f359vzgu73uu</hash>
</queue>
After starting a queued request, you can check on its status:
https://www.domainiq.com/api?key=sample&service=queue&hash=g1aqpj6c7qdcoe4yiqi9f359vzgu73uu&action=status
Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<queue>
<status>Complete</status>
<output_mode>xml</output_mode>
<last_update>2016-12-29 14:55:52</last_update>
<result_size>231269</result_size>
</queue>
Once the status
call returns Complete, fetch the results of the call:
https://www.domainiq.com/api?key=sample&service=queue&hash=g1aqpj6c7qdcoe4yiqi9f359vzgu73uu&action=results
The contents of the API call will be returned as normal.
Basic summary reports for individual domain names, email addresses, registrant names and IP addresses can be retrieved with the domain_report
, email_report
, name_report
and ip_report
services.
These reports return a variety of fields. Most are fairly self-explanatory in nature.
Call the domain_report
service. Specify the domain name via the domain
parameter.
https://www.domainiq.com/api?key=sample&service=domain_report&domain=google.com
Call the name_report
service. Specify the registrant's name via the name
parameter.
https://www.domainiq.com/api?key=sample&service=name_report&name=Jeph+Smythe
Call the organization_report
service. Specify the registrant's name via the organization
parameter.
https://www.domainiq.com/api?key=sample&service=organization_report&organization=My+Company
Call the email_report
service. Specify the email address via the email
parameter.
https://www.domainiq.com/api?key=sample&service=email_report&email=someone@somewhere.com
Call the ip_report
service. Specify the IP address name via the ip
parameter.
https://www.domainiq.com/api?key=sample&service=ip_report&ip=1.2.3.4
The tools in this category allow you to retrieve information in bulk for domain names, IP addresses, MX records and more. They provide functionality equivalent to the services on the Tools page.
Perform a search for domain names matching one or more keywords. Returns domain names with summarized registrant information. All output modes supported; defaults to CSV.
Keyword parameters:
keyword
- specify one or more keywords. To specify multiple keywords, append a number in brackets to the parameter, e.g. keyword[0]
, keyword[1]
, etc.condition
- specify the type of keyword match to use. Available conditions include:
contains
- domain must contain the keyword. This is the default if condition
is omitted.starts
- domain must begin with the keyword.ends
- domain (SLD portion) must end with keyword.does_not_contain
- domain must not contain keyword.does_not_start_with
- domain must not begin with keyword.does_not_end_with
- domain (SLD portion) must not end with keyword.match
- when multiple keywords are specified, you can control whether all of them must match, or just one of them, by passing any
or all
. Default is any
.Result control parameters:
count_only
- if included, the API call will just return a count of all matched domain names without details. You can re-run the call without the parameter to fetch the full results, which will be cached automatically.exclude_dashed
- set to 1
to exclude domains with dashes (-
).exclude_numbers
- set to 1
to exclude domains with numbers (0 through 9).exclude_idn
- set to 1
to exclude IDN domains (domains that begin with xn--
).min_length
- numeric; the minimum permitted match length (excluding TLD).max_length
- numeric; the maximum permitted match length (excluding TLD).min_create_date
and max_create_date
- string; filter the results by minimum and/or maximum WHOIS creation date. Dates should be in YYYY-MM-DD format.limit
- limit the number of results. Defaults to the maximum number of results available for your account.If specifying multiple keywords, you can specify multiple conditions by matching the number appended to keyword
. For example, condition[1]
corresponds to keyword[1]
.
This tool is rate-limited. Users are allowed a maximum of three concurrent domain search API calls. See below for an example of a rate-limited output.
Simple example: find all domains containing "glengarry":
https://www.domainiq.com/api?key=sample&service=domain_search&keyword=glengarry
Retrieving just the count of found domains for the above search:
https://www.domainiq.com/api?key=sample&service=domain_search&keyword=glengarry&count_only=1
More advanced example: find domains that either begin with "baseball" or contain "football".
https://www.domainiq.com/api?key=sample&service=domain_search&keyword[0]=baseball&condition[0]=starts&keyword[1]=basketball&condition[1]=contains&match=any
Another advanced example: find domains that begin with "first" and end with "bank".
https://www.domainiq.com/api?key=sample&service=domain_search&keyword[0]=first&condition[0]=starts&keyword[1]=bank&condition[1]=ends&match=all
Example output:
domain | tld | sld_length | whois_registrant | whois_emails | whois_age | dns |
---|---|---|---|---|---|---|
glengarryouthouses.com | com | 19 | Julia Lucio | jmlucio@versacore.info | 1 | NS671.VERSACOREHOSTING.COM |
glengarryheritagecentre.com | com | 24 | Robert MacCallum | domains@maccallum.co.uk | 7 | NS1.TURBODNS.CO.UK |
glengarrygroupconsulting.com | com | 25 | Mackintosh, Scott | smackintosh@sympatico.ca | 6 | NS1.SHIFTIDEAS.COM |
glengarryfinecheese.com | com | 20 | Margaret Morris | domain@360elements.ca,domain@360elements.com | 5 | NS1.JTEC.CA |
98glengarry.com | com | 12 | Jolene Van Dyk | tech@point2homes.biz,jolenevandyk@deerbrookrealty.com | 0 | NS1.POINT2.COM |
glengarrybrewing.com | com | 17 | David Hladky | dhladky@gmail.com | 0 | NS1.APLUS.NET |
glengarryhighlands.net | net | 19 | Jason Martinez | jason@thestarrconspiracy.com | 1 | NS47.DOMAINCONTROL.COM |
Example count-only output:
<`?`xml version="1.0" encoding="UTF-8"?>
<count>196</count>
If too many other concurrent domain search API calls are active for your account, you will receive the following error:
<`?`xml version="1.0" encoding="UTF-8"?>
<error>
<error>Too many other concurrent domain searches. Please wait for the other searches to complete.</error>
<concurrent_error>1</concurrent_error>
<concurrent_sessions>3</concurrent_sessions>
</error>
Perform a search for registrant names, email addresses, or organization names using a wildcard match. Returns a list of names or email addresses with the total number of domain names associates with each entity. XML and JSON output supported.
This advanced service is only available for certain account types. Please contact us if you wish to enable it for your account.
Parameters:
type
- the search type. Options include email
, name
or org
.search
- the search phrase. Remove all spaces and other punctuation for names; email addresses may contain alphanumeric characters and '-', '_', .
and @
.match
- the match type. Defaults to contains
; other options are begins
or ends
.The service will return up to 100 results, sorted by number of associated domain names, from a maximum result set of 10,000. If your search criteria is too broad, a message will appear indicating that the total result set is too large for sorting and your criteria may want to be refined as a result.
Note: the match type will affect the speed of the search. begins
matches are generally much faster than contains
or ends
matches, which may take a minute or more to complete processing.
Registrant name example: find all registrant names containing "Gary Smith".
https://www.domainiq.com/api?key=sample&service=reverse_search&type=name&search=garysmith
Email example: find all email addresses at the @microsoft.com
domain name.
https://www.domainiq.com/api?key=sample&service=reverse_search&type=email&search=@microsoft.com&match=ends
Example output:
<`?`xml version="1.0" encoding="UTF-8"?>
<results>
<message>27 total results found</message>
<items>
<item>
<item>GARY SMITH</item>
<domain_count>3196</domain_count>
</item>
<item>
<item>GARY SMITH JR</item>
<domain_count>72</domain_count>
</item>
...
</items>
</results>
Find all domains hosted on a DNS (domain nameserver) hostname. Returns domain names, whois registrant and emails, associated counts for registrants and emails, and domain registrars. All output modes supported; defaults to CSV.
Parameters:
domain
- the domain name of the DNS host to look up. Can be a complete DNS hostname (e.g. ns1.google.com
) or just a domain name (e.g. yahoo.com
).Example: find all domains hosted on the DNS host science.com
.
https://www.domainiq.com/api?key=sample&service=reverse_dns&domain=science.com
Sample output:
domain | ip | whois_registrant | whois_registrant_domain_count | whois_email | whois_email_domain_count | whois_registrar |
---|---|---|---|---|---|---|
pchbingo.org | 164.109.20.13 | publishers clearing house | 753 | domainadmin@pchmail.com | 275 | Network Solutions, LLC |
educatedape.com | 54.221.211.154 | christopher joseph | 51 | contact@chrisjoseph.com | 16 | MISK.COM, INC. |
todayshealthjournal.com | 68.64.49.76 | private registrant | 30205611 | 97d59c.protect@whoisguard.com | 1 | ENOM, INC. |
lawdrill.net | 69.25.5.93 | greenberg traurig | 278 | chidomainmanagement@gtlaw.com | 403 | NETWORK SOLUTIONS, LLC. |
radiostream123.com | 87.117.217.45 | private registrant | 30205611 | radiostream123.com@domainsbyproxy.com | 1 | GODADDY.COM, LLC |
gaggleamp.biz | 50.63.202.14 | glenn gaudet | 10 | glenn@gaggleamp.com | 7 | : GODADDY.COM, INC. |
thestreetratings.org | 107.23.91.192 | thestreet.com, inc. | 250 | internic-admin@thestreet.com | 92 | Network Solutions, LLC |
kayanetticaret.com | 46.165.204.241 | ali mert kaya | 1 | mrtkaya_2@hotmail.com | 1 | IHS TELEKOM, INC. |
ruudpaybills.com | 63.76.193.153 | rheem webmaster | 23 | webmaster@rheem.com | 45 | DNC Holdings, Inc. |
ordershredz.com | 184.168.221.3 | arvin lal | 34 | admin@getshredz.com | 102 | GODADDY.COM, LLC |
Find all domains on an IP address, subnet, block, IP range or domain name (which will be resolved to an IP address). Returns domain names, whois registrant and emails, associated counts for registrants and emails, and domain registrars. Defaults to CSV output, but all output modes are supported.
Parameters:
type
- possible values include:
ip
- find domains on an IP address.subnet
- find domains on a subnet (e.g. 1.1.1.1 - 1.1.1.255).block
- find domains on a block (e.g. 1.1.1.1 - 1.1.255.255).range
- find domains with IP addresses in the specified range. Separate IP addresses with -
.domain
- find domains on a domain's IP address. The domain will be resolved to an IP address automatically.data
- an IP address (e.g. 12.34.56.78), subnet (e.g. 12.34.45), block, (e.g. 12.34), range (e.g. 12.34.56.78-12.34.56.90), or domain name (will be resolved to IP).IP example: find all domains on the IP address 4.3.2.1.
https://www.domainiq.com/api?key=sample&service=reverse_ip&type=ip&data=4.3.2.1
Range example: find all domains between IP addresses 4.3.2.1 and 4.3.2.21.
https://www.domainiq.com/api?key=sample&service=reverse_ip&type=range&data=4.3.2.1-4.3.2.21
Subnet example: find all domains on subnet 4.3.2.0 (all IPs between 4.3.2.1 and 4.3.2.254).
https://www.domainiq.com/api?key=sample&service=reverse_ip&type=subnet&data=4.3.2.0
Domain example: find all domains on domain sampledomain.com
's IP address.
https://www.domainiq.com/api?key=sample&service=reverse_ip&type=domain&data=sampledomain.com
Sample output:
domain | ip | whois_registrant | whois_registrant_domain_count | whois_email | whois_email_domain_count | whois_registrar | create_date |
---|---|---|---|---|---|---|---|
townofgravity.com | 4.3.2.1 | joe grinnell | 3 | dns@grinnell.net | 2 | GODADDY.COM, LLC | |
legendarygraphics.com | 4.3.2.1 | private registrant | 30205611 | proxy145947@1and1-private-registration.com | 1 | 1 & 1 Internet AG | 2012-01-02 |
telephant.org | 61.114.155.50 | limited liability company "data express" | 3 | tolik@dataxp.net | 2 | Regional Network Information Center, JSC dba | 2014-04-06 |
misterpinganillos.com | 87.106.194.92 | juan antonio ibanez santorum | 8 | juanito1982@gmail.com | 8 | 1 & 1 Internet AG | 2009-12-21 |
crowdcode.net | 4.3.2.1 | private registrant | 30205611 | crowdcode.net+t@privatedomainaccounts.com | 1 | BADGER INC | 2013-04-04 |
Find all domains using a particular mail server by IP address, IP address range or mail server hostname. Returns domain names, MX server IP address and hostname, whois registrant and emails, associated counts for registrants and emails, and domain registrars. Defaults to CSV output, but all output modes are supported.
Parameters:
type
- possible values include:
hostname
- find domains using the specified MX hostname.ip
- find domains using a MX server on an IP address.subnet
- find domains using a MX server on a subnet (e.g. 1.1.1.1 - 1.1.1.255).block
- find domains using a MX server on a block (e.g. 1.1.1.1 - 1.1.255.255).range
- find domains using a MX server with IP addresses in the specified range. Separate IP addresses with -
.data
- an IP address (e.g. 12.34.56.78), subnet (e.g. 12.34.45), block, (e.g. 12.34), range (e.g. 12.34.56.78-12.34.56.90), or domain name (will be resolved to IP).recursive
- if specified, recursively check MX hostnames to discover more domains.Hostname example: find all domains on the mail server hostname msgin.vvv.facebook.com
.
http://domainiq.com/api?key=sample&service=reverse_mx&type=hostname&data=msgin.vvv.facebook.com
Range example: find all domains on MX servers with IP addresses between 4.3.2.1 and 4.3.2.21.
https://www.domainiq.com/api?key=sample&service=reverse_mx&type=range&data=4.3.2.1-4.3.2.21
Sample output:
domain | mx_ip | mx_hostname | whois_registrant | whois_registrant_domain_count | whois_email | whois_email_domain_count | whois_registrar | create_date |
---|---|---|---|---|---|---|---|---|
facebook.com | 66.220.155.14 | msgin.t.facebook.com. | facebook, inc. | 1067 | domain@fb.com | 1081 | MARKMONITOR INC. | 2001-01-02 |
facebookappmail.com | 66.220.155.15 | msgin.t.facebook.com. | facebook, inc. | 1067 | domain@fb.com | 1081 | MARKMONITOR INC. | 2004-01-01 |
facebookmx.com | 69.171.244.12 | msgin.t.facebook.com. | facebook, inc. | 1067 | domain@fb.com | 1081 | MARKMONITOR INC. | 2009-01-02 |
facebookmail.com | 69.171.244.12 | msgin.t.facebook.com. | facebook, inc. | 1067 | domain@fb.com | 1081 | MARKMONITOR INC. | 2012-01-02 |
Note that bulk tools often involve sending and receiving large amounts of data, and some bulk tools may take a long time to complete depending on the amount of data being processed. You may want to use POST requests to send input data. If you expect a request to take a long time to process, you may want to use the queued request mode (described above in the Normal versus Queued requests section above).
The bulk DNS lookup tool can be used to look up the DNS hosts for many domains at once. It is equivalent to the Bulk DNS tool. CSV output only.
Most accounts are limited to a certain number of bulk DNS lookups per day. Refer to your account's Limits page or the output of the limits
service to see how many remain.
Parameters:
domains
- one or more domain names. Separate multiple domain names with >>
.Example: look up the DNS hosts for a list of domains.
https://www.domainiq.com/api?key=sample&service=bulk_dns&domains=red.com>>green.com>>blue.com>>black.com>>white.com>>yellow.com>>orange.com
Sample output:
domain | dns_1 | dns_2 |
---|---|---|
orange.com | l4.nstld.com | a4.nstld.com |
red.com | ns2.p09.dynect.net | ns1.p09.dynect.net |
black.com | ns2.voxel.net | ns3.voxel.net |
yellow.com | ns-756.awsdns-30.net | ns-1575.awsdns-04.co.uk |
blue.com | ns2.digitalocean.com | ns1.digitalocean.com |
white.com | ns1.yours.pl | ns2.yours.pl |
The bulk WHOIS lookup tool allows you to retrieve WHOIS data for a number of domains or IP addresses at once. Data is returned in CSV format.
This tool is limited to a certain number of lookups per day. Refer to your account's Limits page or the output of the limits
service to see how many remain. Additional daily credits can be purchased and we offer a variety of standard or custom upgrade options to increase the limit -- contact us for more details.
Parameters:
type
- the type of lookup to perform. Possible options:
live
- live WHOIS lookup. The slowest of the three options; also provides the most up-to-date data. Default.registry
- live registry-only WHOIS lookup. Does not contain contact information or other details. Only affects COM, NET and other domains that have WHOIS records consisting of both registry- and registrar-level data.cached
- cached WHOIS lookup. Much faster than live
or registry
; contains full data but may be out of date by up to 30 days.domains
or ips
- one or more domain names or IP addresses (IPv4 or IPv6). Because of differences in fields, a batch should contain only domain names or IP addresses, not both.Example: look up WHOIS data for a set of domain names.
https://www.domainiq.com/api?key=sample&service=bulk_whois&domains=red.com>>green.com>>blue.com>>white.com>>orange.com>>black.com>>yellow.com
The tool generates a report comprising all data in the WHOIS record (typically 47 columns total). Abbreviated sample output:
domain | status | registrar | creation_date | expiration_date | update_date |
---|---|---|---|---|---|
blue.com | CLIENTTRANSFERPROHIBITED | DOMAIN.COM, LLC | 11/7/1996 | 10/29/2019 | 2/20/2015 |
red.com | CLIENTDELETEPROHIBITED | DNC HOLDINGS, INC. | 10/27/1992 | 10/26/2021 | 11/20/2013 |
green.com | CLIENTDELETEPROHIBITED | MARKMONITOR INC. | 2/10/1999 | 5/20/2015 | 4/18/2014 |
black.com | CLIENTTRANSFERPROHIBITED | NETWORK SOLUTIONS, LLC. | 9/25/1994 | 9/24/2023 | 11/26/2014 |
yellow.com | CLIENTTRANSFERPROHIBITED | ENOM, INC. | 8/19/1994 | 8/18/2015 | 10/21/2014 |
white.com | CLIENTTRANSFERPROHIBITED | FABULOUS.COM PTY LTD. | 11/17/1996 | 11/16/2019 | 11/3/2014 |
orange.com | CLIENTTRANSFERPROHIBITED | CSC CORPORATE DOMAINS, INC. | 12/9/1993 | 12/8/2015 | 12/4/2014 |
This tool resolves domain names to IP addresses and checks ownership information and geolocation for the IPs. The API equivalent of the Bulk WHOIS IP Research tool.
Note that this tool is different than the Bulk WHOIS tool above -- if you want to look up WHOIS data for a set of IP addresses, use Bulk WHOIS instead.
This tool is limited to a certain number of lookups per day. Refer to your account's Limits page or the output of the limits
service to see how many remain.
Parameters:
domains
- one or more domain names. Separate multiple domain names with >>
.Example: look up IP WHOIS information for a set of domain names.
https://www.domainiq.com/api?key=sample&service=bulk_whois_ip&domains=red.com>>blue.com>>white.com>>orange.com>>black.com>>yellow.com
Full CSV output contains geolocation details for ISP and organization, when available. Abbreviated sample output:
domain | ip | mx_hostname | mx_ip | dns | whois_ip_isp | whois_ip_org | |
---|---|---|---|---|---|---|---|
orange.com | 94.124.133.192 | relais-ias241.francetelecom.com. | 80.12.204.241 | k4.nstld.com. | OAB | france | |
black.com | 72.26.208.183 | mail.black.com. | 72.26.208.183 | ns.voxel.net. | Voxel Dot Net, Inc. | Voxel Dot Net, Inc. | |
blue.com | mx.dotster.com. | 66.96.140.88 | ns3.digitalocean.com. | ||||
white.com | 193.105.29.73 | ns1.yours.pl. | Yours sp. z o.o. | warszawa | |||
red.com | 216.146.46.11 | red.com.inbound15.mxlogicmx.net. | 127.255.255.255 | ns3.p09.dynect.net. | Dynamic Network Services, Inc. | Dynamic Network Services, Inc. | |
yellow.com | 54.88.24.144 | ns-426.awsdns-53.com. | Amazon Technologies Inc. | Seattle |
The monitoring API service can be used to retrieve a list of active monitors, items within a monitor, and changes detected on items.
All calls to the monitoring service are made to the monitor
service. Specify the type of monitor call with the action
parameter.
XML and JSON output modes are supported for monitoring calls.
Use the action=list
call to retreive a list of active monitoring reports. This is the equivalent of visiting the http://www.domainiq.com/monitor page.
https://www.domainiq.com/api?key=sample&service=monitor&action=list
Each monitor has a report
identifier that can be used in other calls. Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<reports>
<item>
<report>163</report>
<type>Keyword</type>
<name>My Keywords</name>
<item_count>1</item_count>
<last_alert_date>2015-02-18 18:10:04</last_alert_date>
</item>
<item>
<report>164</report>
<type>Registrar</type>
<name>My Registrars</name>
<item_count>1</item_count>
<last_alert_date>2015-02-18 12:00:32</last_alert_date>
</item>
<item>
<report>165</report>
<type>Email/Registrant</type>
<name>Set 1</name>
<item_count>1</item_count>
<last_alert_date>2015-02-04 18:05:06</last_alert_date>
</item>
...
</reports>
Use the action=report_items
call to retrieve a list of items within a monitor. Specify a report
parameter that matches the report
parameter returned from an entry in the action=list
call (e.g. report 163, 164 or 165 in the above output).
https://www.domainiq.com/api?key=sample&service=monitor&action=report_items&report=163
Each monitor item has an item
identifier that can be used in other calls. Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<items>
<item>
<item>51541</item>
<type>Keyword</type>
<monitor_name>My Keywords</monitor_name>
<data>science</data>
<monitor_start_date>2014-10-29</monitor_start_date>
<last_alert_date>2015-02-18 18:10:04</last_alert_date>
</item>
...
</items>
Next, use the action=report_summary
call to get a summary of daily changes detected for a given report item. You can pass a report
parameter to get a summary of all changes in a monitor (e.g. 163 above) or an item
parameter to get a summary of changes for a specific monitor item (e.g. 51541 above). Optionally, you can specify a range
parameter to limit the summary to a certain number of days in the past.
Example: fetch a summary of all changes for all items in report
163.
https://www.domainiq.com/api?key=sample&service=monitor&action=report_summary&report=163
Example: fetch a summary of all changes for item
51541.
https://www.domainiq.com/api?key=sample&service=monitor&action=report_summary&report=163&item=51541
Example: same as the first example, but limit to the last 15 days.
https://www.domainiq.com/api?key=sample&service=monitor&action=report_summary&report=163&range=15
Each daily change has a change
identifier. Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<changes>
<item>
<change>67</change>
<keyword>science</keyword>
<domains_added_count>37</domains_added_count>
<alert_date>2014-10-29</alert_date>
</item>
<item>
<change>71</change>
<keyword>science</keyword>
<domains_added_count>39</domains_added_count>
<alert_date>2014-10-30</alert_date>
</item>
...
</changes>
Finally, to get a list of the items changed in a daily change report, make a call with the action=report_changes
parameter.
Example: fetch a list of items changed on the 29th (change number 67 in the above example).
https://www.domainiq.com/api?key=sample&service=monitor&action=report_changes&report=163&change=67
Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<change_details>
<item>
<domain>ameresciences.com</domain>
<registrar>eNom</registrar>
<registrant>Whois Agent</registrant>
<emails>jmpcyqrmgq@whoisprivacyprotect.com</emails>
<dns>DNS1.NAME-SERVICES.COM</dns>
<create_date>2014-10-26</create_date>
<report_date>2014-10-29</report_date>
</item>
<item>
<domain>audioscience.org</domain>
<registrar>GoDaddy</registrar>
<registrant>Jason Guppy</registrant>
<emails>jasonguppy@comcast.net</emails>
<dns>NS69.DOMAINCONTROL.COM</dns>
<create_date>2014-10-26</create_date>
<report_date>2014-10-29</report_date>
</item>
...
</change_details>
Monitored items are grouped into reports. The API can be used to create a new report to which new items can be added.
Parameters:
type
- the type of report to add. Valid types include domain
, dns
, registrant
, organization
, email
, registrar
, keyword
, ip
, and domain ip
. See the Add Monitor page for an explanation of each type.name
- the name to assign to the report.email_alert
- optional - controls whether or not changes in this report will be included in your account's daily monitoring alert email summary. Defaults to on. Pass email_alert=0
to disable.The number of monitoring reports you can create is dependent on your account. If your account's limit is reached, an error message will be returned; otherwise, upon successful creation of a new report, the report's numeric ID will be returned.
Example: create a new domain report titled "CorporateDomains".
https://www.domainiq.com/api?key=sample&service=monitor&action=report_create&type=domain&name=CorporateDomains
Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<result>
<success>1</success>
<report_id>112233</report_id>
</result>
One or more items can be added to an existing monitoring report using the API.
Parameters:
report_id
- the ID of the report to which the item(s) should be added.type
- the type of report to add. Valid types include domain
, dns
, registrant
, organization
, email
, ip
, and domain ip
. See the Add Monitor page for an explanation of each type.item
or items
- a list of items to add. Item format is dependent on the type selected. Separate multiple items with >>
.The number of items you can monitor of a specific type is dependent on your account's permission levels. If your account's limit is reached for a particular type, an error message will be returned.
Item values and optional attributes for each type:
domain
: one or more domain names.
domain_alert
parameter, with one or more of the following to specify which change types should produce alerts, separated by commas:
emails
registrar
dns
create date
expire date
update date
dns
: one or more DNS servers. Subdomains are not required and will be automatically removed if present; DNS servers are monitored by root domain.registrant
: one or more registrant names.organization
: one or more registrant organization names.email
: one or more registrant email addresses.registrar
: one or more registrar names.
ip
: one or more IP addresses.domain_ip
: one or more domain names (for IP monitoring).keyword
: one or more keywords.
match_types
: a set of match types for each keyword supplied in item
or items
. Separate match types with
>>
. Possible match types include contains
, starts
and ends
.join_types
: for more than one keyword, a set of join types. Must supply one join type for each keyword.
Possible join types are AND
and OR
.use_typos
: boolean; if enabled, also monitors for a set of typo variations for the keyword.typo_strength
: integer from 4 to 41; controls the variance and quantity of typo monitoring. Required when
use_typos
is specified.include_added
: boolean; defaults to true. Controls whether or not new domain registrations are monitored.include_deleted
: boolean; defaults to true. Controls whether or not domain drops are monitored.Filter parameters, available for some monitoring types, allow you to fine-tune the results you'd like to target or exclude. Filter options include:
filter_tld_in
, filter_tld_out
: accept or reject results by TLDfilter_keyword_in
, filter_keyword_in
: accept or reject by keyword (anywhere in domain name)filter_registrar_in
, filter_registrar_out
: accept or reject by registrar namefilter_dns_in
, filter_dns_out
: accept or reject by DNS serverfilter_email_in
, filter_email_out
: accept or reject by email addressfilter_registrant_in
, filter_registrant_out
: accept or reject by email addressexclude_dash
: disallow domains containing dashes (-
)exclude_num
: disallow domains containing numbers (0
through 9
)exclude_idn
: disallow IDN domains (domains starting with xn--
)Note that all filters are inclusive; all results must match all filter criteria to be included. For example:
filter_tld_in=net&filter_keyword_in=science&filter_keyword_out=top
That set of filters will only match domains with the .net
TLD, containing the keyword science
, and not containing
the keyword top
.
Note that the report to which you're adding items must match the type of the item you're adding. Exceptions are email and registrant items, which can be combined in the same report.
Example: monitor a domain name.
https://www.domainiq.com/api?key=sample&service=monitor&action=report_item_add&report_id=112233&type=domain&item=domainiq.com&domain_alert=emails,registrar,dns
Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<success>1</success>
<affected_items>1</affected_items>
It's possible to programatically control a keyword monitor report item's typo detection using this API call. Reference the keyword monitor by its item ID, available via the report_items
call in the item
attribute.
Parameters:
report_id
: the ID of the monitoring report in which the item is contained.item_id
: the ID of the monitoring item.strength
: optionally specify the typo detection strength. This value can range from 5 to 41. The typo detection algorithm generally controls the number of typos generated; a value of 20 will generate between 17 and 22 typo variants. Defaults to 41 (100%) if not specified.Example: enable typo monitoring for a keyword report item with 50% (21) strength.
https://www.domainiq.com/api?key=sample&service=monitor&action=enable_typos&report_id=112233&item_id=223344&strength=21
Example: disable typo monitoring for a keyword report item.
https://www.domainiq.com/api?key=sample&service=monitor&action=disable_typos&report_id=112233&item_id=223344
Additionally, it is possible to modify the strength of a keyword monitor with typo detection enabled. Reference the keyword monitor by its item ID, available via the report_items
call in the item
attribute.
Parameters:
report_id
: the ID of the monitoring report in which the item is contained.item_id
: the ID of the monitoring item.strength
: optionally specify the typo detection strength. This value can range from 5 to 41. The typo detection algorithm generally controls the number of typos generated; a value of 20 will generate between 17 and 22 typo variants. Defaults to 41 (100%) if not specified.Example: change the typo monitoring strength of a keyword report item to 41 (100%).
https://www.domainiq.com/api?key=sample&service=monitor&action=modify_typo_strength&report_id=112233&item_id=223344&strength=21
Use this call to remove an individual monitoring item from a monitoring report. Reference the item by its item ID,
available via the report_items
call in the item
attribute.
Note: this action is permanent and cannot be undone. All history associated with the monitoring item will be removed.
Parameters:
item_id
: the ID of the monitoring item to remove.Example: remove a monitoring item with ID 223344
.
https://www.domainiq.com/api?key=sample&service=monitor&action=report_item_delete&item_id=223344
Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<success>1</success>
<affected_items>1</affected_items>
Use this call to remove an entire monitoring report, including all monitoring items it may contain. Reference the
report by its report ID, available via the list
call in the report
attribute.
Note: this action is permanent and cannot be undone. All history associated with all monitoring items within the report will be removed.
Parameters:
report_id
: the ID of the monitoring report to remove.Example: remove a monitoring report with ID 332211
.
https://www.domainiq.com/api?key=sample&service=monitor&action=report_delete&report_id=332211
Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<success>1</success>
<affected_items>10</affected_items>
If you only require WHOIS records for a domain name or IP address, the whois
service can be used to perform a live lookup and return the parsed and raw contents of a domain or IP's WHOIS record.
This service uses your daily WHOIS lookup limit. Check your limits here.
Available parameters:
domain
- the domain name for WHOIS lookup.ip
- IP address for WHOIS lookup.full
- whether to retrieve a full or abbreviated record.current_only
- if equal to 1
, only use current WHOIS record. Only applies to full
mode.The full
parameter can be used to control the type of result received from the API. Omitting the parameter will result in a
simple parsed version of the WHOIS record as it currently appears for the domain, while passing the full=1
parameter will
return a more thoroughly-parsed version of the result that will match what appears on a domain report. Unless current_only=1
is specified, full mode will also attempt to present complete details for parsed fields using past registration records in
situations where the domain's registrar is not returning complete fields.
Example: fetch the parsed WHOIS data for google.com
.
https://www.domainiq.com/api?key=sample&service=whois&domain=google.com
Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<result>
<domain>google.com</domain>
<status>ServerUpdateProhibited,ServerTransferProhibited,ClientDeleteProhibited,ServerDeleteProhibited,clientTransferProhibited,ClientUpdateProhibited</status>
<registrar>MARKMONITOR INC.</registrar>
<registrar_url>http://www.markmonitor.com</registrar_url>
<ns_1>NS1.GOOGLE.COM</ns_1>
<ns_2>NS2.GOOGLE.COM</ns_2>
<creation_date>1997-09-15</creation_date>
<expiration_date>2020-09-14</expiration_date>
<update_date>2011-07-20</update_date>
<tasting_registrar>No</tasting_registrar>
<emails>abusecomplaints@markmonitor.com,contact-admin@google.com,dns-admin@google.com</emails>
<phones>1.2083895740,1.6502530000,1.6506188571,1.6506234000,1.6503300100,1.6506181499,1.8007459229</phones>
<registrant>Dns Admin</registrant>
<raw>
Domain Name: GOOGLE.COM
Registrar: MARKMONITOR INC.
Sponsoring Registrar IANA ID: 292
...
</raw>
</result>
Look up live DNS records for the specified domain or hostname. The query will return all detected records by default; individual record type(s) can be specified with the type
or types
parameters. XML and JSON output is supported.
Parameters:
q
- hostname or domain for which DNS records will be queried.type
or types
- optional; specify which type (singular) or types (plural, comma-delimited) of DNS records to detect. The default is to detect all record types. See below for a list of supported types.Supported DNS record types include A
, A6
, AAAA
, CNAME
, HINFO
, MX
, NAPTR
, NS
, PTR
, SOA
, SRV
, TXT
.
Example: find all DNS records associated with www.science.com
.
https://www.domainiq.com/api?key=sample&service=dns&q=www.science.com
Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<results>
<item>
<host>redirectserver.aaas.org</host>
<class>IN</class>
<ttl>884</ttl>
<type>A</type>
<ip>198.151.217.186</ip>
</item>
<item>
<host>www.science.com</host>
<class>IN</class>
<ttl>884</ttl>
<type>CNAME</type>
<target>redirectserver.aaas.org</target>
</item>
</results>
Analyze one or more domains and attempt to categorize them.
This service uses your daily WHOIS lookup limit. Check your limits here.
Parameters:
domain
or domains
- one or more domain names. Separate multiple domains with >>
.Example: fetch the category for freshdonuts.com
.
https://www.domainiq.com/api?key=sample&service=categorize&domain=freshdonuts.com
Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<result>
<item>
<domain>freshdonuts.com</domain>
<category>Food -- Baked Goods</category>
</item>
</result>
You can use the snapshot
service to fetch a current or recently-cached snapshot of a domain name's contents.
Parameters:
domain
- the domain name to snapshot. full=1
- if specified, return a full image of the page. The default behavior is to return a 250x125 thumbnail.no_cache=1
- if specified, do not use a recently-cached image and always fetch a new snapshot.raw=1
- if specified, return a raw PNG or JPEG image directly instead of a URL to the generated image.width
and height
- when generating a thumbnail (the default behavior), specify the width and height of the thumbnail in pixels. Default is 250x125. Minimum 100, maximum 640.Example: fetch a 250x125 thumbnail of the specified domain.
https://www.domainiq.com/api?key=sample&service=snapshot&domain=msn.com
Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<snapshot>http://www.domainiq.com/cache/snapshots/apisnap.msn.com.14f1.png</snapshot>
Example: fetch a full-size image of the specified domain. Return the image directly.
https://www.domainiq.com/api?key=sample&service=snapshot&domain=msn.com&full=1&raw=1
The snapshot_history
service can be used to retrieve a list of archived snapshots for the specified domain name. The service will return a list of available snapshots with URLs to retrieve thumbnails and full-size images.
Parameters:
domain
- the domain name to look up.width
and height
- specify the width and height of the thumbnail images. Default is 250x125. Minimum 100, maximum 640.limit
- limit the results to a specified number. Default is 10; maximum is 50.Example: fetch the last 10 available snapshots for the specified domain.
https://www.domainiq.com/api?key=sample&service=snapshot_history&domain=msn.com
Sample output:
<`?`xml version="1.0" encoding="UTF-8"?>
<snaps>
<item>
<domain>msn.com</domain>
<format>jpeg</format>
<date>2012-08-22 16:42:57</date>
<img_url_thumb>http://snapshots.domainiq.com/img.php?domain=MSN.COM&width=250&height=125&img=...</img_url_thumb>
<img_url_full>http://snapshots.domainiq.com/img.php?domain=MSN.COM&full=1&img=...</img_url_full>
</item>
<item>
<domain>msn.com</domain>
<format>png</format>
<date>2013-04-26 00:32:41</date>
<img_url_thumb>http://snapshots.domainiq.com/img.php?domain=MSN.COM&width=250&height=125&img=...</img_url_thumb>
<img_url_full>http://snapshots.domainiq.com/img.php?domain=MSN.COM&full=1&img=...</img_url_full>
</item>
...
</snaps>