API para desarrolladores

    ¿Para qué copiar y pegar nombres entre sistemas si una sola llamada API lo hace todo?

    Incorpore verificación de empresas, mapeo de propiedad, comprobación PEP, medios adversos y señales de sanciones directamente en sus flujos de trabajo existentes.

    POST/api/v1/searchbash
    curl -X POST https://screenveritai.com/api/v1/search \
      -H 'X-API-Key: YOUR_API_KEY' \
      -H 'Content-Type: application/json' \
      -d '{
        "entity_name": "Acme Trading LLC",
        "entity_type": "company",
        "country": "AE",
        "search_type": "sanctions_check"
      }'
    # 202 Accepted
    # { "search_id": "SEARCH_ID", "status": "processing",
    #   "estimated_time_seconds": 15 }

    The request

    One POST call, then your poll loop.

    Entity name, type, country, screening type. The call returns 202 with a search_id and an ETA, and the agent works in the background — you poll for the result rather than hold the connection open.

    • entity_nameRequired, 1-500 characters. Alias-aware matching
    • entity_type"person", "company" or "any" (default "any")
    • countryOptional context field; does not filter Quick Check matching
    • search_type"sanctions_check", "adverse_media" or "full_search"

    The response

    Structured JSON. Findings, not a score.

    Core-jurisdiction fields and per-source arrays, plus criminal-watchlist and PEP/RCA findings. Review the available markdown, identifiers and source references; the response does not provide a numeric risk score.

    GET/api/v1/search/{search_id}200 OK
    {
      "id": "SEARCH_ID",
      "entity_name": "Acme Trading LLC",
      "entity_type": "company",
      "status": "completed",
      "search_type": "sanctions_check",
      "ofac_sanctions": "## OFAC Sanctions Findings\n\n**Status:** *Sanctioned*\n\n**Details:**\n- **Matched entity:** ACME TRADING LLC\n- **Authority:** US Treasury OFAC\n...",
      "eu_sanctions": "## EU Sanctions Findings\n\n**Status:** *No relevant listing found*\n...",
      "sanctions_sources": [
        { "source_id": "ofac_sanctions", "title": "OFAC Sanctions",
          "authority": "US Treasury OFAC", "hit_count": 1 },
        { "source_id": "eu_sanctions", "title": "EU Sanctions",
          "authority": "", "hit_count": 0 }
      ],
      "criminal_watchlists": null,
      "pep": null,
      "news_summary": null,
      "final_report": null,
      "created_at": "2026-09-04T09:20:03.771000+00:00",
      "completed_at": "2026-09-04T09:20:19.088000+00:00"
    }
    No relevant listing found / nullSanctioned / potential matchPer-source hit_countStatus and search_type
    • "ofac_sanctions"One markdown field per jurisdiction; read the *Status:* line
    • "sanctions_sources"source_id, title, authority, details, hit_count per source
    • "criminal_watchlists"Markdown when matched, null when nothing matched
    • "pep"Markdown when matched, null when nothing matched
    • "news_summary"Adverse-media report on adverse_media and full_search
    • "status"completed when done; error_* on failure

    API reference

    Three calls cover a screening integration: queue it, poll it, or hand over a file.

    POST/api/v1/searchQueue a screening run. Returns immediately with a search_id; the work happens in the background.202 Accepted
    Requestbash
    curl -X POST https://screenveritai.com/api/v1/search \
      -H 'X-API-Key: YOUR_API_KEY' \
      -H 'Content-Type: application/json' \
      -d '{"entity_name": "Acme Trading LLC", "entity_type": "company",
           "country": "AE", "search_type": "sanctions_check"}'
    Response202 Accepted
    { "search_id": "SEARCH_ID", "status": "processing",
      "message": "Search queued successfully. Poll the GET endpoint for results.",
      "estimated_time_seconds": 15 }
    GET/api/v1/search/{search_id}Poll for the result. Terminal status is completed; failures land in an error_* status.200 OK
    Requestbash
    curl https://screenveritai.com/api/v1/search/SEARCH_ID \
      -H 'X-API-Key: YOUR_API_KEY'
    Response200 OK
    { "id": "SEARCH_ID", "status": "completed", "search_type": "sanctions_check",
      "ofac_sanctions": "## OFAC Sanctions Findings ... *Sanctioned* ...",
      "eu_sanctions": "... *No relevant listing found* ...",
      "sanctions_sources": [{ "source_id": "ofac_sanctions", "hit_count": 1 }],
      "criminal_watchlists": null, "pep": null }
    POST/api/v1/batchUpload a CSV or XLSX with a name column — up to 100 rows and 2 MB. Poll the job, then export the CSV.202 Accepted
    Requestbash
    curl -X POST https://screenveritai.com/api/v1/batch \
      -H 'X-API-Key: YOUR_API_KEY' \
      -F 'file=@portfolio.csv'
    Response202 Accepted
    { "job_id": "JOB_ID", "total_rows": 100, "credits_charged": 100,
      "search_type": "sanctions_check", "status": "pending",
      "message": "Batch job created successfully. Poll the GET endpoint for status." }

    Integration patterns

    The API sits between data entry and decision — wherever you need a risk signal.

    • Customer onboarding

      1. Customer signup
      2. POST/api/v1/search
      3. Poll until completed
      4. Approve / hold
    • Payment processing

      1. Transaction init
      2. POST/api/v1/search
      3. Poll until completed
      4. Release / hold
    • CRM re-screen

      1. Record updated
      2. Your scheduler fires
      3. POST/api/v1/search
      4. Write result back

    Construirlo en casa frente a integrar ScreenVeritAI

    Construirlo en casa frente a integrar ScreenVeritAI
    AspectoConstruirlo en casaAPI de ScreenVeritAI
    Tiempo hasta producción6-12 meses para conseguir listas, construir la coincidencia y cubrir casos límiteDías para integrar — listo para producción desde la primera llamada
    Cobertura de listas de sancionesIncorporación manual de cada formato de lista; mantenimiento continuo del esquemaTodas las fuentes principales mantenidas y actualizadas de forma continua
    Precisión de la coincidenciaLa coincidencia difusa a medida exige experiencia en PLN y ajuste constanteIA con coincidencia difusa, transliteración, resolución de alias y algoritmos fonéticos
    PEP y medios adversosProveedores separados, integraciones separadas, presupuestos separadosDatos de PEP, medios adversos y UBO en la misma respuesta de la API
    Mantenimiento continuoUn equipo dedicado a actualizar listas, cambiar esquemas y ajustar falsos positivosGestionado por completo — actualizaciones, mejoras e infraestructura de nuestra cuenta
    Pista de auditoríaConstruya su propia infraestructura de registro, evidencia y conservaciónDosieres de evidencia con fecha y hora, con referencias de fuente incluidas

    Cuatro pasos hacia el cumplimiento integrado

    1. Obtenga su clave de API

      Cree una clave con alcance limitado desde su panel, con permisos de mínimo privilegio: search:read, search:write, batch:read, batch:write.

    2. Integre el endpoint

      Una sola llamada POST en su flujo de incorporación, pagos o CRM — envíe el nombre de la entidad, el tipo y el país, y reciba un ID de trabajo.

    3. Procese los resultados

      Sondee el endpoint de resultados para obtener JSON estructurado — contexto de la empresa, propiedad, PEP, medios adversos, señales de sanciones y puntuaciones de riesgo.

    4. Monitorice y reciba alertas

      Configure la monitorización continua — la API envía alertas cuando se actualizan las listas de sanciones o aparecen nuevos medios adversos.

    Empiece en minutos

    Una sola llamada a la API devuelve un resultado de cribado completo.

    Cribar una entidadbash
    curl -X POST https://screenveritai.com/api/v1/search \
      -H 'X-API-Key: YOUR_API_KEY' \
      -H 'Content-Type: application/json' \
      -d '{"entity_name": "Acme Trading LLC", "country": "AE", "search_type": "sanctions_check"}'
    
    # 202 Accepted
    # { "search_id": "SEARCH_ID", "status": "processing", "estimated_time_seconds": 15 }
    Consultar el resultadobash
    curl https://screenveritai.com/api/v1/search/SEARCH_ID \
      -H 'X-API-Key: YOUR_API_KEY'
    
    # 200 OK
    # { "id": "SEARCH_ID", "status": "completed",
    #   "ofac_sanctions": "## OFAC Sanctions Findings ... *No relevant listing found* ...",
    #   "criminal_watchlists": null, "pep": null }

    Rendimiento de la API

    • €0.39

      Quick Check por llamada, sin cuota de plataforma

    • 202

      Estado HTTP cuando se acepta una búsqueda; después se consulta el resultado

    • EU

      Alojado en Finlandia; los datos en reposo permanecen en la UE

    Preguntas frecuentes sobre la integración por API

    ¿Cómo autentico las solicitudes a la API?

    Autentique las solicitudes a la API con una clave secreta en la cabecera X-API-Key. Las claves se crean desde su panel con permisos limitados y de mínimo privilegio.

    ¿La API es síncrona o asíncrona?

    Asíncrona. Envíe una solicitud, obtenga un ID de trabajo y recupere los resultados mediante sondeo. Su pipeline nunca se bloquea.

    ¿Qué formato de respuesta devuelve la API?

    JSON estructurado con campos para las jurisdicciones principales y matrices por fuente, además de hallazgos de listas de búsqueda y PEP/RCA. Revise el markdown, los identificadores y las fuentes disponibles. La respuesta no ofrece una puntuación numérica de riesgo.

    ¿Qué límites de solicitudes se aplican?

    Se asignan según el nivel de suscripción por clave de API. Las cabeceras de respuesta incluyen la cuota restante y la hora de reinicio.

    ¿Puedo cribar entidades por lotes mediante la API?

    Sí. El endpoint de lotes acepta CSV o XLSX con hasta 100 filas por solicitud, y los resultados se pueden recuperar por fila o como una exportación completa.

    ¿Cómo configuro la monitorización continua mediante la API?

    Configure la monitorización tras el cribado inicial. Cuando se actualicen las listas o surjan nuevos medios adversos, la monitorización señala el cambio y le avisa en la app.

    ¿Qué datos de cumplimiento incluye cada resultado de cribado?

    Coincidencias de sanciones en todas las fuentes principales, estatus PEP con conexiones familiares, medios adversos con citas multilingües, datos UBO, nivel de riesgo y un dosier de evidencia con fecha y hora.

    ¿Cuánto tarda un cribado?

    Una comprobación de sanciones estándar: segundos. Una investigación profunda con medios adversos y mapeo de propiedad: menos de dos minutos.

    Terminología de la API

    API REST
    API web que usa métodos HTTP estándar — compatible con cualquier lenguaje o framework capaz de hacer solicitudes HTTP.
    Procesamiento asíncrono
    La API acepta un trabajo de inmediato y lo procesa en segundo plano — recupere los resultados mediante sondeo.
    Clave de API
    Token secreto para autenticar las solicitudes a la API, con alcance limitado a permisos concretos de mínimo privilegio.
    Limitación de solicitudes
    Restringe el número de solicitudes a la API por ventana de tiempo según el nivel de suscripción — la cuota restante y la hora de reinicio van en las cabeceras de respuesta.
    Respuesta estructurada
    JSON legible por máquina con nombres y tipos de campo consistentes, que permite el análisis automatizado y la lógica de decisión.

    API REST para el cribado PBC/FT

    Incorpore el cribado de sanciones, PEP, listas de vigilancia criminal, medios adversos y KYB/UBO directamente en sus flujos de incorporación, monitorización y transacciones. La API está en producción: autentíquese con una clave API y llame al mismo motor de cribado que usa el portal.

    Los endpoints están disponibles de forma general con autenticación por clave API y límites de solicitudes por nivel. Explore cada endpoint en la documentación OpenAPI interactiva en /api/v1/docs.

    Guía rápida

    1. 1. Cree una clave de API

      Cree una clave de API con alcance limitado desde su panel, o genere una mediante programación con el token de portador de su cuenta para solicitudes de servidor a servidor.

      POST/api/v1/keyscurl
      curl -X POST https://screenveritai.com/api/v1/keys \
        -H "Authorization: Bearer <SUPABASE_JWT>" \
        -H "Content-Type: application/json" \
        -d '{"name":"server-key","permissions":["search:read","search:write"]}'
    2. 2. Ejecute su primera búsqueda

      Envíe una entidad con la cabecera X-API-Key. La API devuelve un ID de búsqueda que recupera cuando termina el procesamiento.

      POST/api/v1/searchcurl
      curl -X POST https://screenveritai.com/api/v1/search \
        -H "X-API-Key: <YOUR_API_KEY>" \
        -H "Content-Type: application/json" \
        -d '{"entity_name":"Acme Ltd","entity_type":"company","search_type":"full_search"}'
    3. 3. Envíe un lote

      Envíe un archivo CSV/XLSX para cribar muchas entidades en un solo trabajo, y recupere las filas o las exportaciones cuando el lote termine.

      POST/api/v1/batchcurl
      curl -X POST https://screenveritai.com/api/v1/batch \
        -H "X-API-Key: <YOUR_API_KEY>" \
        -F "file=@entities.csv"

    Endpoints principales

    • POST/api/v1/search

      Crea una solicitud de cribado para una entidad. Devuelve un ID de búsqueda y el estado del procesamiento. También hay disponibles endpoints de cuenta, cobertura y estado bajo /api/v1.

      Autenticación: X-API-Key (search:write)

    • POST/api/v1/batch

      Envía archivos CSV/XLSX para cribado de alto volumen, y recupera filas o exportaciones cuando los trabajos terminan.

      Autenticación: X-API-Key (batch:write)

    • POST/api/v1/keys

      Crea y gestiona credenciales de API con permisos de alcance limitado, límites de solicitudes según el nivel y seguimiento de uso.

      Autenticación: token de portador (cuenta)

    Crypto address checks. Source evidence at 0,39 €.

    Check an address against OFAC’s published digital-currency identifiers. Add native-USDC issuer-block status on Ethereum in the same request, at the same price.

    0,39 € per completed address check · prepaid PAYG only

    • POST/api/v1/crypto-address/checks
    • GET/api/v1/crypto-address/checks/{id}
    OFAC address match
    Exact address lookup under the requested OFAC currency label, such as ETH, XBT, TRX, USDT or USDC. Evidence includes the publication date, source URL, export hash and matching OFAC record.
    Ethereum USDC
    Set network to ethereum to check native-USDC issuer-block status at a finalized Ethereum mainnet block. The result includes the contract address, block number, block hash and contract response. Omit network for an OFAC-only check.
    Create a check
    POST requires X-API-Key with search:write, an Idempotency-Key of 16–128 ASCII letters, digits, underscores, dots, colons or hyphens, and address, currency and integer max_prepaid_cents fields. Set max_prepaid_cents to 39 to authorize the current price. A completed request returns HTTP 200 synchronously.
    Retrieve and retry
    GET requires search:read and returns your saved check without another charge. If a POST response is lost, reuse the same Idempotency-Key and payload. Keep that key while the outcome is uncertain; create a new key only for a deliberate new check.
    Billing
    Completed checks debit 0,39 € from your EUR prepaid balance. Minimum balance top-up: €5. Subscription allowances do not apply. Source failures are unpaid.

    A negative result means no published OFAC match or no native-USDC issuer block in the checked source. It does not establish wallet ownership or clear an address of all risk.

    This is an address-level source check. Transaction tracing, exposure scoring and continuous KYT monitoring are outside its scope. Crypto checks use this separate API; they are not available through name-screening batch uploads, portal history or PDF reports.

    Por qué los equipos usan la API

    • Una sola integración para el cribado de sanciones, PEP, listas de vigilancia criminal, medios adversos y KYB/UBO
    • Autenticación por clave API mediante la cabecera X-API-Key, con claves de alcance limitado para un acceso de mínimo privilegio
    • Límites de solicitudes por nivel con registro de uso para gobernanza y control de costes
    • Endpoints de búsqueda, lotes, claves, cuenta, cobertura y estado bajo /api/v1
    • Documentación OpenAPI interactiva en /api/v1/docs, además de un esquema OpenAPI legible por máquina
    • Salida estructurada apta para registros de auditoría, expedientes de casos y decisiones posteriores

    Integration playbooks

    Preguntas frecuentes sobre la API

    ¿Cómo autentico las solicitudes a la API?

    Las solicitudes de cribado a /api/v1/search y /api/v1/batch se autentican con una clave de API enviada en la cabecera X-API-Key. Cree las claves desde su panel, o mediante programación a través de /api/v1/keys tras autenticarse con el token de portador de su cuenta.

    ¿Está la API disponible de forma general?

    Sí. La API v1 está en producción y disponible de forma general. Autentíquese con una clave de API, llame a los endpoints de búsqueda, lotes y gestión de claves, y explore todo en la documentación OpenAPI interactiva en /api/v1/docs.

    ¿Puedo limitar el alcance de los permisos de una clave de API?

    Sí. Las claves admiten permisos como search:read, search:write, batch:read y batch:write, para que pueda aplicar un acceso de mínimo privilegio por integración.

    ¿Qué límites de solicitudes se aplican?

    Los límites se asignan por nivel de API y se aplican por clave de API — el nivel rige el rendimiento de solicitudes, no la facturación. Las cabeceras de respuesta incluyen el límite, la cuota restante y la hora de reinicio, para que pueda ajustar su ritmo de forma ordenada.

    ¿Dónde puedo probar los endpoints rápidamente?

    Use la documentación interactiva en /api/v1/docs para pruebas con Swagger y /api/v1/redoc para la documentación de referencia. El esquema OpenAPI se sirve en /api/v1/openapi.json.

    Empiece a verificar en minutos.

    Elija un plan y empiece a verificar hoy mismo.