Website profiles · Technology insights · Alternatives

opensanctions.org

The open-source database of sanctions, watchlists, and politically exposed persons — aggregating hundreds of sources and relied on by compliance teams, investigators, and journalists.

No paid content found
Visit website
Profile views 11 Outbound visits 13 Normal
OpenSanctions Full homepage screenshot

At a glance

Category
Data & Analytics
Language
English
Paid-content signal
No paid content foundObserved
Registered
2017
Hosting
Google LLCInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is OpenSanctions?

OpenSanctions is an open database of sanctions, watchlists and politically exposed persons (PEPs). It aggregates hundreds of public sources into a single dataset that compliance teams, investigators and journalists use to screen people and companies for risk.

What it actually does

  • Screening and matching: You check a name or entity against sanctions lists, PEP registers and watchlists, and the system returns candidate matches rather than a simple yes/no.
  • Aggregation: Rather than querying dozens of official lists separately, you work from one consolidated source with links back to the original listings.
  • Provenance: Each record traces to its underlying source, so you can see why someone appeared and document that reasoning.
  • Developer access: The project exposes its matching engine and tooling (including an SDK, CLI and MCP server) so screening can be embedded in automated workflows, including agent-based ones.

Who it suits

User Typical use
Compliance teams Onboarding checks, ongoing monitoring of customers and suppliers
Investigators Tracing ownership, networks and connections between entities
Journalists Cross-referencing people in a story against sanctions and PEP data
Developers Building screening into internal tools or automated pipelines

Trade-offs to weigh

Open data means transparency and auditability, but also that you inherit the quality and gaps of the underlying sources. Name matching produces false positives, so results need human review and clear escalation rules. For regulated obligations, this kind of dataset usually supports a process rather than replacing a formal compliance program or legal advice.

Next step: before adopting it, take one real name from your own workflow, run it through the search, and check whether the match explanations are clear enough for whoever has to sign off on the decision.

How can I use OpenSanctions to screen a company or individual for sanctions and PEP risk?

Use OpenSanctions as a screening data source and matching layer: you query its aggregated sanctions, watchlist and PEP data for a name, then judge the hits. It is best at giving you broad, citable coverage quickly; it does not make the final risk decision for you.

What the site offers for screening

  • Aggregated datasets covering sanctions lists, watchlists and politically exposed persons, drawn from hundreds of sources.
  • Collections and datasets in JSON, so results can be pulled into your own tools or workflows.
  • An open matching engine underneath, plus a toolkit (yente-client) that bundles an SDK, CLI and MCP server — the site frames this around LLM agents running screening and needing to show exactly what was checked.

A practical screening workflow

  1. Take the exact name, plus aliases, date of birth, country and any identifiers you hold.
  2. Query the data for that entity and collect all candidate matches rather than the top hit only.
  3. Compare each candidate against your records: name variants, birth date, nationality, role, known associates.
  4. Classify the result — true match, possible match, false positive — and record why.
  5. Re-screen on a schedule and when the underlying lists change, since designations are added and removed.

Where it fits, and the trade-offs

Situation OpenSanctions is a good fit Watch out for
Broad multi-list coverage Sanctions, watchlists and PEPs in one place You still need to confirm against the official list text for legal decisions
Investigations and journalism Fast, transparent sourcing you can cite Common names generate many candidates
Compliance teams JSON output and matching engine to embed in existing tools Audit trails and escalation rules are your responsibility
Agentic/automated screening SDK, CLI and MCP server for programmatic checks Provenance and reproducibility must be built into the workflow

The recurring trade-off: convenience and breadth versus the need to verify. A hit is a lead, not a conclusion — the same name can belong to several people, and PEP status changes with a person's role.

Concrete scenario

A small compliance team receives a new supplier in a high-risk jurisdiction. They screen the company name and its directors, get three candidate matches, and find that one director shares a name with a designated individual but has a different birth year and nationality. They document the mismatch, clear the supplier, and set a reminder to re-screen quarterly. That is the pattern OpenSanctions supports well: fast candidate generation, human adjudication, documented reasoning.

Next step: pick one entity you already know the answer for, run it through the data, and see whether your workflow surfaces the right candidate and lets you explain the match or mismatch in writing. If it can't, tighten your matching inputs before scaling up.

What data sources and datasets does OpenSanctions aggregate, and how current are they?

OpenSanctions aggregates hundreds of public sanctions lists, watchlists, and PEP (politically exposed person) datasets into a single open database, rather than maintaining one list of its own. Its stated audiences are compliance teams, investigators, and journalists — people who need to check names against many official sources at once instead of visiting each publisher separately.

