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
Parameter | Required | Type | Description |
---|---|---|---|
org | No | string | Filter 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
Field | Type | Description |
---|---|---|
asset | string | The asset identifier (domain, IP range, etc.) |
type | string | Type 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
Parameter | Required | Type | Description |
---|---|---|---|
entity | Yes | string | Entity 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