Domain Overview

Get overview about domain-wide compromises and intelligence

Domain Overview Guide

Endpoint: /search-by-domain/overview
Required Permissions: search-by-domain

Basic Query: Single Domain

Get an overview of a single domain with default sorting (last_employee_compromised, descending).

curl --request POST \
     --url https://api.hudsonrock.com/json/v3/search-by-domain/overview \
     --header 'accept: application/json' \
     --header 'api-key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "domains": [
    "hpe.com"
  ]
}
'
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.hudsonrock.com/json/v3/search-by-domain/overview',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': '<API_KEY>'
  },
  data: {domains: ['hpe.com']}
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
import requests

url = "https://api.hudsonrock.com/json/v3/search-by-domain/overview"

payload = { "domains": ["hpe.com"] }
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "<API_KEY>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Multiple Domains

Retrieve overviews for multiple domains simultaneously

curl --request POST \
     --url https://api.hudsonrock.com/json/v3/search-by-domain/overview \
     --header 'accept: application/json' \
     --header 'api-key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "domains": [
    "hpe.com",
    "hp.com"
  ]
}
'
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.hudsonrock.com/json/v3/search-by-domain/overview',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': '<API_KEY>'
  },
  data: {domains: ['hpe.com', 'hp.com']}
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
import requests

url = "https://api.hudsonrock.com/json/v3/search-by-domain/overview"

payload = { "domains": ["hpe.com", "hp.com"] }
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "<API_KEY>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Filter by Minimum Employees Compromised

Find domains with at least 10 compromised employees

curl --request POST \
     --url https://api.hudsonrock.com/json/v3/search-by-domain/overview \
     --header 'accept: application/json' \
     --header 'api-key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "domains": [
    "hpe.com",
    "hp.com"
  ],
  "min_employees_compromised": 10
}
'
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.hudsonrock.com/json/v3/search-by-domain/overview',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': '<API_KEY>'
  },
  data: {
    domains: ['hpe.com', 'hp.com'],
    min_employees_compromised: 10
  }
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
import requests

url = "https://api.hudsonrock.com/json/v3/search-by-domain/overview"

payload = { "domains": ["hpe.com", "hp.com"], "min_employees_compromised": 10 }
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "<API_KEY>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Filter by Range of Compromised Employees

Get domains with 10 to 50 compromised employees.

curl --request POST \
     --url https://api.hudsonrock.com/json/v3/search-by-domain/overview \
     --header 'accept: application/json' \
     --header 'api-key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "domains": [
    "hpe.com",
    "hp.com"
  ],
  "min_employees_compromised": 10,
  "max_employees_compromised": 50
}
'
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.hudsonrock.com/json/v3/search-by-domain/overview',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': '<API_KEY>'
  },
  data: {
    domains: ['hpe.com', 'hp.com'],
    min_employees_compromised: 10,
    max_employees_compromised: 50
  }
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
import requests

url = "https://api.hudsonrock.com/json/v3/search-by-domain/overview"

payload = { 
  "domains": ["hpe.com", "hp.com"], 
  "min_employees_compromised": 10,
  "max_employees_compromised": 50
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "<API_KEY>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Filter by Minimum and Maximum Users Compromised

Find domains with 500 to 1,000 compromised users.

curl --request POST \
     --url https://api.hudsonrock.com/json/v3/search-by-domain/overview \
     --header 'accept: application/json' \
     --header 'api-key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "domains": [
    "hpe.com",
    "hp.com"
  ],
  "min_users_compromised": 500,
  "max_users_compromised": 1000
}
'
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.hudsonrock.com/json/v3/search-by-domain/overview',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': '<API_KEY>'
  },
  data: {
    domains: ['hpe.com', 'hp.com'],
    min_users_compromised: 500,
    max_users_compromised: 1000
  }
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
import requests

url = "https://api.hudsonrock.com/json/v3/search-by-domain/overview"

payload = { 
  "domains": ["hpe.com", "hp.com"], 
  "min_users_compromised": 500,
  "max_users_compromised": 1000
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "<API_KEY>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Filter by Last Employee Compromised Date

Get domains where the last employee compromise occurred after a specific date.

curl --request POST \
     --url https://api.hudsonrock.com/json/v3/search-by-domain/overview \
     --header 'accept: application/json' \
     --header 'api-key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "domains": [
    "hpe.com",
    "hp.com"
  ],
  "last_employee_compromised": "2023-06-01T00:00:00Z"
}
'
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.hudsonrock.com/json/v3/search-by-domain/overview',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': '<API_KEY>'
  },
  data: {
    domains: ['hpe.com', 'hp.com'],
    last_employee_compromised: "2023-06-01T00:00:00Z"
  }
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
import requests

url = "https://api.hudsonrock.com/json/v3/search-by-domain/overview"

payload = { 
  "domains": ["hpe.com", "hp.com"], 
  "last_employee_compromised": "2023-06-01T00:00:00Z"
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "<API_KEY>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Filter by Last User Uploaded Date

Find domains where user data was uploaded after a specific date.

curl --request POST \
     --url https://api.hudsonrock.com/json/v3/search-by-domain/overview \
     --header 'accept: application/json' \
     --header 'api-key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "domains": [
    "hpe.com",
    "hp.com"
  ],
  "last_user_uploaded": "2023-07-01T00:00:00Z"
}
'
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.hudsonrock.com/json/v3/search-by-domain/overview',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': '<API_KEY>'
  },
  data: {
    domains: ['hpe.com', 'hp.com'],
    last_user_uploaded: "2023-07-01T00:00:00Z"
  }
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
import requests

url = "https://api.hudsonrock.com/json/v3/search-by-domain/overview"

