### 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** } ```