Adverse Media & Sanctions Screener - OFAC, UN, EU, UK avatar

Adverse Media & Sanctions Screener - OFAC, UN, EU, UK

Pricing

from $80.00 / 1,000 entity screeneds

Go to Apify Store
Adverse Media & Sanctions Screener - OFAC, UN, EU, UK

Adverse Media & Sanctions Screener - OFAC, UN, EU, UK

Screen a person or company against the OFAC, UN, EU and UK sanctions lists and for adverse media in one pass. A designated party with no press coverage is still caught. Returns the list entry, programme and date of birth, plus negative news filtered to cases where they are the wrongdoer.

Pricing

from $80.00 / 1,000 entity screeneds

Rating

0.0

(0)

Developer

getregdata

getregdata

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Share

Adverse Media & Sanctions Screener - KYC/AML Check

Screen a person or company against the OFAC, UN, EU and UK sanctions lists and for adverse media (negative news), for KYC/AML and enhanced due diligence. Give the actor one or more names and it returns any sanctions-list match - with the entry ID, the sanctions programs and the listed date of birth - plus categorized, LLM-classified news hits, each with the entity's role, a severity score, an entity-match confidence and full source provenance.

No API keys, nothing to configure - names in, a triaged report out. The list data, the search and the language model are all included.

Two questions get answered on every name, and they are answered independently:

  • Is this party designated? Checked directly against the primary lists. This does not depend on anyone having written about them.
  • Is there adverse media? Searched and classified, with the false positives that keyword search produces filtered out.

That separation is the point. A designated party with no press coverage is still a list match, and a list match is never talked down by clean news.

Coverage is OFAC (SDN + Consolidated), the UN Consolidated List, the EU Consolidated Financial Sanctions List and the UK Sanctions List (OFSI). Other national regimes - Switzerland, Canada, Australia and the rest - and PEP data are not checked; use a dedicated list provider if you need them.

The sanctions screen: what "confirmed" and "possible" mean

A name is not an identity, so matches are reported in two tiers and only one of them asserts anything.

confirmed - the name matches a listed name exactly, or a strong alias of one, after case, accent and punctuation are normalised. This is reported as a fact about the register: this name appears on this list as this entry. It is still not proof that your customer is that person - adjudicate against the datesOfBirth and countries returned with the match.

possible - surfaced for a human to judge, and deliberately not treated as a finding:

  • Weak aliases. Every list here grades its own aliases, and a weak one is an abbreviation or fragment. BNC is a weak alias of Banco Nacional de Cuba - matching it exactly would flag every unrelated firm with those initials. The UK's ungraded and low-quality AKAs are treated the same way.
  • Short personal names. 1,944 of the 7,472 individuals on the SDN list alone have fewer than three name parts. An exact match on one of those is not an identification, so it stays possible unless the country you supply matches the entry.
  • Reordered name parts. Gil Soto Yolanda Esthela against Yolanda Esthela Soto Gil.

A confirmed match forces overallRisk: "high"; a possible one forces at least "medium". Neither can be lowered by clean media results.

When it will not say "clear"

The lists are refreshed daily and cached. A hit against an older cached copy is still a hit - designations do not lapse overnight. A miss against one proves nothing, because the party may have been designated since. So if any list is unavailable, or older than seven days, an entity with nothing against it is reported unknown rather than clear, and sanctionsListStatus says which.

Why the classification matters (the false-positive problem)

A naive keyword search for "Acme Corp" lawsuit flags Acme even when Acme is the one suing someone. This actor reads each hit with a language model and decides:

  • Is the screened entity the wrongdoer? (perpetrator/defendant) - only then is it adverse. If the entity is the plaintiff, a victim, a regulator, or merely mentioned, it is not flagged.
  • Is it even the same entity? Namesakes (a different person/company sharing the name) are dropped via an entity-match confidence.
  • How serious is it? A severity score separates a major criminal case from a minor, old, or unproven mention.

Example: screening Patagonia Inc surfaces trademark lawsuits - but Patagonia is the plaintiff, so they are correctly not flagged as adverse. Screening Wirecard AG correctly returns fraud, money laundering, and embezzlement at high severity.

How much does it cost?

Pay per entity screened - you are not charged for Apify platform usage, only per name you screen (search and the language-model classification are included in that price, with no keys of your own to buy). See the Pricing tab on this page for the current figure. The free Apify plan returns a small preview. No subscription, no minimum.

Two kinds of source, and they carry different weight.

Sanctions lists come from the issuing authorities themselves - the US Treasury (OFAC SDN and Consolidated), the UN Security Council, the European Commission and the UK Office of Financial Sanctions Implementation. All are published for exactly this purpose and are free to use. A match is a fact about a public register, but it is a fact about a name: it does not establish that your customer is the listed party. Adjudicate it against the date of birth, country or a registration number.

Adverse media comes from open-web news and search results, classified by a language model. Only publicly available reporting is read, and no personal data is stored beyond the article metadata (title, URL, source, date, snippet) needed for audit. These are mentions attributed to their sources for analyst review - not verified allegations or a legal determination.