payload = { 
  "domains": ["hpe.com", "hp.com"], 
  "last_user_uploaded": "2023-07-01T00:00:00Z"
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "<API_KEY>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Sorting by Last User Compromised (Ascending)

Sort results by the last user compromise date, oldest to newest.

curl --request POST \
     --url https://api.hudsonrock.com/json/v3/search-by-domain/overview \
     --header 'accept: application/json' \
     --header 'api-key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "domains": [
    "hpe.com",
    "hp.com"
  ],
  "sort_by": "last_user_compromised",
  "sort_direction": "asc"
}
'
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.hudsonrock.com/json/v3/search-by-domain/overview',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': '<API_KEY>'
  },
  data: {
    domains: ['hpe.com', 'hp.com'],
    sort_by: "last_user_compromised",
    sort_direction: "asc"
  }
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
import requests

url = "https://api.hudsonrock.com/json/v3/search-by-domain/overview"

payload = { 
  "domains": ["hpe.com", "hp.com"], 
  "sort_by": "last_user_compromised",
  "sort_direction": "asc"
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "<API_KEY>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Sorting by Compromised Employees Count (Descending)

Sort results by the count of compromised employees, most to least.

curl --request POST \
     --url https://api.hudsonrock.com/json/v3/search-by-domain/overview \
     --header 'accept: application/json' \
     --header 'api-key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "domains": [
    "hpe.com",
    "hp.com"
  ],
  "sort_by": "compromised_employees",
  "sort_direction": "desc"
}
'
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.hudsonrock.com/json/v3/search-by-domain/overview',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': '<API_KEY>'
  },
  data: {
    domains: ['hpe.com', 'hp.com'],
    sort_by: "compromised_employees",
    sort_direction: "desc"
  }
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
import requests

url = "https://api.hudsonrock.com/json/v3/search-by-domain/overview"

payload = { 
  "domains": ["hpe.com", "hp.com"], 
  "sort_by": "compromised_employees",
  "sort_direction": "desc"
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "<API_KEY>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Pagination with Cursor

Fetch the next page of results using a cursor from a previous response.

curl --request POST \
     --url https://api.hudsonrock.com/json/v3/search-by-domain/overview \
     --header 'accept: application/json' \
     --header 'api-key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "domains": [
    "hpe.com",
    "hp.com"
  ],
  "cursor": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
'
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.hudsonrock.com/json/v3/search-by-domain/overview',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': '<API_KEY>'
  },
  data: {
    domains: ['hpe.com', 'hp.com'],
    cursor: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
  }
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
import requests

url = "https://api.hudsonrock.com/json/v3/search-by-domain/overview"

payload = { 
  "domains": ["hpe.com", "hp.com"], 
  "cursor": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "<API_KEY>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Complex Query: Multiple Filters and Sorting

Find domains with specific compromise ranges, filtered by upload dates, sorted by last employee upload.

curl --request POST \
     --url https://api.hudsonrock.com/json/v3/search-by-domain/overview \
     --header 'accept: application/json' \
     --header 'api-key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "domains": [
    "hpe.com",
    "hp.com"
  ],
  "min_employees_compromised": 5,
  "max_employees_compromised": 20,
  "min_users_compromised": 10,
  "last_employee_uploaded": "2023-07-01T00:00:00Z",
  "sort_by": "last_employee_uploaded",
  "sort_direction": "desc"
}
'
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.hudsonrock.com/json/v3/search-by-domain/overview',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': '<API_KEY>'
  },
  data: {
    domains: ['hpe.com', 'hp.com'],
    min_employees_compromised: 5,
    max_employees_compromised: 20,
    min_users_compromised: 10,
    last_employee_uploaded: "2023-07-01T00:00:00Z",
    sort_by: "last_employee_uploaded",
    sort_direction: "desc"
  }
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
import requests

url = "https://api.hudsonrock.com/json/v3/search-by-domain/overview"

payload = { 
  "domains": ["hpe.com", "hp.com"], 
  "min_employees_compromised": 5,
  "max_employees_compromised": 20,
  "min_users_compromised": 10,
  "last_employee_uploaded": "2023-07-01T00:00:00Z",
  "sort_by": "last_employee_uploaded",
  "sort_direction": "desc"
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "<API_KEY>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Filter by All Timestamp Fields

Narrow results to specific compromise and upload dates.

curl --request POST \
     --url https://api.hudsonrock.com/json/v3/search-by-domain/overview \
     --header 'accept: application/json' \
     --header 'api-key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "domains": [
    "hpe.com",
    "hp.com"
  ],
  "last_employee_compromised": "2023-06-01T00:00:00Z",
  "last_user_compromised": "2023-06-15T00:00:00Z",
  "last_employee_uploaded": "2023-07-01T00:00:00Z",
  "last_user_uploaded": "2023-07-10T00:00:00Z"
}
'
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.hudsonrock.com/json/v3/search-by-domain/overview',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    'api-key': '<API_KEY>'
  },
  data: {
    domains: ['hpe.com', 'hp.com'],
    last_employee_compromised: "2023-06-01T00:00:00Z",
    last_user_compromised: "2023-06-15T00:00:00Z",
    last_employee_uploaded: "2023-07-01T00:00:00Z",
    last_user_uploaded: "2023-07-10T00:00:00Z"

  }
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
import requests

url = "https://api.hudsonrock.com/json/v3/search-by-domain/overview"

payload = { 
  "domains": ["hpe.com", "hp.com"], 
  "last_employee_compromised": "2023-06-01T00:00:00Z",
  "last_user_compromised": "2023-06-15T00:00:00Z",
  "last_employee_uploaded": "2023-07-01T00:00:00Z",
  "last_user_uploaded": "2023-07-10T00:00:00Z"
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "<API_KEY>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)