Sanctions & Watchlist Screening — Risk-Scored Decisions avatar

Sanctions & Watchlist Screening — Risk-Scored Decisions

Pricing

from $1.35 / 1,000 name screeneds

Go to Apify Store
Sanctions & Watchlist Screening — Risk-Scored Decisions

Sanctions & Watchlist Screening — Risk-Scored Decisions

Screen up to 500 names against OFAC, EU, UK OFSI, and UN sanctions lists. Get possible matches, risk levels, review steps, source links, and clear outcomes without a separate data API key.

Pricing

from $1.35 / 1,000 name screeneds

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

🛡️ Screen names against global sanctions lists

Built for compliance teams, risk analysts, and developers, this Actor screens up to 500 people or organizations against official OFAC, EU, UK OFSI, and UN lists. It returns one clear outcome per name, possible matches, risk levels, source evidence, and next review steps. No separate data API key is needed.

📦 What data does the Actor return?

Each dataset row covers one submitted name. It gives a potential-match or clear outcome, a risk level, reasons, review readiness, and source coverage. Possible matches can include aliases, authorities, programs, countries, birth facts, identifiers, addresses, remarks, listing dates, and official source links.

A possible match is not identity proof or legal advice. Check the source evidence and use human review before you act.

▶️ How to run the Actor

  1. Add one or more people or organizations under Names to screen.
  2. Add a date of birth, country, or identifier when you know it.
  3. Choose the authorities, entity types, and name matching policy.
  4. Turn on PEP data or recurring review options when needed.
  5. Click Start and open the dataset when the run ends.

📥 Input

FieldTypeWhat it does
subjectsobject[]Adds 1 to 500 names to screen.
subjects[].namestringGives the required full name.
subjects[].dateOfBirthstringAdds a known birth date for match checks.
subjects[].countrystringAdds a known country, nationality, or place of birth.
subjects[].identifierstringAdds a passport, national ID, company number, vessel ID, or aircraft ID.
authoritiesstring[]Chooses OFAC, EU, UK OFSI, or UN lists. All four are used when omitted.
includePepWatchlistsbooleanAlso checks PEP and related watchlist data.
entityTypesstring[]Limits matches to people, organizations, vessels, or aircraft. All kinds are used when omitted.
matchingPolicystringUses strict, balanced, or broad name matching.
monitorNamestringGives a recurring screen a stable name for change tracking.
previousRunDatasetstringSelects an earlier Apify dataset for match comparison and review history.
reviewDecisionsobject[]Adds past analyst decisions to this review.
reviewDecisions[].matchIdstringGives the stable match ID from an earlier result.
reviewDecisions[].decisionstringSets cleared-false-positive, needs-review, or confirmed-match.
reviewDecisions[].reasonstringAdds a short reason for the decision.
suppressClearedMatchesbooleanHides past cleared false positives while still counting them.

This example is the public input from a successful default-input run:

{
"subjects": [
{
"name": "Vladimir Putin",
"dateOfBirth": "1952-10-07",
"country": "Russia"
}
],
"authorities": [
"ofac",
"eu",
"ofsi",
"un"
],
"includePepWatchlists": false,
"entityTypes": [
"person",
"organization",
"vessel",
"aircraft"
],
"matchingPolicy": "balanced",
"suppressClearedMatches": false
}

📤 Output

The dataset has one output shape. Optional fields appear when you submit extra details or use recurring review.

