Назад към всички

jmail

// Search and analyze the Jeffrey Epstein email archive (1.78M emails, 4,500+ iMessages, 18K photos, 1.4M documents, 473 identified people) via jmail.world's official Data API. DuckDB/Parquet queries, Web Search API, and file downloads. No auth needed.

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
namejmail
version1.6.4
descriptionSearch and analyze the Jeffrey Epstein email archive (1.78M emails, 4,500+ iMessages, 18K photos, 1.4M documents, 473 identified people) via jmail.world's official Data API. DuckDB/Parquet queries, Web Search API, and file downloads. No auth needed.
metadata[object Object]

jmail-world — Epstein Archive Search & Analysis

Search and analyze Jeffrey Epstein's email archive, iMessages, documents, photos, and people on jmail.world.

When to Use

  • Researching Epstein connections and communications
  • Finding emails between specific people
  • Exploring iMessage conversations
  • Analyzing communication networks and timelines
  • Looking up people identified in photos
  • Searching documents (DOJ releases, court records)

Data Access — Two Methods

1. Web Search API (quick lookups)

GET https://jmail.world/api/emails/search?q=QUERY&limit=50&page=1&source=all&from=NAME

No auth needed. Use web_fetch or curl. Good for quick keyword searches.

2. DuckDB + Parquet (deep analysis)

All datasets served as static Parquet files from https://data.jmail.world/v1/. No API key, no rate limit, no auth.

Use the included scripts:

# Full-text email search (Web API)
bash scripts/jmail-search.sh "query text"
bash scripts/jmail-search.sh "scopolamine" --from "Epstein" --limit 20

# DuckDB queries (local Parquet, no rate limits)
bash scripts/jmail-duckdb.sh search "flight manifest"
bash scripts/jmail-duckdb.sh person "Ghislaine Maxwell"
bash scripts/jmail-duckdb.sh imessages "ghislaine-maxwell"
bash scripts/jmail-duckdb.sh imessage-search "AfD"
bash scripts/jmail-duckdb.sh imessage-search "Merkel" --from "Bannon"
bash scripts/jmail-duckdb.sh imessage-list
bash scripts/jmail-duckdb.sh network "Bill Clinton"
bash scripts/jmail-duckdb.sh timeline "2005-01-01" "2005-12-31"
bash scripts/jmail-duckdb.sh top-senders
bash scripts/jmail-duckdb.sh people
bash scripts/jmail-duckdb.sh documents "flight"
bash scripts/jmail-duckdb.sh photos "person-name"
bash scripts/jmail-duckdb.sh photo-search "pool"
bash scripts/jmail-duckdb.sh photo-download "EFTA00000002-0.png" ./output
bash scripts/jmail-duckdb.sh download "EFTA02406146"
bash scripts/jmail-duckdb.sh download "HOUSE_OVERSIGHT_034601"
bash scripts/jmail-duckdb.sh stars

Available Datasets

DatasetURLSizeRecords
Emails (full)emails.parquet334MB1.78M
Emails (slim)emails-slim.parquet41MB1.78M
Documentsdocuments.parquet25MB1.41M
Photosphotos.parquet~1MB18K
Peoplepeople.parquet<100KB473
Photo Facesphoto_faces.parquet<100KB975
iMessage Conversationsimessage_conversations.parquet
iMessage Messagesimessage_messages.parquet
Star Countsstar_counts.parquet~2MB414K
Release Batchesrelease_batches.parquet<10KB

All under https://data.jmail.world/v1/.

Key Schemas

Email Columns (slim)

id, doc_id, sender, subject, to_recipients (json), cc_recipients (json), bcc_recipients (json), sent_at (timestamp), account_email, email_drop_id, epstein_is_sender (bool)

Email Additional (full)

content_markdown, content_html, attachments (int)

iMessage Conversations

id, slug, name, bio, photo, last_message, last_message_time, pinned, confirmed, source_files (json), message_count

iMessage Messages

