Documentation · Données en bloc
JSON FollowTheMoney
Nos fichiers JSON suivent la structure d’entités FollowTheMoney : chaque entité comporte un identifiant (id), un schéma et un ensemble de propriétés dont les valeurs sont toujours des listes de chaînes de caractères. Ils sont écrits en lignes JSON (un objet JSON complet par ligne), ce qui permet de les traiter en flux sans charger le fichier entier.
Deux fichiers
entities.ftm.jsoncontient chaque fiche sous forme d’entité, suivie à la ligne suivante de son entitéSanction: l’inscription sur le registre source. Il y a donc deux lignes par fiche. Utilisez-le pour charger un graphe ou un magasin d’entités, où l’inscription constitue un nœud distinct.targets.nested.jsoncontient une ligne par fiche, avec son inscription imbriquée sousproperties.sanctions. Utilisez-le lorsque vous voulez un objet autonome par partie inscrite.
Les deux sont en UTF-8. Voir aussi la référence du modèle, la structure des entités et les entités à plat et imbriquées.
Champs des entités
- id
- Identifiant de la fiche,
crown-<number>. Une fiche correspond à une ligne d’un registre source. L’inscription a l’identifiantcrown-<number>-sanction. Dans l’API, la même fiche est désignée par le numéro seul. - caption
- Nom d’affichage.
- schema
Person,Company,Organization,Vessel,Airplane,LegalEntity(type non précisé par la source) ouSanction.- properties
- Nom de la propriété associé à une liste de valeurs de type chaîne. Les propriétés absentes sont omises.
- referents
- Autres identifiants fusionnés avec celui-ci. Toujours une liste vide à ce jour; les fusions sont exprimées avec
canonical_id. - datasets
- Registre source sous forme d’identifiant court, p. ex.
ofac_sdn,uk_ofsi,paris_mou_banned. - first_seen
- Date à laquelle nous avons recueilli la fiche pour la première fois (ISO 8601, décalage UTC inclus).
- last_seen
- Date à laquelle la fiche a été confirmée pour la dernière fois à sa source.
- last_change
- Date de la dernière modification de la fiche. Actuellement, elle est égale à
last_seen. - target
truepour les parties inscrites. Absent des entitésSanction.- canonical_id
- Présent lorsque nous avons établi une correspondance entre la fiche et des fiches d’autres registres comme étant la même partie :
crown-e-<merge id>. Regroupez selon ce champ pour voir une même partie à travers les registres.
Propriétés
| Propriété | Sur | Contenu |
|---|---|---|
name | toutes les fiches | Nom principal tel que publié |
alias | toutes les fiches | Autres noms et orthographes |
topics | toutes les fiches | L’une des valeurs suivantes : sanction, role.pep, debarment, reg.action |
birthDate | Personne | YYYY, YYYY-MM ou YYYY-MM-DD, selon la précision publiée |
nationality | Personne | ISO 3166-1 alpha-2, en minuscules |
country | autres fiches | ISO 3166-1 alpha-2, en minuscules |
imoNumber | Navire et autres | IMO suivi de sept chiffres |
sourceUrl | fiches, Sanction | Lien vers la fiche ou la liste chez l’éditeur |
notes | toutes les fiches | Autres renseignements publiés sous forme de texte (adresses, identifiants, pavillons, remarques) |
entity | Sanction | identifiant de la fiche inscrite |
authority | Sanction | Nom du registre source |
program | Sanction | Programme ou fondement de l’inscription, selon les termes de l’éditeur |
listingDate | Sanction | Date de publication ou d’inscription, lorsque le registre en indique une |
sanctions | fichier imbriqué seulement | Les entités Sanction de la fiche |
Degré de complétude de chaque propriété
| Propriété | Fiches concernées | Part |
|---|---|---|
| Chargement… | ||
Exemple : entities.ftm.json
Deux lignes de la collection maritime : un navire et son inscription (sauts de ligne ajoutés pour faciliter la lecture; chaque objet occupe une seule ligne dans le fichier).
{"id":"crown-380054154","caption":"PELIKAN","schema":"Vessel",
"properties":{"name":["PELIKAN"],"topics":["debarment"],"alias":["BALTIC ATLANT SHPG-LITHUANIA"],
"imoNumber":["IMO6922169"],"notes":["IMO 6922169 · Flag: Comoros · From: 09/12/2009 · ISM: BALTIC ATLANT SHPG-LITHUANIA"]},
"referents":[],"datasets":["paris_mou_banned"],"first_seen":"2026-09-24T11:38:49.104591+00:00",
"last_seen":"2026-09-24T11:38:49.104591+00:00","last_change":"2026-09-24T11:38:49.104591+00:00","target":true}
{"id":"crown-380054154-sanction","schema":"Sanction","caption":"Banned from Paris MoU ports — Multiple detentions",
"properties":{"entity":["crown-380054154"],"authority":["Paris MoU Banned"],
"program":["Banned from Paris MoU ports — Multiple detentions"]},
"datasets":["paris_mou_banned"],"first_seen":"2026-09-24T11:38:49.104591+00:00",
"last_seen":"2026-09-24T11:38:49.104591+00:00","last_change":"2026-09-24T11:38:49.104591+00:00"}
Exemple : targets.nested.json
La même fiche dans le fichier imbriqué : une seule ligne, avec l’inscription à l’intérieur de properties.sanctions.
{"id":"crown-380054154","caption":"PELIKAN","schema":"Vessel",
"properties":{"name":["PELIKAN"],"topics":["debarment"],"alias":["BALTIC ATLANT SHPG-LITHUANIA"],
"imoNumber":["IMO6922169"],"notes":["…"],
"sanctions":[{"id":"crown-380054154-sanction","schema":"Sanction",
"caption":"Banned from Paris MoU ports — Multiple detentions",
"properties":{"entity":["crown-380054154"],"authority":["Paris MoU Banned"],
"program":["Banned from Paris MoU ports — Multiple detentions"]},
"datasets":["paris_mou_banned"], "first_seen":"…","last_seen":"…","last_change":"…"}]},
"referents":[],"datasets":["paris_mou_banned"],"first_seen":"…","last_seen":"…","last_change":"…","target":true}
Lecture des fichiers
Lisez une ligne à la fois; les plus grandes collections atteignent plusieurs gigaoctets (default : —).
import json
with open("targets.nested.json", encoding="utf-8") as f:
for line in f:
e = json.loads(line)
names = e["properties"].get("name", []) + e["properties"].get("alias", [])
programmes = [p for s in e["properties"].get("sanctions", [])
for p in s["properties"].get("program", [])]
print(e["id"], e["schema"], names[0], programmes)
# group records that we have matched as the same party
jq -r 'select(.canonical_id) | [.canonical_id, .id, .caption] | @tsv' targets.nested.json | sort
Ce que les fichiers ne contiennent pas encore
- Les adresses, pièces d’identité, liens de propriété, liens familiaux et d’association, fonctions occupées et adresses de portefeuilles de cryptomonnaie ne sont pas des entités ni des propriétés distinctes. Lorsqu’un éditeur les fournit, ils ne subsistent que sous forme de texte dans
notes. referentsest toujours vide; les fusions apparaissent uniquement par l’entremise decanonical_id.last_changecorrespond à la date de dernière confirmation, et non à une véritable date de modification.- Les types d’entités sont déduits lorsque la source n’en fournit aucun, et certains sont erronés; consultez la méthodologie.
Dernière mise à jour : 2026-10-03