### Example request body for sourceCodeMonitoringTool
Source: https://hexowatch.com/api-documentation
Complete example request body for creating source code monitoring, showing all fields with example values.
```json
{
"address_list": ["example1.com", "example2.com"],
"tool": "sourceCodeMonitoringTool",
"notification_integrations": [260, 261],
"change_notification_level": "ANY",
"monitoring_interval": "2_WEEK",
"pause_after_first_change_event": false,
"tags": ["tag1","tag2"],
"webhook": "your-webhook",
"tool_settings": {
"proxy": { "type": "", "country_code": "" },
"api_host_code": "USA",
"user_agent": false,
"mode": "SPECIFIC_CODE",
"specific_codes": ["
Hello world!
"],
"file_type": "HTML",
}
}
```
--------------------------------
### Example request body for content monitoring
Source: https://hexowatch.com/api-documentation
Example request body for creating a content monitoring service. Includes all required and optional fields with sample values.
```json
{
"address_list": ["example1.com", "example2.com"],
"tool": "contentMonitoringTool",
"notification_integrations": [260, 261],
"change_notification_level": "ANY",
"monitoring_interval": "2_WEEK",
"pause_after_first_change_event": false,
"tags": ["tag1","tag2"],
"webhook": "your-webhook",
"tool_settings": {
"proxy": { "type": "", "country_code": "" },
"api_host_code": "USA",
"user_agent": false,
"mode": "SPECIFIC_CONTENT",
"contents": ["content here"],
}
}
```
--------------------------------
### Example request body for backlinkTool monitoring
Source: https://hexowatch.com/api-documentation
Example request body for creating a monitoring with the backlinkTool. Includes all required fields and optional fields with example values. The proxy type and country_code are left empty in this example.
```json
{
"address_list": ["example1.com", "example2.com"],
"tool": "backlinkTool",
"notification_integrations": [260, 261],
"change_notification_level": "ANY",
"monitoring_interval": "2_WEEK",
"pause_after_first_change_event": false,
"tags": ["tag1","tag2"],
"webhook": "your-webhook",
"tool_settings": {
"proxy": { "type": "", "country_code": "" },
"api_host_code": "USA",
"user_agent": false,
"mode": "FULL_DATA",
"keyword": "backlink",
}
}
```
--------------------------------
### tool_settings object example
Source: https://hexowatch.com/api-documentation
Example of the tool_settings object for the availability monitoring tool. The proxy object is required if type is "premium". api_host_code and user_agent are optional with defaults.
```json
tool_settings: {
"proxy": { "type": "premium", "country_code": "AR" },***REQUIRED if type === "premium"**
"api_host_code": "USA", ***OPTIONAL, DEFAULT**
"user_agent": false, ***OPTIONAL, DEFAULT**
}
```
--------------------------------
### Example PATCH action request
Source: https://hexowatch.com/api-documentation
Example request body for the PATCH action. The action can be pause, resume, or check_now. monitoring_ids can be null to apply to all monitorings.
```json
{
"action": "check_now",
"monitoring_ids": [1234, 2321]
}
```
--------------------------------
### Example request body for techStackTool
Source: https://hexowatch.com/api-documentation
Complete example request body for creating tech stack monitoring. Includes all required fields and a sample tool_settings object with mode set to SPECIFIC_TECH_STACK_SEARCH.
```json
{
"address_list": ["example1.com", "example2.com"],
"tool": "techStackTool",
"notification_integrations": [260, 261],
"change_notification_level": "ANY",
"monitoring_interval": "2_WEEK",
"pause_after_first_change_event": false,
"tags": ["tag1","tag2"],
"webhook": "your-webhook",
"tool_settings": {
"proxy": { "type": "", "country_code": "" },
"api_host_code": "USA",
"user_agent": false,
"mode": "SPECIFIC_TECH_STACK_SEARCH",
"specific_tech_stacks": ["AWStats"],
}
}
```
--------------------------------
### Example request body for visual monitoring creation
Source: https://hexowatch.com/api-documentation
Complete example request body for creating a visual monitoring with the Hexowatch API. Includes all required fields and optional settings.
```json
{
"address_list": ["example1.com", "example2.com"],
"tool": "visualMonitoringTool",
"notification_integrations": [260, 261],
"change_notification_level": "ANY",
"monitoring_interval": "2_WEEK",
"pause_after_first_change_event": false,
"tags": ["tag1","tag2"],
"webhook": "your-webhook",
"tool_settings": {
"proxy": { "type": "", "country_code": "" },
"api_host_code": "USA",
"user_agent": false,
"mode": "FULL_SCREEN",
"adblock": true,
"device": "TABLET",
"full_stack": true
}
}
```
--------------------------------
### Example successful monitored URLs response
Source: https://hexowatch.com/api-documentation
Example of a successful response with two monitored URLs.
```json
{
"error": false,
"monitored_urls": [
{
"id": 1234,
"address": "hexometer.com",
"name": "my_url",
"active": true,
},
{
"id": 2321,
"address": "hexometer.com",
"name": "my_2_url",
"active": false,
}
]
}
```
--------------------------------
### Create availability monitoring request body example
Source: https://hexowatch.com/api-documentation
Example request body for creating availability monitoring. Includes required fields address_list and tool, and optional fields for notifications, change level, interval, pause, tags, webhook, and tool_settings.
```json
{
"address_list": ["example1.com", "example2.com"],
"tool": "availabilityMonitoringTool",
"notification_integrations": [260, 261],
"change_notification_level": "ANY",
"monitoring_interval": "2_WEEK",
"pause_after_first_change_event": false,
"tags": ["tag1","tag2"],
"webhook": "your-webhook",
"tool_settings": {
"proxy": { "type": "", "country_code": "" },
"api_host_code": "USA",
"user_agent": false,
}
}
```
--------------------------------
### Example monitoring logs request body
Source: https://hexowatch.com/api-documentation
Example request body for monitoring logs. limit (default 10), page (default 1), and Only_detected_changes (default true) are optional.
```json
{
"limit": 5,
"page": 1
"Only_detected_changes": true
}
```
--------------------------------
### Example Error Response
Source: https://hexowatch.com/api-documentation
Example error response showing an invalid API key error message.
```json
{
"error": true,
"message": "invalid API key"
}
```
--------------------------------
### Request Body Example
Source: https://hexowatch.com/api-documentation
Example request body for the scan result endpoint. The tool field is required and must be one of the listed monitoring tool names.
```json
{
"tool": "domainWhoisTool"
}
```
--------------------------------
### tool_settings object for keywordTool
Source: https://hexowatch.com/api-documentation
Example of the tool_settings object for the keywordTool, showing required and optional fields with default values and constraints.
```json
tool_settings: {
"proxy": { "type": "premium", "country_code": "AR" },***REQUIRED if type === "premium"**
"api_host_code": "USA", ***OPTIONAL, DEFAULT**
"user_agent": false, ***OPTIONAL, DEFAULT**
"mode": "SEARCH", ***OPTIONAL, DEFAULT**
"operators": ["OR"],***REQUIRED if keywords.length > 1**
"keywords": ["example1", "example2"],***REQUIRED**
}
```
--------------------------------
### Create domainWhoisTool monitoring request body
Source: https://hexowatch.com/api-documentation
Example request body for creating a domainWhoisTool monitoring. Includes required fields (address_list, tool) and optional fields with defaults. The tool_settings uses mode SPECIFIC_FIELDS with specific_fields lastModified.
```json
{
"address_list": ["example1.com", "example2.com"],
"tool": "domainWhoisTool",
"notification_integrations": [260, 261],
"change_notification_level": "ANY",
"monitoring_interval": "2_WEEK",
"pause_after_first_change_event": false,
"tags": ["tag1","tag2"],
"webhook": "your-webhook",
"tool_settings": {
"api_host_code": "USA",
"user_agent": false,
"mode": "SPECIFIC_FIELDS",
"specific_fields": ["lastModified"],
"alertDay": 7,
}
}
```
--------------------------------
### Create keyword monitoring request body
Source: https://hexowatch.com/api-documentation
Full example request body for creating a keyword monitoring with the Hexowatch API, including all required and optional fields.
```json
{
"address_list": ["example1.com", "example2.com"],
"tool": "keywordTool",
"notification_integrations": [260, 261],
"change_notification_level": "ANY",
"monitoring_interval": "2_WEEK",
"pause_after_first_change_event": false,
"tags": ["tag1","tag2"],
"webhook": "your-webhook",
"tool_settings": {
"proxy": { "type": "", "country_code": "" },
"api_host_code": "USA",
"user_agent": false,
"mode": "SEARCH",
"operators": ["OR"],
"keywords": ["example1", "example2"]
}
}
```
--------------------------------
### GET https://api.hexowatch.com/v2/app/services/v1/integrations?key={YOUR_API_KEY}
Source: https://hexowatch.com/api-documentation
Retrieves the list of integrations configured for the user's Hexowatch account. Requires an API key as a query parameter. Returns a list of integration objects or an error message.
```APIDOC
## GET /v2/app/services/v1/integrations
### Description
Retrieves the list of integrations configured for the user's Hexowatch account. Requires an API key as a query parameter.
### Method
GET
### Endpoint
`https://api.hexowatch.com/v2/app/services/v1/integrations?key={YOUR_API_KEY}`
### Parameters
#### Query Parameters
- **YOUR_API_KEY** (string) - Required - To get YOUR_API_KEY visit hexowatch settings webhook section and copy your key
### Response
#### Success Response
Returns a JSON object with an `error` boolean and a `result` array. The `result` array contains objects with `id`, `type`, and `data` fields.
#### Response Example
```json
{
"error": false,
"result": [
{
"id": 110,
"type": "slack",
"data": "@example.example"
},
{
"id": 111,
"type": "telegram",
"data": "123456789"
},
{
"id": 112,
"type": "discord",
"data": "112233445566778899"
},
{
"id": 113,
"type": "email",
"data": "example@example.com"
}
]
}
```
#### Error Response
If the request is not successful, the response will be a JSON object with `error` true and a `message` string.
```json
{
"error": true,
"message": "invalid API key"
}
```
### Error Response Fields
- **error** (boolean) - If true, an error occurred.
- **message** (string) - Contains information about the error.
```
--------------------------------
### POST /v2/app/services/v2/monitor?key={YOUR_API_KEY}
Source: https://hexowatch.com/api-documentation
Creates a new monitor using the domainWhoisTool or content monitoring tool. Requires an API key, address list, and tool name; optional notification integrations, change level, monitoring interval, and other settings.
```APIDOC
## [POST] /v2/app/services/v2/monitor?key={YOUR_API_KEY}
### Description
Creates a new monitor for domain WHOIS or content changes using the specified tool. The endpoint requires an API key and a request body with the target addresses and tool configuration.
### Method
POST
### Endpoint
/v2/app/services/v2/monitor?key={YOUR_API_KEY}
### Parameters
#### Query Parameters
- **key** (string) - Required - YOUR_API_KEY, obtained from the Hexowatch settings webhook section.
### Request Body
- **tool** (string) - Required - Name of the tool, e.g., "domainWhoisTool"
- **address_list** (string[]) - Required - List of monitoring URLs or domains, e.g., ["example1.com", "example2.com"]
- **notification_integrations** (number[]) - Optional, default [] - IDs of integrations (discord, slack, telegram, email) to enable for this tool.
- **change_notification_level** (string) - Optional, default "ANY" - Level of change that triggers a notification.
- **monitoring_interval** (string) - Optional, default "1_DAY" - How often to check for changes.
- **pause_after_first_change_event** (boolean) - Optional, default false - Stop monitoring after first change.
- **tags** (string[]) - Optional, default [] - Tags for each monitoring.
- **webhook** (string) - Optional, default null - URL to receive notifications; if error occurs, monitoring not created.
- **tool_settings** (object) - Optional - Specific settings for the tool. Fields include api_host_code, user_agent, mode, specific_fields (required if mode is SPECIFIC_FIELDS), and alertDay.
### Possible Values for tool_settings
- **api_host_code**: "EUROPE", "USA", "ASIA"
- **monitoring_interval**: "5_MINUTE", "10_MINUTE", "15_MINUTE", "30_MINUTE", "1_HOUR", "2_HOUR", "3_HOUR", "4_HOUR", "5_HOUR", "6_HOUR", "12_HOUR", "1_DAY", "2_DAY", "3_DAY", "1_WEEK", "2_WEEK", "1_MONTH", "2_MONTH", "3_MONTH"
- **proxy type**: "premium" (available from Pro plan)
- **change_notification_level**: "ANY"
- **mode**: "ANY_CHANGE", "SPECIFIC_FIELDS"
- **alertDay**: null, -90, -80, -70, -60, -45, -30, -15, -7, -1, 0, 1, 7, 15, 30, 45, 60, 70, 80, 90
- **specific_fields**: "registeredAt", "lastModified", "fullText", "expiresAt", "exists", "domain", "url", "dnsData", "status"
### Request Example
```json
{
"address_list": ["example1.com", "example2.com"],
"tool": "domainWhoisTool",
"notification_integrations": [260, 261],
"change_notification_level": "ANY",
"monitoring_interval": "2_WEEK",
"pause_after_first_change_event": false,
"tags": ["tag1","tag2"],
"webhook": "your-webhook",
"tool_settings": {
"api_host_code": "USA",
"user_agent": false,
"mode": "SPECIFIC_FIELDS",
"specific_fields": ["lastModified"],
"alertDay": 7
}
}
```
### Response
#### Success Response (200)
- **error** (boolean) - false on success
- **message** (string) - "New monitoring(s) created."
- **monitoring_ids** (number[]) - Array of created monitoring IDs
#### Success Response Example
```json
{
"error": false,
"message": "New monitoring(s) created.",
"monitoring_ids": [1240]
}
```
#### Error Response
- **error** (boolean) - true if error
- **message** (string) - Error description
#### Error Response Example
```json
{
"error": true,
"message": "invalid API key"
}
```
```
--------------------------------
### POST /v2/app/services/v2/monitor?key={YOUR_API_KEY}
Source: https://hexowatch.com/api-documentation
Creates a new content monitoring job. Requires an API key in the query parameter and a JSON body with the tool name and address list. Optional settings include notification integrations, monitoring interval, change notification level, and more.
```APIDOC
## POST /v2/app/services/v2/monitor?key={YOUR_API_KEY}
### Description
Creates a new content monitoring job. Provide the tool name and a list of URLs to monitor. Optional settings allow customization of notifications, monitoring frequency, and proxy usage.
### Method
POST
### Endpoint
`/v2/app/services/v2/monitor?key={YOUR_API_KEY}`
### Parameters
#### Query Parameters
- **key** (string) - Required - Your API key.
#### Request Body
- **tool** (string) - Required - The tool name. Example: `"contentMonitoringTool"`
- **address_list** (string[]) - Required - List of URLs to monitor. Example: `["example1.com", "example2.com"]`
- **notification_integrations** (number[]) - Optional, default `[]` - IDs of integrations (discord, slack, telegram, email) to enable notifications. Example: `[260, 261]`
- **change_notification_level** (string) - Optional, default `"ANY"` - Change level threshold. Possible values: `"ANY"`, `"GE_1"` through `"GE_50"`.
- **monitoring_interval** (string) - Optional, default `"1_DAY"` - How often to check for changes. Possible values: `"5_MINUTE"`, `"10_MINUTE"`, `"15_MINUTE"`, `"30_MINUTE"`, `"1_HOUR"`, `"2_HOUR"`, `"3_HOUR"`, `"4_HOUR"`, `"5_HOUR"`, `"6_HOUR"`, `"12_HOUR"`, `"1_DAY"`, `"2_DAY"`, `"3_DAY"`, `"1_WEEK"`, `"2_WEEK"`, `"1_MONTH"`, `"2_MONTH"`, `"3_MONTH"`
- **pause_after_first_change_event** (boolean) - Optional, default `false` - Whether to stop monitoring after the first change.
- **tags** (string[]) - Optional, default `[]` - Tags for the monitoring. Example: `["tag1","tag2"]`
- **webhook** (string) - Optional, default `null` - Webhook URL to notify on errors. Monitoring will not be created if webhook fails.
- **tool_settings** (object) - Optional - Special settings for the tool. See below:
- **proxy** (object) - Optional - Proxy settings. Fields: `type` (string, required if provided), `country_code` (string, required if type is `"premium"`).
- **api_host_code** (string) - Optional, default `"USA"` - Possible values: `"EUROPE"`, `"USA"`, `"ASIA"`
- **user_agent** (boolean) - Optional, default `false`
- **mode** (string) - Optional, default `"FULL_CONTENT"` - Possible values: `"FULL_CONTENT"`, `"SPECIFIC_CONTENT"`
- **contents** (string[]) - Required if mode is `"SPECIFIC_CONTENT"` - List of content strings to monitor.
### Request Example
```json
{
"address_list": ["example1.com", "example2.com"],
"tool": "contentMonitoringTool",
"notification_integrations": [260, 261],
"change_notification_level": "ANY",
"monitoring_interval": "2_WEEK",
"pause_after_first_change_event": false,
"tags": ["tag1","tag2"],
"webhook": "your-webhook",
"tool_settings": {
"proxy": { "type": "", "country_code": "" },
"api_host_code": "USA",
"user_agent": false,
"mode": "SPECIFIC_CONTENT",
"contents": ["content here"]
}
}
```
### Response
#### Success Response (200)
- **error** (boolean) - `false`
- **message** (string) - Success message.
- **monitoring_ids** (number[]) - Array of created monitoring IDs.
#### Response Example
```json
{
"error": false,
"message": "New monitoring(s) created.",
"monitoring_ids": [1240]
}
```
#### Error Response
- **error** (boolean) - `true`
- **message** (string) - Error message.
#### Error Response Example
```json
{
"error": true,
"message": "invalid API key"
}
```
### Possible Values for Fields
| Field | Possible Values |
|---|---|
| api_host_code | "EUROPE", "USA", "ASIA" |
| monitoring_interval | "5_MINUTE", "10_MINUTE", "15_MINUTE", "30_MINUTE", "1_HOUR", "2_HOUR", "3_HOUR", "4_HOUR", "5_HOUR", "6_HOUR", "12_HOUR", "1_DAY", "2_DAY", "3_DAY", "1_WEEK", "2_WEEK", "1_MONTH", "2_MONTH", "3_MONTH" |
| proxy type | "premium" |
| proxy country_code | "AF", "AL", "DZ", "AD", "AO", "AR", "AU", "AT", "AZ", "BH", "BD", "BB", "BY", "BJ", "BO", "BW", "BR", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "CL", "CN", "CO", "CG", "CR", "HR", "CU", "CY", "CZ", "CI", "DK", "DO", "EC", "EG", "SV", "EE", "ET", "FJ", "FI", "FR", "GM", "GE", "DE", "GH", "GR", "GL", "GT", "GN", "HT", "HN", "HK", "HU", "IN", "ID", "IR", "IQ", "IL", "IT", "JM", "JP", "JO", "KE", "KZ", "KR", "KW", "KG", "LV", "LB", "LT", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MR", "MU", "MX", "MD", "MN", "MA", "MZ", "MM", "NA", "NP", "NL", "NI", "NE", "NG", "PK", "PA", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "RE", "LC", "SM", "SA", "SN", "RS", "SL", "SG", "SK", "SI", "SO", "ZA", "ES", "LK", "SD", "SE", "TZ", "TH", "TG", "TT", "TN", "TR", "UG", "UA", "AE", "GB", "US", "UY", "UZ", "VE", "VN", "ZW" |
| change_notification_level | "ANY", "GE_1", "GE_2", "GE_3", "GE_4", "GE_5", "GE_6", "GE_7", "GE_8", "GE_9", "GE_10", "GE_11", "GE_12", "GE_13", "GE_14", "GE_15", "GE_20", "GE_25", "GE_50" |
| mode | "FULL_CONTENT", "SPECIFIC_CONTENT" |
```
--------------------------------
### POST /v2/app/services/v2/monitor?key={YOUR_API_KEY}
Source: https://hexowatch.com/api-documentation
Creates a new source code monitoring resource. The endpoint accepts a request body with monitoring configuration details. Returns success or error with monitoring IDs or error message.
```APIDOC
## POST /v2/app/services/v2/monitor?key={YOUR_API_KEY}
### Description
Creates a new source code monitoring resource. The endpoint accepts a request body with monitoring configuration details. Returns success or error with monitoring IDs or error message.
### Method
POST
### Endpoint
POST https://api.hexowatch.com/v2/app/services/v2/monitor?key={YOUR_API_KEY}
### Parameters
#### Query Parameters
- **key** (string) - Required - Your API key.
#### Request Body
- **tool** (string) - Required - Specific tool name, e.g., "sourceCodeMonitoringTool".
- **address_list** (string[]) - Required - List of monitoring URLs, e.g., ["example1.com", "example2.com"].
- **notification_integrations** (number[]) - Optional, default [] - IDs of notification integrations (discord, slack, telegram, email) to enable.
- **change_notification_level** (string) - Optional, default "ANY" - Change level from possible values.
- **monitoring_interval** (string) - Optional, default "1_DAY" - Monitoring interval from possible values.
- **pause_after_first_change_event** (boolean) - Optional, default false - Stop monitoring after first change.
- **tags** (string[]) - Optional, default [] - Tags for the monitoring.
- **webhook** (string) - Optional, default null - URL to receive requests if errors.
- **tool_settings** (object) - Required - Settings specific to the tool.
### Request Example
```json
{
"address_list": ["example1.com", "example2.com"],
"tool": "sourceCodeMonitoringTool",
"notification_integrations": [260, 261],
"change_notification_level": "ANY",
"monitoring_interval": "2_WEEK",
"pause_after_first_change_event": false,
"tags": ["tag1","tag2"],
"webhook": "your-webhook",
"tool_settings": {
"proxy": { "type": "", "country_code": "" },
"api_host_code": "USA",
"user_agent": false,
"mode": "SPECIFIC_CODE",
"specific_codes": ["Hello world!
"],
"file_type": "HTML"
}
}
```
### Response
#### Success Response (200)
- **error** (boolean) - false for success.
- **message** (string) - Success message.
- **monitoring_ids** (number[]) - IDs of created monitoring resources.
#### Response Example
```json
{
"error": false,
"message": "New monitoring(s) created.",
"monitoring_ids": [1240]
}
```
#### Error Response
- **error** (boolean) - true for error.
- **message** (string) - Error message.
#### Error Response Example
```json
{
"error": true,
"message": "invalid API key"
}
```
```
--------------------------------
### POST https://api.hexowatch.com/v2/app/services/v2/monitor?key={YOUR_API_KEY}
Source: https://hexowatch.com/api-documentation
Documentation for creating a keyword monitoring via the Hexowatch API.
```APIDOC
## POST https://api.hexowatch.com/v2/app/services/v2/monitor?key={YOUR_API_KEY}
### Description
Creates a new keyword monitoring for the specified URLs. This endpoint allows you to set up monitoring for changes in keywords on the provided addresses.
### Method
POST
### Endpoint
https://api.hexowatch.com/v2/app/services/v2/monitor?key={YOUR_API_KEY}
### Parameters
#### Path Parameters
- **YOUR_API_KEY** (string) - Required - Your API key. To get it, visit hexowatch settings webhook section and copy your key.
#### Request Body
- **tool** (string) - Required - The specific tool name. For example: "keywordTool".
- **address_list** (string[]) - Required - A list of monitoring URLs. For example: ["example1.com", "example2.com"].
- **notification_integrations** (number[]) - Optional, default [] - Choose which integration(s) from discord, slack, telegram, email to enable for this tool. Add an integration id to get notification. For example: [your-integration-id, your-integration-id].
- **change_notification_level** (string) - Optional, default "ANY" - The change level from one of the possible values. For example: "ANY".
- **monitoring_interval** (string) - Optional, default "1_DAY" - The monitoring interval from one of the possible values. For example: "2_WEEK".
- **pause_after_first_change_event** (boolean) - Optional, default false - Whether to stop monitoring after the first change. For example: false.
- **tags** (string[]) - Optional, default [] - Tags for each monitoring. For example: ["tag1","tag2"].
- **webhook** (string) - Optional, default null - A URL to make a request to in case of error. If error from provided webhook, monitoring will not be created. For example: "your-webhook".
- **tool_settings** (object) - Required - Special settings for this tool. See required fields and default values in the example below.
- **proxy** (object) - Required - Proxy settings. Contains type and country_code. type is required if type === "premium".
- **type** (string) - Required - Proxy type. Possible value: "premium".
- **country_code** (string) - Required if type === "premium" - Proxy country code. Possible values: "AF", "AL", "DZ", "AD", "AO", "AR", "AU", "AT", "AZ", "BH", "BD", "BB", "BY", "BJ", "BO", "BW", "BR", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "CL", "CN", "CO", "CG", "CR", "HR", "CU", "CY", "CZ", "DK", "DO", "EC", "EG", "SV", "EE", "ET", "FJ", "FI", "FR", "GM", "GE", "DE", "GH", "GR", "GL", "GT", "GN", "HT", "HN", "HK", "HU", "IN", "ID", "IR", "IQ", "IL", "IT", "JM", "JP", "JO", "KE", "KZ", "KR", "KW", "KG", "LV", "LB", "LT", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MR", "MU", "MX", "MD", "MN", "MA", "MZ", "MM", "NA", "NP", "NL", "NI", "NE", "NG", "PK", "PA", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "RE", "LC", "SM", "SA", "SN", "RS", "SL", "SG", "SK", "SI", "SO", "ZA", "ES", "LK", "SD", "SE", "TZ", "TH", "TG", "TT", "TN", "TR", "UG", "UA", "AE", "GB", "US", "UY", "UZ", "VE", "VN", "ZW".
- **api_host_code** (string) - Optional, default "USA" - Possible values: "EUROPE", "USA", "ASIA".
- **user_agent** (boolean) - Optional, default false - User agent setting.
- **mode** (string) - Optional, default "SEARCH" - Possible value: "SEARCH".
- **operators** (string[]) - Required if keywords.length > 1 - Possible values: "OR", "AND".
- **keywords** (string[]) - Required - Keywords to monitor. For example: ["example1", "example2"].
### Request Example
{
"address_list": ["example1.com", "example2.com"],
"tool": "keywordTool",
"notification_integrations": [260, 261],
"change_notification_level": "ANY",
"monitoring_interval": "2_WEEK",
"pause_after_first_change_event": false,
"tags": ["tag1","tag2"],
"webhook": "your-webhook",
"tool_settings": {
"proxy": { "type": "", "country_code": "" },
"api_host_code": "USA",
"user_agent": false,
"mode": "SEARCH",
"operators": ["OR"],
"keywords": ["example1", "example2"]
}
}
### Response
#### Success Response (200)
- **error** (boolean) - Indicates if an error occurred. false for success.
- **message** (string) - Success message.
- **monitoring_ids** (number[]) - IDs of the created monitoring(s).
#### Response Example
{
"error": false,
"message": "New monitoring(s) created.",
"monitoring_ids": [1240]
}
#### Error Response
- **error** (boolean) - true if an error occurred.
- **message** (string) - Error message.
#### Error Response Example
{
"error": true,
"message": "invalid API key"
}
```
--------------------------------
### POST https://api.hexowatch.com/v2/app/services/v2/monitor?key={YOUR_API_KEY}
Source: https://hexowatch.com/api-documentation
Creates technology monitoring. Requires an API key as a query parameter.
```APIDOC
## POST /v2/app/services/v2/monitor
### Description
Creates technology monitoring. Requires an API key as a query parameter.
### Method
POST
### Endpoint
`https://api.hexowatch.com/v2/app/services/v2/monitor?key={YOUR_API_KEY}`
### Parameters
#### Query Parameters
- **YOUR_API_KEY** (string) - Required - To get YOUR_API_KEY visit hexowatch settings webhook section and copy your key
### Response
#### Response Body
No response body is described in the source for this endpoint.
```
--------------------------------
### Get all monitored URLs
Source: https://hexowatch.com/api-documentation
Retrieves all monitored URL IDs. Requires a valid API key from the Hexowatch settings webhook section.
```http
GET https://api.hexowatch.com/v2/app/services/v1/monitored_urls?key={YOUR_API_KEY}
```
--------------------------------
### Get monitoring logs
Source: https://hexowatch.com/api-documentation
Retrieves monitoring logs for a specific monitoring ID. Requires a valid API key and the monitoring ID.
```http
GET https://api.hexowatch.com/v2/app/services/v1/monitoring_logs/{MONITORING_ID}?key={YOUR_API_KEY}
```
--------------------------------
### GET /v2/app/services/v1/monitoring_logs/{MONITORING_ID}
Source: https://hexowatch.com/api-documentation
Retrieves monitoring logs for a specific monitoring ID. Allows filtering by limit, page, and only detected changes.
```APIDOC
## [GET] https://api.hexowatch.com/v2/app/services/v1/monitoring_logs/{MONITORING_ID}?key={YOUR_API_KEY}
### Description
Retrieves monitoring logs for a specific monitoring ID. Use the monitoring ID obtained from the GET monitored_urls endpoint. Accepts optional query parameters for pagination and filtering.
### Method
GET
### Endpoint
`https://api.hexowatch.com/v2/app/services/v1/monitoring_logs/{MONITORING_ID}?key={YOUR_API_KEY}`
### Parameters
#### Path Parameters
- **MONITORING_ID** (string) - Required - The monitoring ID for which to retrieve logs. Get all IDs via the GET monitored_urls endpoint.
#### Query Parameters
- **YOUR_API_KEY** (string) - Required - Your API key, obtainable from Hexowatch settings webhook section.
#### Request Body (Optional)
- **limit** (number) - Optional - Limit of scan results. Default is 10.
- **page** (number) - Optional - Page number for pagination. Default is 1.
- **Only_detected_changes** (boolean) - Optional - If `true`, only return scan results with detected changes. Default is `true`.
### Request Example
```json
{
"limit": 5,
"page": 1,
"Only_detected_changes": true
}
```
### Response
#### Success Response
- **error** (boolean) - Indicates if an error occurred. `false` on success.
- **monitoring_id** (string) - The monitoring ID for which logs are returned.
- **tool** (visualMonitoringTool) - The monitoring tool used.
- **monitoring_results** (array of objects) - List of scan results, each with:
- **scan_result_id** (string) - ID of the scan result.
- **date** (string) - Timestamp of the scan.
- **event_detected** (boolean) - Whether a change was detected.
- **percentage** (number) - Percentage of change (0 to 1).
#### Response Example
```json
{
"error": false,
"monitoring_id": "MONITORING_ID",
"tool": "visualMonitoringTool",
"monitoring_results": [
{
"scan_result_id": "RESULT_ID",
"date": "2021-11-26T10:59:18.500Z",
"event_detected": true,
"percentage": 0.5
},
{
"scan_result_id": "RESULT_ID",
"date": "2021-11-26T10:58:50.225Z",
"event_detected": false,
"percentage": 0
}
]
}
```
#### Error Response
- **error** (boolean) - `true` if an error occurred.
- **message** (string) - Error description.
#### Error Example
```json
{
"error": true,
"message": "invalid API key"
}
```
```
--------------------------------
### GET /v2/app/services/v1/scan_result/{SCAN_RESULT_ID}?key={YOUR_API_KEY}
Source: https://hexowatch.com/api-documentation
Retrieves the scan result for a specific monitoring log by providing the tool name in the request body.
```APIDOC
## GET /v2/app/services/v1/scan_result/{SCAN_RESULT_ID}?key={YOUR_API_KEY}
### Description
Retrieves the scan result for a specific monitoring log by providing the tool name in the request body.
### Method
GET
### Endpoint
https://api.hexowatch.com/v2/app/services/v1/scan_result/{SCAN_RESULT_ID}?key={YOUR_API_KEY}
### Parameters
#### Path Parameters
- **SCAN_RESULT_ID** (string) - Required - The Monitoring Log ID from the Monitoring Log page.
#### Query Parameters
- **YOUR_API_KEY** (string) - Required - Your API key from the Hexowatch settings webhook section.
#### Request Body
- **tool** (string) - Required - The monitoring tool name. For example: "tool": "domainWhoisTool".
### Request Example
```
{
"tool": "domainWhoisTool"
}
```
### Response
#### Success Response (200)
The response varies by tool. See the response examples below.
#### Response Example
For **visualMonitoringTool**:
```
{
"error": false,
"scanResult": {
"newData": {
"image": "IMAGE_LINK",
"imageHeight": 3565,
"imageWidth": 1890,
"viewport": {
"width": 1890,
"width": 1890
}
},
"oldData": {
"image": "IMAGE_LINK",
"imageHeight": 3565,
"imageWidth": 1890,
"viewport": {
"width": 1890,
"width": 1890
}
}
}
}
```
For **htmlElementMonitoringTool**:
```
{
"error": false,
"scanResult": {
"newData": {
"element_data": [
{
"innerHTML": "TEXT",
"selectedNumbers": null,
"selectedElements": [],
"elementContent": "TEXT
"
}
],
"traffic": 1503218
},
"oldData": {
"element_data": [
{
"innerHTML": "TEXT",
"selectedNumbers": null,
"selectedElements": [],
"elementContent": "TEXT
"
}
],
"traffic": 1651842
}
}
}
```
For **keywordTool**:
```
{
"error": false,
"scanResult": {
"newData": [
{
"keyword": "keyword",
"found": true
}
],
"oldData": [
{
"keyword": "keyword",
"found": false
}
]
}
}
```
For **techStackTool**:
```
{
"error": false,
"scanResult": {
"newData": {
"applications": [
{
"name": "NAME",
"confidence": 100,
"version": null,
"icon": "IMAGE.png",
"website": "example.com",
"categories": [
42
]
}
],
"specific_tech_stacks": [
{
"tech_stack_name": "3dCart",
"found": false
}
]
},
"oldData": {
"applications": [
{
"name": "NAME",
"confidence": 100,
"version": null,
"icon": "IMAGE.png",
"website": "example.com",
"categories": [
42
]
}
],
"specific_tech_stacks": [
{
"tech_stack_name": "3dCart",
"found": false
}
]
}
}
}
```
For **sourceCodeMonitoringTool**:
```
{
"error": false,
"scanResult": {
"newData": {
"source_code_url": null,
"sections": [
{
"code": "",
"found": true
}
],
"traffic": 851553
},
"oldData": {
"source_code_url": null,
"sections": [
{
"code": "",
"found": true
}
],
"traffic": 857631
}
}
}
```
For **contentMonitoringTool**:
```
{
"error": false,
"scanResult": {
"newData": {
"page_content_url": null,
"contents": [
{
"content": "content",
"found": true
}
]
},
"oldData": {
"page_content_url": null,
"contents": [
{
"content": "content",
"found": true
}
]
}
}
}
```
For **automaticAITool**:
```
{
"error": false,
"scanResult": {
"visualMonitoringTool": "SAME AS CORRESPONDING TOOL RESULT",
"techStackTool": "SAME AS CORRESPONDING TOOL RESULT",
"sourceCodeMonitoringTool": "SAME AS CORRESPONDING TOOL RESULT",
"contentMonitoringTool": "SAME AS CORRESPONDING TOOL RESULT"
}
}
```
For **availabilityMonitoringTool**:
```
{
"error": false,
"scanResult": {
"newData": {
"status": 200
},
"oldData": {
"status": 0
}
}
}
```
For **domainWhoisTool**:
```
{
"error": false,
"scanResult": {
"newData": {
"url": "https://example.com/",
"domain": "example.com",
"status": "Registered",
"exists": true,
"expiresAt": "2023-01-19T06:23:59.000Z",
"expirationDays": 418,
"lastModified": "2021-02-07T10:33:30.000Z",
"registeredAt": "2019-01-19T06:23:59.000Z",
"fullText": "DOMAIN_FULL_INFORMATION",
"dnsData": "DNS_DATA"
},
"oldData": {
"url": "https://example.com/",
"domain": "example.com",
"status": "Registered",
"exists": true,
"expiresAt": "2023-01-19T06:23:59.000Z",
"expirationDays": 418,
"lastModified": "2021-02-07T10:33:30.000Z",
"registeredAt": "2019-01-19T06:23:59.000Z",
"fullText": "DOMAIN_FULL_INFORMATION",
"dnsData": "DNS_DATA"
}
}
}
```
```
--------------------------------
### tool_settings object for domainWhoisTool
Source: https://hexowatch.com/api-documentation
Shows the structure and default values for the tool_settings object used in the monitoring creation request. Fields marked OPTIONAL have defaults; specific_fields is required only when mode is SPECIFIC_FIELDS.
```json
tool_settings: {
"api_host_code": "USA", ***OPTIONAL, DEFAULT**
"user_agent": false, ***OPTIONAL, DEFAULT**
"mode": "ANY_CHANGE",***OPTIONAL, DEFAULT**
"specific_fields": ["lastModified"],***REQUIRED if mode === SPECIFIC_FIELDS**
"alertDay": 7, ***OPTIONAL, DEFAULT**
}
```