Rapid7 is sunsetting AttackerKB, and the public API goes dark on August 18, 2026. After that, the vulnerability discussions, community assessments, and Rapid7 analysis that accumulated on the platform become a dead link.
I wrote a small Go CLI that pulls it down while the API still responds: attackerkb-archive.
What It Does
The tool hits three endpoints — topics (with Rapid7 analysis), community assessments, and contributor profiles — and writes each as NDJSON with checksums and a manifest. The data is yours to query, back up, or re-publish however you want.
The challenge is the rate limit: 100 requests per day, no exceptions. A full archive is roughly 134 requests, meaning two calendar days. The tool manages this with a checkpoint file that records progress after each page, so you can kill it, come back tomorrow, and re-run — it picks up where it left off. HTTP 429s are handled with Retry-After plus jitter.
Output Model
attackerkb-data/
topics.ndjson # Vulnerability topics with Rapid7 analysis
assessments.ndjson # Community assessments
contributors.ndjson # Contributor profiles
MANIFEST.json # Counts + SHA-256s for all files
checkpoint.json # Resume state (delete to force fresh archive)
Each .ndjson file has a corresponding .sha256 for verification. The manifest bundles everything into one summary.
There’s also a -contributor mode that fetches all assessments by a specific author (e.g. yourhandle), enriched with topic names — useful for reconstructing someone’s body of work from the platform.
Why Archive This?
The AKB corpus — particularly the Rapid7 analyses and the community’s exploitation assessments — is a reasonable snapshot of how experts in the security industry talked about vulnerabilities. It’s not a CVE database; it’s authoritative commentary, and once it’s gone there’s no way to get it back.
The tool is MIT-licensed, single-file-ish Go, with no dependencies beyond the standard library. If you have an API key and want to preserve your corner of the platform, clone the repo, set ATTACKERKB_API_KEY, and let it run across two days.