Use the output lawfully as one input to a KYC/AML/EDD process, and confirm anything you act on against primary records. It is not a consumer report - do not use it for FCRA-governed decisions. Coverage is OFAC, UN, EU and UK; it is not a substitute for a full sanctions and PEP feed where you are obliged to screen other national lists or politically exposed persons.

How do I use it?

Click Try it and screen one or more names:

{
"entityNames": ["Wirecard AG", "Jan Marsalek"],
"entityType": "auto",
"country": "de",
"minSeverity": "low",
"maxHits": 25
}

Feed it the companies and people surfaced by the registry and UBO actors in the suite (see below) to complete the source -> screen loop.

Input options

ParameterTypeDescription
entityNamesarrayOne or more people/companies to screen. Each is billed and returned separately.
entityTypeenumauto / person / company - improves disambiguation.
aliasesarrayAlternative names / transliterations (single-entity screening).
countrystringISO code or name to bias the search and aid disambiguation.
categoriesarrayOnly return these risk categories (optional).
minSeverityenumlow / medium / high - minimum severity to return.
maxHitsintegerMax adverse hits per entity (1-50).

What data do you get?

One record per entity screened:

{
"entityName": "Wirecard AG",
"overallRisk": "high",
"adverseHitCount": 6,
"categoriesFound": ["fraud", "financial_crime", "money_laundering"],
"hits": [
{
"title": "Wirecard Investors Drop Fraud Case ...",
"url": "https://...",
"source": "bloomberglaw.com",
"publishedDate": "Nov 10, 2025",
"snippet": "Wirecard invented fictional escrow accounts worth about $2 billion ...",
"riskCategory": "fraud",
"severity": "high",
"entityRole": "perpetrator",
"entityMatchConfidence": "high",
"reason": "Wirecard AG is accused of inventing fictional escrow accounts."
}
],
"sanctionsListStatus": "no-match",
"listMatches": [],
"possibleListMatches": [],
"listsChecked": [
{ "list": "OFAC-SDN", "status": "ok", "retrievedAt": "2026-07-28T...", "entryCount": 19157 },
{ "list": "OFAC-CONS", "status": "ok", "retrievedAt": "2026-07-28T...", "entryCount": 481 },
{ "list": "UN", "status": "ok", "retrievedAt": "2026-07-28T...", "entryCount": 1011 },
{ "list": "EU", "status": "ok", "retrievedAt": "2026-07-28T...", "entryCount": 6017 },
{ "list": "UK", "status": "ok", "retrievedAt": "2026-07-28T...", "entryCount": 5135 }
],
"sources": ["Google News", "Google Web (adverse-term search)", "OFAC SDN", "OFAC Consolidated", "UN Consolidated", "EU Consolidated", "UK Sanctions List"],
"screenedAt": "2026-07-28T...",
"disclaimer": "..."
}

A designated party looks like this - note that listMatches stands on its own, with no news required:

{
"entityName": "JSC BIOGRAD",
"overallRisk": "high",
"sanctionsListStatus": "confirmed",
"listMatches": [
{
"list": "OFAC-SDN",
"listName": "OFAC Specially Designated Nationals (SDN)",
"entryId": "48544",
"listedName": "JSC BIOGRAD",
"matchedName": "JSC BIOGRAD",
"matchedOn": "primary",
"entryType": "entity",
"programs": ["RUSSIA-EO14024"],
"countries": ["Russia"],
"datesOfBirth": [],
"why": "Exact match on the listed name."
}
]
}
FieldDescription
overallRiskclear / low / medium / high / unknown. The worst media severity found - but a sanctions match sets a floor: confirmed is always high, possible at least medium. unknown means the screen was incomplete; the absence of hits proves nothing.
sanctionsListStatusconfirmed / possible / no-match / incomplete / unavailable.
listMatches[]Confirmed matches: list, entry ID, listed name, what was matched, entity type, programs, countries, datesOfBirth, and why.
possibleListMatches[]Matches for human adjudication that deliberately do not confirm. Same shape.
listsChecked[]Per-list provenance: status (ok / stale / unavailable), when it was retrieved, how many entries.
screeningStatuscomplete (the whole media sweep ran - a clear here is earned) or partial (some searches failed).
searchesRun / searchesTotalHow much of the media sweep actually completed.
adverseHitCountNumber of genuine adverse hits returned.
categoriesFoundDistinct risk categories across the hits.
hits[]Each adverse hit: source, date, snippet, risk category, severity, entity role, match confidence, and a one-line reason.
candidatesScreenedHow many candidate articles were examined before filtering.

Risk categories: financial_crime, fraud, corruption_bribery, sanctions, money_laundering, terrorism, organized_crime, regulatory_enforcement, litigation, environmental, other.

