개발자 API

    시스템 간에 이름을 일일이 복사해 붙일 이유가 있을까요? API 호출 한 번이면 끝납니다.

    기업 검증, 소유 구조 매핑, PEP 확인, 부정적 미디어, 제재 신호를 기존 워크플로에 직접 내장하십시오.

    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 연동
    항목자체 구축ScreenVeritAI API
    프로덕션까지 걸리는 시간리스트 소싱, 매칭 구축, 예외 처리에 6~12개월연동에 며칠 — 첫 API 호출부터 프로덕션 준비 완료
    제재 리스트 커버리지각 리스트 형식을 수작업으로 수집, 지속적인 스키마 유지보수 필요모든 주요 소스를 지속적으로 유지·갱신
    매칭 정확도자체 퍼지 매칭에는 NLP 전문성과 지속적인 튜닝이 필요퍼지 매칭, 음역, 별칭 해석, 음성 알고리즘을 갖춘 AI
    PEP 및 부정적 미디어별도 벤더, 별도 연동, 별도 예산동일한 API 응답에 PEP, 부정적 미디어, 실제소유자 데이터 포함
    지속적 유지보수리스트 갱신, 스키마 변경, 오탐 튜닝을 위한 전담 팀 필요완전 관리형 — 갱신, 개선, 인프라를 대신 처리합니다
    감사 추적로깅, 증거, 보존 인프라를 직접 구축출처 참조가 포함된 타임스탬프 증거 번들 기본 제공

    내장형 컴플라이언스로 가는 4단계

    1. API 키 발급받기

      search:read, search:write, batch:read, batch:write 등 최소 권한으로 범위가 지정된 키를 대시보드에서 생성하십시오.

    2. 엔드포인트 연동

      온보딩, 결제, CRM 워크플로에 POST 호출 한 번으로 대상명, 유형, 국가를 전송하고 작업 ID를 받으십시오.

    3. 결과 처리

      결과 엔드포인트를 폴링해 기업 맥락, 소유 구조, PEP, 부정적 미디어, 제재 신호, 리스크 점수가 담긴 구조화된 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 1회 호출당, 플랫폼 요금 없음

    • 202

      검색이 접수될 때의 HTTP 상태. 이후 결과를 폴링으로 조회

    • EU

      핀란드에서 호스팅. 저장 데이터는 EU 내에 유지

    API 연동 FAQ

    API 요청은 어떻게 인증합니까?

    X-API-Key 헤더로 전달하는 비밀 키로 API 요청을 인증합니다. 키는 대시보드에서 최소 권한 원칙에 따라 범위가 제한된 권한으로 생성됩니다.

    API는 동기식입니까, 비동기식입니까?

    비동기식입니다. 요청을 제출하면 작업 ID를 받고, 결과는 폴링으로 조회합니다. 파이프라인이 막히는 일이 없습니다.

    API는 어떤 응답 형식을 반환합니까?

    주요 관할별 필드와 출처별 배열에 수배 명단 및 PEP/RCA 결과가 포함된 구조화된 JSON입니다. 제공되는 markdown, 식별자 및 출처를 검토하세요. 응답은 숫자형 위험 점수를 제공하지 않습니다.

    어떤 속도 제한이 적용됩니까?

    API 키별로 구독 등급에 따라 배정됩니다. 응답 헤더에 잔여 할당량과 초기화 시각이 포함됩니다.

    API로 대상을 일괄 스크리닝할 수 있습니까?

    네. 일괄 엔드포인트는 요청당 최대 100행의 CSV 또는 XLSX를 받으며, 결과는 행 단위 또는 전체 내보내기로 조회할 수 있습니다.

    API로 지속적 모니터링을 어떻게 설정합니까?

    최초 스크리닝 이후 모니터링을 설정하십시오. 리스트가 갱신되거나 새로운 부정적 미디어가 드러나면 모니터링이 변경을 표시하고 앱 내에서 알림을 보냅니다.

    각 스크리닝 결과에는 어떤 컴플라이언스 데이터가 포함됩니까?

    모든 주요 소스에 대한 제재 매칭, 가족 관계가 포함된 PEP 상태, 다국어 인용이 포함된 부정적 미디어, 실제소유자 데이터, 리스크 등급, 타임스탬프 증거 번들이 포함됩니다.

    스크리닝에는 얼마나 걸립니까?

    표준 제재 점검은 몇 초이며, 부정적 미디어와 소유 구조 매핑을 포함한 심층 조사는 2분 미만입니다.

    API 용어

    REST API
    표준 HTTP 메서드를 사용하는 웹 API로, HTTP 요청이 가능한 모든 언어나 프레임워크와 호환됩니다.
    비동기 처리
    API가 작업을 즉시 접수해 백그라운드에서 처리하며, 결과는 폴링으로 조회합니다.
    API 키
    API 요청을 인증하기 위한 비밀 토큰으로, 최소 권한 접근을 위해 특정 권한 범위가 지정됩니다.
    속도 제한
    구독 등급별로 시간 단위당 API 요청 수를 제한하며, 잔여 할당량과 초기화 시각은 응답 헤더에 포함됩니다.
    구조화된 응답
    일관된 필드명과 타입을 갖춘 기계 판독 가능한 JSON으로, 자동 파싱과 판단 로직을 가능하게 합니다.

    AML 스크리닝을 위한 REST API

    제재, PEP, 범죄 감시 리스트, 부정적 미디어, KYB/실제소유자 스크리닝을 온보딩, 모니터링, 거래 플로에 직접 연동하십시오. API는 정식 운영 중입니다. API 키로 인증하고 포털이 사용하는 것과 동일한 스크리닝 엔진을 호출하십시오.

    API 키 인증과 등급별 속도 제한을 갖추고 정식 서비스로 제공됩니다. /api/v1/docs의 인터랙티브 OpenAPI 문서에서 모든 엔드포인트를 확인하십시오.

    빠른 시작

    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는 처리가 완료되면 조회할 검색 ID를 반환합니다.

      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

      단일 대상에 대한 스크리닝 요청을 생성합니다. 검색 ID와 처리 상태를 반환합니다. 계정, 커버리지, 상태 확인 엔드포인트도 /api/v1 하위에서 제공됩니다.

      인증: X-API-Key (search:write)

    • POST/api/v1/batch

      대량 스크리닝을 위해 CSV/XLSX 파일을 제출한 뒤, 작업 완료 시 행별 결과 또는 내보내기를 조회합니다.

      인증: X-API-Key (batch:write)

    • POST/api/v1/keys

      범위가 지정된 권한, 등급별 속도 제한, 사용량 추적 기능을 갖춘 API 자격 증명을 생성하고 관리합니다.

      인증: Bearer 토큰 (account)

    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를 사용하는 이유

    • 제재, PEP, 범죄 감시 리스트, 부정적 미디어, KYB/실제소유자 스크리닝을 위한 단일 통합
    • X-API-Key 헤더를 통한 API 키 인증과 최소 권한 접근을 위한 권한 범위 지정 키
    • 거버넌스와 비용 관리를 위한 사용량 로깅이 포함된 등급별 속도 제한
    • /api/v1 하위의 검색, 일괄, 키, 계정, 커버리지, 상태 확인 엔드포인트
    • /api/v1/docs의 인터랙티브 OpenAPI 문서와 기계 판독 가능한 OpenAPI 스키마
    • 감사 로그, 사건 파일, 후속 의사결정에 바로 활용 가능한 구조화된 출력

    Integration playbooks

    API FAQ

    API 요청은 어떻게 인증합니까?

    /api/v1/search와 /api/v1/batch에 대한 스크리닝 요청은 X-API-Key 헤더로 전송하는 API 키로 인증합니다. 대시보드에서 키를 생성하거나, 계정 Bearer 토큰으로 인증한 뒤 /api/v1/keys를 통해 프로그래밍 방식으로 생성할 수 있습니다.

    API는 정식으로 이용할 수 있습니까?

    네. API v1은 정식으로 운영되고 있습니다. API 키로 인증한 뒤 검색, 일괄, 키 관리 엔드포인트를 호출하고, /api/v1/docs의 인터랙티브 OpenAPI 문서에서 모든 기능을 확인하십시오.

    API 키 권한을 범위 지정할 수 있습니까?

    네. 키는 search:read, search:write, batch:read, batch:write 등의 권한을 지원하므로 연동별로 최소 권한 접근을 적용할 수 있습니다.

    어떤 속도 제한이 적용됩니까?

    속도 제한은 API 등급별로 배정되며 API 키 단위로 적용됩니다 — 등급이 결정하는 것은 요청 처리량이지 요금이 아닙니다. 응답 헤더에 제한량, 잔여 할당량, 초기화 시각이 포함되어 있어 원활하게 조절할 수 있습니다.

    엔드포인트를 빠르게 테스트할 수 있는 곳은 어디입니까?

    /api/v1/docs의 인터랙티브 문서에서 Swagger 테스트를 이용하고, /api/v1/redoc에서 참조 스타일 문서를 확인하십시오. OpenAPI 스키마는 /api/v1/openapi.json에서 제공됩니다.

    몇 분 만에 심사를 시작하십시오.

    요금제를 선택하고 오늘 바로 심사를 시작하십시오.