Documentation · API de vérification

Démarrage rapide de l’API de correspondance

Vérifiez une personne par rapport à toutes les listes en une seule requête, puis consultez la fiche complète à partir du résultat.

L’API de correspondance fonctionne par l’exemple : vous décrivez la partie à vérifier, et elle renvoie les fiches qui ressemblent à cette description, de la plus pertinente à la moins pertinente. Vous pouvez effectuer la même vérification à l’aide d’un formulaire sur Vérification.

Avant de commencer. Aucune clé n’est requise pour l’instant. Utilisez l’API conformément à nos conditions d’utilisation; la vérification dans un processus d’affaires nécessite une licence commerciale.

Votre première requête

Envoyez une requête, q1, décrivant une personne par son nom, son année de naissance et sa nationalité, à la collection default :

curl -X POST "https://api.crownintelligence.net/api/match/default?limit=3" \
  -H "Content-Type: application/json" \
  -d '{"queries":{"q1":{"schema":"Person","properties":{"name":["Igor Putin"],"birthDate":["1953"],"nationality":["ru"]}}}}'
import requests

BASE = "https://api.crownintelligence.net"
query = {
    "schema": "Person",
    "properties": {"name": ["Igor Putin"], "birthDate": ["1953"], "nationality": ["ru"]},
}
r = requests.post(f"{BASE}/api/match/default", params={"limit": 3}, json={"queries": {"q1": query}}, timeout=60)
r.raise_for_status()
for hit in r.json()["responses"]["q1"]["results"]:
    print(hit["score"], hit["match"], hit["caption"], hit["datasets"], hit["id"])
const BASE = "https://api.crownintelligence.net";
const res = await fetch(`${BASE}/api/match/default?limit=3`, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ queries: { q1: { schema: "Person",
    properties: { name: ["Igor Putin"], birthDate: ["1953"], nationality: ["ru"] } } } }),
});
const data = await res.json();
for (const hit of data.responses.q1.results) console.log(hit.score, hit.match, hit.caption, hit.datasets, hit.id);

Utilisez une liste pour chaque propriété : une partie peut avoir plusieurs noms, dates de naissance ou nationalités. Pour en savoir plus sur la composition des requêtes, consultez La requête.

Lecture de la réponse

La réponse comporte une entrée sous responses pour chaque requête envoyée. Exemple abrégé :

{
  "collection": "default",
  "algorithm": "standard",
  "threshold": 0.75,
  "limit": 3,
  "responses": {
    "q1": {
      "status": 200,
      "query": {
        "schema": "Person",
        "name": [
          "Igor Putin"
        ],
        "birthDate": [
          "1953"
        ],
        "nationality": [
          "ru"
        ],
        "imo": []
      },
      "total": 1503,
      "results": [
        {
          "id": 379937151,
          "caption": "PUTIN IGOR ALEXANDROVICH",
          "schema": "Person",
          "score": 1,
          "match": true,
          "features": [
            {
              "feature": "name_match",
              "explanation": "'IGOR'≈'IGOR' exact 1.00 · 'PUTIN'≈'PUTIN' exact 1.00 · 'ALEXANDROVICH' not in query",
              "score": 0.9
            },
            {
              "feature": "dob_match",
              "explanation": "query 1953 · record 1953-03-30 · match",
              "score": 0.1
            }
          ],
          "datasets": [
            "ACF War Enablers — Anti-Corruption Foundation list"
          ],
          "topics": [
            "debarment"
          ],
          "programme": "Individuals involved in corruption",
          "merged_entity": "ce7e35f9-f4b5-4d30-95f0-ab7385538b78",
          "url": "/estate/record.html?id=379937151"
        }
      ]
    }
  },
  "checked_at": "2026-10-04T01:38:23.856Z"
}
  • id identifie la fiche. Conservez-le avec votre décision et utilisez-le avec l’API des entités.
  • score varie de 0 à 1 et match est à true lorsque le score atteint le seuil. Un score mesure la ressemblance, et non le risque.
  • features expliquent le score : quels mots concordent, et si la date de naissance, le pays, le numéro IMO et le type d’entité concordent.
  • topics, datasets et programme indiquent pourquoi la fiche est pertinente : quel type de liste, quel registre, quel programme.
  • merged_entity est présent lorsque la même partie figure dans plusieurs registres.

Chaque fiche correspond à l’inscription d’un registre; la même partie peut donc être renvoyée plusieurs fois par différents registres. Détail champ par champ : La réponse.

Aller plus loin : le point d’accès des entités

Les résultats de correspondance sont abrégés. Pour consulter une fiche en entier, avec ses inscriptions et les autres registres qui nomment la même partie, récupérez-la depuis l’API des entités :

curl "https://api.crownintelligence.net/api/entity/379781867"
import requests

BASE = "https://api.crownintelligence.net"
record = requests.get(f"{BASE}/api/entity/379781867", timeout=60).json()
for listing in record["listings"]:
    print(listing["register"], listing["programme"], listing["list_type"])
if record.get("entity_id"):
    merged = requests.get(f"https://api.crownintelligence.net/api/entity/{record['entity_id']}", timeout=60).json()
    print(merged["caption"], merged["datasets"], merged["properties"]["birthDate"])

Chaque fiche dispose aussi d’une page sur ce site, indiquée par url dans le résultat, par exemple la fiche 379781867.

Dernière mise à jour : 2026-10-03