DomainTools Monitors API
Endpoints for monitoring new domain registrations, changes to IP ranges, and other key infrastructure events based on specific terms.
Endpoints for monitoring new domain registrations, changes to IP ranges, and other key infrastructure events based on specific terms.
openapi: 3.0.0
info:
version: '2.0'
title: dnsdb Flex search Monitors API
description: dnsdb
contact:
name: DomainTools Support
url: https://www.domaintools.com/support
email: enterprisesupport@domaintools.com
license:
name: MIT
url: https://opensource.org/licenses/MIT
termsOfService: https://www.domaintools.com/company/terms-of-service/
servers:
- url: https://api.dnsdb.info/dnsdb/v2
- url: https://dnsdbfront.labs.fsi.io/dnsdb/v2
tags:
- name: Monitors
description: 'Endpoints for monitoring new domain registrations, changes to IP ranges, and other key infrastructure events based on specific terms.
'
paths:
/v1/ip-monitor/:
get:
operationId: getIpMonitor
summary: IP Monitor
description: Receive notifications for new and/or deleted domains on a given IP Address.
tags:
- Monitors
parameters:
- $ref: '#/components/parameters/ipAddressQuery'
- $ref: '#/components/parameters/daysBack'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/appPartner'
- $ref: '#/components/parameters/appName'
- $ref: '#/components/parameters/appVersion'
- $ref: '#/components/parameters/responseFormat'
responses:
'200':
$ref: '#/components/responses/IpMonitorSuccess'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
externalDocs:
url: https://docs.domaintools.com/api/monitors/ip-monitor/
/v1/mark-alert/:
get:
operationId: getBrandMonitor
summary: Brand Monitor
description: Monitor new domain registrations for specific keywords.
tags:
- Monitors
parameters:
- $ref: '#/components/parameters/monitorQuery'
- $ref: '#/components/parameters/excludeTerms'
- $ref: '#/components/parameters/domainStatus'
- $ref: '#/components/parameters/daysBack'
- $ref: '#/components/parameters/appPartner'
- $ref: '#/components/parameters/appName'
- $ref: '#/components/parameters/appVersion'
- $ref: '#/components/parameters/responseFormat'
responses:
'200':
$ref: '#/components/responses/BrandMonitorSuccess'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
externalDocs:
url: https://docs.domaintools.com/api/monitors/brand-monitor/
/v1/name-server-monitor/:
get:
operationId: getNameServerMonitor
summary: Name Server Monitor
description: Receive notification when there are new and/or deleted domains on a given Domain Name Server.
tags:
- Monitors
parameters:
- $ref: '#/components/parameters/nameServerQuery'
- $ref: '#/components/parameters/daysBack'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/appPartner'
- $ref: '#/components/parameters/appName'
- $ref: '#/components/parameters/appVersion'
- $ref: '#/components/parameters/responseFormat'
responses:
'200':
$ref: '#/components/responses/NameServerMonitorSuccess'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
externalDocs:
url: https://docs.domaintools.com/api/monitors/name-server-monitor/
/v1/registrant-alert/:
get:
operationId: getRegistrantMonitor
summary: Registrant Monitor
description: Receive notification when specific people or organizations register, renew, or delete domain names.
tags:
- Monitors
parameters:
- $ref: '#/components/parameters/monitorQuery'
- $ref: '#/components/parameters/excludeTerms'
- $ref: '#/components/parameters/daysBack'
- $ref: '#/components/parameters/resultsLimit'
- $ref: '#/components/parameters/appPartner'
- $ref: '#/components/parameters/appName'
- $ref: '#/components/parameters/appVersion'
- $ref: '#/components/parameters/responseFormat'
responses:
'200':
$ref: '#/components/responses/RegistrantMonitorSuccess'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
externalDocs:
url: https://docs.domaintools.com/api/monitors/registrant-monitor/
components:
schemas:
RegistrantMonitor:
type: object
description: Response for the Registrant Monitor endpoint.
properties:
response:
type: object
properties:
query:
type: string
limit:
type: number
total:
type: number
date:
type: string
alerts:
type: array
items:
type: object
properties:
domain:
type: string
match_type:
type: string
current_owner:
type: string
created:
type: string
modified:
type: string
last_owner:
type: string
BasicString:
type: string
minLength: 1
maxLength: 255
description: A non-empty string with a standard length limit.
Hostname:
type: string
format: hostname
description: A valid, fully-qualified domain name (FQDN).
NameServerMonitor:
type: object
description: Response for the Name Server Monitor endpoint.
properties:
response:
type: object
properties:
limit:
type: integer
date:
type: string
name_server:
type: string
total:
type: integer
page:
type: integer
page_count:
type: integer
alerts:
type: array
items:
type: object
properties:
new_name_server:
type: string
old_name_server:
type: string
action:
type: string
domain:
type: string
IdentifierString:
type: string
minLength: 1
maxLength: 128
description: A short identifier, code, or handle.
BrandMonitor:
type: object
description: Response for the Brand Monitor endpoint.
properties:
response:
type: object
properties:
query:
type: string
exclude:
type: string
new:
type: boolean
on-hold:
type: boolean
date:
type: string
total:
type: integer
alerts:
type: array
items:
type: object
properties:
domain:
type: string
status:
type: string
XmlResponse:
type: string
description: 'XML-formatted response body. JSON is the primary documented format; XML response schemas are not individually documented.
'
IPv4Address:
type: string
format: ipv4
description: A standard IPv4 address.
ErrorResponse:
type: object
properties:
error:
type: object
properties:
code:
type: integer
description: An internal error code.
message:
type: string
description: A human-readable error message.
resources:
type: object
description: Links to support or documentation resources.
properties:
support:
type: string
description: URL to API documentation or support.
IpMonitor:
type: object
description: Response for the IP Monitor endpoint.
properties:
response:
type: object
properties:
limit:
type: integer
date:
type: string
ip_address:
type: string
total:
type: string
page:
type: integer
page_count:
type: integer
alerts:
type: array
items:
type: object
properties:
previous_ip_address:
type: string
new_ip_address:
type: string
action:
type: string
domain:
type: string
HtmlResponse:
type: string
description: 'HTML-formatted response body. JSON is the primary documented format; HTML response schemas are not individually documented.
'
ResponseFormat:
type: string
enum:
- html
- json
- xml
description: 'The desired response format.
'
parameters:
appName:
name: app_name
in: query
description: 'Appliance, module, or playbook, or any combination of these.
'
schema:
$ref: '#/components/schemas/IdentifierString'
responseFormat:
name: format
in: query
description: 'Specifies the desired response format.
'
schema:
$ref: '#/components/schemas/ResponseFormat'
ipAddressQuery:
in: query
name: query
description: The IP Address to query.
required: true
schema:
$ref: '#/components/schemas/IPv4Address'
excludeTerms:
in: query
name: exclude
description: 'Domain names with these words will be excluded from the result set. For exclusions of multiple terms, use the `|` character as a separator.
'
schema:
$ref: '#/components/schemas/BasicString'
nameServerQuery:
in: query
name: query
description: The name server hostname to query.
required: true
schema:
$ref: '#/components/schemas/Hostname'
appVersion:
name: app_version
in: query
description: 'Version of your integration/connector.
'
schema:
$ref: '#/components/schemas/IdentifierString'
domainStatus:
in: query
name: domain_status
description: 'Sets the scope of domain names to search. Defaults to searching both `new` and `on-hold` domains.
'
schema:
type: string
enum:
- new
- on-hold
appPartner:
name: app_partner
in: query
description: 'Your product name.
'
schema:
$ref: '#/components/schemas/IdentifierString'
monitorQuery:
in: query
name: query
description: 'One or more terms, where the pipe character ( | ) may be used as a logical AND to require that all strings be present in order to match.
'
required: true
schema:
$ref: '#/components/schemas/BasicString'
page:
in: query
name: page
description: Sets the page of results to retrieve from the server (used in services that support pagination).
schema:
type: integer
minimum: 1
daysBack:
in: query
name: days_back
description: Search domains registered up to six days prior to the current date.
schema:
type: integer
minimum: 1
maximum: 6
resultsLimit:
name: limit
in: query
description: 'Specify the maximum number of records to retrieve in an API query.
The maximum value is **100**.
'
schema:
type: integer
maximum: 100
minimum: 1
responses:
InternalServerError:
description: '500: Internal Server Error. An unexpected error occurred on the server. If the problem persists, contact DomainTools support.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest:
description: '400: Bad Request. The request was invalid. The response will contain details about the error.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NameServerMonitorSuccess:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NameServerMonitor'
application/xml:
schema:
$ref: '#/components/schemas/XmlResponse'
text/html:
schema:
$ref: '#/components/schemas/HtmlResponse'
IpMonitorSuccess:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/IpMonitor'
application/xml:
schema:
$ref: '#/components/schemas/XmlResponse'
text/html:
schema:
$ref: '#/components/schemas/HtmlResponse'
ServiceUnavailable:
description: '503: Service Unavailable. The service is temporarily unavailable.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: '404: Not Found. The requested resource does not exist.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Forbidden:
description: '403: Forbidden. The API credentials provided do not have access to the requested resource or endpoint.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BrandMonitorSuccess:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/BrandMonitor'
application/xml:
schema:
$ref: '#/components/schemas/XmlResponse'
text/html:
schema:
$ref: '#/components/schemas/HtmlResponse'
Unauthorized:
description: '401: Unauthorized. API credentials are required and were not provided, or the provided credentials are not valid.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
RegistrantMonitorSuccess:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RegistrantMonitor'
application/xml:
schema:
$ref: '#/components/schemas/XmlResponse'
text/html:
schema:
$ref: '#/components/schemas/HtmlResponse'
securitySchemes:
apikey:
type: apiKey
in: header
name: X-API-KEY