Crypto Entity Screening
Crypto entity screening for compliance teams, VASPs, and institutional investors — screen any cryptocurrency project or counterparty against OFAC sanctions, international sanctions lists, corporate registries, GLEIF LEI data, CoinGecko market data, and U.S. regulatory databases in a single run. Returns a composite due diligence verdict (PASS / CONDITIONAL / ENHANCED_DUE_DILIGENCE / FAIL) with detailed sanctions status, shell company detection, and project legitimacy scores.
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| analysis-run | Full intelligence analysis run | $0.30 |
Example: 100 events = $30.00 · 1,000 events = $300.00
Documentation
Crypto entity screening for compliance teams, VASPs, and institutional investors — screen any cryptocurrency project or counterparty against OFAC sanctions, international sanctions lists, corporate registries, GLEIF LEI data, CoinGecko market data, and U.S. regulatory databases in a single run. Returns a composite due diligence verdict (PASS / CONDITIONAL / ENHANCED_DUE_DILIGENCE / FAIL) with detailed sanctions status, shell company detection, and project legitimacy scores.
Manual compliance screening of a single crypto entity — checking OFAC, searching corporate registries, verifying LEI status, and reviewing regulatory filings — takes 2-4 hours per entity. This actor runs all seven data sources in parallel and delivers a structured, auditable report in under three minutes. No compliance background required to interpret the output.
What data can you extract?
| Data Point | Source | Example |
|---|---|---|
| 🏛️ Sanctions status | OFAC SDN list | CLEAR / BLOCKED — DO NOT TRANSACT |
| 🌐 International sanctions hits | OpenSanctions (global lists) | 3 international sanctions matches |
| 📊 Composite risk score | Weighted 4-model formula | 38 / 100 |
| ⚖️ Due diligence verdict | Scoring engine | ENHANCED_DUE_DILIGENCE |
| 🏢 Corporate entity count | OpenCorporates registry | 12 entities across 6 jurisdictions |
| 🔍 Shell company detection level | Multi-factor analysis | MINOR_FLAGS / LIKELY_SHELL |
| 🪪 LEI verification | GLEIF global registry | Valid LEI on file / No LEI found |
| 💹 Market data presence | CoinGecko | Market data verified — BNB |
| 📋 Project legitimacy score | 3-factor model | 70 / 100 |
| 📜 Regulatory velocity level | Federal Register + Congress.gov | MODERATE — 12 regulations, 8 bills |
| 🚨 Required actions | Compliance rule engine | File SAR, escalate to compliance officer |
| 🚫 Blockers | Hard-stop rule engine | OFAC match — automatic FAIL |
Why use Crypto Entity Screening?
Compliance teams at exchanges, custodians, and funds spend hours on each counterparty screen — pulling OFAC lookups, searching corporate databases, hunting for LEI registrations, and manually reviewing Federal Register notices. A single compliance analyst handling 20 screenings per week can spend half their time on data collection alone, with no guarantee of consistency across searches.
This actor automates the entire data collection and scoring pipeline. Seven sources run in parallel, results feed into four independent scoring models, and a weighted composite formula produces a verdict your compliance officer can act on immediately.
- Scheduling — run weekly batch screenings of your entire counterparty list to catch newly-sanctioned entities
- API access — trigger screenings from Python, JavaScript, or any HTTP client and pipe results directly into your compliance platform
- Proxy rotation — built-in Apify proxy infrastructure handles any rate limiting across data sources
- Monitoring — get Slack or email alerts when runs fail or when newly-screened entities return unexpected FAIL verdicts
- Integrations — push screening results directly to Zapier, Make, Google Sheets, HubSpot, or any compliance case management system via webhooks
Features
- OFAC sanctions screening with instant BLOCKED status — queries the U.S. Treasury OFAC Specially Designated Nationals (SDN) list; any match triggers a hard-blocked verdict regardless of all other scores, with exact match details preserved in output
- OpenSanctions international screening — checks consolidated global sanctions lists covering EU, UN, UK, and 100+ additional jurisdictions, scored at 8 points per match up to 25 points maximum
- Shell company detection across 9 high-risk jurisdictions — analyzes OpenCorporates corporate registry data for entities registered in Cayman Islands (KY), British Virgin Islands (VG), Panama (PA), Belize (BZ), Seychelles (SC), Marshall Islands (MH), Samoa (WS), Vanuatu (VU), and Anguilla (AI)
- Corporate structure complexity analysis — scores multi-entity layered structures: penalizes dissolved/inactive entity ratio (max 25 pts), high-risk jurisdiction concentration (10 pts per entity), cross-jurisdiction complexity (entity count × jurisdiction count), and ghost entities with no registrations found
- GLEIF LEI verification — queries the Global Legal Entity Identifier Foundation registry; absence of LEI registration adds a 15-point risk penalty to both entity compliance and shell detection models
- CoinGecko market data verification — confirms token listing and market presence as a 35-point legitimacy signal; projects with no market data listing receive zero on this dimension
- Project legitimacy 3-factor scoring — combines market data presence (35 pts), corporate registration presence (35 pts), and LEI verification (30 pts) into a 0-100 legitimacy score independent of the risk score
- Regulatory velocity tracking — queries Federal Register for crypto/digital asset rules and Congress.gov for digital asset bills; distinguishes proposed rules from final rules and tracks advanced legislation; produces STATIC through RAPID velocity classification
- Enforcement action identification — scans Federal Register results for enforcement, penalty, settlement, and cease-and-desist actions related to the queried entity
- Weighted composite scoring — entity compliance (40%) + shell detection (35%) + regulatory velocity (25%) combined into a single 0-100 composite with four verdict thresholds: PASS, CONDITIONAL, ENHANCED_DUE_DILIGENCE, FAIL
- Actionable required actions list — generates specific compliance instructions (file SAR, request beneficial ownership disclosure, request LEI registration) based on findings
- Parallel execution — all 5-7 sub-actor calls run concurrently via Promise.allSettled, with graceful degradation if any individual source times out or returns no data
- Auditable output — every signal, score component, and raw data record preserved in structured JSON for compliance audit trail
Use cases for crypto entity screening
Counterparty due diligence for exchanges and VASPs
Cryptocurrency exchanges, brokers, and Virtual Asset Service Providers (VASPs) must screen counterparties before executing transactions under FinCEN guidance, the Travel Rule, and BSA/AML obligations. Manually pulling each entity through OFAC, OpenSanctions, and corporate registries before every onboarding decision is not scalable. This actor delivers a structured screening report — including all raw source data — that compliance officers can attach directly to a KYC case file.
Institutional investor pre-investment screening
Hedge funds, family offices, and venture firms allocating to crypto assets need documented due diligence on project teams and issuing entities before committing capital. A FAIL verdict on a prospective investment (OFAC match, confirmed shell structure, no corporate registration) surfaces in the pre-investment checklist, not after wire transfer. The legitimacy score and LEI status give portfolio teams a consistent, comparable signal across every deal they evaluate.
DeFi protocol integration partner screening
DeFi protocol teams adding new token integrations, liquidity pool pairings, or bridge connections are exposed to the reputational and regulatory risk of their partners. Screening the issuing entity for a new token before adding it to a protocol's supported asset list is a defensible first step. This actor identifies whether the entity behind a token has OFAC exposure, opaque corporate structure, or no verifiable market presence.
Compliance monitoring and watchlist refresh
Sanctions lists update continuously. An entity that passed screening six months ago may be newly designated. Scheduling this actor to re-screen your active counterparty list weekly — or connecting it to a Zapier workflow that fires on a schedule — gives compliance teams an automated watchlist refresh without manual re-work. The requiredActions array in each output record flags immediately what changed and what to do about it.
Regulatory intelligence for crypto legal teams
Legal teams at crypto firms track how U.S. regulatory frameworks evolve to advise product and compliance teams on upcoming requirements. The regulatory velocity module queries Federal Register and Congress.gov in real time, identifies proposed vs. final rules, and classifies the current regulatory pace as STATIC through RAPID. Scheduling a weekly run against a list of relevant entities surfaces new enforcement actions as they enter the public record.
Blockchain analytics and forensics support
Financial crime investigators and blockchain analytics firms building entity profiles on crypto addresses and projects use this actor to cross-reference on-chain entity labels against off-chain compliance data. Pairing the screening output with on-chain transaction data produces a more complete counterparty risk picture than either source delivers alone.
How to screen a crypto entity
- Enter the entity name — Type the project or company name into the Query field: for example, "Tether", "Binance", or "Cumberland DRW". Use the legal entity name when possible for the best corporate registry match.
- Add the ticker symbol (optional) — Enter the token ticker (e.g., "USDT", "BNB") to pull verified market data from CoinGecko. Leave blank if the entity is not a token issuer.
- Choose regulatory tracking — Leave "Include Regulatory Tracking" enabled to get Federal Register and Congress bill data. Disable it for faster, cheaper runs when regulatory velocity is not required.
- Click Start and download results — The run completes in 2-4 minutes. Download your structured compliance report as JSON, CSV, or Excel from the Dataset tab. The
verdictfield gives your top-line answer;allSignalsandrequiredActionstell you why and what to do next.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes | — | Crypto project or entity name to screen (e.g., "Binance", "Tether", "FTX") |
ticker | string | No | — | Token ticker symbol for CoinGecko market data lookup (e.g., "BTC", "ETH", "USDT") |
includeRegulatory | boolean | No | true | Include Federal Register and Congress.gov regulatory velocity analysis |
Input examples
Standard counterparty screening with market data:
{
"query": "Tether",
"ticker": "USDT",
"includeRegulatory": true
}
Entity-only screening without token ticker (for non-token entities):
{
"query": "Cumberland DRW",
"includeRegulatory": true
}
Fast screening — skip regulatory tracking for speed and cost:
{
"query": "Nexo",
"ticker": "NEXO",
"includeRegulatory": false
}
Input tips
- Use the legal entity name for corporate registry accuracy — "Tether Operations Limited" will return richer OpenCorporates results than "Tether" alone, though both will work
- Add the ticker whenever available — CoinGecko market data contributes 35 points to the legitimacy score; missing it leaves that dimension unverified
- Disable regulatory tracking for fast batch runs — skipping
includeRegulatoryremoves two of seven parallel calls, cutting run time and cost by roughly 30% - Screen entities individually — each run is one entity; for bulk screening workflows, use the Apify API to trigger runs in a loop from your compliance system
- Preserve the full JSON output — the raw
sanctions.ofacResultsandsanctions.sanctionsResultsarrays contain the source records needed for audit documentation
Output example
{
"entity": "Tether",
"ticker": "USDT",
"screenedAt": "2026-03-20T09:14:22.411Z",
"compositeScore": 41,
"verdict": "ENHANCED_DUE_DILIGENCE",
"sanctions": {
"status": "FLAGGED — ENHANCED DUE DILIGENCE",
"blocked": false,
"ofacHits": 0,
"internationalSanctionsHits": 2,
"ofacResults": [],
"sanctionsResults": [
{
"id": "opensanctions-7823",
"name": "Tether Holdings Limited",
"schema": "Company",
"datasets": ["us_ofac_non_sdn"],
"properties": { "country": ["vg"] }
}
]
},
"entityCompliance": {
"score": 44,
"ofacHits": 0,
"sanctionsHits": 2,
"shellIndicators": 10,
"riskLevel": "MODERATE",
"signals": [
"2 international sanctions matches — enhanced due diligence required",
"Registered across 5 jurisdictions — complex multi-jurisdiction structure"
]
},
"shellDetection": {
"score": 38,
"entityCount": 9,
"inactiveEntities": 1,
"highRiskJurisdictions": 3,
"leiVerified": false,
"detectionLevel": "SUSPICIOUS",
"signals": [
"3 entities in high-risk offshore jurisdictions",
"9 entities across 5 jurisdictions — complex layered structure",
"No LEI registration — entity avoids transparency framework"
]
},
"legitimacy": {
"score": 70,
"flags": [
"Market data verified",
"Corporate entity found",
"No LEI"
],
"marketData": [
{
"id": "tether",
"symbol": "usdt",
"name": "Tether",
"market_cap": 109800000000,
"current_price": 1.0
}
],
"corporateEntities": [
{
"name": "Tether Holdings Limited",
"jurisdiction_code": "vg",
"company_status": "Active",
"incorporation_date": "2014-11-14"
}
],
"leiData": []
},
"regulatoryVelocity": {
"score": 52,
"totalRegulations": 14,
"proposedRules": 5,
"finalRules": 3,
"congressBills": 9,
"velocityLevel": "MODERATE",
"signals": [
"3 final rules — regulatory framework hardening",
"5 proposed rules — more regulation incoming",
"9 crypto-related bills in Congress — active legislative agenda"
]
},
"enforcementSummary": {
"totalRegulations": 14,
"enforcementActions": 2,
"congressBills": 9
},
"allSignals": [
"2 international sanctions matches — enhanced due diligence required",
"Registered across 5 jurisdictions — complex multi-jurisdiction structure",
"3 final rules — regulatory framework hardening",
"5 proposed rules — more regulation incoming",
"9 crypto-related bills in Congress — active legislative agenda",
"3 entities in high-risk offshore jurisdictions",
"9 entities across 5 jurisdictions — complex layered structure",
"No LEI registration — entity avoids transparency framework"
],
"requiredActions": [
"International sanctions match — file SAR and escalate to compliance officer",
"Request LEI registration before proceeding"
],
"blockers": []
}
Output fields
| Field | Type | Description |
|---|---|---|
entity | string | Entity name as provided in the query input |
ticker | string | null | Token ticker symbol if provided |
screenedAt | string | ISO 8601 timestamp of when the screening ran |
compositeScore | number | Weighted composite risk score 0-100 (higher = more risk) |
verdict | string | Top-level verdict: PASS, CONDITIONAL, ENHANCED_DUE_DILIGENCE, or FAIL |
sanctions.status | string | Human-readable sanctions status string |
sanctions.blocked | boolean | True if any OFAC SDN match found — hard block |
sanctions.ofacHits | number | Number of OFAC SDN list matches |
sanctions.internationalSanctionsHits | number | Number of OpenSanctions international matches |
sanctions.ofacResults | array | Raw OFAC match records (up to 15) |
sanctions.sanctionsResults | array | Raw OpenSanctions match records (up to 15) |
entityCompliance.score | number | Entity compliance risk score 0-100 |
entityCompliance.riskLevel | string | CLEAR, LOW, MODERATE, HIGH, or BLOCKED |
entityCompliance.ofacHits | number | OFAC hit count feeding into compliance score |
entityCompliance.sanctionsHits | number | International sanctions hit count |
entityCompliance.shellIndicators | number | Raw shell company flag count from corporate analysis |
entityCompliance.signals | array | Human-readable signals from entity compliance scoring |
shellDetection.score | number | Shell company risk score 0-100 |
shellDetection.detectionLevel | string | LEGITIMATE, MINOR_FLAGS, SUSPICIOUS, LIKELY_SHELL, or CONFIRMED_SHELL |
shellDetection.entityCount | number | Total corporate entities found in OpenCorporates |
shellDetection.inactiveEntities | number | Count of dissolved or inactive entities |
shellDetection.highRiskJurisdictions | number | Count of entities in high-risk offshore jurisdictions |
shellDetection.leiVerified | boolean | Whether a valid GLEIF LEI record was found |
shellDetection.signals | array | Human-readable shell detection signals |
legitimacy.score | number | Project legitimacy score 0-100 (higher = more legitimate) |
legitimacy.flags | array | Legitimacy factor status strings |
legitimacy.marketData | array | CoinGecko token records (up to 5) |
legitimacy.corporateEntities | array | OpenCorporates entity records (up to 10) |
legitimacy.leiData | array | GLEIF LEI records (up to 3) |
regulatoryVelocity.score | number | Regulatory change velocity score 0-100 |
regulatoryVelocity.velocityLevel | string | STATIC, SLOW, MODERATE, FAST, or RAPID |
regulatoryVelocity.totalRegulations | number | Federal Register entries found |
regulatoryVelocity.proposedRules | number | Proposed rules count |
regulatoryVelocity.finalRules | number | Final rules count |
regulatoryVelocity.congressBills | number | Congress.gov bills found |
enforcementSummary.enforcementActions | number | Federal Register entries mentioning enforcement or penalties |
allSignals | array | Combined signal list across all three scoring models |
requiredActions | array | Specific compliance actions triggered by findings |
blockers | array | Hard-stop blockers that automatically produce a FAIL verdict |
How much does it cost to screen a crypto entity?
Crypto Entity Screening uses pay-per-result pricing — you pay approximately $0.30 per entity screened. Platform compute and all seven sub-actor API calls are included in that cost.
| Scenario | Entities | Cost per entity | Total cost |
|---|---|---|---|
| Quick test | 1 | ~$0.30 | ~$0.30 |
| Small batch | 10 | ~$0.30 | ~$3.00 |
| Monthly watchlist refresh | 50 | ~$0.30 | ~$15.00 |
| Quarterly counterparty review | 200 | ~$0.30 | ~$60.00 |
| Enterprise annual program | 1,000 | ~$0.30 | ~$300.00 |
You can set a maximum spending limit per run to control costs. The actor stops when your budget is reached.
Apify's free tier includes $5 of monthly credits — enough for 15-16 test screenings with no subscription commitment. Compare this to enterprise compliance data providers like Chainalysis or Elliptic at $15,000-$50,000/year, or even basic KYC platforms at $500-$2,000/month. For teams screening fewer than 200 entities per month, this actor costs a fraction of any subscription alternative.
Crypto entity screening using the API
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/crypto-entity-screening").call(run_input={
"query": "Tether",
"ticker": "USDT",
"includeRegulatory": True
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"Entity: {item['entity']}")
print(f"Verdict: {item['verdict']} (score: {item['compositeScore']})")
print(f"Sanctions: {item['sanctions']['status']}")
print(f"Shell detection: {item['shellDetection']['detectionLevel']}")
print(f"Legitimacy score: {item['legitimacy']['score']}/100")
for action in item.get("requiredActions", []):
print(f" ACTION: {action}")
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("ryanclinton/crypto-entity-screening").call({
query: "Tether",
ticker: "USDT",
includeRegulatory: true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
console.log(`Entity: ${item.entity}`);
console.log(`Verdict: ${item.verdict} (score: ${item.compositeScore})`);
console.log(`Sanctions: ${item.sanctions.status}`);
console.log(`Shell detection: ${item.shellDetection.detectionLevel}`);
for (const action of item.requiredActions ?? []) {
console.log(` ACTION: ${action}`);
}
}
cURL
# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~crypto-entity-screening/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query": "Tether", "ticker": "USDT", "includeRegulatory": true}'
# Fetch results (replace DATASET_ID from the run response above)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"
How Crypto Entity Screening works
Phase 1: Parallel data collection across seven sources
The actor builds a call list of 5-7 sub-actors based on input parameters and fires them all concurrently using Promise.allSettled. Each sub-actor runs with 256 MB memory and a 120-second timeout. The seven sources are: OFAC Sanctions Search, OpenSanctions Search, OpenCorporates Search, GLEIF LEI Lookup, CoinGecko Crypto Data, Federal Register Search (query: {entity} cryptocurrency digital asset), and Congress Bill Search (query: {entity} crypto regulation). Using Promise.allSettled instead of Promise.all means a single source timeout does not abort the entire run — the failed source returns an empty array and scoring continues with remaining data.
Phase 2: Three independent scoring models
Results feed into three separate scoring functions that assess different risk dimensions:
Entity compliance scoring (0-100): OFAC matches score 20 points each capped at 40 (any OFAC hit also sets riskLevel to BLOCKED regardless of score). International sanctions score 8 points each capped at 25. Shell indicators from corporate registry data score up to 20 points based on dissolved entities, high-risk jurisdictions (KY, VG, PA, BZ, SC, MH), and multi-jurisdiction complexity. Missing LEI adds a 15-point penalty. Risk levels: CLEAR (0-19), LOW (20-39), MODERATE (40-59), HIGH (60+), BLOCKED (any OFAC hit).
Shell detection scoring (0-100): Analyzes inactive entity ratio against total entity count (max 25 pts), counts entities in 9 named high-risk offshore jurisdictions at 10 points each (max 30 pts), penalizes structural complexity where total entities and distinct jurisdiction count both exceed thresholds (max 20 pts), adds a 15-point LEI transparency penalty when no GLEIF record exists, and adds 10 points when zero corporate registrations are found at all. Detection levels: LEGITIMATE, MINOR_FLAGS, SUSPICIOUS, LIKELY_SHELL, CONFIRMED_SHELL.
Regulatory velocity scoring (0-100): Federal Register results score 3 points each plus 5 additional points per final rule (max 40 pts). Congressional bills score 3 points each plus 8 additional points per advanced/enacted bill (max 35 pts). Total regulatory actions contribute to an acceleration score (max 25 pts). Velocity levels: STATIC, SLOW, MODERATE, FAST, RAPID.
Phase 3: Composite verdict generation
The weighted composite score combines entity compliance (40%), shell detection (35%), and regulatory velocity (25%) rounded to the nearest integer. Hard-stop rules override the composite: any OFAC hit produces FAIL regardless of other scores, and shell detection at LIKELY_SHELL or CONFIRMED_SHELL also forces FAIL. Verdict thresholds: PASS (composite < 15), CONDITIONAL (15-34), ENHANCED_DUE_DILIGENCE (35-59), FAIL (60+ or hard stop triggered). Required actions are generated deterministically from the findings — specific instructions like "file SAR", "request beneficial ownership disclosure", or "request LEI registration" are conditionally added based on which thresholds were crossed.
Phase 4: Enforcement scanning and output assembly
Separately from the scoring models, Federal Register results are scanned for enforcement-related titles (matching "enforcement", "penalty", "settlement", "cease") and the count is included in the enforcementSummary field. All raw source records are preserved in the output (up to 15 OFAC records, 15 sanctions records, 10 corporate entities, 5 CoinGecko entries, 3 LEI records) to support audit documentation. The final report object is pushed to the Apify dataset as a single structured record.
Tips for best results
-
Use legal entity names for the query field. Corporate registries match on registered legal names. "Binance Holdings Limited" will find more OpenCorporates entries than "Binance" alone, though both queries will work. When you know the registered name, use it.
-
Always provide the ticker for token issuers. The CoinGecko lookup uses either the ticker or the query name. When both are provided, the ticker takes precedence for market data lookup. Providing the ticker avoids ambiguous name matches for common project names.
-
Preserve the full JSON output for compliance files. The
sanctions.ofacResultsandsanctions.sanctionsResultsarrays contain the raw source records. These are the audit artifacts your compliance officer needs to document the screening. Download as JSON, not CSV, to keep nested arrays intact. -
Schedule weekly rescreenings for active counterparties. OFAC sanctions list updates happen without notice. A weekly scheduled run against your active counterparty list catches newly designated entities before your next transaction cycle. Connect the output to a Slack webhook or email alert when
verdictchanges from a previous run. -
Combine with Waterfall Contact Enrichment for onboarding workflows. If you are onboarding a new counterparty, run this actor first for sanctions clearance, then enrich their contact data with Waterfall Contact Enrichment to populate your KYC file.
-
Interpret regulatory velocity as a forward-looking signal. A RAPID velocity score does not mean the entity is at risk — it means the regulatory environment around this entity or asset class is changing fast. Use it to brief legal teams on upcoming compliance program review requirements.
-
Run without regulatory tracking for pure sanctions screening. Setting
includeRegulatory: falseskips the Federal Register and Congress calls, reducing the number of parallel calls from 7 to 5 and cutting run time and cost by roughly 30%. Use this mode for high-volume counterparty screening where regulatory context is not needed. -
Treat CONDITIONAL verdicts as requiring documentation, not blocking. A CONDITIONAL verdict (composite score 15-34) means the entity passed sanctions screening but has minor risk signals. The appropriate response is to document the screening result and any manual review performed — not necessarily to block the transaction.
Combine with other Apify actors
| Actor | How to combine |
|---|---|
| OFAC Sanctions Search | Run as a standalone deep-dive after this actor flags a sanctions concern — get full SDN record detail |
| OpenSanctions Search | Supplement international coverage with direct OpenSanctions queries for specific jurisdiction lists |
| Waterfall Contact Enrichment | After a PASS or CONDITIONAL verdict, enrich the entity's key personnel contacts for KYC documentation |
| Company Deep Research | Run a full company intelligence report after screening to build a complete counterparty profile |
| B2B Lead Qualifier | Score crypto counterparties across 30+ business signals in addition to compliance signals |
| HubSpot Lead Pusher | Push cleared counterparty records with compliance status into HubSpot for relationship tracking |
| Website Tech Stack Detector | Verify the technical infrastructure of a crypto entity's website as an additional legitimacy signal |
Limitations
- Entity name ambiguity — common or generic entity names may match unrelated corporate registrations in OpenCorporates. Review
legitimacy.corporateEntitiesto confirm matches are relevant before acting on shell detection scores. - OFAC screening is U.S.-centric — the OFAC SDN list covers U.S.-designated persons and entities. For EU, UK, or UN sanctions-only obligations, review the
sanctions.sanctionsResultsarray from OpenSanctions separately. - No blockchain address screening — this actor screens named entities, not cryptocurrency wallet addresses or transaction hashes. For on-chain address screening, use a dedicated blockchain analytics tool such as Chainalysis or TRM Labs in conjunction with this actor.
- CoinGecko coverage is limited to listed tokens — newly launched tokens, pre-launch projects, and tokens delisted from CoinGecko will return no market data. A zero legitimacy market data score does not confirm a project is illegitimate.
- Regulatory data is U.S.-focused — Federal Register and Congress.gov cover U.S. federal regulatory activity only. MiCA, UK FCA regulations, and other non-U.S. frameworks are not included in the regulatory velocity model.
- Shell detection is probabilistic, not conclusive — a LIKELY_SHELL or CONFIRMED_SHELL verdict is based on structural indicators, not a legal determination. It is a trigger for enhanced due diligence and beneficial ownership requests, not automatic rejection in all cases.
- OpenCorporates coverage varies by country — corporate registry coverage is comprehensive for most Western jurisdictions but may be incomplete for certain countries. An entity registered exclusively in a jurisdiction with limited OpenCorporates coverage may appear to have fewer corporate entries than it actually has.
- Regulatory velocity reflects the environment, not the entity — a RAPID regulatory velocity score means the regulatory environment around crypto is moving fast; it does not mean the specific entity is under investigation or facing imminent regulatory action.
- Run time is 2-5 minutes — parallel sub-actor calls depend on external API availability. If one or more external sources are slow, total run time increases. The actor does not retry failed sub-actor calls within a single run.
Integrations
- Zapier — trigger a crypto entity screening run automatically when a new counterparty is added to a spreadsheet or CRM, and route the verdict to your compliance case management system
- Make — build multi-step compliance workflows: screen on entity creation, route FAIL verdicts to a Slack channel, and log all results to a Google Sheet
- Google Sheets — export screening results to a compliance log spreadsheet with verdict, composite score, and required actions for each entity screened
- Apify API — integrate directly into your compliance platform or KYC system using the REST API to trigger runs and retrieve structured JSON results programmatically
- Webhooks — receive a webhook notification when a run completes, including the dataset URL, so your system can fetch and ingest results without polling
- LangChain / LlamaIndex — feed screening reports into an LLM-powered compliance assistant that can summarize findings, draft SAR narratives, or answer questions about a counterparty's risk profile
Troubleshooting
-
Verdict is FAIL but I cannot find an OFAC match — check the
blockersarray in the output. A FAIL verdict can also be triggered by a shell detection level of LIKELY_SHELL or CONFIRMED_SHELL (composite score 60+) even without any OFAC match. ReviewshellDetection.detectionLevelandshellDetection.signalsto understand the specific triggers. -
Shell detection score seems high for a legitimate entity — the model uses structural indicators that can overlap with the corporate structures of legitimate multinational firms. A score in SUSPICIOUS territory (40-59) for a large, publicly known entity is a prompt to review
shellDetection.signalsand confirm whether the jurisdiction and entity count findings reflect the actual business structure, not a reason to automatically reject the counterparty. -
No corporate entities found but the company definitely exists — OpenCorporates coverage varies by country. Entities registered exclusively in jurisdictions with limited registry data (some Southeast Asian and African countries) may return zero results. This adds a 10-point ghost entity penalty to the shell detection score. Document this limitation in your compliance file and conduct manual corporate verification through official government registries.
-
Regulatory velocity is RAPID for every crypto entity — this is expected during periods of active U.S. crypto legislation. The Federal Register query includes all rules mentioning "cryptocurrency" or "digital asset", not just rules targeting the specific entity. A RAPID velocity score is a signal for your legal team to review your compliance program for new requirements, not a signal about the specific counterparty.
-
Run timed out with partial results — if the Apify run times out before all sub-actors complete, the output will still contain results from the sub-actors that finished. Check the
requiredActionsandblockersarrays — if they are empty and all scores are zero, the run likely did not complete. Retry the run or increase memory allocation to 512 MB in the actor settings.
Responsible use
- This actor only accesses publicly available sanctions lists, corporate registry data, regulatory filings, and market data.
- Screening results are based on publicly available information and are not a substitute for a qualified legal or compliance opinion.
- Comply with GDPR, applicable data protection laws, and your jurisdiction's AML/KYC regulatory requirements when using screening data in onboarding and transaction monitoring workflows.
- Do not use FAIL verdicts as the sole basis for adverse action without human review — the actor is a screening tool, not a legal determination.
- For guidance on web scraping legality, see Apify's guide.
FAQ
How does crypto entity screening work and what sources does it check? The actor queries seven sources in parallel: the U.S. OFAC SDN list, OpenSanctions international sanctions database, OpenCorporates corporate registry, GLEIF LEI global registry, CoinGecko market data, U.S. Federal Register regulatory filings, and Congress.gov bill tracking. Results feed into three independent scoring models that produce a weighted composite score and a four-tier due diligence verdict.
What does a FAIL verdict mean for crypto entity screening?
A FAIL verdict means the actor triggered at least one hard-stop rule: either an OFAC sanctions match was found (which means the entity is legally designated and transactions are prohibited under U.S. law), the composite risk score exceeded 60, or the shell detection model classified the entity as LIKELY_SHELL or CONFIRMED_SHELL. The blockers array in the output specifies exactly which rule triggered the FAIL.
How is the composite risk score calculated for crypto compliance screening? The composite score is a weighted average of three sub-scores: entity compliance risk (40% weight, scored 0-100 from sanctions hits, shell indicators, and LEI status), shell company detection (35% weight, scored from inactive entity ratio, high-risk jurisdiction count, and structural complexity), and regulatory velocity (25% weight, scored from Federal Register and Congress activity). Each sub-score uses its own capped formula, and the composite is rounded to the nearest integer.
What crypto jurisdictions are flagged as high-risk for shell company detection? The shell detection model flags corporate registrations in nine jurisdictions commonly associated with offshore crypto structures: Cayman Islands (KY), British Virgin Islands (VG), Panama (PA), Belize (BZ), Seychelles (SC), Marshall Islands (MH), Samoa (WS), Vanuatu (VU), and Anguilla (AI). Each entity registration in one of these jurisdictions adds 10 points to the shell detection score, capped at 30 points total.
Can I screen DeFi protocols with no known corporate entity? Yes. The actor will search all data sources for the protocol name or associated entity name you provide. Fully anonymous protocols with no corporate registration, no LEI, and no identifiable operating entity will receive a high shell detection score (including the 10-point ghost entity penalty for zero corporate registrations found) and a legitimacy score based only on CoinGecko market data presence. This does not mean the protocol is necessarily fraudulent — it reflects limited verifiable information.
How current is the sanctions data used for crypto screening? Each run queries data sources in real time. OFAC and OpenSanctions data reflects the state of those databases at the moment of the run. OFAC updates its SDN list frequently, sometimes multiple times per week. This is why scheduling regular rescreenings of your counterparty list is more reliable than relying on a one-time historical check.
Is it legal to screen crypto entities using public data? Yes. The actor queries publicly available government sanctions lists, public corporate registries, public regulatory filings, and public market data APIs. Compliance screening using public sanctions data is not only legal but legally required for regulated financial institutions under BSA/AML rules. For guidance on data use, see Apify's legal guide.
How is this different from dedicated compliance platforms like Chainalysis or Elliptic? Chainalysis and Elliptic specialize in blockchain address screening and on-chain transaction analysis. This actor focuses on entity-level off-chain compliance: named entity sanctions screening, corporate structure analysis, and regulatory standing. The two approaches are complementary. This actor is also a fraction of the cost — individual screenings at ~$0.30 versus $15,000-$50,000/year enterprise contracts for dedicated compliance platforms.
How long does a typical crypto entity screening run take?
Most runs complete in 2-4 minutes. The run time depends on the response times of the seven external data sources called in parallel. If regulatory tracking is disabled (includeRegulatory: false), run time typically drops to 1-2 minutes.
Can I use crypto entity screening results as official KYC documentation? Screening results from publicly available data sources can form part of a KYC file as evidence of screening performed. However, they are not a substitute for a qualified legal or compliance opinion, and many regulated jurisdictions require additional KYC steps (identity verification, beneficial ownership declaration, etc.) beyond sanctions screening. Consult your compliance officer or legal team on specific documentation requirements for your jurisdiction and entity type.
What happens if one of the data sources is unavailable during a run?
The actor uses Promise.allSettled for parallel execution, which means a single source failure does not abort the entire run. If a source times out or returns an error, that source contributes an empty array to the scoring models. The scoring models are designed to handle missing data by omitting those signals rather than crashing. The output will still contain results from all sources that responded successfully.
Can I screen multiple crypto entities in a single run? The current version screens one entity per run. For bulk screening, use the Apify API to trigger multiple runs in sequence or in parallel from your compliance system. Each run produces one structured compliance report for the named entity.
Help us improve
If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:
- Go to Account Settings > Privacy
- Enable Share runs with public Actor creators
This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.
Support
Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom solutions or enterprise compliance integrations, reach out through the Apify platform.
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
Bulk Email Verifier
Verify email deliverability at scale. MX record validation, SMTP mailbox checks, disposable and role-based detection, catch-all flagging, and confidence scoring. No external API costs.
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Website Tech Stack Detector
Detect 100+ web technologies on any website. Identifies CMS, frameworks, analytics, marketing tools, chat widgets, CDNs, payment systems, hosting, and more. Batch-analyze multiple sites with version detection and confidence scoring.
Ready to try Crypto Entity Screening?
Start for free on Apify. No credit card required.
Open on Apify Store