Documentation · API de vérification
La requête
Comment décrire les parties que vous vérifiez, où l’outil de correspondance les cherche, et quels paramètres restreignent et règlent le résultat.
Une requête de correspondance décrit les parties à vérifier, indique la collection à interroger et, au besoin, restreint les candidats et règle le calcul du score. Vous pouvez essayer chaque élément dans Vérification.
Exemple de requête
Trois parties dans une seule requête : une personne avec des noms dans deux écritures, une société avec son pays et un navire avec son numéro IMO. La chaîne de requête ne conserve que les inscriptions de sanctions, exclut un registre et demande un seuil plus strict.
curl -X POST "https://api.crownintelligence.net/api/match/default?limit=3&threshold=0.8&topics=sanction&exclude_dataset=Wikidata%20PEPs" \
-H "Content-Type: application/json" \
-d '{"queries":{"person":{"schema":"Person","properties":{"name":["Igor Putin","Игорь Путин"],"birthDate":["1953-03-30"],"nationality":["ru"]}},"company":{"schema":"Company","properties":{"name":["Rosneft"],"country":["ru"]}},"vessel":{"schema":"Vessel","properties":{"name":["Example Star"],"imoNumber":["9000000"]}}}}'import requests
BASE = "https://api.crownintelligence.net"
PARAMS = {
"limit": 3,
"threshold": 0.8, # stricter than the 0.75 default
"algorithm": "standard",
"topics": ["sanction"], # sanctions listings only
"exclude_dataset": ["Wikidata PEPs"],
}
PERSON = {"schema": "Person", "properties": {"name": ["Igor Putin", "Игорь Путин"], "birthDate": ["1953-03-30"], "nationality": ["ru"]}}
COMPANY = {"schema": "Company", "properties": {"name": ["Rosneft"], "country": ["ru"]}}
VESSEL = {"schema": "Vessel", "properties": {"name": ["Example Star"], "imoNumber": ["9000000"]}}
r = requests.post(f"{BASE}/api/match/default", params=PARAMS,
json={"queries": {"person": PERSON, "company": COMPANY, "vessel": VESSEL}}, timeout=90)
r.raise_for_status()
for key, answer in r.json()["responses"].items():
best = answer["results"][0] if answer["results"] else None
print(key, answer["status"], best and (best["score"], best["caption"], best["datasets"]))const BASE = "https://api.crownintelligence.net";
const params = new URLSearchParams({ limit: "3", threshold: "0.8", algorithm: "standard" });
params.append("topics", "sanction");
params.append("exclude_dataset", "Wikidata PEPs");
const queries = {
person: { schema: "Person", properties: { name: ["Igor Putin", "Игорь Путин"], birthDate: ["1953-03-30"], nationality: ["ru"] } },
company: { schema: "Company", properties: { name: ["Rosneft"], country: ["ru"] } },
vessel: { schema: "Vessel", properties: { name: ["Example Star"], imoNumber: ["9000000"] } },
};
const res = await fetch(`${BASE}/api/match/default?${params}`, {
method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ queries }),
});
const data = await res.json();
for (const [key, answer] of Object.entries(data.responses)) console.log(key, answer.status, answer.results[0]?.caption);Délimitation : où l’outil de correspondance cherche
La correspondance se déroule en deux étapes. Le service rassemble d’abord les candidats de la collection : les fiches qui contiennent tous les mots du nom recherché, puis, s’il y en a moins de 50, celles qui partagent un mot du nom, commencent par le nom recherché ou portent le numéro IMO. Ensuite, chaque candidat est évalué par rapport à la requête complète et les meilleurs sont retournés. La délimitation et les filtres agissent sur la première étape : ils déterminent donc quelles fiches peuvent être évaluées.
La collection
La collection fait partie du chemin et est obligatoire : /api/match/default, /api/match/sanctions, /api/match/peps, /api/match/crime ou /api/match/maritime. Un nom inconnu retourne 404 avec la liste des collections.
| Collection | Contenu | Fiches | Registres |
|---|---|---|---|
default | Toutes les fiches actives : sanctions, PEPs, interdiction de contracter, mesures d’application et autres listes de risques | — | — |
sanctions | Inscriptions de sanctions seulement | — | — |
peps | Personnes politiquement vulnérables (PPV) | — | — |
crime | Interdictions de contracter, mandats fiscaux et avis d’insolvabilité | — | — |
maritime | Navires et fiches comportant un numéro IMO | — | — |
Les chiffres proviennent de la version actuelle (/api/catalog). Un registre unique ne peut pas servir de chemin; utilisez plutôt include_dataset.
Filtrage
Les filtres sont des paramètres de la chaîne de requête et peuvent être répétés. Plusieurs valeurs d’un même filtre sont combinées par OU; des filtres différents sont combinés par ET. Ainsi, ?topics=sanction&topics=debarment&exclude_dataset=US%20CSL signifie « inscriptions de sanctions ou d’interdiction de contracter, mais pas du registre US CSL ». Les filtres appliqués sont renvoyés dans filters.
Filtrer par sujets
topics accepte sanction, role.pep, debarment et reg.action (aussi sous forme de liste séparée par des virgules). Les sujets sont actuellement déduits du type de liste dont provient une fiche; voir Sujets de risque. Un sujet inconnu retourne 400 avec les valeurs acceptées.
Filtrer par registres
include_dataset ne conserve que les fiches des registres nommés; exclude_dataset les exclut. Utilisez les noms de registres affichés par Sources, /api/sources et le champ datasets de chaque résultat, par exemple include_dataset=UK%20OFSI. Les noms doivent être exacts; un nom inconnu ne correspond simplement à rien.
La requête
Le corps contient jusqu’à 20 requêtes nommées sous queries. Nommez-les d’après vos propres identifiants de client ou de ligne afin de pouvoir rattacher les réponses. Une requête unique sans l’enveloppe queries est également acceptée et reçoit une réponse sous q1.
{"schema": "Company", "properties": {"name": ["Example Trading LLC"], "country": ["ae"]}}
Le schéma
schema indique le type de partie que vous décrivez : Person, Company, Organization, Vessel, Airplane ou LegalEntity (tout type). Il est facultatif et sa valeur par défaut est LegalEntity. Une fiche d’un type nettement différent (un navire alors que vous avez demandé une personne) perd 0,20; les fiches dont le type est inconnu ne sont pas pénalisées. Utilisez le type le plus précis que vous connaissez.
Les propriétés
Les propriétés sont des listes de chaînes, de cinq valeurs au maximum chacune. Voici celles que lit l’outil de correspondance; toute autre est ignorée. L’élément query renvoyé dans la réponse montre exactement ce qui a été lu, ce qui est le moyen le plus rapide de repérer une propriété mal orthographiée.
| Propriété | Également accepté sous | Format et utilisation |
|---|---|---|
name | query | Noms et alias. Obligatoire sauf si un numéro IMO est fourni. Toute écriture; les accents sont ignorés. |
birthDate | dob | YYYY, YYYY-MM ou YYYY-MM-DD. Les dates partielles sont comparées selon la précision fournie. |
nationality | country, countries, jurisdiction, flag | Codes ISO 3166 à deux lettres, en majuscules ou en minuscules. La nationalité d’une personne, le territoire d’une société ou le pavillon d’un navire. |
imoNumber | imo | Numéro IMO à sept chiffres. Les caractères non numériques sont supprimés. |
Personne
Indiquez le nom complet en une seule chaîne (prénoms et nom de famille); les parties de nom séparées ne sont pas lues individuellement. Ajoutez la date de naissance, même seulement l’année, et la nationalité : chaque valeur concordante augmente le score et chaque valeur contradictoire le diminue.
Société et organisation
Indiquez la dénomination sociale et les noms commerciaux, ainsi que le pays d’immatriculation. Les numéros d’immatriculation, d’identification fiscale et LEI ne sont pas encore pris en compte dans le score; conservez-les donc dans vos propres dossiers aux fins d’examen, mais ne vous y fiez pas ici.
Navire
Le numéro IMO est l’élément de preuve le plus fort : un numéro concordant porte le score à au moins 0,98, un numéro différent le réduit de 0,30. Utilisez flag pour l’État du pavillon. Voir Maritime pour la couverture.
Paramètres de réglage et valeurs par défaut
| Paramètre | Valeur par défaut | Signification |
|---|---|---|
limit | 5 | Résultats par requête, de 1 à 50. |
threshold | 0.75 | Score à partir duquel match est vrai, de 0 à 1. Les résultats inférieurs au seuil sont tout de même retournés. |
algorithm | standard | standard ou name-only; best est accepté comme valeur par défaut actuelle. Voir Réglage. |
topics, include_dataset, exclude_dataset | aucun | Filtres de candidats, ci-dessus. |
changed_since | aucun | Date ou heure ISO 8601 : seulement les fiches ajoutées ou modifiées depuis. Pour la revérification planifiée; voir Surveillance. |
En savoir plus : La réponse, Référence du modèle, Réglage de l’outil de correspondance.
Dernière mise à jour : 2026-10-03