Skip to main content

Entities API

The Entities API allows you to manage and retrieve information about your organization's entities and their associated assets.

info

This API endpoint is available for enterprise accounts only.

Get All Entities

List all entities associated with your account.

HTTP Request

GET https://fullhunt.io/api/v1/enterprise/entities

Query Parameters

ParameterRequiredTypeDescription
orgNostringFilter entities by organization ID

Example Request

curl "https://fullhunt.io/api/v1/enterprise/entities" \
-H "X-API-KEY: xxxx-xxxx-xxxx-xxxxxx"

Example Response

[
{
"asset": "kaspersky.com",
"type": "domain"
},
{
"asset": "185.85.15.0/24",
"type": "ip-range"
}
]

Response Fields

FieldTypeDescription
assetstringThe asset identifier (domain, IP range, etc.)
typestringType of entity (domain, ip-range, asn, etc.)

Get Assets of an Entity

Retrieve all assets associated with a specific entity.

HTTP Request

GET https://fullhunt.io/api/v1/enterprise/assets

Query Parameters

ParameterRequiredTypeDescription
entityYesstringEntity name to retrieve assets for

Example Request

curl "https://fullhunt.io/api/v1/enterprise/assets?entity=kaspersky.com" \
-H "X-API-KEY: xxxx-xxxx-xxxx-xxxxxx"

Example Response