How it works

  1. Sanctions lists - OFAC SDN, OFAC Consolidated, the UN Consolidated List, the EU Consolidated Financial Sanctions List and the UK Sanctions List are downloaded from the issuing authorities, parsed (including each list's own strong/weak alias grading), cached and refreshed daily. Every name is matched against them directly, before any searching happens.
  2. Query expansion + search - news plus a web search with adverse-term expansion (fraud, investigation, corruption, money laundering, ...). Aliases and country bias the search.
  3. De-duplication - candidate hits are de-duplicated by URL.
  4. Classification - every hit is classified for risk category, the entity's role, severity, and entity-match confidence.
  5. Filtering - only genuine adverse hits survive (entity is the wrongdoer, confident match, meets your severity/category filters).
  6. Verdict - the media severity sets the baseline, then any list match raises it and never the reverse.
  7. Provenance - every hit keeps its source, URL, and date for audit.

Search and the language model are included - no API keys of your own required.

The source -> screen flow (KYB in two halves)

This actor is the adverse-media check at the end of a KYB chain. Source the parties with the registry/UBO actors, then screen them here:

Company register -> UBO -> insolvency/debtors -> adverse media (this actor) is the standard onboarding chain.

What you can do with it

  • KYC / KYB onboarding - the adverse-media step alongside sanctions/PEP checks.
  • Enhanced due diligence (EDD) - investigate high-risk counterparties and the UBOs surfaced by the other actors.
  • Ongoing monitoring - re-screen your book periodically for new negative news.
  • Investigations & journalism - map allegations against a person or company.

Run it from code

# cURL - start a run and get the dataset back
curl -X POST "https://api.apify.com/v2/acts/regdata~adverse-media-screener/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "entityNames": ["Wirecard AG"] }'
// Node.js - apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('regdata/adverse-media-screener').call({ entityNames: ['Wirecard AG'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
# Python - apify-client
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("regdata/adverse-media-screener").call(run_input={"entityNames": ["Wirecard AG"]})
items = client.dataset(run["defaultDatasetId"]).list_items().items

Integrations

Runs anywhere Apify does: call it from the REST API, schedule recurring re-screens of your book, pipe results into n8n / Make / Zapier, or use it from any MCP client (Claude, Cursor) via mcp.apify.com.

Compliance & methodology notes

  • Output is "media mentions" attributed to their sources for analyst review - not verified allegations or a legal determination. Confirm against primary records before any decision.
  • The actor is designed to minimise false positives (entity role + match confidence), but no automated screen is perfect - treat results as a triage aid.
  • Coverage is open-web news and search; combine it with sanctions/PEP and registry checks (see the suite below) for full KYC/AML.

FAQ

Is it legal? Yes - it reads publicly available news and search results. Output is media mentions for analyst review, not verified allegations, and it is not a consumer report (do not use it for FCRA-governed decisions).

Do I need an API key for search or the language model? No - both are included. Just an Apify account.

How does it avoid false positives? It classifies the screened entity's role in each story (only wrongdoers are flagged) and scores an entity-match confidence to drop namesakes.

What does overallRisk: clear mean? No genuine adverse hit met your filters - a clean screen, not a failure. And it is an assertion that we looked: clear is only ever reported when the whole search sweep actually ran (screeningStatus: "complete").

What does overallRisk: unknown mean? Some of the searches for that entity could not be run, so the absence of adverse hits proves nothing. This is not a clean screen - re-run it before relying on it. Check screeningStatus (complete / partial) and searchesRun / searchesTotal to see how much of the sweep completed. An entity that could not be screened at all is not returned as a row and not charged: it is named in the run's status message and in a NOT_SCREENED key-value record. A run that screened nothing fails (non-zero exit) rather than returning a dataset of false all-clears.

What export formats are supported? JSON, CSV, Excel, or XML, or read live via the API.

Part of a suite of official government registry actors - no public API to build or maintain, pay per result, nothing to configure.

CountryActors
PolandBDO · CRBR · KRS (financials) · EKW · KNF · KRS (board) · KRZ · MSiG · KYB check · PEP (Sejm) · REGON (sites) · REGON · UOKiK
GermanyInsolvenzbekanntmachungen · Handelsregister
SpainBORME · Registro Mercantil · Registro Público Concursal
ItalyINI-PEC · Registro Imprese
AustriaEdiktsdatei · WKO
FranceSociete.com
BelgiumKBO / BCE
CzechiaISIR
SlovakiaRPVS
CyprusDRCOR
IrelandCRO
PortugalPublicações MJ
NigeriaCAC
ColombiaRUES
USACalifornia SoS · California UCC
UAEADGM
GlobalAdverse media (this actor)

Common combinations: company register -> UBO -> insolvency/debtors -> adverse media is the standard KYB/onboarding chain.

For Poland that whole chain is one call: Poland KYB Risk Check takes a NIP or KRS and returns identity, beneficial owners and insolvency - screened against the company and every beneficial owner - as a single verdict. The component registry lookups it runs bill as usual, plus a small orchestration fee.

Full suite: apify.com/regdata · Callable from any MCP client via mcp.apify.com