What "aggregate" means here

  • Sanctions and watchlists: official designations issued by governments and international bodies, consolidated so one query covers many programs.
  • PEP data: politically exposed persons, drawn from public sources, used for enhanced due diligence rather than sanctions enforcement.
  • Collections and datasets: the site exposes its material as structured collections and datasets (with JSON access), so you can pull a defined subset rather than the whole corpus.

H3. How current it is The site describes the database as continuously built and updated from its sources, and it publishes a "What we've been building" feed that reports changes. In practice, freshness depends on the underlying publisher: a list that updates daily upstream will flow through quickly, while a slower or irregularly published register will lag. OpenSanctions is a mirror-and-merge layer, not the authority — the official issuer remains the source of record.

H3. Why the provenance angle matters The page frames data provenance as increasingly important as screening workflows become agent-driven: if an LLM agent runs your screening, you need to know exactly what it checked and be able to prove it. That is a fair argument for this kind of aggregated, versioned data — but treat it as the product's own positioning, not an independent benchmark.

H3. Practical next step Before relying on it, pick two or three sources you already trust, look up a few entities you know are listed, and compare the record against the official publisher's site. Also check whether the dataset you need sits behind a paid tier — the public site does not make its pricing obvious, so confirm access terms directly. For the underlying official lists, cross-check with sources such as U.S. Department of the Treasury or GOV.UK for UK designations.

Can I access OpenSanctions data through an API or bulk download for compliance workflows?

Yes. OpenSanctions is built for exactly that: it publishes sanctions, watchlist and PEP data as an open database, and offers both programmatic access and bulk dataset downloads rather than only a search website.

API access. The site describes an open matching engine behind its tooling, with yente-client packaged as an SDK, CLI and MCP server in one toolkit. In practical terms, that means you can screen names from your own code, from a command line, or from an LLM agent workflow, and the matching layer handles the comparison against the underlying records.

Bulk and structured downloads. The page references collections and datasets in JSON form, which is the route to take when you need to load records into your own warehouse, run periodic re-screening, or keep an auditable local copy rather than querying one name at a time.

Which route fits which job

Need Better fit
Screen a single name during onboarding API or SDK call
Screen thousands of customers nightly Bulk dataset loaded into your own system
Agent-driven compliance workflow MCP server / SDK layer
Investigative research Search interface plus dataset exports

The trade-off worth planning for

The page's own framing is that provenance matters more, not less, as screening becomes automated — if an agent runs your checks, you need to know what it checked and be able to prove it. So the real decision is not API versus download but whether you retain the dataset version and match logic used for each decision. Bulk downloads make that easier to reconstruct; live API calls need deliberate logging.

A concrete next step: pick one dataset relevant to your jurisdiction, pull it, and run your existing customer list against it offline. Compare the hits with whatever you use today. That tells you quickly whether the coverage and matching behaviour suit your workflow before you wire anything into production.

Related official sources: OpenSanctions and yente documentation.

Is OpenSanctions free to use, and what are the licensing or commercial restrictions?

OpenSanctions is free to use at its core, but "free" here means open data with conditions, not "no rules." The project publishes an open database of sanctions lists, watchlists, and politically exposed persons (PEPs) aggregated from hundreds of sources. The underlying data is generally made available under open licenses, while some specific datasets or commercial services carry their own terms.

What "free" covers

  • The open data: You can access, download, and use the aggregated datasets for research, journalism, and compliance screening, typically under an open license (often Creative Commons-style attribution terms, though the exact license varies by dataset).
  • The software: The matching engine and related tooling (such as the yente matching engine and the yente-client SDK/CLI/MCP toolkit) are open-source, so you can self-host and inspect exactly what an automated screening process is checking.
  • Non-commercial and editorial use: Journalists and investigators are a stated audience, and the project is built to support that kind of work.

Where restrictions apply

  • Attribution: Open licenses usually require crediting OpenSanctions and, in some cases, the original source lists it aggregates. Skipping attribution can put you outside the license.
  • Commercial use: Commercial use is generally permitted under the open licenses, but the project also offers paid commercial products and support. If you need guarantees, SLAs, or hosted infrastructure, that is a commercial arrangement rather than the free tier.
  • Per-dataset variation: Because OpenSanctions aggregates hundreds of sources, individual datasets can carry different terms. A source list may have restrictions that flow through to how you can redistribute it.
  • Redistribution vs. internal use: Screening internally is usually straightforward; republishing the data as your own product is where license terms and source obligations matter most.

A practical decision guide

