開発者向けAPI

    システム間で名前をコピー&ペーストする必要はありません。1回の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

    自社開発 対 ScreenVeritAI連携

    自社開発 対 ScreenVeritAI連携
    項目自社開発ScreenVeritAI API
    本番稼働までの期間リストの調達、照合ロジックの構築、例外処理の実装に6~12か月数日で連携完了 — 最初のAPI呼び出しから本番運用可能
    制裁リストの収録範囲各リスト形式を手作業で取り込み、スキーマを継続的に保守すべての主要ソースを継続的に維持・更新
    照合精度独自のあいまい照合にはNLPの専門知識と絶え間ない調整が必要あいまい照合、音訳、別名解決、音声アルゴリズムを備えたAI
    PEP・アドバースメディア別々のベンダー、別々の連携、別々の予算が必要PEP、アドバースメディア、UBOデータを同じAPIレスポンスで取得
    継続的な保守リスト更新、スキーマ変更、誤検知の調整に専任チームが必要フルマネージド — 更新・改善・インフラをすべて代行
    監査証跡ログ・エビデンス・保存のための独自基盤を構築する必要あり出典付きのタイムスタンプ入りエビデンスバンドルが標準搭載

    コンプライアンス組み込みまでの4ステップ

    1. APIキーを取得する

      ダッシュボードから、search:read、search:write、batch:read、batch:writeといった最小権限のスコープ付きキーを作成します。

    2. エンドポインを組み込む

      オンボーディング、決済、CRMのワークフローにPOST呼び出しを1回追加するだけです。エンティティ名、種別、国を送信すると、ジョブIDが返されます。

    3. 結果を処理する

      結果取得エンドポイントをポーリングして、構造化されたJSONを取得します — 法人情報、出資構造、PEP、アドバースメディア、制裁リストの情報、リスクスコアが含まれます。

    4. モニタリングとアラートを設定する

      継続的モニタリングを設定すれば、制裁リストが更新されたり新たなアドバースメディアが見つかったりした際に、APIがアラートを送信します。

    数分で始められます

    1回の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リクエストはどのように認証しますか?

    APIリクエストは、X-API-Keyヘッダーで渡すシークレットキーを使って認証します。キーはダッシュボードから、必要最小限のスコープ付き権限で作成できます。

    APIは同期型ですか、非同期型ですか?

    非同期型です。リクエストを送信するとジョブIDが返され、結果はポーリングで取得します。パイプラインがブロックされることはありません。

    APIはどのようなレスポンス形式を返しますか?

    主要な管轄別フィールドと情報源別の配列に加え、指名手配リストとPEP/RCAの結果を含む構造化JSONです。利用可能なmarkdown、識別情報、出典を確認してください。数値によるリスクスコアは返しません。

    どのようなレート制限が適用されますか?

    サブスクリプションのプランごとに、APIキー単位で割り当てられます。レスポンスヘッダーには残りクォータとリセット時刻が含まれます。

    APIでエンティティを一括スクリーニングできますか?

    できます。一括処理用のエンドポイントは、1リクエストあたり最大100行のCSVまたはXLSXを受け付け、結果は行単位、または完全なエクスポートとして取得できます。

    APIで継続的モニタリングを設定するにはどうすればよいですか?

    初回スクリーニングの後にモニタリングを設定します。リストが更新されたり新たなアドバースメディアが見つかったりすると、モニタリングがその変化を検出し、アプリ内で通知します。

    各スクリーニング結果にはどのようなコンプライアンスデータが含まれますか?

    あらゆる主要ソースにわたる制裁該当情報、家族関係を含むPEPステータス、多言語の出典付きアドバースメディア、UBOデータ、リスクレベル、タイムスタンプ付きエビデンスバンドルが含まれます。

    スクリーニングにはどれくらい時間がかかりますか?

    標準の制裁チェックは数秒で完了します。アドバースメディアや出資構造マッピングを含む詳細調査は2分未満です。

    API用語集

    REST API
    標準的なHTTPメソッドを使用するWeb API。HTTPリクエストを送信できる、あらゆる言語やフレームワークと互換性があります。
    非同期処理
    APIはジョブを即座に受け付け、バックグラウンドで処理します — 結果はポーリングで取得します。
    APIキー
    APIリクエストを認証するための秘密トークンで、最小権限アクセスのために特定の権限がスコープされています。
    レート制限
    サブスクリプションのプランごとに、一定時間内のAPIリクエスト数を制限します — 残りクォータとリセット時刻はレスポンスヘッダーに含まれます。
    構造化レスポンス
    一貫したフィールド名と型を持つ機械可読なJSONで、自動的な解析と判断ロジックの実装を可能にします。

    AMLスクリーニングのためのREST API

    制裁リスト、PEP、犯罪ウォッチリスト、アドバースメディア、KYB・UBOのスクリーニングを、オンボーディング、モニタリング、トランザクションフローに直接組み込めます。APIはすでに稼働中です — APIキーで認証し、Web版と同じスクリーニングエンジンをそのまま呼び出せます。

    APIキー認証とプラン別レート制限を備え、一般提供中です。/api/v1/docs のインタラクティブなOpenAPIドキュメントで全エンドポイントをご確認いただけます。

    クイックスタート

    1. 1. APIキーを作成する

      ダッシュボードでスコープ付きAPIキーを作成するか、サーバー間リクエスト用にアカウントのベアラートークンでプログラム的に発行します。

      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ファイルを送信して、1回のジョブで多数のエンティティをスクリーニングします。ジョブ完了後に行データやエクスポートを取得できます。

      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

      1件のエンティティに対するスクリーニングリクエストを作成します。検索IDと処理ステータスを返します。アカウント、収録範囲、稼働状況の各エンドポイントも /api/v1 配下でご利用いただけます。

      認証:X-API-Key(search:write)

    • POST/api/v1/batch

      大量スクリーニング用にCSV/XLSXファイルを送信し、ジョブ完了後に行データまたはエクスポートを取得します。

      認証:X-API-Key(batch:write)

    • POST/api/v1/keys

      スコープ付き権限、プラン別レート制限、利用状況の追跡機能を備えたAPI認証情報を作成・管理します。

      認証:ベアラートークン(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・UBOスクリーニングを1つの統合でカバー
    • X-API-Keyヘッダーによるキー認証。権限をスコープしたキーで最小権限アクセスを実現
    • 利用状況ログ付きのプラン別レート制限で、ガバナンスとコストを管理
    • 検索、一括処理、キー管理、アカウント、収録範囲、稼働状況の各エンドポイントを /api/v1 配下に用意
    • /api/v1/docs のインタラクティブなOpenAPIドキュメントと、機械可読なOpenAPIスキーマ
    • 監査ログ、案件ファイル、後続の意思決定にそのまま使える構造化された出力

    Integration playbooks

    API FAQ

    APIリクエストはどのように認証しますか?

    /api/v1/search および /api/v1/batch へのスクリーニングリクエストは、X-API-Keyヘッダーで送信するAPIキーで認証します。キーはダッシュボードで作成するか、アカウントのベアラートークンで認証した後に /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 で提供しています。

    スクリーニングは数分で始められます。

    プランをお選びいただき、今すぐスクリーニングを開始しましょう。