Documentación · API de verificación

La solicitud

Cómo describir las partes que usted verifica, dónde las busca el motor de coincidencias y qué parámetros acotan y ajustan el resultado.

Una solicitud de coincidencia describe las partes que desea comprobar, indica en qué colección buscar y, de forma opcional, acota los candidatos y ajusta la puntuación. Puede probar cada elemento en Verificación.

Un ejemplo de solicitud

Tres partes en una sola solicitud: una persona con nombres en dos escrituras, una empresa con su país y una embarcación con su número IMO. La cadena de consulta conserva solo los listados de sanciones, excluye un registro y pide un umbral más estricto.

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);

Alcance: dónde busca el motor de coincidencias

La búsqueda de coincidencias se realiza en dos etapas. Primero, el servicio reúne candidatos de la colección: registros que contienen todas las palabras del nombre consultado y, si son menos de 50, registros que comparten cualquier palabra del nombre, comienzan con el nombre consultado o tienen el número IMO. Luego, cada candidato se puntúa frente a la consulta completa y se devuelven los mejores. El alcance y los filtros actúan sobre la primera etapa, por lo que determinan qué registros pueden llegar a puntuarse.

La colección

La colección forma parte de la ruta y es obligatoria: /api/match/default, /api/match/sanctions, /api/match/peps, /api/match/crime o /api/match/maritime. Un nombre desconocido devuelve 404 con la lista de colecciones.

ColecciónContenidoRegistrosRegistros
defaultTodos los registros activos: sanciones, PEPs, inhabilitación para contratar, medidas coercitivas y otras listas de riesgo——
sanctionsSolo listados de sanciones——
pepsPersonas expuestas políticamente——
crimeInhabilitación para contratar, órdenes de embargo fiscal y avisos de insolvencia——
maritimeEmbarcaciones y registros que incluyen un número IMO——

Las cifras corresponden a la compilación actual (/api/catalog). Un registro individual no puede usarse como ruta; use include_dataset en su lugar.

Filtrado

Los filtros son parámetros de la cadena de consulta y pueden repetirse. Varios valores del mismo filtro se combinan con OR; filtros distintos se combinan con AND. Así, ?topics=sanction&topics=debarment&exclude_dataset=US%20CSL significa "listados de sanciones o de inhabilitación para contratar, pero no del registro US CSL". Los filtros aplicados se devuelven en filters.

Filtrado por temas

topics acepta sanction, role.pep, debarment y reg.action (también como lista separada por comas). Por ahora, los temas se derivan del tipo de lista de la que proviene un registro; consulte Temas de riesgo. Un tema desconocido devuelve 400 con los valores aceptados.

Filtrado por registros

include_dataset conserva solo los registros de los registros indicados; exclude_dataset los elimina. Use los nombres de registro que muestran Fuentes, /api/sources y el campo datasets de cada resultado, por ejemplo include_dataset=UK%20OFSI. Los nombres deben ser exactos; un nombre desconocido simplemente no produce coincidencias.

La consulta

El cuerpo contiene hasta 20 consultas con nombre en queries. Nómbrelas según sus propios ID de cliente o de fila para poder relacionar después las respuestas. También se acepta una sola consulta sin el contenedor queries, y se responde como q1.

{"schema": "Company", "properties": {"name": ["Example Trading LLC"], "country": ["ae"]}}

El esquema

schema indica qué tipo de parte describe: Person, Company, Organization, Vessel, Airplane o LegalEntity (cualquier tipo). Es opcional y su valor predeterminado es LegalEntity. Un registro de un tipo claramente distinto (una embarcación cuando se pidió una persona) pierde 0.20; los registros de tipo desconocido no se penalizan. Use el tipo más específico que conozca.

Las propiedades

Las propiedades son listas de cadenas, con hasta cinco valores cada una. Estas son las que lee el motor de coincidencias; cualquier otra se ignora. El elemento query que se devuelve en la respuesta muestra exactamente lo que se leyó, lo que es la forma más rápida de detectar una propiedad mal escrita.

PropiedadTambién se acepta comoFormato y uso
namequeryNombres y alias. Obligatorio, salvo que se indique un número IMO. Cualquier escritura; se ignoran los acentos.
birthDatedobYYYY, YYYY-MM o YYYY-MM-DD. Las fechas parciales se comparan con la precisión que usted indique.
nationalitycountry, countries, jurisdiction, flagCódigos ISO 3166 de dos letras, en mayúsculas o minúsculas. La nacionalidad de una persona, la jurisdicción de una empresa o el pabellón de una embarcación.
imoNumberimoNúmero IMO de siete dígitos. Se eliminan los caracteres que no sean dígitos.

Persona

Indique el nombre completo como una sola cadena (nombres y apellidos); las partes del nombre por separado no se leen de forma independiente. Agregue la fecha de nacimiento, aunque sea solo el año, y la nacionalidad: cada valor coincidente aumenta la puntuación y cada valor contradictorio la reduce.

Empresa y organización

Indique la razón social y los nombres comerciales, así como el país de registro. Los números de registro, de identificación fiscal y LEI aún no se puntúan, así que inclúyalos en sus propios registros para la revisión, pero no dependa de ellos aquí.

Embarcación

El número IMO es la evidencia más sólida: un número coincidente eleva la puntuación a al menos 0.98, y uno distinto le resta 0.30. Use flag para el Estado del pabellón. Consulte Marítimo para conocer la cobertura.

Parámetros de ajuste y valores predeterminados

ParámetroValor predeterminadoSignificado
limit5Resultados por consulta, de 1 a 50.
threshold0.75Puntuación a partir de la cual match es verdadero, de 0 a 1. Los resultados por debajo de ese valor se devuelven de todos modos.
algorithmstandardstandard o name-only; best se acepta como el valor predeterminado actual. Consulte Ajuste.
topics, include_dataset, exclude_datasetningunoFiltros de candidatos, arriba.
changed_sinceningunoFecha u hora ISO 8601: solo registros agregados o modificados desde ese momento. Para la reverificación programada; consulte Monitoreo.

Más información: La respuesta, Referencia del modelo, Ajuste del motor de coincidencias.

Última actualización 2026-10-03