Your situation What to check first
Internal compliance screening Open data is typically fine; confirm attribution requirements
Building a product on top of the data Check each dataset's license and redistribution terms
Need uptime, support, or a hosted API Consider the commercial offering instead of self-hosting
Journalistic or research use Open data is designed for this; credit sources properly

Next step: Before deploying, identify which specific datasets you plan to use and read the license attached to each one, since terms are not uniform across the whole aggregation. If your use is commercial or product-facing, compare the open self-hosted route against the project's commercial terms to see which fits your risk and support needs.

How does OpenSanctions compare to commercial sanctions screening tools for accuracy and coverage?

OpenSanctions is best understood as an open data layer rather than a full commercial screening product. Its accuracy and coverage come from aggregating hundreds of public sanctions lists, watchlists and PEP sources into one deduplicated dataset, which you then run through your own matching logic (or its open matching engine). Commercial tools bundle that data with curated entity resolution, workflow, audit trails, analyst support and contractual service levels. So the honest comparison is: comparable raw coverage of public sources, but different accuracy guarantees and much less operational scaffolding.

Where the difference actually shows up

  • Coverage of public lists: OpenSanctions is strong. It consolidates many official sanctions and watchlist sources, so you are unlikely to miss a major public designation that a commercial vendor would include.
  • Coverage of non-public data: Commercial vendors often add proprietary sources — adverse media, internal lists, enhanced PEP research, and sometimes data licensed from other providers. OpenSanctions does not replace that.
  • Matching accuracy: Accuracy is not only the list; it is the matching. OpenSanctions exposes an open matching engine and tooling (SDK, CLI, MCP server) so you can inspect and reproduce exactly what was checked. Commercial tools typically tune matching with human review queues and vendor-maintained thresholds.
  • Provenance and auditability: This is where OpenSanctions is genuinely differentiated. Because sources and transformations are open, you can trace a hit back to its origin — valuable for investigators, journalists and increasingly for agentic compliance workflows.
  • Support and liability: Commercial vendors give you a contract, a support desk and someone to call when a screening decision is challenged. An open dataset gives you transparency, not indemnity.

A practical way to decide

Your situation Better fit
You need to audit, reproduce or explain every screening decision OpenSanctions
You need proprietary adverse media, deep PEP research or vendor SLAs Commercial tool, possibly alongside OpenSanctions
You are building screening into your own product or agent pipeline OpenSanctions (data + matching engine + tooling)
You want a turnkey case-management workflow with analyst review Commercial tool

A common and sensible pattern is hybrid: use OpenSanctions as the transparent, inspectable base layer, and add a commercial provider only for the categories it does not cover. That gives you provenance where it matters without paying twice for the same public lists.

Next step: pick five real counterparties you already screen, run them through OpenSanctions' data and matching tooling, and compare the hits and false positives against your current vendor. That test tells you more about accuracy for your book of business than any general coverage claim. For related open-data context, see OpenSanctions and, if you work with corporate structures, OpenCorporates.

Related questions

More questions →
What Are Open-Source UI Element Libraries and How Do They Differ From UI Frameworks?

An open-source UI element library is a collection of individual, ready-made interface pieces—buttons, cards, inputs, toggles, loaders—that you copy into your own project and adapt. A UI framework, by contrast, is a structured system of components, conventions, and often a theming layer that governs how your whole interface is built. The practical difference: an element library gives you a snippet; a framework gives you a way of working. If you need a polished button in ten minutes, reach for the element library. If you're building a 40-screen product with a team, you probably want the framework.

What "open-source UI element library" actually means

The term gets used loosely, so it helps to separate the parts:

  • Open-source: the code is publicly available, and the license tells you what you may do with it—copy, modify, redistribute, or use commercially.
  • UI element: a single, self-contained piece of interface, usually small enough to read in one sitting. A button with hover states, a pricing card, a search field.
  • Library: a browsable, searchable collection of those elements, typically contributed by many different people.

On a site like Uiverse, elements are shared by a community and written in plain CSS or Tailwind. You find one you like, copy the markup and styles, paste them into your project, and adjust colors, spacing, and text to fit. There's no package to install and no build step required—which is exactly the appeal, and also the source of most of the confusion.

Element library vs. UI framework: the core differences

Dimension Open-source UI element library UI framework / design system
Unit of reuse A single snippet you copy A component you import or call
Installation None; paste into your code Package install, config, sometimes a provider
Consistency Depends on you; each element may look different Enforced by shared tokens and APIs
Theming Manual edits per element Central theme/config file
Updates You own the copy; no upstream updates Version bumps bring fixes and changes
Accessibility Varies per contributor; must be checked Usually tested and documented
Best for Prototypes, landing pages, small sites, one-off needs Multi-page apps, teams, long-lived products
Learning curve Low—read the CSS Higher—learn the API and conventions