FieldTypeWhat it does
screenedNamestringShows the submitted name.
outcomestringShows potential-match or clear.
riskLevelstringGives the human-review priority level.
recommendedActionstringGives the suggested next review step.
reasonsstring[]Explains the outcome and risk.
submittedDetailsobjectShows submitted facts used for checks.
submittedDetails.dateOfBirthstringShows the submitted birth date.
submittedDetails.countrystringShows the submitted country detail.
submittedDetails.identifierstringShows the submitted official ID.
reviewReadinessobjectSays whether the facts are enough for useful review.
reviewReadiness.levelstringGives ready, limited, or insufficient.
reviewReadiness.missingDetailsstring[]Lists details that could improve confidence.
matchesobject[]Lists possible matches in review order.
matches[].matchIdstringGives a stable subject-and-source match ID.
matches[].matchedNamestringShows the source record's main name.
matches[].aliasesstring[]Lists other published names.
matches[].entityTypestringShows the matched entity kind.
matches[].scorenumberGives name match strength from 0 to 100.
matches[].matchStrengthstringGroups the score as exact, strong, or possible.
matches[].categoriesstring[]Shows whether sanctions, PEP, or watchlist data caused the hit.
matches[].authoritiesstring[]Lists authorities that published the record.
matches[].programsstring[]Lists linked sanctions or watchlist programs.
matches[].countriesstring[]Lists linked countries.
matches[].nationalitiesstring[]Lists published nationalities.
matches[].datesOfBirthstring[]Lists published birth dates.
matches[].placesOfBirthstring[]Lists published birth places.
matches[].identifiersobject[]Lists published official IDs.
matches[].identifiers[].typestringNames the ID kind.
matches[].identifiers[].valuestringGives the published ID value.
matches[].identifiers[].countrystringGives the issuing country when known.
matches[].addressesstring[]Lists published addresses.
matches[].remarksstring[]Lists source authority notes.
matches[].listingDatesstring[]Lists dates when authorities added the entity.
matches[].sourceIdsstring[]Lists official record IDs.
matches[].sourceLinksstring[]Links to official pages or files used for review.
matches[].corroborationobject[]Compares submitted facts with source facts.
matches[].corroboration[].fieldstringNames the checked fact.
matches[].corroboration[].resultstringGives agree, conflict, or unknown.
matches[].corroboration[].reasonstringExplains the check result.
matches[].changeStatusstringShows how a recurring match changed.
matches[].changeReasonstringExplains a material change.
matches[].reviewDecisionobjectShows a carried-forward analyst decision.
matches[].reviewDecision.decisionstringGives the saved decision.
matches[].reviewDecision.reasonstringGives the saved reason when present.
suppressedMatchCountintegerCounts earlier cleared false positives hidden from this row.
monitorNamestringShows the recurring screen name.
sourceCoverageobject[]Shows whether each requested list was checked.
sourceCoverage[].authoritystringNames the requested authority.
sourceCoverage[].statusstringGives covered, failed, or unavailable.
sourceCoverage[].messagestringExplains a source gap or failure.

Full row from the successful default-input run:

