Skip to main content
The IoC (Indicators of Compromise) endpoints allow you to upload threat data from agents and query the collective intelligence database.

POST /api/threats

Uploads threat data from an agent or external source. Supports both single and batch submissions.
object[]
required
Array of threat objects (maximum 100 per request).
string
required
IoC type: ip, domain, hash, url, email, cve.
string
required
The indicator value (e.g., IP address, domain name, file hash).
string
required
Source identifier (e.g., guard-agent, honeypot, manual).
string
Threat category: malware, botnet, phishing, bruteforce, scanner, exploit, c2.
string
Severity: low, medium, high, critical.
number
Confidence score (0.0—1.0).
object
Additional metadata (ports, protocols, MITRE ATT&CK IDs, etc.).
Batch uploads accept up to 100 threats per request. For larger volumes, split into multiple requests. Duplicate IoCs are automatically merged — their reputation score, sighting count, and metadata are updated rather than creating duplicates.

POST /api/trap-intel

Submits intelligence gathered from Panguard Trap (honeypot) deployments. This data receives a higher confidence boost due to the nature of honeypot interactions.
string
required
The honeypot instance identifier.
string
required
IP address of the attacker.
string
required
Type of honeypot: ssh, http, ftp, smtp, custom.
object[]
required
Array of attacker interaction records.
object[]
Credentials attempted by the attacker.
string[]
SHA-256 hashes of any payloads dropped.

GET /api/iocs

Searches the IoC database with filters.
string
Filter by IoC type: ip, domain, hash, url, email, cve.
string
Filter by source (e.g., guard-agent, honeypot, community).
number
Minimum reputation score (0—100, where 0 is most malicious).
number
Maximum reputation score.
string
Filter by status: active, expired, whitelisted.
string
Filter by threat category.
string
Return IoCs updated after this ISO 8601 timestamp.
number
default:"1"
Page number.
number
default:"50"
Results per page (max 200).

GET /api/iocs/:value

Looks up a single IoC by its value. Supports IP addresses, domains, hashes, URLs, emails, and CVE IDs.
string
required
The IoC value to look up. URL-encode if necessary.
The single lookup endpoint returns enriched data including related IoCs, campaign associations, and geographic metadata. Use this for detailed investigation of specific indicators.