The table isn't a verdict. It's a map of trade-offs. Element libraries win on speed and freedom; frameworks win on consistency and maintenance.

Licensing and attribution: what to check before you paste

This is where people get into trouble, and it's worth slowing down for.

  1. Find the license. Every element or collection should state one. Common open-source licenses include MIT, Apache-2.0, and BSD. Some projects use copyleft licenses like GPL, which can impose obligations if you redistribute your code.
  2. Understand what the license permits. MIT and Apache-2.0 are permissive: you can typically use the code in commercial and closed-source projects. Copyleft licenses may require you to release derivative source under the same terms.
  3. Check attribution requirements. Permissive licenses usually require you to keep the copyright notice and license text somewhere in your project. That's a real obligation, not a formality.
  4. Look for per-element terms. On community sites, the site's overall terms and the individual contributor's stated wishes may differ. If a contributor asks for credit, honor it.
  5. When in doubt, ask or avoid. If a snippet has no license at all, you don't have clear permission to reuse it. Treat "no license" as "not open source," even if the code is publicly visible.

This article is general information, not legal advice. For commercial products with real exposure, have someone qualified review the licenses you're relying on.

How to use a community element in your project: a practical workflow

Here's a repeatable process that avoids most of the usual mess.

1. Start from a real need, not a browsing session

Decide what you need first—"a compact primary button with a loading state"—then search. Browsing aimlessly produces a pile of pretty snippets that don't fit together.

2. Copy the smallest version that works

Take the markup and the styles. Strip anything you don't need: demo wrappers, extra animations, decorative layers. Less code means fewer surprises.

3. Convert it to your conventions

If your project uses design tokens or CSS variables, replace hard-coded values:

