yente is an open source screening API service. It provides functions to search, retrieve or match FollowTheMoney entities, including people, companies or vessels that are subject to international sanctions.

yente: Intro · Deployment · Settings · Custom datasets · FAQ

The yente API is built to provide access to OpenSanctions data, it can also be used to search and match other data, such as company registries or custom watchlists.

While yente is the open source core code base for the OpenSanctions API, it can also be run on-premises as a KYC appliance so that no customer data leaves the deployment context. The software is distributed as a Docker image with a pre-defined docker-compose.yml configuration that also provisions the requisite ElasticSearch index.

Using the software

Note: this documentation is only relevant to users who plan to self-host the API. Click here if you'd prefer to use our hosted API service.

Using the API

Technical overview

Here is a very quick tour of how yente works:

  • When the application starts, it will download a metadata file from which states the latest version of the OpenSanctions data that was been released.
  • If there is fresh data, it will create an ElasticSearch index with a timestamp that match the latest release of the data (e.g. yente-entities-all-00220221030xxxx).
  • It will then fetch the latest data from (a 500MB+ JSON file) and store it onto the /tmp volume of the container.
  • Once the data is downloaded, it will read entity data from the file and push it into ElasticSearch in small batches.
  • When all the data is indexed, yente will create an ES index alias from yente-entities-all to the latest snapshot of the index (e.g. yente-entities-all-00220221030xxxx) and delete all older snapshots of the index.
  • Only once this has completed will the /search and /match APIs work correctly. On the plus side, any future updates to the data will be indexed first, and the switch-over to the new data will be instantaneous.
Got more questions? Join the Slack chat to ask questions and get support. You can also book an hour of consulting time to discuss technical questions with the team.