Interpret Fields in Maigret JSON Output
JSON exports let you feed Maigret findings into other systems.
Sample structure
{
"query_username": "exampleuser",
"matches": [
{
"site": "GitHub",
"url_main": "https://github.com",
"url_user": "https://github.com/exampleuser",
"status": "FOUND",
"score": 1.0,
"ids": {
"name": "Example User",
"followers": 128
}
}
],
"not_found": ["Twitter", "Medium"],
"disabled": ["Pinterest"]
}Key fields:
query_username: the handle you searched.matches: array of confirmed hits.status:FOUND,NOT_FOUND, orUNKNOWN.score: confidence (0–1) based on rule strength.ids: structured attributes extracted from the profile HTML.
Consuming in Python
import json
from pathlib import Path
data = json.loads(Path("reports/exampleuser.json").read_text())
for match in data["matches"]:
print(match["site"], match["score"], match["ids"].get("name"))Building a knowledge graph
graph LR
A[Maigret JSON] --> B[ETL Script]
B --> C[Neo4j]
C --> D[Investigations UI]
Use the ids dictionary to create properties on nodes/edges. Pay attention to:
username_norm: lowercased variant for deduplication.date: timestamp when the evidence was collected.mark: optional engine markers indicating detection mode.
Normalisation tips
- Always log the
maigret_versionto track schema changes. - Strip HTML from any
biofields before indexing. - Combine with
--folderoutputto keep historical snapshots per username.
Understanding the schema keeps downstream tooling accurate and auditable.