[
{
"asset_score": 95,
"asset_score_reason": ["delegated-cname-record"],
"categories": [
"Web-Servers"
],
"cdn": "CloudFlare",
"cert_object": {
"dns_names": ["s252.cloud.kaspersky.com", "*.cloud.kaspersky.com"],
"email_addresses": null,
"ip_addresses": ["101.46.33.250"],
"is_valid_hostname": true,
"issuer_common_name": "DigiCert Global G2 TLS RSA SHA256 2020 CA1",
"issuer_country": "US",
"issuer_organization": "DigiCert Inc",
"issuer_serial_number": "0x0c1b5c9c5c4b888a462c6a6c2e2f0c8c",
"issuer_string": "CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1,O=DigiCert Inc,C=US",
"md5_fingerprint": "FA:66:2C:36:9E:63:84:44:B7:52:78:AE:1F:99:AD:7B",
"not_after": "14-04-2026 23:59:59",
"not_before": "15-04-2025 00:00:00",
"remote_ip_address": "101.46.33.250",
"sha1_fingerprint": "ED:AF:3E:F1:AA:F5:FF:5D:ED:85:13:50:05:2D:AB:65:5D:A0:F5:8E",
"sha256_fingerprint": "74:86:46:C4:AF:80:E7:60:C0:4C:5C:39:64:3B:24:B6:F3:87:A2:30:8C:A6:2C:68:B9:BB:D2:6C:78:37:E2:7C",
"signature_algorithm": "SHA256-RSA",
"subject_common_name": "*.cloud.kaspersky.com",
"subject_country": "CH",
"subject_locality": "Zürich",
"subject_organization": "Kaspersky Lab Switzerland GmbH",
"subject_province": "Zürich"
},
"cloud": {
"provider": "Huawei Cloud",
"region": "ap-southeast-1"
},
"dns": {
"a": [
"101.46.33.250"
],
"aaaa": [],
"cname": [],
"mx": [],
"ns": [],
"ptr": [
"ecs-101-46-33-250.compute.hwclouds-dns.eu."
],
"txt": []
},
"domain": "kaspersky.com",
"has_ipv6": false,
"has_private_ip": false,
"host": "s252.cloud.kaspersky.com",
"http_status_code": 200,
"http_title": "Kaspersky Endpoint Security Cloud",
"ip_address": "101.46.33.250",
"ip_metadata": {
"asn": 136907,
"city_name": "Singapore",
"country_code": "SG",
"country_name": "Singapore",
"isp": "HUAWEI CLOUDS",
"location_latitude": 1.3673,
"location_longitude": 103.8014,
"organization": "HUAWEI CLOUDS",
"postal_code": "018956",
"region": "Central Region"
},
"is_cdn": false,
"is_cloud": true,
"is_cloudflare": false,
"is_live": true,
"is_resolvable": true,
"network_ports": [
8000,
8080,
8081,
9443
],
"network_services": [
{
"banner": "404 Not Found\r\nContent-Length: 0\r\nDate: Mon, 28 Jul 2025 23:35:45 GMT\r\nServer: Kestrel\r\nStrict-Transport-Security: max-age=2592000\r\nX-Conversation-Id: 0f04bf11-eddc-45d5-9aeb-2bf811698ca2\r\n",
"category": [
"Web-Servers"
],
"certobject": {
"dnsnames": [
"*.cloud.kaspersky.com"
],
"emailaddresses": null,
"ipaddresses": [],
"issuer_commonname": "DigiCert Global G2 TLS RSA SHA256 2020 CA1",
"issuer_country": "US",
"issuer_organization": "DigiCert Inc",
"issuer_serialnumber": "",
"issuer_string": "CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1,O=DigiCert Inc,C=US",
"isvalidhostname": true,
"md5_fingerprint": "FA:66:2C:36:9E:63:84:44:B7:52:78:AE:1F:99:AD:7B",
"notafter": "14-04-2026 23:59:59",
"notbefore": "15-04-2025 00:00:00",
"remoteipaddress": "101.46.33.250:8000",
"sha1_fingerprint": "ED:AF:3E:F1:AA:F5:FF:5D:ED:85:13:50:05:2D:AB:65:5D:A0:F5:8E",
"sha256_fingerprint": "74:86:46:C4:AF:80:E7:60:C0:4C:5C:39:64:3B:24:B6:F3:87:A2:30:8C:A6:2C:68:B9:BB:D2:6C:78:37:E2:7C",
"signaturealgorithm": "SHA256-RSA",
"subject_commonname": "*.cloud.kaspersky.com",
"subject_country": "CH",
"subject_locality": "Zürich",
"subject_organization": "Kaspersky Lab Switzerland GmbH",
"subject_province": ""
},
"httpfavicon": "abeeb96320c2f5bec5e40c1d436836be",
"httpfaviconblob": "0000010001001010000001002000680400001600000028000000100000002000000001002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000839b0029869d08bc869d08bc839b00290000000000000000000000000000000000000000000000000000000000000000000000000000000087a50011859b0394889e0bf5c8d28ffcc8d28ffc889e0bf5859b039487a50011000000000000000000000000000000000000000000000000aaaa0003849b026e869c07f0b5c266f7f6f8ecfffffffffffffffffff6f8ecffb5c266f7869d07f1849b026eaaaa0003000000000000000000000000889c074b889d09dea1b23ef3ebefd5fffffffffffffffffffffffffff8f8f8fffbfbfbfff8f8f8ffebefd6ffa1b23ef3889d09de889c074b0000000000000000829900ffdbe1b4fffffffffffffffffffffffffffffffffff4f4f4ffb4b4b4ff474747ffb6b6b6fff7f7f7ffffffffffdbe1b4ff829900ff0000000000000000829900ffffffffffe1e1e1ff626262ff363636ff333333fff9f9f9ff3a3a3aff333333ff3a3a3afff9f9f9ffe1e1e1ffffffffff829900ff0000000000000000829900ffffffffff636363ff989898fffafafaffffffffffffffffff333333ff333333ff333333ffffffffff636363ffffffffff829900ff0000000000000000829900ffffffffff3d3d3dffebebebfffffffffffffffffff9f9f9ffddddddff838383ffe1e1e1fff5f5f5ff3e3e3effffffffff829900ff0000000000000000829900ffffffffff737373ff7b7b7bfff3f3f3fffffffffffffffffffffffffffbfbfbffecececff7a7a7aff747474ffffffffff829900ff0000000000000000829900fffffffffff3f3f3ff606060ff989898fff8f8f8ffffffffffffffffffffffffff818181ff757575fff2f2f2ffffffffff829900ff0000000000000000829900ffffffffffffffffffe1e1e1ff545454ff353535ff999999fff1f1f1ffc4c4c4ff454545ffeaeaeaffffffffffffffffff829900ff0000000000000000829900ffdbe1b4ffffffffffffffffffffffffffeaeaeaff6a6a6aff3c3c3cff5b5b5bffcfcfcfffffffffffffffffffdbe1b4ff829900ff0000000000000000889c074b889d09dea1b13df3ebefd5ffffffffffffffffffffffffffffffffffffffffffffffffffebefd5ffa1b13df3879d08dd889c074b000000000000000000000000aaaa0003849b026e869c07f0b5c266f7f6f8ecfffffffffffffffffff6f8ecffb5c266f7869c07f0849b026eaaaa000300000000000000000000000000000000000000000000000087a50011859b0394889e0bf5c8d28efcc8d28efc889e0bf5859b039487a5001100000000000000000000000000000000000000000000000000000000000000000000000000000000839b0029869d08bc869d08bc839b0029000000000000000000000000000000000000000000000000fc3f0000f00f0000c003000080010000800100008001000080010000800100008001000080010000800100008001000080010000c0030000f00f0000fc3f0000",
"httpstatuscode": 404,
"httptitle": "Kaspersky Security Dashboard",
"port": 8000,
"possiblec2": "",
"product": [
{
"cpe23": [],
"maincpe": "",
"name": "Microsoft-Kestrel",
"version": ""
}
],
"service": [
"https"
],
"ssljarm": "2ad2ad16d0000000002ad2ad2ad2ad1f4989c319e75da83988253a39553038",
"type": "tcp",
"web": [
"HSTS",
"Kestrel",
"Microsoft ASP.NET"
]
},
{
"banner": "200 OK\r\nConnection: keep-alive\r\nContent-Type: text/html; charset=utf-8\r\nDate: Mon, 28 Jul 2025 23:35:45 GMT\r\nEtag: W/\"52d-Ay2QOX57HAUzLQz8YyUm/W+VXg0\"\r\nKeep-Alive: timeout=5\r\nStrict-Transport-Security: max-age=86400\r\nVary: Accept-Encoding\r\nX-Content-Type-Options: nosniff\r\nX-Download-Options: noopen\r\nX-Frame-Options: SAMEORIGIN\r\nX-Xss-Protection: 1; mode=block\r\n",
"category": [
"Web-Servers"
],
"certobject": {
"dnsnames": [
"*.cloud.kaspersky.com"
],
"emailaddresses": null,
"ipaddresses": [],
"issuer_commonname": "DigiCert Global G2 TLS RSA SHA256 2020 CA1",
"issuer_country": "US",
"issuer_organization": "DigiCert Inc",
"issuer_serialnumber": "",
"issuer_string": "CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1,O=DigiCert Inc,C=US",
"isvalidhostname": true,
"md5_fingerprint": "FA:66:2C:36:9E:63:84:44:B7:52:78:AE:1F:99:AD:7B",
"notafter": "14-04-2026 23:59:59",
"notbefore": "15-04-2025 00:00:00",
"remoteipaddress": "101.46.33.250:8080",
"sha1_fingerprint": "ED:AF:3E:F1:AA:F5:FF:5D:ED:85:13:50:05:2D:AB:65:5D:A0:F5:8E",
"sha256_fingerprint": "74:86:46:C4:AF:80:E7:60:C0:4C:5C:39:64:3B:24:B6:F3:87:A2:30:8C:A6:2C:68:B9:BB:D2:6C:78:37:E2:7C",
"signaturealgorithm": "SHA256-RSA",
"subject_commonname": "*.cloud.kaspersky.com",
"subject_country": "CH",
"subject_locality": "Zürich",
"subject_organization": "Kaspersky Lab Switzerland GmbH",
"subject_province": ""
},
"httpfavicon": "abeeb96320c2f5bec5e40c1d436836be",
"httpfaviconblob": "0000010001001010000001002000680400001600000028000000100000002000000001002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000839b0029869d08bc869d08bc839b00290000000000000000000000000000000000000000000000000000000000000000000000000000000087a50011859b0394889e0bf5c8d28ffcc8d28ffc889e0bf5859b039487a50011000000000000000000000000000000000000000000000000aaaa0003849b026e869c07f0b5c266f7f6f8ecfffffffffffffffffff6f8ecffb5c266f7869d07f1849b026eaaaa0003000000000000000000000000889c074b889d09dea1b23ef3ebefd5fffffffffffffffffffffffffff8f8f8fffbfbfbfff8f8f8ffebefd6ffa1b23ef3889d09de889c074b0000000000000000829900ffdbe1b4fffffffffffffffffffffffffffffffffff4f4f4ffb4b4b4ff474747ffb6b6b6fff7f7f7ffffffffffdbe1b4ff829900ff0000000000000000829900ffffffffffe1e1e1ff626262ff363636ff333333fff9f9f9ff3a3a3aff333333ff3a3a3afff9f9f9ffe1e1e1ffffffffff829900ff0000000000000000829900ffffffffff636363ff989898fffafafaffffffffffffffffff333333ff333333ff333333ffffffffff636363ffffffffff829900ff0000000000000000829900ffffffffff3d3d3dffebebebfffffffffffffffffff9f9f9ffddddddff838383ffe1e1e1fff5f5f5ff3e3e3effffffffff829900ff0000000000000000829900ffffffffff737373ff7b7b7bfff3f3f3fffffffffffffffffffffffffffbfbfbffecececff7a7a7aff747474ffffffffff829900ff0000000000000000829900fffffffffff3f3f3ff606060ff989898fff8f8f8ffffffffffffffffffffffffff818181ff757575fff2f2f2ffffffffff829900ff0000000000000000829900ffffffffffffffffffe1e1e1ff545454ff353535ff999999fff1f1f1ffc4c4c4ff454545ffeaeaeaffffffffffffffffff829900ff0000000000000000829900ffdbe1b4ffffffffffffffffffffffffffeaeaeaff6a6a6aff3c3c3cff5b5b5bffcfcfcfffffffffffffffffffdbe1b4ff829900ff0000000000000000889c074b889d09dea1b13df3ebefd5ffffffffffffffffffffffffffffffffffffffffffffffffffebefd5ffa1b13df3879d08dd889c074b000000000000000000000000aaaa0003849b026e869c07f0b5c266f7f6f8ecfffffffffffffffffff6f8ecffb5c266f7869c07f0849b026eaaaa000300000000000000000000000000000000000000000000000087a50011859b0394889e0bf5c8d28efcc8d28efc889e0bf5859b039487a5001100000000000000000000000000000000000000000000000000000000000000000000000000000000839b0029869d08bc869d08bc839b0029000000000000000000000000000000000000000000000000fc3f0000f00f0000c003000080010000800100008001000080010000800100008001000080010000800100008001000080010000c0030000f00f0000fc3f0000",
"httpstatuscode": 200,
"httptitle": "Kaspersky Endpoint Security Cloud",
"port": 8080,
"possiblec2": "",
"product": [
{
"cpe23": ["cpe:2.3:a:microsoft:asp.net:*:*:*:*:*:*:*:*"],
"maincpe": "cpe:2.3:a:microsoft:asp.net",
"name": "Microsoft ASP.NET",
"version": "5.0"
}
],
"service": [
"https"
],
"ssljarm": "29d29d00029d29d00042d42d000000591965a32830c32b3ad57d4bfd247359",
"type": "tcp",
"web": [
"HSTS"
]
},
{
"banner": "200 OK\r\nAccept-Ranges: bytes\r\nConnection: Keep-Alive\r\nContent-Length: 1567\r\nContent-Type: text/html; charset=utf-8\r\nDate: Mon, 28 Jul 2025 23:35:45 GMT\r\nKeep-Alive: timeout=5, max=100\r\nServer: Apache/2.4.58 (Win32) OpenSSL/3.0.11 mod_kscwc/2.4\r\n",
"category": [
"Web-Servers"
],
"certobject": {
"dnsnames": [
"*.cloud.kaspersky.com"
],
"emailaddresses": null,
"ipaddresses": [],
"issuer_commonname": "DigiCert Global G2 TLS RSA SHA256 2020 CA1",
"issuer_country": "US",
"issuer_organization": "DigiCert Inc",
"issuer_serialnumber": "",
"issuer_string": "CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1,O=DigiCert Inc,C=US",
"isvalidhostname": true,
"md5_fingerprint": "FA:66:2C:36:9E:63:84:44:B7:52:78:AE:1F:99:AD:7B",
"notafter": "14-04-2026 23:59:59",
"notbefore": "15-04-2025 00:00:00",
"remoteipaddress": "101.46.33.250:8081",
"sha1_fingerprint": "ED:AF:3E:F1:AA:F5:FF:5D:ED:85:13:50:05:2D:AB:65:5D:A0:F5:8E",
"sha256_fingerprint": "74:86:46:C4:AF:80:E7:60:C0:4C:5C:39:64:3B:24:B6:F3:87:A2:30:8C:A6:2C:68:B9:BB:D2:6C:78:37:E2:7C",
"signaturealgorithm": "SHA256-RSA",
"subject_commonname": "*.cloud.kaspersky.com",
"subject_country": "CH",
"subject_locality": "Zürich",
"subject_organization": "Kaspersky Lab Switzerland GmbH",
"subject_province": ""
},
"httpfavicon": "8597a7ccc34c58485503cefdafb12976",
"httpfaviconblob": "00000100010010100000000000006803000016000000280000001000000020000000010018000000000000030000000000000000000000000000000000001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e37f8000003fc000001fc000000f800000070000000200000001060000008f0000005f0000003f0000001f0000000f000004070000060300000701000007800000",
"httpstatuscode": 200,
"httptitle": "Kaspersky Endpoint Security Cloud",
"port": 8081,
"possiblec2": "",
"product": [
{
"cpe23": [],
"maincpe": "",
"name": "Apache",
"version": ""
}
],
"service": [
"https"
],
"ssljarm": "25d2ad00025d25d00042d43d0000007d9a2df75fc17326c15d1e44e597e360",
"type": "tcp",
"web": [
"Windows Server"
]
},
{
"banner": "",
"category": null,
"certobject": {
"dnsnames": [
"*.cloud.kaspersky.com"
],
"emailaddresses": null,
"ipaddresses": [],
"issuer_commonname": "DigiCert Global G2 TLS RSA SHA256 2020 CA1",
"issuer_country": "US",
"issuer_organization": "DigiCert Inc",
"issuer_serialnumber": "",
"issuer_string": "CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1,O=DigiCert Inc,C=US",
"isvalidhostname": true,
"md5_fingerprint": "FA:66:2C:36:9E:63:84:44:B7:52:78:AE:1F:99:AD:7B",
"notafter": "14-04-2026 23:59:59",
"notbefore": "15-04-2025 00:00:00",
"remoteipaddress": "101.46.33.250:9443",
"sha1_fingerprint": "ED:AF:3E:F1:AA:F5:FF:5D:ED:85:13:50:05:2D:AB:65:5D:A0:F5:8E",
"sha256_fingerprint": "74:86:46:C4:AF:80:E7:60:C0:4C:5C:39:64:3B:24:B6:F3:87:A2:30:8C:A6:2C:68:B9:BB:D2:6C:78:37:E2:7C",
"signaturealgorithm": "SHA256-RSA",
"subject_commonname": "*.cloud.kaspersky.com",
"subject_country": "CH",
"subject_locality": "Zürich",
"subject_organization": "Kaspersky Lab Switzerland GmbH",
"subject_province": ""
},
"httpfavicon": "8597a7ccc34c58485503cefdafb12976",
"httpfaviconblob": "00000100010010100000000000006803000016000000280000001000000020000000010018000000000000030000000000000000000000000000000000001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e31306e31306e35c6d005c6d005c6d005c6d005c6d005c6d005c6d001306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e31306e37f8000003fc000001fc000000f800000070000000200000001060000008f0000005f0000003f0000001f0000000f000004070000060300000701000007800000",
"httpstatuscode": 200,
"httptitle": "Kaspersky Cloud Management Console",
"port": 9443,
"possiblec2": "",
"product": null,
"service": null,
"ssljarm": "2ad2ad0002ad2ad00042d42d000000020120996177a65431cde640fa58d2e8",
"type": "tcp",
"web": null
}
],
"products": [
{
"cpe23": [],
"maincpe": "",
"name": "Microsoft-Kestrel",
"version": ""
},
{
"cpe23": [],
"maincpe": "",
"name": "Apache",
"version": ""
}
],
"tags": [
"https",
"microsoft-kestrel",
"web-servers",
"apache"
],
"tld": "com",
"urls": [
"https://s252.cloud.kaspersky.com:8080",
"https://s252.cloud.kaspersky.com:8081",
"https://s252.cloud.kaspersky.com:9443"
],
"web": [
"HSTS",
"Microsoft ASP.NET",
"Windows Server",
"Kestrel"
]
}
]