{
"screenedName": "Vladimir Putin",
"outcome": "potential-match",
"riskLevel": "high",
"recommendedAction": "Review this match now.",
"reasons": [
"3 possible matches were found."
],
"submittedDetails": {
"dateOfBirth": "1952-10-07",
"country": "Russia"
},
"reviewReadiness": {
"level": "ready",
"missingDetails": [
"identifier"
]
},
"matches": [
{
"matchId": "a1dcfce3de5113025d0c1f32",
"matchedName": "Vladimir Putin",
"aliases": [
"Vladimir Vladimirovich PUTIN",
"Vladimir Putin",
"владимир владимирович путин"
],
"entityType": "person",
"score": 100,
"matchStrength": "exact",
"categories": [
"sanctions"
],
"authorities": [
"ofsi",
"ofac"
],
"programs": [],
"countries": [
"ru"
],
"nationalities": [
"ru"
],
"datesOfBirth": [
"1952-10-07"
],
"placesOfBirth": [
"St Petersburg (then Leningrad)",
"Russia"
],
"identifiers": [],
"addresses": [
"Moscow, Russia"
],
"remarks": [
"The Director Disqualification Sanction was imposed on 09/04/2025."
],
"listingDates": [],
"sourceIds": [
"Q7747"
],
"sourceLinks": [
"https://www.gov.uk/government/publications/the-uk-sanctions-list",
"https://sanctionssearch.ofac.treas.gov/",
"https://www.opensanctions.org/entities/Q7747/",
"https://sanctionssearch.ofac.treas.gov/Details.aspx?id=35096"
],
"corroboration": [
{
"field": "dateOfBirth",
"result": "agree",
"reason": "The submitted detail agrees with the source."
},
{
"field": "country",
"result": "agree",
"reason": "The submitted detail agrees with the source."
}
]
},
{
"matchId": "d1ff4e2e79f2b697e42075e5",
"matchedName": "Vladimir Anatolyevich Tyurin",
"aliases": [
"Vladimir Anatolyevich Tyurin",
"ВЛАДИМИР АНАТОЛЬЕВИЧ ТЮРИН",
"Vladimir Turiyan",
"Aleksei Vladimirovich Pugachev",
"Volodya Tyurin",
"Alexei Pavlovich Pugachev",
"Vladimir Tiurin",
"Vladimir Tiorine",
"АЛЕКСЕЙ ВЛАДИМИРОВИЧ ПУГАЧЕВ",
"Anatoly Tyurine",
"Anatoly Tyurin",
"Vladimir Tiurine",
"Vladimir Turin",
"Vladimir Tiourine",
"Vladimir Tyurine",
"Wladimir Tjurin",
"Vladimir Pavlovich Gromov",
"Anatolievich Turin",
"ВЛАДИМИР ПАВЛОВИЧ ГРОМОВ",
"Vladimir Tjrurin",
"Vladimir Anatolievich Tyurin",
"Alexey Pugachev"
],
"entityType": "person",
"score": 86,
"matchStrength": "strong",
"categories": [
"sanctions"
],
"authorities": [
"ofac"
],
"programs": [],
"countries": [
"be",
"ru"
],
"nationalities": [],
"datesOfBirth": [
"1958-11-25",
"1958-12-20"
],
"placesOfBirth": [
"Bratsk, Russia",
"Irkutsk, Russia",
"Tirlyan, Beloretskiy Rayon, Bashkiria, Russia"
],
"identifiers": [
{
"type": "passportNumber",
"value": "410579055"
},
{
"type": "passportNumber",
"value": "432062125"
},
{
"type": "passportNumber",
"value": "4511264874"
},
{
"type": "passportNumber",
"value": "EA804478"
}
],
"addresses": [
"Moscow"
],
"remarks": [],
"listingDates": [],
"sourceIds": [
"Q4467629"
],
"sourceLinks": [
"https://sanctionssearch.ofac.treas.gov/",
"https://sanctionssearch.ofac.treas.gov/Details.aspx?id=23243",
"https://www.opensanctions.org/entities/Q4467629/"
],
"corroboration": [
{
"field": "dateOfBirth",
"result": "conflict",
"reason": "The submitted detail differs from the source."
},
{
"field": "country",
"result": "conflict",
"reason": "The submitted detail differs from the source."
}
]
},
{
"matchId": "b06d96a9f1d384daf70d0256",
"matchedName": "Владимир Иванович ШАСТИН",
"aliases": [
"Vladimir Ivanovich SHASTIN",
"Владимир Иванович ШАСТИН",
"Vladimir Šastin"
],
"entityType": "person",
"score": 80,
"matchStrength": "possible",
"categories": [
"sanctions"
],
"authorities": [
"eu"
],
"programs": [],
"countries": [],
"nationalities": [
"ru"
],
"datesOfBirth": [],
"placesOfBirth": [],
"identifiers": [
{
"type": "idNumber",
"value": "253606386404"
}
],
"addresses": [],
"remarks": [],
"listingDates": [],
"sourceIds": [
"NK-BVtC79976DQPuMFyxZpPcK"
],
"sourceLinks": [
"https://data.europa.eu/data/datasets/consolidated-list-of-persons-groups-and-entities-subject-to-eu-financial-sanctions",
"https://www.opensanctions.org/entities/NK-BVtC79976DQPuMFyxZpPcK/"
],
"corroboration": [
{
"field": "dateOfBirth",
"result": "unknown",
"reason": "The source does not publish this detail."
},
{
"field": "country",
"result": "conflict",
"reason": "The submitted detail differs from the source."
}
]
}
],
"suppressedMatchCount": 0,
"sourceCoverage": [
{
"authority": "ofsi",
"status": "covered"
},
{
"authority": "eu",
"status": "covered"
},
{
"authority": "ofac",
"status": "covered"
},
{
"authority": "un",
"status": "covered"
}
]
}

💳 Pricing

You pay once for each submitted name screened against the selected sanctions and watchlists. A screen is charged even when it has no possible match. Apify shows the current event price before you start a run.

🔌 Integrations

Send dataset rows to Google Sheets, Slack, webhooks, Make, Zapier, or your own app with the Apify API. You can also schedule recurring screens in Apify.

❓ FAQ

What is sanctions screening?

Sanctions screening checks a person or organization name against lists published by authorities. This Actor checks supported OFAC, EU, UK OFSI, and UN lists and returns evidence for human review.

Does a potential match prove identity?

No. Name similarity is not identity proof. Use birth facts, country details, identifiers, and official source links to review each hit.

Can I screen many names at once?

Yes. One run accepts from 1 to 500 subjects under one shared set of list and matching settings.

Can I check PEP data?

Yes. Turn on includePepWatchlists. Each hit shows the category that caused it.

Can I track changes over time?

Yes. Use a stable monitorName and select previousRunDataset. Later runs can show new, changed, and resolved matches and carry forward analyst decisions.

Is a separate sanctions API key needed?

No. Core screening does not ask you for a third-party data API key.

📝 Changelog

0.0: Initial release

  • Screen names against OFAC, EU, UK OFSI, UN, PEP, and related watchlists with risk-scored matches, source evidence, and recurring review support.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré