Developer API

    Зачем копировать имена между системами вручную, если один вызов API делает всё сам?

    Встройте верификацию компаний, картирование владения, проверку ПДЛ, негативные публикации и санкционные сигналы прямо в существующие рабочие процессы.

    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

    Разработка своими силами vs. интеграция ScreenVeritAI

    Разработка своими силами vs. интеграция ScreenVeritAI
    АспектРазработка своими силамиAPI ScreenVeritAI
    Время до запуска в продакшене6–12 месяцев на поиск списков, разработку сопоставления, обработку крайних случаевДни на интеграцию — готово к продакшену с первого вызова API
    Охват санкционных списковРучной приём каждого формата списка; постоянное обслуживание схемКаждый основной источник, поддерживаемый и непрерывно обновляемый
    Точность сопоставленияСобственное нечёткое сопоставление требует экспертизы в NLP и постоянной настройкиИИ с нечётким сопоставлением, транслитерацией, разрешением псевдонимов, фонетическими алгоритмами
    ПДЛ и негативные публикацииОтдельные поставщики, отдельные интеграции, отдельные бюджетыДанные по ПДЛ, негативным публикациям и UBO в одном ответе API
    Постоянное обслуживаниеВыделенная команда для обновления списков, изменений схем, настройки ложных срабатыванийПолностью управляемый сервис — обновления, улучшения и инфраструктура на нашей стороне
    Аудиторский следСобственная разработка логирования, доказательств и инфраструктуры храненияПакеты доказательств с временными метками и ссылками на источники включены

    Четыре шага к встроенному комплаенсу

    1. Получите свой API-ключ

      Создайте ключ с ограниченными правами в панели управления по принципу наименьших привилегий: search:read, search:write, batch:read, batch:write.

    2. Интегрируйте эндпоинт

      Один вызов POST в ваш процесс онбординга, платежей или CRM — отправьте имя, тип и страну субъекта, получите идентификатор задания.

    3. Обработайте результаты

      Опрашивайте эндпоинт результатов для получения структурированного JSON — контекст компании, владение, ПДЛ, негативные публикации, санкционные сигналы и оценки риска.

    4. Мониторьте и получайте оповещения

      Настройте непрерывный мониторинг — API отправляет оповещения при обновлении санкционных списков или появлении новых негативных публикаций.

    Начните работу за минуты

    Один вызов API возвращает полный результат скрининга.

    Проверить субъектbash
    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 }
    Проверить результатbash
    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 }

    Производительность API

    • €0.39

      Quick Check за один вызов, без платы за платформу

    • 202

      HTTP-статус при принятии поиска; затем результат запрашивается опросом

    • EU

      Хостинг в Финляндии; данные в покое не покидают ЕС

    Часто задаваемые вопросы по интеграции API

    Как аутентифицировать запросы к API?

    Аутентифицируйте запросы к API с помощью секретного ключа, передаваемого в заголовке X-API-Key. Ключи создаются в панели управления с ограниченными, минимально необходимыми правами доступа.

    API синхронный или асинхронный?

    Асинхронный. Отправьте запрос, получите идентификатор задания, забирайте результаты через опрос статуса. Ваш конвейер никогда не блокируется.

    В каком формате API возвращает ответ?

    Структурированный JSON с полями основных юрисдикций и массивами по источникам, а также результатами по спискам разыскиваемых лиц и PEP/RCA. Изучите доступный markdown, идентификаторы и ссылки на источники. Ответ не содержит числовой оценки риска.

    Какие лимиты запросов применяются?

    Назначаются по тарифу подписки для каждого API-ключа. Заголовки ответа содержат оставшуюся квоту и время сброса.

    Можно ли проверять субъекты пакетно через API?

    Да. Эндпоинт пакетной обработки принимает CSV или XLSX до 100 строк за запрос, результаты доступны построчно или в виде полного экспорта.

    Как настроить непрерывный мониторинг через API?

    Настройте мониторинг после первичного скрининга. При обновлении списков или появлении новых негативных публикаций мониторинг помечает изменение и уведомляет вас в приложении.

    Какие комплаенс-данные включены в каждый результат скрининга?

    Санкционные совпадения по каждому основному источнику, статус ПДЛ со связями в семье, негативные публикации с многоязычными цитатами, данные UBO, уровень риска и пакет доказательств с временными метками.

    Сколько времени занимает скрининг?

    Стандартная проверка по санкциям: секунды. Глубокое исследование с негативными публикациями и картированием владения: менее двух минут.

    Терминология API

    REST API
    Веб-API на основе стандартных методов HTTP — совместим с любым языком или фреймворком, способным выполнять HTTP-запросы.
    Асинхронная обработка
    API сразу принимает задание и обрабатывает его в фоне — результаты получайте через опрос статуса.
    API-ключ
    Секретный токен для аутентификации запросов к API с ограниченными правами для доступа по принципу наименьших привилегий.
    Ограничение частоты запросов
    Ограничивает количество запросов к API за временное окно по тарифу подписки — оставшаяся квота и время сброса указаны в заголовках ответа.
    Структурированный ответ
    Машиночитаемый JSON с согласованными именами и типами полей, обеспечивающий автоматический разбор и логику принятия решений.

    REST API для AML-скрининга

    Интегрируйте скрининг по санкциям, ПДЛ, уголовным спискам, негативным публикациям и KYB/UBO прямо в процессы онбординга, мониторинга и транзакций. API работает: аутентифицируйтесь по API-ключу и вызывайте тот же скрининговый движок, что используется в портале.

    Эндпоинты доступны всем клиентам с аутентификацией по API-ключу и лимитами по тарифу. Изучите каждый эндпоинт в интерактивной документации OpenAPI по адресу /api/v1/docs.

    Быстрый старт

    1. 1. Создайте API-ключ

      Создайте API-ключ с ограниченными правами в панели управления либо сгенерируйте его программно с помощью bearer-токена вашего аккаунта для межсерверных запросов.

      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. Запустите первый поиск

      Отправьте субъект с заголовком X-API-Key. API возвращает идентификатор поиска, который вы запрашиваете после завершения обработки.

      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. Отправьте пакетное задание

      Отправьте файл CSV/XLSX, чтобы проверить множество субъектов за одно задание, а затем получите строки или экспорт после завершения пакета.

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

    Основные эндпоинты

    • POST/api/v1/search

      Создание запроса на скрининг одного субъекта. Возвращает идентификатор поиска и статус обработки. Также доступны эндпоинты аккаунта, покрытия и состояния сервиса под /api/v1.

      Аутентификация: X-API-Key (search:write)

    • POST/api/v1/batch

      Отправка файлов CSV/XLSX для массового скрининга с последующим получением строк или экспортом после завершения заданий.

      Аутентификация: X-API-Key (batch:write)

    • POST/api/v1/keys

      Создание и управление учётными данными API с ограниченными правами, лимитами по тарифу и отслеживанием использования.

      Аутентификация: Bearer-токен (аккаунт)

    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.

    Почему команды используют API

    • Единая интеграция для скрининга по санкциям, ПДЛ, уголовным спискам, негативным публикациям и KYB/UBO
    • Аутентификация по API-ключу через заголовок X-API-Key с ограниченными правами для доступа по принципу наименьших привилегий
    • Лимиты запросов по тарифам с логированием использования для управления и контроля затрат
    • Эндпоинты поиска, пакетной обработки, ключей, аккаунта, покрытия и состояния сервиса под /api/v1
    • Интерактивная документация OpenAPI по адресу /api/v1/docs плюс машиночитаемая схема OpenAPI
    • Структурированный вывод, подходящий для журналов аудита, досье и последующих решений

    Integration playbooks

    Часто задаваемые вопросы по API

    Как аутентифицировать запросы к API?

    Запросы на скрининг к /api/v1/search и /api/v1/batch аутентифицируются с помощью API-ключа, передаваемого в заголовке X-API-Key. Создавайте ключи в панели управления либо программно через /api/v1/keys после аутентификации bearer-токеном вашего аккаунта.

    API доступен всем в общем доступе?

    Да. API v1 работает и доступен всем в общем доступе. Аутентифицируйтесь по API-ключу, вызывайте эндпоинты поиска, пакетной обработки и управления ключами, а также изучайте всё в интерактивной документации OpenAPI по адресу /api/v1/docs.

    Можно ли ограничить права API-ключа?

    Да. Ключи поддерживают такие права, как search:read, search:write, batch:read и batch:write, что позволяет обеспечить доступ по принципу наименьших привилегий для каждой интеграции.

    Какие лимиты запросов применяются?

    Лимиты запросов назначаются по уровню API и применяются к каждому API-ключу — уровень определяет пропускную способность запросов, а не тарификацию. Заголовки ответов содержат лимит, оставшуюся квоту и время сброса, чтобы вы могли корректно снижать нагрузку.

    Где можно быстро протестировать эндпоинты?

    Используйте интерактивную документацию по адресу /api/v1/docs для тестирования через Swagger и /api/v1/redoc для справочной документации. Схема OpenAPI доступна по адресу /api/v1/openapi.json.

    Начните проверку за считанные минуты.

    Выберите тариф и начните проверку уже сегодня.