/* Before: hard-coded */
.button { background: #4f46e5; border-radius: 8px; }

/* After: token-based */
.button { background: var(--color-primary); border-radius: var(--radius-md); }

This one step is what keeps a copied element from looking like a foreign object in your UI.

4. Check accessibility before you ship

Community elements vary widely here. Verify at minimum:

  • Keyboard focus is visible and the element is reachable by Tab.
  • Color contrast meets WCAG AA (4.5:1 for normal text).
  • Interactive elements use semantic HTML (<button>, not a clickable <div>).
  • Form inputs have associated labels.
  • Motion respects prefers-reduced-motion.

5. Test in context

Paste it into a real page with real content. Long labels, small screens, and dark mode break more copied elements than anything else.

6. Note where it came from

Keep a short comment or an internal credits file: source, license, date. Future you—and your legal reviewer—will be grateful.

Where element libraries genuinely shine

  • Prototypes and demos: you need something clickable today, not a design system.
  • Landing pages and marketing sites: a handful of distinctive elements, each custom.
  • Filling gaps: your framework lacks one specific component, and you don't want to build it from scratch.
  • Learning: reading well-made CSS is one of the fastest ways to improve.
  • Small projects: a personal site doesn't need a theming architecture.

Where they fall short

  • Consistency at scale: ten elements from ten contributors rarely look like one product.
  • Maintenance: you own every copy. When your design changes, you edit each one.
  • Accessibility debt: you inherit whatever the contributor did or didn't do.
  • No upstream fixes: a bug fixed in the original won't reach your copy.
  • Integration friction: different naming conventions, different units, different assumptions about resets.

When to choose which

Choose an element library when the scope is small, the timeline is short, or you need a few distinctive pieces rather than a whole system.

Choose a framework or design system when multiple people build multiple screens over months, when consistency is a product requirement, or when accessibility and theming need to be guaranteed rather than checked.

A hybrid works well for many teams: adopt a framework for the structural components—forms, navigation, layout—and borrow individual elements for the places where you want personality. Just route every borrowed element through the same token and accessibility checks, so it lands as part of your system rather than beside it.

The short version: open-source UI element libraries are a fast, flexible way to get good-looking interface pieces into a project. They are not a substitute for a design system, and the license and accessibility details are the part worth reading carefully.

What is OpenSanctions and what kind of data does it provide?

OpenSanctions is an open-source database that aggregates sanctions lists, watchlists, and politically exposed person (PEP) records from hundreds of sources into a single, standardized dataset. It is built for compliance teams, investigators, and journalists who need to screen individuals and companies against multiple official lists without querying each source separately. The data is organized into collections and datasets and is available in structured formats including JSON.

What data OpenSanctions covers

OpenSanctions consolidates three broad categories of risk data:

  • Sanctions lists — designations issued by governments and international bodies (e.g., OFAC, EU, UN), used to identify persons and entities subject to legal restrictions.
  • Watchlists — broader risk lists beyond formal sanctions, such as wanted persons, debarment lists, and regulatory enforcement actions.
  • Politically exposed persons (PEPs) — individuals holding prominent public roles, who carry elevated corruption or bribery risk under anti-money-laundering rules.

Because it aggregates hundreds of sources rather than maintaining one proprietary list, the value lies in normalization: names, aliases, dates of birth, and identifiers from different lists are reconciled so the same person or company can be matched consistently.

How the data is structured

The database is exposed as collections and datasets, available in JSON. This structure lets you:

  • Pull a specific dataset (for example, one country's sanctions list) rather than the entire corpus.
  • Track which underlying source each record came from, which matters for auditability.
  • Feed the data into screening tools programmatically.

The excerpt from the site emphasizes data provenance — knowing exactly what a screening check is comparing against and being able to prove it. This is framed as increasingly important as compliance workflows become automated or agent-driven.

Who it is for

User Typical use
Compliance teams Screening customers, vendors, and transactions against sanctions and PEP lists
Investigators Cross-referencing people and companies across multiple official lists
Journalists Researching ownership, sanctions exposure, and political connections

Screening tooling

Alongside the raw data, OpenSanctions provides yente-client, described as an SDK, CLI, and MCP server combined into one toolkit, with an open matching engine underneath. In practical terms, this means you can:

  • Run screening from code (SDK),
  • Run it from the command line (CLI),
  • Or connect it to an LLM agent workflow (MCP server),

while the matching engine handles name and entity comparison. The stated rationale is that if an agent runs your sanctions screening, you need to know exactly what it is checking and be able to demonstrate that.

What to check before relying on it

  • Coverage and freshness — since OpenSanctions aggregates external sources, confirm the specific lists you need are included and how often they update.
  • Licensing and access terms — the site describes the database as open-source, but the terms for the data and the tooling are not detailed in the material here; verify them directly before commercial use.
  • Match quality — an open matching engine reduces false positives but does not eliminate them; any screening result should be reviewed, not treated as a final determination.

If your goal is to understand what OpenSanctions offers, the short answer is: a normalized, multi-source dataset of sanctions, watchlists, and PEPs, delivered as JSON collections and datasets, plus tooling to run screening against it.

How OpenSanctions' open matching engine screens names against sanctions lists

OpenSanctions screens a name by running it through an open matching engine that compares your query against aggregated sanctions, watchlist, and PEP data, then returns candidate entities with a score rather than a simple yes/no. You can reach that engine in three ways through one toolkit — yente-client — which bundles an SDK, a CLI, and an MCP server. The design goal is that when an LLM agent runs your screening, you can see exactly what it checked and prove it afterward.

What the matching engine actually does

The engine does not do exact string equality. It performs fuzzy matching: it normalizes names, handles transliteration and word-order variation, and scores how closely your input resembles each stored entity. That is why the output is a ranked set of candidates with confidence scores, not a binary hit.

This matters for screening because sanctions names arrive in many forms — "Vladimir Putin," "PUTIN, Vladimir Vladimirovich," or a Cyrillic original — and a rigid lookup would miss most of them.

The three layers of yente-client

The toolkit rolls three interfaces over the same underlying engine:

Layer What it is Typical use
SDK A programmatic library Embed screening into your own application or agent code
CLI A command-line tool Run one-off or scripted checks, inspect raw results
MCP server A Model Context Protocol server Let an LLM agent call screening as a tool

Because all three sit on the same open matching engine, a result you get from the CLI and a result an agent gets through the MCP server come from the same logic. That consistency is what makes the output auditable.

Why provenance is the point

The stated rationale is direct: if an LLM agent is going to run your sanctions screening, you need to know exactly what it is checking — and be able to prove it. As compliance workflows become more agentic, data provenance matters more, not less.

In practice this means two things you should verify on any result:

  • Which list and version the match came from, since OpenSanctions aggregates hundreds of sources.
  • What the engine compared, so a reviewer can reproduce the decision rather than trust a black-box score.

How to run a screening

  1. Choose your interface. For a quick manual check, use the CLI. For an automated pipeline or agent, use the SDK or MCP server.
  2. Submit the name (and any supporting fields your query includes) to the matching engine.
  3. Read the ranked candidates. Expect scored entities, not a single verdict.
  4. Inspect provenance for each candidate — the source list and the entity record — before acting.
  5. Record the query and result so the decision is reproducible.

The expected result at each step is a candidate set you can justify, not an opaque pass/fail.

Common sticking points

  • Treating a score as a decision. The engine ranks; your compliance policy sets the threshold and the human review step.
  • Ignoring transliteration. A name that looks like a miss may be a spelling variant the engine already handles — check the candidates before concluding "no match."
  • Assuming the data is static. OpenSanctions aggregates many sources, so list contents change; re-run screening rather than relying on a cached result.

For the underlying data itself — which sanctions, watchlists, and PEP sources feed the engine — see the collections and datasets, which are published as JSON.

Where OpenSanctions gets its sanctions and PEP data, and how to verify provenance

OpenSanctions aggregates sanctions, watchlist, and politically exposed person (PEP) data from hundreds of public sources into a single open database, and it exposes the underlying collections and datasets as JSON so users can trace where a given record came from. That provenance layer matters most if you are running screening inside an automated or agent-driven compliance workflow, where you need to show exactly what was checked and why a name matched.

What data OpenSanctions covers

The database is described as covering three broad categories:

  • Sanctions — individuals and entities designated under government sanctions programs.
  • Watchlists — other risk-relevant lists beyond formal sanctions.
  • Politically exposed persons (PEPs) — people in public roles that carry heightened corruption or bribery risk.

Rather than maintaining one proprietary list, OpenSanctions is an aggregator: it pulls from hundreds of sources and consolidates them. The site positions the result as a resource relied on by compliance teams, investigators, and journalists.

How the aggregation model works

The key mechanism is consolidation across sources rather than a single authoritative feed. Because many sanctions and PEP lists overlap — the same person may appear on several national lists under slightly different spellings — an aggregator has to merge and reconcile records while keeping the link back to each original source.

That link back to the source is what "provenance" means here: for any statement the database makes about a person or company, you can identify which collection or dataset it originated from.

Verifying provenance: the collections and datasets JSON

OpenSanctions publishes its Collections & datasets as JSON. This is the practical entry point for checking where data comes from:

  1. Open the collections/datasets JSON listing on the site.
  2. Identify the collection relevant to your screening (for example, a specific sanctions program or PEP source).
  3. Use the dataset metadata to confirm the source, scope, and coverage of that collection.
  4. Cross-reference the collection against the specific record or match you are reviewing.

The expected result is that any match can be tied back to a named, inspectable source rather than an opaque score.

Why provenance matters more as screening goes agentic

The site's own framing is that if an LLM agent is going to run your sanctions screening, you need to know exactly what it is checking — and be able to prove it. As compliance workflows move toward agent-driven automation, the ability to demonstrate data lineage becomes a requirement, not a nice-to-have.

To support that, OpenSanctions describes yente-client as an SDK, CLI, and MCP server combined into one toolkit, running on top of its open matching engine. In practical terms, the layers break down as:

Layer Role
SDK Programmatic access for integrating screening into your own code
CLI Command-line use for manual or scripted checks
MCP server Interface for agent-based workflows
Matching engine The open engine that performs the actual name/entity matching

The point of naming these layers is that each one sits on top of the same open matching engine and the same sourced data — so the provenance chain is preserved whether a human or an agent runs the check.

What you can and cannot conclude from this

You can verify that OpenSanctions is an aggregator of hundreds of public sources, that it exposes collections and datasets as JSON for inspection, and that it provides tooling (yente-client) aimed at making automated screening auditable.

The source material does not state pricing, licensing terms for commercial use, or login requirements, so treat those as unconfirmed and check the site directly before relying on the database in a production compliance process.

How Compliance Teams, Investigators, and Journalists Use OpenSanctions

OpenSanctions is an open database that aggregates sanctions lists, watchlists, and politically exposed person (PEP) data from hundreds of sources, and it is used by compliance teams, investigators, and journalists to screen people and companies against those lists. You can use it in three main ways: browse collections and datasets directly, pull structured data via JSON endpoints, or run screening through the yente matching engine and its yente-client toolkit (SDK, CLI, and MCP server). The right entry point depends on whether you need to look something up, build a data pipeline, or automate screening inside an agent workflow.

What OpenSanctions actually contains

The site describes itself as "the open database of sanctions, watchlists, and politically exposed persons," aggregating hundreds of sources. That aggregation is the core value: instead of tracking each sanctions regime or watchlist separately, you query one dataset that consolidates them.

Two structural concepts matter for finding your way around:

  • Collections — curated groupings of related data (for example, a set of sanctions programs or a category of PEP data).
  • Datasets — the underlying data files you can retrieve and process yourself.

The site exposes these through a "Collections & datasets JSON" interface, which is the practical route for anyone who wants the data rather than a web lookup.

Choosing the right access method

Your goal Best entry point What you get
Look up a name or entity manually Web search / entity pages Human-readable results and provenance
Feed data into your own system Collections & datasets JSON Structured, retrievable data
Build screening into software yente matching engine + yente-client SDK Programmatic matching
Run screening from a terminal yente-client CLI Command-line screening
Let an LLM agent run screening yente-client MCP server Agent-accessible screening with a defined engine underneath

The distinction between the last three is the layer you operate at: SDK for code, CLI for scripts and one-off runs, MCP server for agentic workflows. All three sit on top of the same open matching engine.

Screening for business risk

For compliance teams, the stated use case is managing business risk — checking customers, counterparties, and beneficial owners against sanctions and watchlist data. The workflow is: take an entity name (and whatever identifying details you have), run it through the matching engine, and review the candidate matches it returns.

The matching engine is described as "open," which matters because it means you can inspect how a match was produced rather than treating the result as a black box.

Why provenance matters more in agentic workflows

The site makes a pointed argument: "If an LLM agent is going to run your sanctions screening, you need to know exactly what it's checking — and be able to prove it." As compliance workflows move toward agentic automation, data provenance becomes more important, not less.

This is the practical reason to care about the aggregation model. When a screening result appears, you need to trace it back to the specific source list it came from. OpenSanctions' aggregation of hundreds of sources is designed to support that traceability, and the yente-client toolkit is positioned as the way to keep the matching engine and its data provenance visible even when an agent is driving the process.

For investigators and journalists

The same data supports investigative work: cross-referencing individuals and companies against sanctions and PEP lists, and following the source of each record. Because the data is open and retrievable as datasets, you can download it, join it with your own records, and document where each claim originates — which is the difference between a lead and a publishable finding.

Practical starting points

  1. Identify your use case — manual lookup, data pipeline, or automated screening.
  2. For data work, go to the Collections & datasets JSON section and pull the datasets relevant to your jurisdiction or list type.
  3. For screening, use yente-client in the form that fits: SDK in application code, CLI for scripts, MCP server for agent workflows.
  4. Always capture provenance — record which source list produced a match, so the result is defensible.

A common pitfall is treating a match as a conclusion. Screening returns candidates; confirming identity against the underlying source record is still your step, and that is exactly what the provenance data is for.

Website Overview

An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality. Several search or sharing settings need attention. Together they may make snippets, preview images or preferred URLs less consistent across platforms.

Domain and Registration

Registered in 2017, this domain has about 9 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The domain uses the common .org extension, which is not an independent safety signal.

DNS and Email

Nameservers are provided by Google Cloud DNS, indicating managed DNS hosting. MX records point to the Google Workspace email service. CAA records restrict which certificate authorities are authorized to issue certificates. No CNAME was found; the observed records resolve directly to addresses. SPF and DMARC are configured. DKIM status is unknown.

TLS and Certificates

The certificate uses an RSA 2048-bit public key, offering broad client compatibility. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued within the Google Trust Services cloud or CDN ecosystem. The certificate's total validity is about 90 days, consistent with a short renewal cycle.

HTTP and Browser Security

X-Powered-By exposes backend information: Next.js. The response lacks these common security headers: X-Content-Type-Options, Referrer-Policy, Permissions-Policy, clickjacking protection. The via response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers. The Server header contains the custom value Google Frontend.

Technology Stack Analysis

The public page identifies Next.js without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

The title has 66 characters and may be truncated in search results. The meta description has 183 characters and may be shortened in search results. Open Graph is partially configured; og:type is missing. Twitter Card metadata is configured. The observed directives allow indexing and link following.

Hosting and Email

DNSGoogle Cloud DNS
HostingGoogle LLC
EmailGoogle Workspace
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagKansas City, Missouri, United States Inferred 34.54.55.70

Registration details

RDAP / WHOIS

RegistrarInterNetX GmbH
Registered2017-04-09
Expires2027-04-09
Domain statusclient transfer prohibited
Nameserversns-cloud-c1.googledomains.com、ns-cloud-c2.googledomains.com、ns-cloud-c3.googledomains.com、ns-cloud-c4.googledomains.com
DNSSECunsigned

DNS records

DNS

TypeNameValueTTLPriority
Awww.opensanctions.org34.54.55.70278—
MXopensanctions.orgaspmx.l.google.com3001
MXopensanctions.orgalt1.aspmx.l.google.com3005
MXopensanctions.orgalt2.aspmx.l.google.com3005
MXopensanctions.orgalt3.aspmx.l.google.com30010
MXopensanctions.orgalt4.aspmx.l.google.com30010
NSopensanctions.orgns-cloud-c1.googledomains.com21600—
NSopensanctions.orgns-cloud-c2.googledomains.com21600—
NSopensanctions.orgns-cloud-c3.googledomains.com21600—
NSopensanctions.orgns-cloud-c4.googledomains.com21600—
TXTopensanctions.orgapple-domain-verification=77A8kN39IYGu12TD300—
TXTopensanctions.orggoogle-site-verification=RTvznlTTS4DUxM_Kv2T1n2y_lBEGqRKGDE84Db9ZGEs300—
TXTopensanctions.orgv=spf1 include:_spf.google.com include:26189152.spf05.hubspotemail.net include:mailgun.org ~all300—
CAAopensanctions.org0 iodef "mailto:[email protected]"300—
CAAopensanctions.org0 issue "letsencrypt.org"300—
CAAopensanctions.org0 issue "pki.goog"300—
DMARC_dmarc.opensanctions.orgv=DMARC1; p=none300—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectwww.opensanctions.org
IssuerGoogle Trust Services
Valid until2026-12-05T23:36 · Remaining when checked: 66 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
cache-controlpublic,max-age=300,s-maxage=900,stale-while-revalidate=3600
serverGoogle Frontend
strict-transport-securitymax-age=31536000; includeSubDomains
content-security-policydefault-src 'self'; script-src 'self' 'unsafe-inline' https://www.googletagmanager.com https://www.google-analytics.com https://js.stripe.com; connect-src 'self' https://api.opensanctions.org https://www.google-analytics.com https://region1.google-analytics.com https://stats.g.doubleclick.net https://api.stripe.com; img-src 'self' data: https://assets.opensanctions.org https://opensanctions.directus.app https://www.google-analytics.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; font-src 'self' data:; frame-src https://js.stripe.com https://hooks.stripe.com https://www.youtube.com; object-src 'none'; base-uri 'self'; form-action 'self' https://www.opensanctions.org https://api.opensanctions.org https://auth.opensanctions.org

Identified technologies

Next.js

Pages, Search and Sharing

Meta descriptionThe open-source database of sanctions, watchlists, and politically exposed persons — aggregating hundreds of sources and relied on by compliance teams, investigators, and journalists.
Canonical URLhttps://www.opensanctions.org/
LanguageEnglish (default)
Twitter Cardsummary_large_image
googlebot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
bingbot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
duckduckbot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
duckassistbot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
duckduckgo-favicons-bot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
applebot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
perplexitybot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
oai-searchbot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
claude-searchbot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
chatgpt-user 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
claude-user 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
perplexity-user 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
twitterbot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
linkedinbot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
slackbot-linkexpanding 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
slackbot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
discordbot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
telegrambot 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
whatsapp 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
facebookexternalhit 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
facebookcatalog 0 allowed · 8 disallowed
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/issues
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/impressum
ahrefsbot 0 allowed · 1 disallowed
  • Disallow/
semrushbot 0 allowed · 1 disallowed
  • Disallow/
mj12bot 0 allowed · 1 disallowed
  • Disallow/
dataforseobot 0 allowed · 1 disallowed
  • Disallow/
dotbot 0 allowed · 1 disallowed
  • Disallow/
blexbot 0 allowed · 1 disallowed
  • Disallow/
serpstatbot 0 allowed · 1 disallowed
  • Disallow/
barkrowler 0 allowed · 1 disallowed
  • Disallow/
bytespider 0 allowed · 1 disallowed
  • Disallow/
meta-externalagent 0 allowed · 1 disallowed
  • Disallow/
petalbot 0 allowed · 1 disallowed
  • Disallow/
diffbot 0 allowed · 1 disallowed
  • Disallow/
imagesiftbot 0 allowed · 1 disallowed
  • Disallow/
omgili 0 allowed · 1 disallowed
  • Disallow/
webzio 0 allowed · 1 disallowed
  • Disallow/
timpibot 0 allowed · 1 disallowed
  • Disallow/
magpie-crawler 0 allowed · 1 disallowed
  • Disallow/
All bots 0 allowed · 10 disallowed
  • Disallow/entities
  • Disallow/search
  • Disallow/statements
  • Disallow/advancedsearch
  • Disallow/issues
  • Disallow/account
  • Disallow/admin
  • Disallow/auth
  • Disallow/invalidate
  • Disallow/impressum
  • IntervalCrawl delay 10 seconds

User reviews (0)

  • No reviews yet.