id, conversation_slug, message_index, text, sender ("me" = Epstein, "them" = contact), time, timestamp, source_file, sender_name

People

id, name, source, photo_count

Documents

id, source, release_batch, original_filename, page_count, size, document_description, has_thumbnail

Web Pages (browser needed)

  • /person/SLUG — Person profile
  • /flights — Flight records
  • /photos — Photo browser
  • /drive/new-only — New documents
  • /topic/SLUG — Topic pages

Document Full-Text Search

Documents have sharded full-text files (large downloads):

  • documents-full/VOL00008.parquet — DOJ Volume 8
  • documents-full/VOL00009.parquet — DOJ Volume 9
  • documents-full/VOL00010.parquet — DOJ Volume 10
  • documents-full/DataSet11.parquet — DOJ Dataset 11
  • documents-full/other.parquet — House Oversight, court records

Query with DuckDB:

SELECT id, original_filename, extracted_text
FROM read_parquet('https://data.jmail.world/v1/documents-full/other.parquet')
WHERE extracted_text ILIKE '%rothschild%'
LIMIT 10;

Photo Columns (full schema)

id, source, release_batch, original_filename, content_type (MIME), width (px), height (px), image_description (AI-generated)

Search photos by description:

SELECT original_filename, image_description, width, height
FROM read_parquet('https://data.jmail.world/v1/photos.parquet')
WHERE image_description ILIKE '%pool%'
LIMIT 20;

Downloading Files

Universal Download (any document, email, or photo)

# Download by document ID — auto-detects type and source
bash scripts/jmail-duckdb.sh download "EFTA02406146"                    # DOJ email PDF
bash scripts/jmail-duckdb.sh download "HOUSE_OVERSIGHT_034601"          # House Oversight photo
bash scripts/jmail-duckdb.sh download "COURT_giuffre-115cv07433_1"      # Court document
bash scripts/jmail-duckdb.sh download "vol00009-efta00462570-pdf"       # DOJ volume scan
bash scripts/jmail-duckdb.sh download "EFTA02406146" ./output-dir      # Custom output dir

Supported sources:

ID PatternTypeFormat
EFTA*DOJ emails & photosPDF
vol*DOJ volume scansPDF
HOUSE_OVERSIGHT_*House Oversight photosJPG (direct)
COURT_giuffre*Giuffre court docsPDF

Photo Search & Download

# Search photos by AI-generated description
bash scripts/jmail-duckdb.sh photo-search "swimming pool"
bash scripts/jmail-duckdb.sh photo-search "forced entry"

# Download a specific photo (DOJ: extracts PNG from PDF, HO: direct JPG)
bash scripts/jmail-duckdb.sh photo-download "EFTA00000002-0.png"
bash scripts/jmail-duckdb.sh photo-download "HOUSE_OVERSIGHT_034601.JPG" ./output

DOJ photos are stored as single-page PDFs — the download command automatically extracts the embedded image as PNG using pdfimages. House Oversight photos are direct JPGs. If pdfimages is not installed, DOJ photos are saved as PDF.

Security

  • SQL injection prevention: All user input is whitelist-sanitized (alphanumeric + safe chars only). SQL meta-characters, operators, and keywords are stripped before query construction.
  • Path traversal prevention: Parquet filenames and document IDs are validated against strict patterns before use in file operations.
  • Read-only queries: All DuckDB operations are SELECT on read_parquet() — no writes, no code execution, no network access beyond the cached Parquet files.
  • Data source: All data comes from jmail.world's public Parquet files and assets.getkino.com (DOJ document mirror). No private APIs or credentials involved.

Requirements

  • DuckDB (duckdb CLI) — must be installed manually (apt install duckdb / brew install duckdb / duckdb.org)
  • curl — for web search API and downloading Parquet files
  • python3 — for URL encoding in search script
  • pdfimages (optional, for photo-download PNG extraction) — apt install poppler-utils
  • jq (optional, for JSON formatting)

References