Integration Example

import requests

def get_entity_overview(api_key):
"""Get overview of all entities and their asset counts."""

# Get all entities
entities_url = "https://fullhunt.io/api/v1/enterprise/entities"
headers = {"X-API-KEY": api_key}

response = requests.get(entities_url, headers=headers)

if response.status_code == 200:
entities = response.json()

print("📋 Entity Overview")
print("=" * 40)

total_assets = 0

for entity in entities:
entity_name = entity['asset']
entity_type = entity['type']

# Get assets for this entity
assets_url = "https://fullhunt.io/api/v1/enterprise/assets"
params = {"entity": entity_name}

assets_response = requests.get(assets_url, headers=headers, params=params)

if assets_response.status_code == 200:
assets = assets_response.json()
asset_count = len(assets)
total_assets += asset_count

# Calculate average asset score
scores = [asset.get('asset_score', 0) for asset in assets if asset.get('asset_score')]
avg_score = sum(scores) / len(scores) if scores else 0

print(f"\n{entity_name} ({entity_type})")
print(f" Assets: {asset_count}")
print(f" Avg Score: {avg_score:.1f}")

# Show high-risk assets
high_risk = [a for a in assets if a.get('asset_score', 0) > 90]
if high_risk:
print(f" ⚠️ High-risk assets: {len(high_risk)}")
for asset in high_risk[:3]: # Show top 3
print(f" - {asset['host']} (score: {asset['asset_score']})")

