Documentación · API de verificación

Autenticación

Hoy la API no requiere clave. Esta página explica qué regula el acceso actualmente, cómo funcionan los límites de solicitudes cuando se activan y qué cambiará cuando lleguen las claves.

Cómo funciona el acceso hoy

El servicio de datos es abierto: todos los puntos de acceso responden a solicitudes GET y POST anónimas, sin clave, token ni cuenta. Lo que usted puede hacer con las respuestas lo establecen nuestros términos, no una clave:

  • Las consultas individuales, la debida diligencia sobre un asunto específico, el periodismo y la investigación académica son gratuitos conforme a los términos de uso.
  • La verificación automatizada o sistemática, el uso en un proceso empresarial y la redistribución requieren una licencia comercial.

Nuestros términos se reservan el derecho de aplicar límites de frecuencia, topes de volumen o controles similares a los servicios gratuitos, y de rechazar el acceso que parezca automatizado, sistemático o comercial.

Límites de solicitudes

El servicio de datos cuenta con un límite de solicitudes por dirección que el operador puede activar. Está desactivado salvo que se configure, y aún no se ha publicado ninguna cifra de límite. Cuando está activado:

  • cada respuesta incluye X-RateLimit-Limit (solicitudes permitidas por minuto) y X-RateLimit-Remaining;
  • una solicitud que supera el límite recibe HTTP 429 con un encabezado Retry-After (en segundos) y este cuerpo:
{"error": "Too many requests", "limit_per_minute": 60}

La cifra del ejemplo es ilustrativa. Gestione 429 esperando Retry-After segundos antes de reintentar, y envíe hasta 20 partes en una sola solicitud de coincidencia en lugar de enviarlas una por una.

Por definir: El límite de solicitudes que se aplicará al uso anónimo y al uso con licencia, si corresponde (hoy no se aplica ningún límite).

Claves de API

Todavía no emitimos claves de API. Cuando se introduzcan, esta página describirá cómo obtener una, el encabezado que la transporta y cómo rotarla. Hasta entonces, no envíe credenciales a la API: las ignora.

Por definir: Emisión de claves (autoservicio o por solicitud), encabezado de la solicitud y formato de la clave, claves de prueba, claves para usuarios de interés público y sin fines comerciales, rotación y revocación. No desarrolle sobre un formato supuesto.

Mantenga las claves en secreto una vez emitidas. Trate cualquier clave futura como una contraseña: manténgala fuera del código fuente y de las páginas del navegador, y cárguela desde una variable de entorno o un almacén de secretos.

Ejemplo: un cliente preparado para claves

Mantenga la dirección base en un solo lugar para que agregar credenciales más adelante sea un cambio de una sola línea.

import os, requests

BASE = os.environ.get("CROWN_API_BASE", "https://api.crownintelligence.net")
session = requests.Session()
session.headers["User-Agent"] = "my-screening-tool/1.0 ([email protected])"

r = session.post(f"{BASE}/api/match/default", json={"schema": "Company", "properties": {"name": ["Example Trading LLC"]}}, timeout=60)
if r.status_code == 429:
    print("Rate limited; retry after", r.headers.get("Retry-After"), "seconds")
r.raise_for_status()
print(r.json()["responses"]["q1"]["total"])
const BASE = process.env.CROWN_API_BASE ?? "https://api.crownintelligence.net";
const headers = { "Content-Type": "application/json", "User-Agent": "my-screening-tool/1.0 ([email protected])" };

const res = await fetch(`${BASE}/api/match/default`, { method: "POST", headers,
  body: JSON.stringify({ schema: "Company", properties: { name: ["Example Trading LLC"] } }) });
if (res.status === 429) console.log("Rate limited; retry after", res.headers.get("Retry-After"), "seconds");
console.log((await res.json()).responses.q1.total);

Preguntas sobre el acceso: [email protected]. Condiciones comerciales: hable con ventas. Los límites y las cuotas también se tratan en las preguntas frecuentes de la API.

Última actualización 2026-10-03