Demos/Security

Threat Actor Footprint

Map a person's online footprint across platforms, forums, and leaked credential databases.

people-intelligenceOSINTsecurityapi

Try it

Input

First and last name of the subject.

Known email address significantly improves match accuracy.

Confirmed profile URL anchors identity resolution.

Output

cached sample
{
  "full_name": "Saarth Shah",
  "known_aliases": "saarthshah (GitHub, LinkedIn handle)",
  "confirmed_emails": "saarth@sixtyfour.ai",
  "confirmed_phone_numbers": "None found",
  "social_profiles": "LinkedIn: https://linkedin.com/in/saarthshah\nTwitter/X: @saarthshah\nGitHub: https://github.com/saarthshah",
  "professional_background": "CEO & Co-founder, Sixtyfour (2023–present)\nPrior: early-stage SaaS startups (product and engineering roles)",
  "technical_skills": "Python, TypeScript, LLMs, API architecture, product strategy, developer GTM",
  "forum_and_community_presence": "Active on LinkedIn and Twitter/X; open-source activity on GitHub; no significant presence on security forums or niche underground communities",
  "dark_web_mentions": "None found",
  "credential_leak_exposure": "None found in major breach indices",
  "domain_and_infrastructure": "sixtyfour.ai (registered operator); api.sixtyfour.ai, docs.sixtyfour.ai (subdomains)",
  "threat_actor_signals": "None found — no associations with threat groups, CVE authorship, or adverse attribution",
  "legal_and_public_record": "None found — no court records, regulatory actions, or adverse press",
  "risk_score": "3",
  "risk_verdict": "none",
  "risk_summary": "Saarth Shah is a publicly visible tech founder with a clean digital footprint. No adverse signals were identified across breach databases, dark web sources, or public records. The minimal score reflects standard founder-level public presence with no threat indicators.",
  "data_sources_note": "LinkedIn, Twitter/X, GitHub, HaveIBeenPwned index, WHOIS, press sources, Google News. Dark web scan limited to indexed sources; private forums not accessible."
}

This demo runs on Low tier for speed and reliability. Medium tier adds extended enrichment, and High tier delivers the deepest OSINT coverage — full credential leak scanning, dark web forum indexing, and exhaustive alias resolution. High tier is available to Enterprise customers only. Learn about High Tier →

Copy code

const SIXTYFOUR_API_KEY = process.env.SIXTYFOUR_API_KEY;

async function mapThreatActorFootprint({ fullName, email, linkedinUrl }) {
  const response = await fetch("https://api.sixtyfour.ai/people-intelligence", {
    method: "POST",
    headers: {
      "x-api-key": SIXTYFOUR_API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      lead_info: {
        full_name: fullName,
        ...(email && { email }),
        ...(linkedinUrl && { linkedin_url: linkedinUrl }),
      },
      struct: {
        full_name: "Confirmed full legal name",
        known_aliases:
          "Other names, handles, or usernames. 'None found' if absent.",
        confirmed_emails: "Known email addresses, comma-separated. 'None found' if absent.",
        confirmed_phone_numbers: "Known phone numbers, comma-separated. 'None found' if absent.",
        social_profiles:
          "Confirmed profiles (LinkedIn, Twitter/X, GitHub, etc.). Format: 'Platform: URL'. 'None found' if absent.",
        professional_background:
          "Current and recent employers, roles, and tenure — one line each.",
        technical_skills:
          "Programming languages, security tools, or technical domains. 'None found' if unidentifiable.",
        forum_and_community_presence:
          "Activity on HN, Reddit, Stack Overflow, security forums, etc. 'None found' if absent.",
        dark_web_mentions:
          "Mentions on dark web forums, paste sites, or underground markets. 'None found' if absent.",
        credential_leak_exposure:
          "Appearances in known data breaches. Cite source/date if known. 'None found' if absent.",
        domain_and_infrastructure:
          "Domains or IPs registered to or associated with this person. 'None found' if absent.",
        threat_actor_signals:
          "Associations with threat groups, CVE authorship, or public attribution. 'None found' if absent.",
        legal_and_public_record:
          "Court records, regulatory actions, law enforcement mentions. 'None found' if absent.",
        risk_score:
          "Integer 0-100. 0 = no signals, 100 = confirmed high-risk actor.",
        risk_verdict: "One of: none | low | medium | high | critical",
        risk_summary: "3-5 sentences on key findings and basis for verdict.",
        data_sources_note: "OSINT databases, breach indices, social platforms used. Note any gaps.",
      },
      tier: "low",
    }),
  });

  if (!response.ok) {
    const body = await response.text();
    throw new Error(`Sixtyfour API error ${response.status}: ${body}`);
  }

  const { structured_data, confidence_score, references } = await response.json();
  return { structured_data, confidence_score, references };
}

// Example usage
const { structured_data } = await mapThreatActorFootprint({
  fullName: "Saarth Shah",
  email: "saarth@sixtyfour.ai",
  linkedinUrl: "https://linkedin.com/in/saarthshah",
});
console.log(`${structured_data.full_name} — risk: ${structured_data.risk_verdict} (${structured_data.risk_score}/100)`);
console.log(structured_data.risk_summary);

Response data

A structured OSINT footprint covering confirmed identities and aliases, social platform presence, dark web and credential leak exposure, threat actor signals, and an overall risk verdict with sourced reasoning.

Run locally

  1. 1

    Clone the repo

    bash
    git clone https://github.com/sixtyfour-ai/sixtyfour-demos.git
    cd sixtyfour-demos/demos/security/threat-actor-footprint
  2. 2

    Add your API key

    Get your key from app.sixtyfour.ai, then:

    bash
    cp .env.example .env
    # Open .env and set SIXTYFOUR_API_KEY=your_key_here
  3. 3

    Install dependencies

    bash
    pnpm install
  4. 4

    Run the demo

    Executes the enrichment and prints the structured output to your terminal.

    bash
    pnpm start