whatisgithub

What is threatexchange?

eternal-flame-ad/threatexchange — explained in plain English

Analysis updated 2026-07-16 · repo last pushed 2025-04-29

Audience · developerComplexity · 4/5StaleSetup · hard

In one sentence

ThreatExchange is a toolkit that helps platforms detect and remove harmful content by generating and sharing digital fingerprints of known bad images and videos. Trust and safety teams use it to scan uploads against shared databases of abuse content.

Mindmap

mindmap
  root((repo))
  What it does
    Hashes images and videos
    Shares bad content fingerprints
    Scans uploads against lists
  Content types
    Photos via PDQ
    Videos via TMK
    Videos via vPDQ
  Key tools
    Hasher Matcher Actioner
    Python library
    Open Media Match
  Use cases
    Block abuse images
    Remove pirated videos
    Share threat intel
  Deployment
    HMA on AWS
    Open Media Match multi-cloud
    Meta API access required

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Block known abuse images by scanning new uploads against shared hash databases.

USE CASE 2

Detect and remove pirated or harmful videos using video fingerprinting tools.

USE CASE 3

Exchange threat intelligence like malware indicators and phishing URLs with partner platforms.

USE CASE 4

Build a cross-platform content safety pipeline that automatically flags matching uploads.

What is it built with?

PythonAWSMeta ThreatExchange API

How does it compare?

eternal-flame-ad/threatexchange0verflowme/alarm-clock0xhassaan/nn-from-scratch
Stars0
LanguageCSSPython
Last pushed2025-04-292022-10-03
MaintenanceStaleDormant
Setup difficultyhardeasymoderate
Complexity4/52/54/5
Audiencedevelopervibe coderdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

HMA requires AWS deployment, and accessing the full ThreatExchange dataset requires applying for API access through Meta.

The specific license is not stated in the explanation, so the terms of use are unclear.

So what is it?

ThreatExchange is a collection of tools that helps platforms detect and remove harmful content like known abuse images or pirated videos. Instead of each company building its own detection system from scratch, these tools let safety teams generate digital "fingerprints" of bad content and share them with each other, so a photo flagged on one service can be automatically caught on another. At its core, the project provides hashing algorithms that convert images and videos into compact signatures. PDQ handles photos, producing 256-bit identifiers. TMK and vPDQ tackle video, each using different approaches to match similar clips. Once content is hashed, tools like the Hasher-Matcher-Actioner platform let teams maintain databases of known bad content and scan new uploads against those lists. A Python library ties it together with reference implementations for downloading shared hashes and running scans. Trust and safety teams at social platforms, messaging apps, or file-sharing services would use this. For example, if a platform wants to block known non-consensual intimate images, it can receive shared hashes from partners, then automatically flag or remove any matching uploads. The tools also support exchanging threat intelligence like malware indicators or phishing URLs through Meta's ThreatExchange API. The project began as code for Meta's API but has grown into a broader toolkit. Notably, HMA is built for AWS deployment, while a newer version called Open Media Match is being designed to work across different cloud providers. Several components are at different stages of completeness, and accessing the full ThreatExchange dataset requires applying for API access through Meta.

Copy-paste prompts

Prompt 1
Set up the Hasher-Matcher-Actioner platform on AWS to scan user uploads against a database of known harmful image hashes using PDQ hashing.
Prompt 2
Use the Python library to download shared threat hashes from Meta's ThreatExchange API and run a local scan on a folder of images to find matches.
Prompt 3
Implement a video detection pipeline using TMK and vPDQ hashing to identify known pirated video clips being uploaded to my platform.
Prompt 4
Compare PDQ, TMK, and vPDQ hashing approaches and show me which to use for detecting near-duplicate harmful photos versus near-duplicate harmful videos.
Prompt 5
Help me apply for Meta ThreatExchange API access and configure the Python library to start pulling shared non-consensual intimate image hashes for blocking on my platform.

Frequently asked questions

What is threatexchange?

ThreatExchange is a toolkit that helps platforms detect and remove harmful content by generating and sharing digital fingerprints of known bad images and videos. Trust and safety teams use it to scan uploads against shared databases of abuse content.

Is threatexchange actively maintained?

Stale — no commits in 1-2 years (last push 2025-04-29).

What license does threatexchange use?

The specific license is not stated in the explanation, so the terms of use are unclear.

How hard is threatexchange to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is threatexchange for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.