print(f"\nTotal Assets: {total_assets}")

return entities
else:
print(f"Error: {response.status_code}")
return None

def monitor_high_risk_assets(api_key, threshold=85):
"""Monitor assets with high risk scores."""

entities_url = "https://fullhunt.io/api/v1/enterprise/entities"
headers = {"X-API-KEY": api_key}

response = requests.get(entities_url, headers=headers)

if response.status_code == 200:
entities = response.json()
high_risk_assets = []

for entity in entities:
assets_url = "https://fullhunt.io/api/v1/enterprise/assets"
params = {"entity": entity['asset']}

assets_response = requests.get(assets_url, headers=headers, params=params)

if assets_response.status_code == 200:
assets = assets_response.json()

for asset in assets:
score = asset.get('asset_score', 0)
if score >= threshold:
high_risk_assets.append({
'entity': entity['asset'],
'host': asset['host'],
'score': score,
'reasons': asset.get('asset_score_reason', []),
'products': asset.get('products', []),
'ports': asset.get('network_ports', [])
})

# Sort by score (highest first)
high_risk_assets.sort(key=lambda x: x['score'], reverse=True)

print(f"🚨 High-Risk Assets (Score >= {threshold})")
print("=" * 50)

for asset in high_risk_assets:
print(f"\n{asset['host']} (Score: {asset['score']})")
print(f" Entity: {asset['entity']}")
print(f" Reasons: {', '.join(asset['reasons'])}")

if asset['products']:
print(f" Products: {', '.join(asset['products'][:3])}")

if asset['ports']:
print(f" Open Ports: {', '.join(map(str, asset['ports'][:5]))}")

return high_risk_assets
else:
print(f"Error: {response.status_code}")
return None

# Usage
api_key = "your-api-key-here"
entities = get_entity_overview(api_key)
high_risk = monitor_high_risk_assets(api_key, threshold=90)

Use Cases

Asset Discovery

  • Discover all digital assets associated with your domains
  • Find shadow IT and forgotten infrastructure
  • Map your complete attack surface

Risk Assessment

  • Identify high-risk assets requiring immediate attention
  • Monitor asset scores over time
  • Prioritize security efforts based on exposure levels

Compliance Monitoring

  • Ensure all organizational assets are properly inventoried
  • Monitor certificate expiration dates
  • Track security configuration changes

Threat Intelligence

  • Identify potential attack vectors
  • Monitor for new exposures
  • Track technology adoption across your infrastructure

Rate Limiting

  • Rate limit: 60 requests per minute
  • Large asset inventories may require multiple API calls
  • Use organization filtering to focus on specific entities