Historical Hosts Search API
The OEM Historical Hosts Search API provides access to historical host scan data for a specific host or domain. Results are sorted by most recently seen first.
warning
OEM API requires special partner access. Contact FullHunt sales to enable OEM capabilities on your account.
Search Historical Hosts
Retrieve historical scan records for a host or domain.
HTTP Request
POST https://fullhunt.io/api/v1/oem/historical-hosts/search
Request Body Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| type | Yes | string | Type of query. Supported values: host, domain |
| query | Yes | string | The host, IP address, or domain to search for |
| query_tags | No | object | Key-value pairs for client-specific tracking |
Example Request — By Domain
curl -X POST "https://fullhunt.io/api/v1/oem/historical-hosts/search" \
-H "X-API-KEY: xxxx-xxxx-xxxx-xxxxxx" \
-H "Content-Type: application/json" \
-d '{
"type": "domain",
"query": "acme.com",
"query_tags": {
"client_name": "ACMECorp",
"workspace": "production"
}
}'
Example Request — By Host
curl -X POST "https://fullhunt.io/api/v1/oem/historical-hosts/search" \
-H "X-API-KEY: xxxx-xxxx-xxxx-xxxxxx" \
-H "Content-Type: application/json" \
-d '{
"type": "host",
"query": "legacy.acme.com"
}'
Example Response
{
"query": {
"type": "domain",
"value": "acme.com"
},
"total_results": 1,
"results": [
{
"host": "www.acme.com",
"domain": "acme.com",
"subdomain": "www",
"tld": "com",
"type": "subdomain",
"ip_address": "2606:4700:3035::ac43:cb5c",
"dns_a": ["172.67.203.92", "104.21.90.180"],
"dns_aaaa": ["2606:4700:3035::ac43:cb5c", "2606:4700:3033::6815:5ab4"],
"dns_mx": null,
"dns_ns": [],
"dns_cname": [],
"dns_txt": null,
"is_resolvable": true,
"is_cloud": true,
"is_live": true,
"is_cloudflare": true,
"has_ipv6": true,
"has_private_ip": false,
"cloud_provider": "Cloudflare",
"cloud_region": "global",
"cdn": "Cloudflare",
"is_cdn": true,
"http_status_code": 200,
"http_title": "ACME Corp - Official Site",
"network_ports": [80, 443, 8080, 8443],
"network_services": [
{
"port": 443,
"type": "tcp",
"service": ["https"],
"category": ["Content-Delivery-Network", "CDN"],
"web": ["Cloudflare", "HTTP/3"],
"product": [
{
"name": "CloudFlare",
"version": "",
"cpe23": ["cpe:2.3:a:cloudflare:load_balancing:-:*:*:*:*:*:*:*"]
}
],
"httpstatuscode": 200,
"httptitle": "ACME Corp - Official Site",
"certobject": {
"dnsnames": ["acme.com", "*.acme.com"],
"issuer_commonname": "WE1",
"issuer_organization": "Google Trust Services",
"issuer_country": "US",
"notafter": "26-06-2026 01:59:29",
"notbefore": "28-03-2026 01:01:19",
"signaturealgorithm": "ECDSA-SHA256",
"subject_commonname": "acme.com",
"isvalidhostname": true
}
}
],
"products": [
{
"name": "CloudFlare",
"version": "",
"cpe23": ["cpe:2.3:a:cloudflare:load_balancing:-:*:*:*:*:*:*:*"]
}
],
"tags": ["ipv6", "cloud", "cloudflare", "cdn", "https"],
"categories": ["Content-Delivery-Network", "CDN"],
"ports_count": 4,
"snapshot_reason": "change_detected",
"date_added": "2026-05-03 22:51:27",
"last_seen": "2026-05-03 22:51:27"
}
]
}
Response Fields
| Field | Type | Description |
|---|---|---|
query | object | The query parameters used |
query.type | string | Query type (host or domain) |
query.value | string | The queried value |
total_results | integer | Number of historical records returned |
results | array | Array of historical host scan records |
results[].host | string | Hostname |
results[].domain | string | Parent domain |
results[].ip_address | string | IP address at time of scan |
results[].http_status_code | integer | HTTP status code recorded |
results[].http_title | string | HTTP page title recorded |
results[].network_ports | array | Open ports detected |
results[].tags | array | Technology tags |
results[].products | array | Detected products with version information |
results[].first_seen | string | First time this host record was observed (ISO 8601) |
results[].last_seen | string | Most recent observation date (ISO 8601) |
results[].is_live | boolean | Whether the host was live at last scan |
Use Cases
- Shadow IT Discovery: Identify previously unknown or decommissioned assets
- Forensic Investigation: Reconstruct infrastructure state at a point in time
- Asset Lifecycle Tracking: Monitor how hosts have changed over their lifetime
- Migration Auditing: Verify old infrastructure has been fully decommissioned
- Compliance: Demonstrate historical exposure windows during security audits
Query Tags for Tracking
Use query_tags to track per-client usage in audit logs:
{
"query_tags": {
"client_id": "client_123",
"client_name": "ACME Corporation",
"workspace": "production"
}
}
Error Handling
| Status Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request — missing or invalid parameters |
| 401 | Unauthorized — invalid API key |
| 403 | Forbidden — OEM access not enabled or credits exhausted |
| 429 | Rate limit exceeded (60 requests/minute) |
| 500 | Internal server error |