Introduction
What is Screena ?
Screena is a REST API that provides endpoints to match and resolve multicultural name datasets. Our technology leverages multi-cultural attributes and culture-specific algorithms as well as artificial intelligence proprietary techniques.
This documentation is organized by solution and method.
Each solution includes an overview, as well as a description of configurable options and a list of supported methods. The panel on the right includes code samples in a variety of programming languages. You can select your preferred language with the tabs at the top of the panel.
How Screena works
The task of precisely matching names has always been a tremendous challenge because until now there was simply no universal way of solving all potential pitfalls. Misspellings, acronyms, spelling differences, missing or out-of-order components, and so on make it a tough problem to solve ! While applying one technique to address a specific pain point, you might well create another … and fall into a dilemma situation.
This is where Screena kicks in: we provide software and tools to help you make every name-match accurate and insightful. No need for you to hire cohorts of data scientists and software engineers to solve this issue. We provide what you need to address your rapidly evolving business objectives without having to care about name-matching difficult challenges.
Screena consists of three solutions, each having a specific focus: reducing drastically false positives when matching names and entities, reducing false negatives in an unprecedented way, and managing searches and matches with large datasets without facing speed or performance constraints.
Just pick the solution you need !
Coders First
Even though we are obsessed with the quality of the content delivered to Screena’s users, and primarily coders (we are coders too and we know what a terrible experience a poor product doc can be), we also know that nobody and nothing is perfect in this world.
Having said that, we would love to get your feedback if you find anything good or bad while reading our docs. All contributions that can help us provide the best possible content are always appreciated. Nothing is as delightful as a happy coder !
API Information
Versions
API version 1 is now deprecated: Screena server component supports only API version 2 and all calls are assumed to be version 2.
Current version is 2.1.17.
The API documentation was last updated on December 18th, 2023.
Service Status
Visit Screena Status Page to check the API service status across all supported regions and stay informed during downtime.
Release Notes
Check Screena Help Center for all Release Notes.
Endpoints
This chapter lists all of the Endpoints exposed in the Screena API.
Matching Endpoints
Solution | Verb | Path | Description |
---|---|---|---|
Screena One | POST |
rest/v2/name-match |
Matching Full Names Matching Parsed Names |
Screena Plus | POST |
rest/v2/entity-match |
Matching Individuals Matching Organizations Matching Vessels Matching MRTD Matching Narratives |
Screena Firm | POST |
rest/v2/dataset-search rest/v2/dataset-search-engine rest/v2/dataset-search-engine-ongoing |
Searching Datasets Integrating Watchlist Screening Integrating Watchlist Screening (Periodic Screening) |
Screena Firm | POST |
rest/v2/dataset-search-engine-export rest/v2/dataset-search-engine-export-pdf |
Exporting Search Reports (CSV) Exporting Search Reports (PDF) |
Screena Firm | POST |
rest/v2/dataset-match |
Matching Datasets |
Datasets Endpoints
Solution | Verb | Path | Description |
---|---|---|---|
Screena Firm | POST |
rest/v2/datasets/edit |
Creating Datasets (In)activating Datasets |
Screena Firm | GET |
rest/v2/datasets |
Listing Datasets |
Screena Firm | DELETE |
rest/v2/datasets/delete/{label} |
Deleting Datasets |
Screena Firm | POST |
rest/v2/datasets/post-records |
Posting Records |
Screena Firm | POST |
rest/v2/datasets/bulk-import |
Dataset Bulk Importing |
Screena Firm | POST |
rest/v2/datasets/edit-records |
(In)activating Records |
Screena Firm | POST |
rest/v2/datasets/browse-records |
Browsing Records |
Screena Firm | DELETE |
rest/v2/datasets/delete/{label}/record/{dataID} |
Deleting Records |
Tasks Management Endpoints
Solution | Verb | Path | Description |
---|---|---|---|
Screena Firm | GET |
rest/v2/tasks/{taskID} |
Getting a Task’s Status |
Screena Firm | GET |
rest/v2/dataset-match/{taskID} rest/v2/dataset-match/positives/{taskID} rest/v2/dataset-match/negatives/{taskID} |
Getting Match Results |
Libraries Endpoints
Solution | Verb | Path | Description |
---|---|---|---|
Screena Firm | POST |
rest/v2/libraries/populate |
Populating Prefixes Library Populating Suffixes Library Populating Stopwords Library Populating Synonyms Library Populating Locations Library |
Screena Firm | POST |
rest/v2/libraries/bulk-import |
Library Bulk Importing |
Screena Firm | GET |
rest/v2/libraries/{library} |
Browsing Libraries |
Toolbox Endpoints
Solution | Verb | Path | Description |
---|---|---|---|
Screena Firm | GET |
rest/v2/datasets/keywords/{label} |
Retrieving Keywords |
Format
The Screena API uses JSON encoded as UTF-8.
The body of POST requests must be either a JSON object or a JSON array (depending on the particular endpoint) with Content-Type: application/json; charset=UTF-8
.
The body of responses is always a JSON object, always provided with Content-Type: application/json; charset=UTF-8
.
Authentication
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/name-match"
To use the Screena API you must have an API key.
The API key is a unique identifier that is used to authenticate requests associated with your project for usage and billing purposes.
Since the API key itself is an identity by which to identify the application or the user, it is unique, random and non-guessable.
Before you can start using the Screena API, you must sign up and create a billing account. Include your API key in all API requests to the server via a HTTP header: "X-Screena-API-Key: your_api_key"
Header
The Screena API POST
methods accept the use of a JSON header envelope containing a requestID
.
To avoid confusion, it should be noted that the header envelope only applies to POST
methods. For example, no requestID
is used in GET
methods.
Request Attributes
Request
{
"requestHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc27"
}
}
Attribute | Description | Required |
---|---|---|
requestID String |
Unique identifier of the request. | No |
Response Attributes
Response
Parameters for responses are provided into responseHeader
.
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc27-1588831643171",
"responded": "2020-05-07T06:07:23.171Z"
}
}
Attribute | Description |
---|---|
requestID String |
Unique identifier of the related request. |
responded String |
Date/Time at which the response was sent. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
Screena One
Matching Full Names
This POST
method allows to send one to many match queries
using full names in a single API call.
The method matches all combinatorially possible combinations of the names in sourceData
with the names in targetData
.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/name-match"
Request: The following example is the most basic request you can post to the API. In this case the
entitytype
is not provided and thethreshold
is set at its default value, which is to say 60%.
Endpoint: POST rest/v2/name-match
{
"queries": [{
"sourceData": [{
"names": [{
"fullName": "Mr. Johnathan Smith"
}]
}],
"targetData": [{
"names": [{
"fullName": "John Smith"
}]
}]
}]
}
Attribute | Description | Required |
---|---|---|
sourceData Array of Data Objects |
Set of source data to run the match query from. | Yes |
dataID String |
Unique identifier of the data record. | No |
entityType String |
Type of Named-Entities that has to be matched. Refer to Named-Entities Objects for more info. |
No |
names Array of Name Objects |
Name data to match in any and all scripts. At least one name attribute must be provided. |
Yes |
fullName String |
Full Name to match. | Yes |
targetData Array of Data Objects |
Set of target data to run the match query against. The child attributes of targetData are the same as those of sourceData . |
Yes |
threshold Decimal |
The AI match threshold is the probability represented by a value from 0 to 1 at which the user decides it is deemed certain that a record is similar to another one. If this parameter is not provided, Screena will apply a default threshold value set at 0.60. Refer to Name-Matching Algorithms for more info. |
No |
Response Attributes
Response
{
"responseHeader": {
"requestID": "GEN2054093905-1620367528448",
"responded": "2021-05-07T06:05:28.448Z"
},
"results": [{
"matchType": "st_match",
"score": 0.80,
"sourceData": [{
"entityType": "unknown",
"names": [{
"fullName": "Mr. Johnathan Smith",
"normalized": "johnathan smith"
}],
"cultureCodes": [
"en"
]
}],
"targetData": [{
"entityType": "unknown",
"names": [{
"fullName": "John Smith",
"normalized": "john smith"
}],
"cultureCodes": [
"cy",
"en",
"ga",
"no",
"sv"
]
}]
}]
}
Returns an array of match results
.
Attribute | Description |
---|---|
matchType String |
Type of the match result. Refer to Name-match Types for more info. |
score Decimal |
Name matching probability score: A high value of this score is a strong indication of a good name similarity. Scores below the threshold value provided in the request are rejected. Refer to Name-Matching Algorithms for more info. |
sourceData Array of Data Objects |
Set of source data returned in the match result. |
dataID String |
Unique identifier of the data record as it was posted to the API. |
entityType String |
Type of Named-Entities used for the match. This field is always returned, even if it was not provided in the match query (i.e.: unknown). Refer to Named-Entities Objects for more info. |
names Array of Name Objects |
Name data used for the match. |
fullName String |
Full Name as it was posted to the API. |
normalized String |
Normalized value that was used for the match. Refer to Normalization for more info. |
cultureCodes Array of Strings |
Code(s) of the culture(s) associated with the name, as detected by Screena. Refer to Name Cultures for more info. |
targetData Array of Data Objects |
Set of target data returned in the match result. The child attributes of targetData are the same as those of sourceData . |
Matching Parsed Names
This POST
method allows to send one to many match queries
using parsed names in a single API call.
Parsed names attributes provide more granularity and increases the overall quality of the results.
The method matches all combinatorially possible combinations of the names in sourceData
with the names in targetData
.
Request Attributes
Endpoint: POST rest/v2/name-match
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/name-match"
Request: Such request is particularly useful when a
targetdata
record (typically from a watchlist) is provided with names’ alternative spellings, original scripts or variations. Similarly, when the source data contains alternative spellings, original scripts or variations, the API can be provided with multiple values. The below example uses all the standard attributes for better results as well asdataID
, which makes possible to address Records uniquely, so that they can be accessed and interacted within a third-party application. Also, in this example the threshold is set to 90%.
{
"requestHeader": {
"requestID": "555-415-1337-00ub0oNGTSWTBKOLGLNR"
},
"queries": [{
"sourceData": [{
"dataID": "1",
"entityType": "individual",
"names": [{
"givenName": "Abdul Latif",
"surname": "MANSUR"
}]
}],
"targetData": [{
"dataID": "38403",
"entityType": "individual",
"names": [{
"fullName": "ABDUL ABDUL LATIF MANSUR"
},
{
"fullName": "Abdul Latif Mansoor"
},
{
"fullName": "MANSUR ABDUL LATIF"
}
]
}],
"threshold": 0.90
}]
}
Attribute | Description | Required |
---|---|---|
sourceData Array of Data Objects |
Set of source data to run the match query from. | Yes |
dataID String |
Unique identifier of the data record. | No |
entityType String |
Type of Named-Entities that has to be matched. Refer to Named-Entities Objects for more info. |
No |
names Array of Name Objects |
Name data to match. At least one name attribute must be provided. |
Yes |
givenName String |
Given Name to match. | No |
surname String |
Surname to match. | No |
fatherName String |
Father Name to match. | No |
motherName String |
Mother Name to match. | No |
fullName String |
Full Name to match. | No |
targetData Array of Data Objects |
Set of target data to run the match query against. The child attributes of targetData are the same as those of sourceData |
Yes |
threshold Decimal |
The AI match threshold is the probability represented by a value from 0 to 1 at which the user decides it is deemed certain that a record is similar to another one. If this parameter is not provided, Screena will apply a default threshold value set at 0.60. Refer to Name-Matching Algorithms for more info. |
No |
Response Attributes
Response
{
"responseHeader": {
"requestID": "555-415-1337-00ub0oNGTSWTBKOLGLNR",
"responded": "2021-05-07T06:13:09.635Z"
},
"results": [{
"matchType": "st_match",
"score": 0.98,
"sourceData": [{
"dataID": "1",
"entityType": "individual",
"names": [{
"surname": "MANSUR",
"givenName": "Abdul Latif",
"normalized": "abdul latif mansur"
}],
"cultureCodes": [
"ar"
]
}],
"targetData": [{
"dataID": "38403",
"entityType": "individual",
"names": [{
"fullName": "ABDUL ABDUL LATIF MANSUR",
"normalized": "abdul abdul latif mansur"
}],
"cultureCodes": [
"ar"
]
}]
},
{
"matchType": "st_match",
"score": 0.98,
"sourceData": [{
"dataID": "1",
"entityType": "individual",
"names": [{
"surname": "MANSUR",
"givenName": "Abdul Latif",
"normalized": "abdul latif mansur"
}],
"cultureCodes": [
"ar"
]
}],
"targetData": [{
"dataID": "38403",
"entityType": "individual",
"names": [{
"fullName": "Abdul Latif Mansoor",
"normalized": "abdul latif mansour"
}],
"cultureCodes": [
"ar"
]
}]
},
{
"matchType": "st_match",
"score": 0.98,
"sourceData": [{
"dataID": "1",
"entityType": "individual",
"names": [{
"surname": "MANSUR",
"givenName": "Abdul Latif",
"normalized": "abdul latif mansur"
}],
"cultureCodes": [
"ar"
]
}],
"targetData": [{
"dataID": "38403",
"entityType": "individual",
"names": [{
"fullName": "MANSUR ABDUL LATIF",
"normalized": "mansur abdul latif"
}],
"cultureCodes": [
"ar"
]
}]
}
]
}
Returns an array of match results
.
Attribute | Description |
---|---|
matchType String |
Type of the match result. Refer to Name-match Types for more info. |
score Decimal |
Name matching probability score: A high value of this score is a strong indication of a good name similarity. Scores below the threshold value provided in the request are rejected. Refer to Name-Matching Algorithms for more info. |
sourceData Array of Data Objects |
Set of source data returned in the match result. |
dataID String |
Unique identifier of the data record as it was posted to the API. |
entityType String |
Type of Named-Entities used for the match. This field is always returned, even if it was not provided in the match query (i.e.: unknown). Refer to Named-Entities Objects |
names Array of Name Objects |
Name data used for the match. |
givenName String |
Given Name as it was posted to the API. |
surname String |
Surname as it was posted to the API. |
fatherName String |
Father Name as it was posted to the API. |
motherName String |
Mother Name as it was posted to the API. |
fullName String |
Full Name as it was posted to the API. |
normalized String |
Normalized value that was used for the match. Refer to Normalization for more info. |
cultureCodes Array of Strings |
Code(s) of the culture(s) associated with the name, as detected by Screena. Refer to Name Cultures for more info. |
targetData Array of Data Objects |
Set of target data to run the match query against. The child attributes of targetData are the same as those of sourceData |
Screena Plus
Matching Individuals
This POST
method allows to send one to many match queries
using individuals' attributes in a single API call. It uses similarities of the individual names but also other key attributes such as date of birth, country of birth, address, and nationality, which uniquely identify an individual. Results are based on any combination of available attributes provided through the API.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/entity-match"
Request (Individual)
Endpoint: POST rest/v2/entity-match
{
"requestHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc33"
},
"queries": [{
"sourceData": [{
"dataID": "174",
"entityType": "individual",
"names": [{
"givenName": "maria",
"surname": "callas"
}, {
"fullName": "Anna Maria Sophia Cecilia Kaloyeropoulou"
}],
"sex": "F",
"nationalities": [{
"country": "US"
}, {
"country": "GR"
}],
"datesOfBirth": [{
"date": "1923-12-02"
}],
"placesOfBirth": [{
"city": "New-York",
"country": "US"
}],
"addresses": [{
"street": "36 avenue Georges Mandel",
"city": "Paris",
"country": "FR"
}]
}],
"targetData": [{
"dataID": "455",
"entityType": "individual",
"names": [{
"fullName": "Μαρία Κάλλας"
}, {
"fullName": "Sophia Cecilia Kalos"
}],
"nationalities": [{
"country": "GR"
}],
"datesOfBirth": [{
"date": "1922/1925"
}, {
"date": "1928"
}],
"addresses": [{
"city": "Athens",
"country": "GR"
}, {
"city": "Paris",
"country": "FR"
}]
}],
"threshold": 0.90,
"entityTypeAlgo": {
"type": "exact_match",
"nullMatch": true
},
"sexAlgo": {
"type": "exact_match",
"nullMatch": true
},
"nationalityAlgo": {
"type": "same_country",
"nullMatch": true
},
"dateOfBirthAlgo": {
"type": "same_year",
"nullMatch": true
},
"placeOfBirthAlgo": {
"type": "same_country",
"nullMatch": true
},
"addressAlgo": {
"type": "same_country",
"nullMatch": true
}
}]
}
Attribute | Description | Required |
---|---|---|
sourceData Array of Data Objects |
Set of source data to run the match query from. | Yes |
dataID String |
Unique Identifier of the data record. | No |
entityType String |
Type of Named-Entities that has to be matched: shall be an individual. Refer to Named-Entities Objects for more info. |
Yes individual |
names Array of Name Objects |
Name data to match in any and all scripts. At least one name attribute must be provided. |
Yes |
givenName String |
Given Name to match. | No |
surname String |
Surname to match. | No |
fatherName String |
Father Name to match. | No |
motherName String |
Mother Name to match. | No |
fullName String |
Full Name to match. | No |
sex String |
Sex for an individual. Refer to Sexes and Genders for more info. |
No |
nationalities Array of Location Objects |
Nationality for an individual, can be many. See child attributes for Countries. |
No |
categories Array of Category Objects |
Class or division of individuals regarded as having particular shared characteristics, can be many. | No |
datesOfBirth Array of Date Objects |
Date of birth for an individual, can be many. Refer to Dates for more info. |
No |
placesOfBirth Array of Location Objects |
Place of birth for an individual, can be many. See child attributes for Places. |
No |
addresses Array of Location Objects |
Address for an individual, can be many. See child attributes for Addresses. |
No |
identityDocuments Array of Identity Document Objects |
Identity Document for an individual, can be many. See child attributes for Identity Documents. |
No |
digitalCurrencies (New)Array of Digital Currency Objects |
Digital Currency related data, can be many. See child attributes for Digital Currencies. |
No |
targetData Array of Data Objects |
Set of target data to run the match query against. The child attributes of targetData are the same as those of sourceData . |
Yes |
threshold Decimal |
The AI match threshold is the probability represented by a value from 0 to 1 at which the user decides it is deemed certain that a record is similar to another one. If this parameter is not provided, Screena will apply a default threshold value set at 0.60. Refer to Name-Matching Algorithms for more info. |
No |
entityTypeAlgo Algorithm Object |
Type of algorithms to match straightforward values. Refer to Binary-Matching Algorithms for more info. |
No |
sexAlgo Algorithm Object |
Type of algorithms to match straightforward values. Refer to Binary-Matching Algorithms for more info. |
No |
nationalityAlgo Algorithm Object |
The type of algorithms used for matching countries. Refer to Country-Matching Algorithms for more info. |
No |
dateOfBirthAlgo Algorithm Object |
The type of algorithms used for matching dates. Refer to Date-Matching Algorithms for more info. |
No |
placeOfBirthAlgo Algorithm Object |
The type of algorithms used for matching countries. Refer to Country-Matching Algorithms for more info. |
No |
addressAlgo Algorithm Object |
The type of algorithms used for matching countries. Refer to Country-Matching Algorithms for more info. |
No |
identityDocumentAlgo (New)Algorithm Object |
The type of algorithms used for matching identity document numbers. Refer to Identifier-Matching Algorithms for more info. |
No |
digitalCurrencyAlgo Algorithm Object |
The type of algorithms used for matching digital currency identifiers. Refer to Identifier-Matching Algorithms for more info. |
No |
categoryAlgo (New)Algorithm Object |
The type of algorithms used for matching categories associated with data records. Refer to Binary-Matching Algorithms for more info. |
No |
keywordAlgo (New)Algorithm Object |
The type of algorithms used for matching keywords associated with data records. Refer to Binary-Matching Algorithms for more info. |
No |
Response Attributes
Response
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc33",
"responded": "2022-07-15T08:32:05.061Z"
},
"results": [{
"matchType": "st_match",
"score": 0.94,
"sourceData": [{
"dataID": "174",
"entityType": "individual",
"names": [{
"surname": "callas",
"givenName": "maria",
"normalized": "maria callas"
}],
"sex": "F",
"cultureCodes": [
"bg",
"ca",
"co",
"da",
"de",
"el",
"en",
"es",
"eu",
"fi",
"fy",
"gl",
"hu",
"is",
"it",
"nl",
"no",
"oc",
"pl",
"pt",
"ro",
"ru",
"sc",
"sk",
"sv",
"uk"
],
"nationalities": [{
"country": "GR",
"normalized": "GR"
}],
"datesOfBirth": [{
"date": "1923-12-02",
"normalized": "1923"
}],
"addresses": [{
"street": "36 avenue Georges Mandel",
"city": "Paris",
"country": "FR",
"normalized": "FR"
}],
"placesOfBirth": [{
"city": "New-York",
"country": "US"
}]
}],
"targetData": [{
"dataID": "455",
"entityType": "individual",
"names": [{
"fullName": "Μαρία Κάλλας",
"normalized": "maria kallas"
}],
"sex": "u",
"cultureCodes": [
"XX"
],
"nationalities": [{
"country": "GR",
"normalized": "GR"
}],
"datesOfBirth": [{
"date": "1922/1925",
"normalized": "1922/1925"
}],
"addresses": [{
"city": "Paris",
"country": "FR",
"normalized": "FR"
}],
"placesOfBirth": [{
"country": "XX"
}]
}]
},
{
"matchType": "ai_reject",
"score": 0.30,
"unmatched": [
"names"
],
"sourceData": [{
"dataID": "174",
"entityType": "individual",
"names": [{
"surname": "callas",
"givenName": "maria",
"normalized": "maria callas"
}],
"sex": "F",
"cultureCodes": [
"bg",
"ca",
"co",
"da",
"de",
"el",
"en",
"es",
"eu",
"fi",
"fy",
"gl",
"hu",
"is",
"it",
"nl",
"no",
"oc",
"pl",
"pt",
"ro",
"ru",
"sc",
"sk",
"sv",
"uk"
],
"nationalities": [{
"country": "GR",
"normalized": "GR"
}],
"datesOfBirth": [{
"date": "1923-12-02",
"normalized": "1923"
}],
"addresses": [{
"street": "36 avenue Georges Mandel",
"city": "Paris",
"country": "FR",
"normalized": "FR"
}],
"placesOfBirth": [{
"city": "New-York",
"country": "US"
}]
}],
"targetData": [{
"dataID": "455",
"entityType": "individual",
"names": [{
"fullName": "Sophia Cecilia Kalos",
"normalized": "sophia cecilia kalos"
}],
"sex": "u",
"cultureCodes": [
"de",
"en"
],
"nationalities": [{
"country": "GR",
"normalized": "GR"
}],
"datesOfBirth": [{
"date": "1922/1925",
"normalized": "1922/1925"
}],
"addresses": [{
"city": "Paris",
"country": "FR",
"normalized": "FR"
}],
"placesOfBirth": [{
"country": "XX"
}]
}]
},
{
"matchType": "ai_reject",
"score": 0.60,
"unmatched": [
"names"
],
"sourceData": [{
"dataID": "174",
"entityType": "individual",
"names": [{
"fullName": "Anna Maria Sophia Cecilia Kaloyeropoulou",
"normalized": "anna maria sophia cecilia kaloyeropoulou"
}],
"sex": "F",
"cultureCodes": [
"bg",
"ca",
"co",
"da",
"de",
"el",
"en",
"es",
"eu",
"fi",
"fy",
"gl",
"hu",
"is",
"it",
"nl",
"no",
"oc",
"pl",
"pt",
"ro",
"ru",
"sc",
"sk",
"sv",
"uk"
],
"nationalities": [{
"country": "GR",
"normalized": "GR"
}],
"datesOfBirth": [{
"date": "1923-12-02",
"normalized": "1923"
}],
"addresses": [{
"street": "36 avenue Georges Mandel",
"city": "Paris",
"country": "FR",
"normalized": "FR"
}],
"placesOfBirth": [{
"city": "New-York",
"country": "US"
}]
}],
"targetData": [{
"dataID": "455",
"entityType": "individual",
"names": [{
"fullName": "Sophia Cecilia Kalos",
"normalized": "sophia cecilia kalos"
}],
"sex": "u",
"cultureCodes": [
"de",
"en"
],
"nationalities": [{
"country": "GR",
"normalized": "GR"
}],
"datesOfBirth": [{
"date": "1922/1925",
"normalized": "1922/1925"
}],
"addresses": [{
"city": "Paris",
"country": "FR",
"normalized": "FR"
}],
"placesOfBirth": [{
"country": "XX"
}]
}]
},
{
"matchType": "no_match",
"unmatched": [
"names"
],
"sourceData": [{
"dataID": "174",
"entityType": "individual",
"names": [{
"fullName": "Anna Maria Sophia Cecilia Kaloyeropoulou",
"normalized": "anna maria sophia cecilia kaloyeropoulou"
}],
"sex": "F",
"cultureCodes": [
"bg",
"ca",
"co",
"da",
"de",
"el",
"en",
"es",
"eu",
"fi",
"fy",
"gl",
"hu",
"is",
"it",
"nl",
"no",
"oc",
"pl",
"pt",
"ro",
"ru",
"sc",
"sk",
"sv",
"uk"
],
"nationalities": [{
"country": "GR",
"normalized": "GR"
}],
"datesOfBirth": [{
"date": "1923-12-02",
"normalized": "1923"
}],
"addresses": [{
"street": "36 avenue Georges Mandel",
"city": "Paris",
"country": "FR",
"normalized": "FR"
}],
"placesOfBirth": [{
"city": "New-York",
"country": "US"
}]
}],
"targetData": [{
"dataID": "455",
"entityType": "individual",
"names": [{
"fullName": "Μαρία Κάλλας",
"normalized": "maria kallas"
}],
"sex": "u",
"cultureCodes": [
"XX"
],
"nationalities": [{
"country": "GR",
"normalized": "GR"
}],
"datesOfBirth": [{
"date": "1922/1925",
"normalized": "1922/1925"
}],
"addresses": [{
"city": "Paris",
"country": "FR",
"normalized": "FR"
}],
"placesOfBirth": [{
"country": "XX"
}]
}]
}
]
}
Returns an array of match results
.
Attribute | Description |
---|---|
matchType String |
Type of the match result. Refer to Name-match Types for more info. |
score Decimal |
Name matching probability score: A high value of this score is a strong indication of a good name similarity. AI scores below the threshold value provided in the request are rejected. Refer to Name-Matching Algorithms for more info. |
unmatched Array of Strings |
Provide the unmatched attributes when the matchType is "no_match" or "ai_reject", as detected by Screena. |
sourceData Array of Data Objects |
Set of source data returned in the match result. |
dataID |
Unique identifier of the data record as it was posted to the API. |
entityType String |
Type of Named-Entities used for the match. This field is always returned, even if it was not provided in the match query (i.e.: unknown). Refer to Named-Entities Objects for more info. |
names Array of Name Objects |
Name data used for the match. |
givenName String |
Given Name as it was posted to the API. |
surname String |
Surname as it was posted to the API. |
fatherName String |
Father Name as it was posted to the API. |
motherName String |
Mother Name as it was posted to the API. |
fullName String |
Full Name as it was posted to the API. |
normalized String |
Normalized value that was used for the match. Refer to Normalization for more info. |
cultureCodes Array of Strings |
Code(s) of the culture(s) associated with the name, as detected by Screena. Refer to Name Cultures for more info. |
sex String |
Sex for an individual, only returned if filtered by an algorithm. Refer to Sexes and Genders for more info. |
nationalities Array of Location Objects |
Nationality for an individual, only returned if filtered by an algorithm. See child attributes for Countries. |
datesOfBirth Array of Date Objects |
Date of birth for an individual, only returned if filtered by an algorithm. Refer to Dates for more info. |
placesOfBirth Array of Location Objects |
Place of birth for an individual, only returned if filtered by an algorithm. See child attributes for Places. |
addresses Array of Location Objects |
Address for an individual, only returned if filtered by an algorithm. See child attributes for Addresses. |
digitalCurrencies (New)Array of Digital Currency Objects |
Digital Currency related data, only returned if filtered by an algorithm. See child attributes for Digital Currencies. |
targetData Array of Data Objects |
Set of target data returned in the match result. The child attributes of targetData are the same as those of sourceData . |
Matching Organizations
This POST
method allows to send one to many match queries
using organizations' attributes in a single API call. It uses similarities of the organization names but also other key attributes such as registry date, place of registry, and address which uniquely identify an organization. Results are based on any combination of available attributes provided through the API.
Request Attributes
Endpoint: POST rest/v2/entity-match
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/entity-match"
Request (Organization)
{
"requestHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc34"
},
"queries": [{
"sourceData": [{
"dataID": "2890",
"entityType": "organization",
"names": [{
"fullName": "Rosoboronexport"
}],
"datesOfRegistry": [{
"date": "2000-11-04"
}],
"placesOfRegistry": [{
"country": "RU"
}],
"addresses": [{
"street": "24 Usacheva ul.",
"city": "Moscow"
}]
}],
"targetData": [{
"dataID": "3015",
"entityType": "organization",
"names": [{
"fullName": "Rosoboronexport (ROE)"
}, {
"fullName": "Рособоронэкспорт"
}]
}],
"threshold": 0.65
}]
}
Attribute | Description | Required |
---|---|---|
sourceData Array of Data Objects |
Set of source data to run the match query from. | Yes |
dataID String |
Unique Identifier of the data record. | No |
entityType String |
Type of Named-Entities that has to be matched: shall be an organization. Refer to Named-Entities Objects for more info. |
Yes organization |
names Array of Name Objects |
Name data to match in any and all scripts. At least one name attribute must be provided. |
Yes |
fullName String |
Full Name to match. | Yes |
bic (New)String |
Business Identifier Code (BIC) data to match (8-11 characters). | No |
lei (New)String |
Legal Entity Identifier (LEI) data to match (20 characters). | No |
datesOfRegistry Array of Date Objects |
Date of registration for an organization, can be many. Refer to Dates for more info. |
No |
placesOfRegistry Array of Location Objects |
Place of registration for an organization, can be many. See child attributes for Places. |
No |
addresses Array of Location Objects |
Address for an organization, can be many. See child attributes for Addresses. |
No |
identityDocuments Array of Identity Document Objects |
Identity Document for an organization, can be many. See child attributes for Identity Documents. |
No |
categories Array of Category Objects |
class or division of organizations regarded as having particular shared characteristics, can be many. | No |
digitalCurrencies (New)Array of Digital Currency Objects |
Digital Currency related data, can be many. See child attributes for Digital Currencies. |
No |
targetData Array of Data Objects |
Set of target data to run the match query against. The child attributes of targetData are the same as those of sourceData . |
Yes |
threshold Decimal |
The AI match threshold is the probability represented by a value from 0 to 1 at which the user decides it is deemed certain that a record is similar to another one. If this parameter is not provided, Screena will apply a default threshold value set at 0.60. Refer to Name-Matching Algorithms for more info. |
No |
entityTypeAlgo Algorithm Object |
Type of algorithms to match straightforward values. Refer to Binary-Matching Algorithms for more info. |
No |
dateOfRegistryAlgo Algorithm Object |
The type of algorithms used for matching dates. Refer to Date-Matching Algorithms. |
No |
placeOfRegistryAlgo Algorithm Object |
The type of algorithms used for matching countries. Refer to Country-Matching Algorithms for more info. |
No |
identityDocumentAlgo (New)Algorithm Object |
The type of algorithms used for matching identity document numbers. Refer to Identifier-Matching Algorithms for more info. |
No |
addressAlgo Algorithm Object |
The type of algorithms used for matching countries. Refer to Country-Matching Algorithms for more info. |
No |
bicAlgo (New)Algorithm Object |
Type of algorithms to match straightforward values. Refer to Identifier-Matching Algorithms for more info. |
No |
leiAlgo (New)Algorithm Object |
Type of algorithms to match straightforward values. Refer to Identifier-Matching Algorithms for more info. |
No |
digitalCurrencyAlgo (New)Algorithm Object |
The type of algorithms used for matching Digital Currency Identifiers. Refer to Identifier-Matching Algorithms for more info. |
No |
categoryAlgo (New)Algorithm Object |
The type of algorithms used for matching categories associated with data records. Refer to Binary-Matching Algorithms for more info. |
No |
keywordAlgo (New)Algorithm Object |
The type of algorithms used for matching keywords associated with data records. Refer to Binary-Matching Algorithms for more info. |
No |
Request (BIC entity-attribute)
{
"queries": [{
"sourceData": [{
"bic": "AFAB AFKA"
}],
"targetData": [{
"bic": "AFABAFKA"
}],
"bicAlgo": {
"type": "exact_match",
"nullMatch": true
}
}]
}
Response Attributes
Response
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc34",
"responded": "2021-05-05T10:08:01.722Z"
},
"results": [{
"matchType": "st_match",
"score": 0.93,
"sourceData": [{
"dataID": "2890",
"entityType": "organization",
"names": [{
"fullName": "Rosoboronexport",
"normalized": "rosoboronexport"
}]
}],
"targetData": [{
"dataID": "3015",
"entityType": "organization",
"names": [{
"fullName": "Rosoboronexport (ROE)",
"normalized": "rosoboronexport roe"
}]
}]
},
{
"matchType": "st_match",
"score": 0.94,
"sourceData": [{
"dataID": "2890",
"entityType": "organization",
"names": [{
"fullName": "Rosoboronexport",
"normalized": "rosoboronexport"
}]
}],
"targetData": [{
"dataID": "3015",
"entityType": "organization",
"names": [{
"fullName": "Рособоронэкспорт",
"normalized": "rosoboroneksport"
}]
}]
}
]
}
Returns an array of match results
.
Attribute | Description |
---|---|
matchType String |
Type of the match result. Refer to Name-match Types for more info. |
score Decimal |
Name matching probability score: A high value of this score is a strong indication of a good name similarity. AI scores below the threshold value provided in the request are rejected. Refer to Name-Matching Algorithms for more info. |
unmatched Array of Strings |
Provide the unmatched attributes when the matchType is "no_match" or "ai_reject", as detected by Screena. |
sourceData Array of Data Objects |
Set of source data returned in the match result. |
dataID String |
Unique Identifier of the data record. |
entityType String |
Type of Named-Entities used for the match. This field is always returned, even if it was not provided in the match query (i.e.: unknown). Refer to Named-Entities Objects. |
names Array of Name Objects |
Name data used for the match. |
bic (New)String |
BIC data used for the match, only returned if filtered by an algorithm. |
lei (New)String |
LEI data used for the match, only returned if filtered by an algorithm. |
fullName String |
Full Name as it was posted to the API. |
normalized String |
Normalized value that was used for the match. Refer to Normalization for more info. |
datesOfRegistry Array of Date Objects |
This is the date of registration for a organization, only returned if filtered by an algorithm. See child attributes for Dates. |
placesOfRegistry Array of Location Objects |
This is the place of registration for an organization, only returned if filtered by an algorithm. See child attributes for Places. |
addresses Array of Location Objects |
Address for an organization, only returned if filtered by an algorithm. See child attributes for Addresses. |
digitalCurrencies (New)Array of Digital Currency Objects |
Digital Currency related data, only returned if filtered by an algorithm. See child attributes for Digital Currencies. |
targetData Array of Data Objects |
Set of target data returned in the match result. The child attributes of targetData are the same as those of sourceData . |
Matching Vessels
This POST
method allows to send one to many match queries
using vessels' attributes in a single API call. It uses similarities of the vessel names but also other key attributes such as build date, place of build, and flag, which uniquely identify an vessel. Results are based on any combination of available attributes provided through the API.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/entity-match"
Endpoint: POST rest/v2/entity-match
Request (Vessel)
{
"requestHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc34"
},
"queries": [{
"sourceData": [{
"dataID": "23659",
"entityType": "vessel",
"names": [{
"fullName": "Maersk Mc-Kinney Moller"
}],
"flags": [{
"country": "DK"
}],
"datesOfBuild": [{
"date": "2013"
}]
}],
"targetData": [{
"dataID": "3015",
"entityType": "vessel",
"names": [{
"fullName": "MAERSKMCKINNEYMOLLER"
}]
}],
"threshold": 0.65
}]
}
Attribute | Description | Required |
---|---|---|
sourceData Array of Data Objects |
Set of source data to run the match query from. | Yes |
dataID String |
Unique Identifier of the data record. | No |
entityType String |
Type of Named-Entities that has to be matched: shall be a vessel. Refer to Named-Entities Objects for more info. |
Yes organization |
names Array of Name Objects |
Name data to match in any and all scripts. At least one name attribute must be provided. |
Yes |
fullName String |
Full Name to match. | Yes |
flags Array of Location Objects |
Flags of vessel, can be many. See child attributes for Countries. |
No |
datesOfBuild Array of Date Objects |
Date at which the vessel was completed, can be many. See child attributes for Dates. |
No |
targetData Array of Data Objects |
Set of target data to run the match query against. The child attributes of targetData are the same as those of sourceData . |
Yes |
identityDocuments Array of Identity Document Objects |
Identity Document for an organization, can be many. See child attributes for Identity Documents. |
No |
categories Array of Category Objects |
class or division of vessels regarded as having particular shared characteristics, can be many. | No |
threshold Decimal |
The AI match threshold is the probability represented by a value from 0 to 1 at which the user decides it is deemed certain that a record is similar to another one. If this parameter is not provided, Screena will apply a default threshold value set at 0.60. Refer to Name-Matching Algorithms for more info. |
No |
entityTypeAlgo Algorithm Object |
Type of algorithms to match straightforward values. Refer to Binary-Matching Algorithms for more info. |
No |
flagAlgo Algorithm Object |
The type of algorithms used for matching countries. Refer to Country-Matching Algorithms. |
No |
dateOfBuildAlgo Algorithm Object |
The type of algorithms used for matching dates. Refer to Date-Matching Algorithms. |
No |
identityDocumentAlgo (New)Algorithm Object |
The type of algorithms used for matching identity document numbers. Refer to Identifier-Matching Algorithms for more info. |
No |
categoryAlgo (New)Algorithm Object |
The type of algorithms used for matching categories associated with data records. Refer to Binary-Matching Algorithms for more info. |
No |
keywordAlgo (New)Algorithm Object |
The type of algorithms used for matching keywords associated with data records. Refer to Binary-Matching Algorithms for more info. |
No |
Response Attributes
Response
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc34",
"responded": "2020-05-27T17:20:58.820Z"
},
"results": [{
"matchType": "st_match",
"score": 0.98,
"sourceData": [{
"dataID": "23659",
"entityType": "vessel",
"names": [{
"fullName": "Maersk Mc-Kinney Moller",
"normalized": "maersk mc kinney moller"
}]
}],
"targetData": [{
"dataID": "3015",
"entityType": "vessel",
"names": [{
"fullName": "MAERSKMCKINNEYMOLLER",
"normalized": "maerskmckinneymoller"
}]
}]
}]
}
Returns an array of match results
.
Attribute | Description |
---|---|
matchType String |
Type of the match result. Refer to Name-match Types for more info. |
score Decimal |
Name matching probability score: A high value of this score is a strong indication of a good name similarity. AI scores below the threshold value provided in the request are rejected. Refer to Name-Matching Algorithms for more info. |
unmatched Array of Strings |
Provide the unmatched attributes when the matchType is "no_match" or "ai_reject", as detected by Screena. |
sourceData Array of Data Objects |
Set of source data returned in the match result. |
dataID String |
Unique Identifier of the data record. |
entityType String |
Type of Named-Entities used for the match. This field is always returned, even if it was not provided in the match query (i.e.: unknown). Refer to Named-Entities Objects. |
names Array of Name Objects |
Name data used for the match. |
fullName String |
Full Name as it was posted to the API. |
normalized String |
Normalized value that was used for the match. Refer to Normalization for more info. |
flags Array of Location Objects |
Flags of vessel, only returned if filtered by an algorithm. See child attributes for Countries. |
datesOfBuild Array of Date Objects |
Date at which the vessel was completed, only returned if filtered by an algorithm. See child attributes for Dates. |
targetData Array of Data Objects |
Set of target data to run the match query against. The child attributes of targetData are the same as those of sourceData . |
Matching MRTD
Machine-Readable Travel Documents (MRTD) are standardized by the ICAO Document 9303 (endorsed by the International Organization for Standardization and the International Electrotechnical Commission as ISO/IEC 7501-1) and have a special machine-readable zone (MRZ), which is usually at the bottom of the identity page at the beginning of a passport. ICAO Document 9303 describes 4 document types using an MRZ of which we support two (MRTD Type 1 and Type 3):
- The MRZ of a Type 1 travel document spans 3 lines, and each line is 30 characters long. Usually passport booklets are issued in "Type 3" format. Identity cards and passport cards typically use the "Type 1" format.
- The MRZ of a Type 3 travel document spans 2 lines, and each line is 44 characters long. The following information must be provided in the zone: name, passport number, nationality, date of birth, sex, and passport expiration date. There is room for optional, often country-dependent, supplementary information. Usually passport booklets are issued in "Type 3" format.
Screena can directly parse the information found on MRTDs.
So instead of manually entering information from individuals and sending the value of each field, the MRZ can be read by an optical character recognition device and sent to Screena's API. This enables faster processing, and greater accuracy than manually read passports, as well as faster data entry, and better data matching against immigration databases and watchlists.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/entity-match"
Request (Individual)
Endpoint: POST rest/v2/entity-match
{
"requestHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc33"
},
"queries": [{
"sourceData": [{
"dataID": "174",
"mrz": [{
"line1": "P<USAKALOYEROPOULOU<<ANNA<MARIA<SOPHIA<CECI<",
"line2": "7070146083USA2312020F2305075<<<<<<<<<<<<<<<8"
}]
}],
"targetData": [{
"dataID": "455",
"entityType": "individual",
"names": [{
"fullName": "Μαρία Κάλλας"
}, {
"fullName": "Sophia Cecilia Kalos"
}],
"nationalities": [{
"country": "GR"
}],
"datesOfBirth": [{
"date": "1922/1925"
}, {
"date": "1928"
}],
"addresses": [{
"city": "Athens",
"country": "GR"
}, {
"city": "Paris",
"country": "FR"
}]
}],
"threshold": 0.80,
"entityTypeAlgo": {
"type": "exact_match",
"nullMatch": true
},
"sexAlgo": {
"type": "exact_match",
"nullMatch": true
},
"nationalityAlgo": {
"type": "same_country",
"nullMatch": true
},
"dateOfBirthAlgo": {
"type": "same_year",
"nullMatch": true
},
"placeOfBirthAlgo": {
"type": "same_country",
"nullMatch": true
},
"addressAlgo": {
"type": "same_country",
"nullMatch": true
}
}]
}
Attribute | Description | Required |
---|---|---|
mrz Array of MRZ Objects |
MRZ data to match. At least two lines must be provided. |
No |
line1 String |
MRZ first line for either MRTD Type 1 (30 characters) or MRTD Type 3 (44 characters). | Yes |
line2 String |
MRZ second line for either MRTD Type 1 (30 characters) or MRTD Type 3 (44 characters). | Yes |
line3 String |
MRZ third line for MRTD Type 1 (30 characters) only. Do not provide for Type 3 MRTD. | No |
Response Attributes
Response attributes are similar than those provided when matching individuals.
Matching Narratives
In the field of Financial Crime Compliance, Narratives are used in different contexts:
- they are used in STR (Suspicious Transaction Reports) to narrate the events leading to a suspicion of money laundering activities, including other information which might be of importance to the FIU (Financial Investigation Unit).
- they are widely used in payment messages to provide a narrative description in addition to structured information, which will allow the recipient of the message to obtain a sufficient level of information that cannot be reflected in structured data alone (e.g., remittance information, instruction for next agent, instruction for creditor's agent, regulatory reporting, etc).
- they are used in watchlists to provide a narrative description in addition to structured information about an entity, which provides detailed information about the person sanctioned or prosecuted by the police.
Screena proposes an end-to-end solution to minimize the human labeling effort for entity matching on unstructured data sets, and particularly in Narratives. We use several text analytics techniques that clearly outperform comparable entity matching approaches on an unstructured real world data set.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/entity-match"
Request
Endpoint: POST rest/v2/entity-match
{
"requestHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc34"
},
"queries": [{
"sourceData": [{
"dataID": "2890",
"narrative": "bashar al assad is nearly on every sanction list and is obviously not one of our clients"
}],
"targetData": [{
"dataID": "3015",
"entityType": "individual",
"names": [{
"fullName": "bashar al assad "
}]
}],
"threshold": 0.65
}]
}
Attribute | Description | Required |
---|---|---|
sourceData Array of Data Objects |
Set of source data to run the match query from. | Yes |
dataID String |
Unique Identifier of the data record. | No |
narrative String |
Narrative to match: unstructured data of up to 5000 characters. | No |
targetData Array of Data Objects |
Set of target data to run the match query against. The child attributes of targetData are the same as those that you can find in sourceData of Individuals, Organizations, and Vessels. |
Yes |
threshold Decimal |
The AI match threshold is the probability represented by a value from 0 to 1 at which the user decides it is deemed certain that a record is similar to another one. If this parameter is not provided, Screena will apply a default threshold value set at 0.60. Refer to Name-Matching Algorithms for more info. |
No |
Response Attributes
Response attributes are similar than those provided when matching organizations or unknown entities.
Response: The JSON response presented as an example is limited for simplification reasons. All the non-matching elements returned in the response are not displayed in the example.
{
"matchType": "st_match",
"score": 1.00,
"sourceData": [{
"dataID": "2890",
"entityType": "unknown",
"names": [{
"fullName": "bashar al assad",
"normalized": "bashar al assad"
}],
"cultureCodes": [
"ar"
],
"narrative": "bashar al assad is nearly on every sanction list and is obviously not one of our clients"
}],
"targetData": [{
"dataID": "3015",
"entityType": "individual",
"names": [{
"fullName": "bashar al assad ",
"normalized": "bashar al assad"
}],
"cultureCodes": [
"ar"
]
}]
}
Attribute | Description |
---|---|
matchType String |
Type of the match result. Refer to Name-match Types for more info. |
score Decimal |
Name matching probability score: A high value of this score is a strong indication of a good name similarity. AI scores below the threshold value provided in the request are rejected. Refer to Name-Matching Algorithms for more info. |
unmatched Array of Strings |
Provide the unmatched attributes when the matchType is "no_match" or "ai_reject", as detected by Screena. |
sourceData Array of Data Objects |
Set of source data returned in the match result. |
dataID String |
Unique Identifier of the data record. |
narrative String |
Narrative used for the match: unstructured data of up to 5000 characters. |
entityType String |
Type of Named-Entities used for the match. This field is always returned, even if it was not provided in the match query (i.e.: unknown). Refer to Named-Entities Objects. |
names Array of Name Objects |
Name data used for the match. |
fullName String |
Full Name as it was posted to the API. |
targetData Array of Data Objects |
Set of target data to run the match query against. The child attributes of targetData are the same as those of sourceData . |
cultureCodes Array of Strings |
Code(s) of the culture(s) associated with the name, as detected by Screena. Refer to Name Cultures for more info. |
Screena Firm
Screena Firm is a full-featured, comprehensive solution, which can be used to match and search internal and external (including open-source and proprietary) data.
Getting a Task’s Status
Due to the volumes at stake, it may be necessary that while waiting for a process to complete you need to be informed about its status.
At any time, you can use the below GET
method to determine where this task stands.
Request Attributes
curl -s -X GET \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
"https://screena.ai/rest/v2/tasks/9340a7d73ef9499f1adff6e76b01e39d"
Endpoint: GET rest/v2/tasks/{taskID}
The query string is sent in the URL of the GET
request.
You need to pass the relevant label
into the query string too.
Response Attributes
Response
{
"taskID": "9340a7d73ef9499f1adff6e76b01e39d",
"type": "matching",
"dataset": "COMPANY 1",
"started": "2020-04-17T14:30:15.321+01:00",
"ended": "2020-04-17T14:33:20.321+01:00",
"status": "in progress",
"totalCount": "1000",
"duration": "PT3M5S"
}
Attribute | Description |
---|---|
taskID String |
Unique identifier of the asynchronous task. |
started String |
Date/Time when the task was started. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
ended String |
Date/Time when the task was ended. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
type String |
Type of task, can be "matching", "importing", or "indexing". |
status String |
Status of the task, can be "in progress", "completed", or "failed". |
totalCount String |
Total number of Records that need to be processed. |
dataset String |
When a "matching" task is ongoing, identifies the source Dataset. When an "importing" or "indexing" task is ongoing, identifies the Dataset under processing. |
duration String |
Effective task duration since it was started. Provided in ISO 8601 format: P[n]Y[n]M[n]DT[n]H[n]M[n]S. |
Creating Datasets
Before you start doing anything with Screena Firm, you need to create Datasets.
This POST
method allows to you to send a request to the API to do so.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/edit"
Request: Create a Dataset
Endpoint: POST rest/v2/datasets/edit
{
"datasets": [{
"label": "COMPANY 1",
"category": "CUSTOMER DATA"
}]
}
Attribute | Description | Required |
---|---|---|
label String |
Unique Name of the Dataset that shall exist in the Screena Firm repository. | Yes |
category String |
Category is used for organizing the Datasets into groups that can be categorized in some way similar to each other. It can be a watchlist, a grey list, a customer list, etc. | No |
active Boolean |
|
No |
Response Attributes
Response: Successful creation of the Dataset
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc29",
"responded": "2020-05-07T06:07:23.171Z"
},
"success": true
}
Returns a confirmation message that the Dataset(s) was/were successfully created.
Attribute | Description |
---|---|
success Boolean |
|
(In)activating Datasets
You can inactivate and reactivate but never rename Datasets.
You simply have to set the active
attribute to either false or true based on your needs.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/edit"
Endpoint: POST rest/v2/datasets/edit
Request: Inactivate a Dataset
{
"datasets": [{
"label": "COMPANY 1",
"active": false
}]
}
Attribute | Description | Required |
---|---|---|
label String |
Unique Name of the Dataset that shall exist in the Screena Firm repository. | Yes |
active Boolean |
|
No |
Response Attributes
Response: Successful inactivation of the Dataset
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc29",
"responded": "2020-05-07T06:07:23.171Z"
},
"success": true
}
Returns a confirmation message that the Dataset was successfully inactivated or reactivated.
Attribute | Description |
---|---|
success Boolean |
|
Listing Datasets
This GET
method allows to retrieve and list all Datasets created into the Screena Firm repository.
Request Attributes
curl -s -X GET \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
"https://screena.ai/rest/v2/datasets"
Endpoint: GET rest/v2/datasets
The query string is sent in the URL of the GET
request.
Response Attributes
Response
{
"responseHeader": {
"responded": "2020-07-17T15:30:15.321+01:00"
},
"datasets": [{
"label": "COMPANY 1",
"active": true,
"category": "CUSTOMER DATA",
"created": "2021-09-13T10:18:23.709",
"totalCount": "2000"
},
{
"label": "COMPANY 2",
"active": true,
"category": "CUSTOMER DATA",
"created": "2021-09-13T10:18:23.709",
"totalCount": "251230"
},
{
"label": "WATCHLIST 1",
"active": true,
"category": "PROPRIETARY",
"created": "2021-09-13T10:18:23.709",
"totalCount": "8997"
},
{
"label": "UN",
"active": true,
"category": "SANCTION",
"created": "2021-09-13T10:18:23.709",
"totalCount": "934",
"dateOfPublication": "2023-04-27T19:08:39.145",
"dateOfUpload": "2023-05-05T02:45:36.66"
}
]
}
Attribute | Description |
---|---|
label String |
Name of the Dataset, which shall be unique. |
created String |
Creation Date/Time of the Dataset. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
active Boolean |
|
totalCount Integer |
Count of the total number of Records with which the Dataset is currently populated. |
category String |
Category is used for organizing the Datasets into groups that can be categorized in some way similar to each other. |
dateOfPublication String |
Latest official Publication Date/Time by the owner of the source. Only returned for the Datasets included in our official set of supported Watchlists. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
dateOfUpload String |
Latest Upload Date/Time into the Screena Firm repository. Only returned for the Datasets included in our official set of supported Watchlists. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
Deleting Datasets
This DELETE
method allows to delete Datasets into the Screena Firm Repository.
Contrary to an inactivation, this method ensures hard deletion.
Request Attributes
curl -s -X DELETE \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
"https://screena.ai/rest/v2/datasets/delete/COMPANY 2"
Endpoint: DELETE rest/v2/datasets/delete/{label}
The query string is sent in the URL of the DELETE
request.
You need to pass the relevant label
into the query string too.
Response Attributes
Response
{
"responseHeader": {
"responded": "2020-05-07T06:07:23.171Z"
},
"success": true
}
Returns a confirmation message that the Dataset was successfully deleted.
Attribute | Description |
---|---|
success Boolean |
|
Populating Datasets
Contrary to Screena One and Plus, Screena Firm uses a persistance layer.
Populating Datasets in Screena Firm is either synchronous or asynchronous and always require to extract, transform and load your own data sources and index them.
1. Extract data: In this stage, the data is collected, often from multiple and different types of sources. Whether your data is in a database, a collection of XML files, spreadsheets, or any other format, it doesn't matter to us. You must extract the data from your data sources and format it in a way that Screena recognizes. Concretely, you have to create Records with attributes. You don't need to extract everything. The process must be selective about what is in the file, gathering only information useful for building requests for matching or searching.
2. Transform data: You need to transform your extract from its previous form into a Screena-compatible format - JSON Records or Bulk Import, depending on the chosen method – either synchronous or asynchronous.
3. Load data: You need to load your Records into a Screena Repository, using our API.
This is all you need to start searching and matching your data.
Posting Records
This POST
method allows to send one to many records
into a Dataset in a single API call.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/post-records"
Endpoint: POST rest/v2/datasets/post-records
Individuals
Request: The following example shows how you can send a complex record via the API into a previously created Dataset. This example makes use of the synchronous capability of the application.
{
"datasets": [{
"label": "COMPANY 1",
"records": [{
"dataID": "15999",
"entityType": "individual",
"names": [{
"givenName": "John",
"surname": "Kennedy",
"motherName": "Fitzgerald"
}, {
"fullName": "John Kennedy"
}, {
"fullName": "JFK"
}, {
"fullName": "Jack Kennedy"
}],
"sex": "M",
"titles": [
"President of the United States"
],
"keywords": [
"Deceased Politically Exposed Person"
],
"sources": [
"https://en.wikipedia.org/wiki/John_F._Kennedy", "https://www.jfklibrary.org/"
],
"nationalities": [{
"country": "US"
}],
"datesOfBirth": [{
"date": "1917-05-29"
}],
"placesOfBirth": [{
"city": "Brookline",
"state": "Massachusetts",
"country": "US"
}],
"addresses": [{
"street": "131 Cambridge St",
"zipCode": "MA 02114",
"city": "Boston",
"country": "US"
}, {
"street": "1600 Pennsylvania Ave NW",
"zipCode": "DC 20500",
"city": "Washington",
"country": "US"
}]
}]
},
{
"label": "COMPANY 2",
"records": [{
"dataID": "1",
"entityType": "individual",
"names": [{
"fullName": "Jean Marais"
}],
"sex": "M",
"nationalities": [{
"country": "FR"
}],
"placesOfBirth": [{
"country": "FR"
}]
}]
}
]
}
Attribute | Description | Required |
---|---|---|
label String |
Unique Name of the Dataset that shall exist in the Screena Firm repository. | Yes |
records Array of Data Objects |
Set of source data used to populate the Dataset. | Yes |
dataID String |
Unique Identifier of the data record. | No |
entityType String |
Type of Named-Entities: shall be an individual. Refer to Named-Entities Objects for more info. |
Yes individual |
names Array of Name Objects |
Name data in any and all scripts. At least one name attribute must be provided. |
Yes |
givenName String |
Given Name. | No |
surname String |
Surname. | No |
fatherName String |
Father Name. | No |
motherName String |
Mother Name. | No |
fullName String |
Full Name. | No |
sex String |
Sex for an individual. Refer to Sexes and Genders for more info. |
No |
nationalities Array of Location Objects |
Nationality for an individual, can be many. See child attributes for Countries. |
No |
datesOfBirth Array of Date Objects |
Date of birth for an individual, can be many. Refer to Dates for more info. |
No |
placesOfBirth Array of Location Objects |
Place of birth for an individual, can be many. See child Attributes for Places. |
No |
addresses Array of Location Objects |
Address for an individual, can be many. See child Attributes for Addresses. |
No |
titles Array of Strings |
Individual's position or job, can be many. | No |
keywords Array of Strings |
Word or phrase that is associated with a particular individual, organization or vessel and that describes information related to them. Typically in the context of Financial Crime Compliance, sanction regimes or law enforcement agencies’ programs (e.g., “Al-Qaida” or “White Collar Crimes”) are referred to as keywords. | No |
sources Array of Strings |
Any source from which information about the individual comes, arises, or is obtained. | No |
identityDocuments Array of Identity Document Objects |
Identity Document of an individual, can be many. See child attributes for Identity Documents. |
No |
contactInformation Array of Contact Information Objects |
Contact information of an individual, can be many. See child attributes for Contact Information. |
No |
digitalCurrencies Array of Digital Currency Objects |
Digital Currency related data, can be many. See child attributes for Digital Currencies. |
No |
additionalInformation Array of Strings |
Additional information about an individual, can be many. | No |
active Boolean |
|
No |
Organizations
Attribute | Description | Required |
---|---|---|
label String |
Unique Name of the Dataset that shall exist in the Screena Firm repository. | Yes |
records Array of Data Objects |
Set of source data used to populate the Dataset. | Yes |
dataID String |
Unique Identifier of the data record. | No |
entityType String |
Type of Named-Entities: shall be an organization. Refer to Named-Entities Objects for more info. |
Yes organization |
names Array of Name Objects |
Name data in any and all scripts. At least one name attribute must be provided. |
Yes |
fullName String |
Full Name. | No |
bic String |
Business Identifier Code (BIC) data to match (8-11 characters). | No |
lei String |
Legal Entity Identifier (LEI) data to match (20 characters). | No |
datesOfRegistry Array of Date Objects |
Date of registry for an organization, can be many. Refer to Dates for more info. |
No |
placesOfRegistry Array of Location Objects |
Place of registry for an organization, can be many. See child Attributes for Places. |
No |
addresses Array of Location Objects |
Address for an organization, can be many. See child Attributes for Addresses. |
No |
keywords Array of Strings |
Word or phrase that is associated with a particular individual, organization or vessel and that describes information related to them. Typically in the context of Financial Crime Compliance, sanction regimes or law enforcement agencies’ programs (e.g., “Al-Qaida” or “White Collar Crimes”) are referred to as keywords. | No |
sources Array of Strings |
Any source from which information about the organization comes, arises, or is obtained. | No |
identityDocuments Array of Identity Document Objects |
Identity Document of an organization, can be many. See child attributes for Identity Documents. |
No |
contactInformation Array of Contact Information Objects |
Contact information of an organization, can be many. See child attributes for Contact Information. |
No |
digitalCurrencies Array of Digital Currency Objects |
Digital Currency related data, can be many. See child attributes for Digital Currencies. |
No |
additionalInformation Array of Strings |
Additional information about an organization, can be many. | No |
active Boolean |
|
No |
Vessels
Attribute | Description | Required |
---|---|---|
label String |
Unique Name of the Dataset that shall exist in the Screena Firm repository. | Yes |
records Array of Data Objects |
Set of source data used to populate the Dataset. | Yes |
dataID String |
Unique Identifier of the data record. | No |
entityType String |
Type of Named-Entities: shall be a vessel. Refer to Named-Entities Objects for more info. |
Yes vessel |
names Array of Name Objects |
Name data in any and all scripts. At least one name attribute must be provided. |
Yes |
fullName String |
Full Name | No |
flags Array of Location Objects |
Flags of vessel, can be many. See child attributes for Countries. |
No |
datesOfBuild Array of Date Objects |
Date at which the vessel was completed, can be many. See child Attributes for Dates. |
No |
keywords Array of Strings |
Word or phrase that is associated with a particular individual, organization or vessel and that describes information related to them. Typically in the context of Financial Crime Compliance, sanction regimes or law enforcement agencies’ programs (e.g., “Al-Qaida” or “White Collar Crimes”) are referred to as keywords. | No |
sources Array of Strings |
Any source from which information about the vessel comes, arises, or is obtained. | No |
additionalInformation Array of Strings |
Additional information about a vessel, can be many. | No |
identityDocuments Array of Identity Document Objects |
Identity Document related to a vessel, can be many. See child attributes for Identity Documents. |
No |
active Boolean |
|
No |
Responses Attributes
Response
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc29",
"responded": "2020-05-07T06:07:23.171Z"
},
"success": true,
"processed": "2"
}
Returns a confirmation message that the Dataset was successfully populated.
Attribute | Description |
---|---|
success Boolean |
|
processed Integer |
Total number of Records processed with which the Dataset has been populated. |
Dataset Bulk Importing
This POST
method allows to start the bulk import of your data into Dataset.
This method makes use of multipart/form-data
, which is one of the value of enctype attribute used in form elements that have a file upload.
The multi-part means that the form data divides the file into multiple parts and sends it to the server.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: multipart/form-data" \
-F 'upload_file=@/path/to/file' \
"https://screena.ai/rest/v2/datasets/bulk-import"
Endpoint: POST rest/v2/datasets/bulk-import
Response Attributes
Response
{
"responseHeader": {
"responded": "2021-05-08T10:44:57.458Z"
},
"taskID": "TSK2054093905-1620470697458"
}
Returns a confirmation message that the asynchronous batch process was successfully started and a taskID
is allocated.
(In)activating Records
This POST method allows to manage the activation and inactivation of one to many records into a Dataset in a single API call. Inactivating Records removes Records from the matching process without having to permanently delete them.
This effectively means that at any time you can activate and reactivate relevant Records.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/edit-records"
Endpoint: POST rest/v2/datasets/edit-records
Request: The following example shows how you can inactivate Records via the API.
{
"datasets": [{
"label": "COMPANY 1",
"records": [{
"dataID": "15999",
"active": false
}, {
"dataID": "169",
"active": false
}, {
"dataID": "170",
"active": false
}]
}]
}
Attribute | Description | Required |
---|---|---|
label String |
Unique Name of the Dataset that shall exist in the Screena Firm repository. | Yes |
records Array of Data Objects |
Set of source data used to populate the Dataset. | Yes |
dataID String |
Unique Identifier of the data record. | No |
active Boolean |
|
No |
Response Attributes
Response
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc29",
"responded": "2020-05-07T06:07:23.171Z"
},
"success": true,
"processed": "3"
}
Returns a confirmation message that the Record was successfully inactivated or reactivated.
Attribute | Description |
---|---|
success Boolean |
|
processed String |
Number or records that have been successfully processed (i.e. inactivated/activated). |
Browsing Records
This POST
method allows to browse records in the Datasets created into the Screena Firm Repository.
You can use any of the below attributes independently or combined together to browse and filter the Records you need.
Instead of fetching all the Records of a Dataset – which might take a long while or simply be irrelevant due to the volume at stake, you can directly browse one specific record through its dataID
(in combinaison with its revision
attribute if needed) or filter all the Records created within a specific day/time range.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
"https://screena.ai/rest/v2/datasets/browse-records"
Endpoint: POST rest/v2/datasets/browse-records
Request: If you would like to browse Records solely based on creation dates in a Dataset then you should do this.
{
"datasets": [{
"label": "COMPANY 1",
"records": [{
"created": "2020-01-01/2020-12-31"
}]
}]
}
Attribute | Description | Required |
---|---|---|
label String |
Name of your Dataset as you specified it. | No |
created String |
Creation Date of the Record. Shall be provided in ISO 8601 format: YYYY-MM-DD or YYYY-MM-DD/YYYY-MM-DD. |
No |
updated String |
Update Date of the Record. Shall be provided in ISO 8601 format: YYYY-MM-DD or YYYY-MM-DD/YYYY-MM-DD. |
No |
category String |
Dataset category. It can be a watchlist, a grey list, a customer list, etc. | No |
lastMatched String |
Date/Time when the Record was last matched. This field is used to manage deltas in Delta Screening. Shall be provided in ISO 8601 format: YYYY-MM-DD or YYYY-MM-DD/YYYY-MM-DD. |
No |
lastChecked (Deprecated)String |
Date/Time when the Record was last matched. This field is used to manage deltas in Delta Screening. Shall be provided in ISO 8601 format: YYYY-MM-DD or YYYY-MM-DD/YYYY-MM-DD. |
No |
dataID String |
Unique Identifier of the data record. | No |
revision Integer |
Revision of the data Record, which keeps history of every change. | No |
Response Attributes
Returns the relevant Records further to the browsing request.
Individuals
Response
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc27",
"responded": "2021-04-17T14:30:15.321+01:00"
},
"datasets": [{
"label": "COMPANY 1",
"records": [{
"dataID": "15999",
"entityType": "individual",
"names": [{
"givenName": "John",
"surname": "Kennedy",
"motherName": "Fitzgerald"
}, {
"fullName": "John Kennedy"
}, {
"fullName": "JFK"
}, {
"fullName": "Jack Kennedy"
}],
"sex": "M",
"nationalities": [{
"country": "US"
}],
"datesOfBirth": [{
"date": "1917-05-29"
}],
"placesOfBirth": [{
"city": "Brookline",
"state": "Massachusetts",
"country": "US"
}],
"addresses": [{
"street": "131 Cambridge St",
"zipCode": "MA 02114",
"city": "Boston",
"country": "US"
}, {
"street": "1600 Pennsylvania Ave NW",
"zipCode": "DC 20500",
"city": "Washington",
"country": "US"
}],
"categories": [
"RETAIL"
],
"active": true,
"dataset": {
"label": "COMPANY 1",
"category": "CUSTOMER DATA"
},
"revision": 2,
"created": "2020-04-17T14:30:15.321+01:00",
"updated": "2020-04-21T17:33:25.441+01:00",
"lastMatched": "2021-02-26T18:28:40.923"
}]
}]
}
Attribute | Description |
---|---|
label String |
Name of your Dataset as you specified it. |
records Array of Data Objects |
Set of source data used to populate the Dataset. |
dataID String |
Unique Identifier of the data record. |
entityType String |
Type of Named-Entities: shall be an individual. Refer to Named-Entities Objects for more info. |
names Array of Name Objects |
Name data in any and all scripts. At least one name attribute must be provided. |
givenName String |
Given Name. |
surname String |
Surname. |
fatherName String |
Father Name. |
motherName String |
Mother Name. |
fullName String |
Full Name. |
sex String |
Sex for an individual. Refer to Sexes and Genders for more info. |
nationalities Array of Location Objects |
Nationality for an individual, can be many. See child attributes for Countries. |
datesOfBirth Array of Date Objects |
Date of birth for an individual, can be many. Refer to Dates for more info. |
placesOfBirth Array of Location Objects |
Place of birth for an individual, can be many. See child Attributes for Places. |
addresses Array of Location Objects |
Address for an individual, can be many. See child Attributes for Addresses. |
titles Array of Strings |
Individual's position or job, can be many. |
keywords Array of Strings |
Word or phrase that is associated with a particular individual, organization or vessel and that describes information related to them. Typically in the context of Financial Crime Compliance, sanction regimes or law enforcement agencies’ programs (e.g., “Al-Qaida” or “White Collar Crimes”) are referred to as keywords. |
sources Array of Strings |
Any source from which information about the individual comes, arises, or is obtained. |
identityDocuments Array of Identity Document Objects |
Identity Document of an individual, can be many. See child attributes for Identity Documents. |
contactInformation Array of Contact Information Objects |
Contact information of an individual, can be many. See child attributes for Contact Information. |
digitalCurrencies Array of Digital Currency Objects |
Digital Currency related data, can be many. See child attributes for Digital Currencies. |
additionalInformation Array of Strings |
Additional information about an individual, can be many. |
category (Deprecated)String |
Dataset category. It can be a watchlist, a grey list, a customer list, etc. |
categories (New)Array of Strings |
Class or division of individuals regarded as having particular shared characteristics, can be many. |
active Boolean |
|
label (Deprecated)Integer |
Specific dataset's label from which the data record was retrieved. |
dataset (New)Dataset Object |
Specific dataset from which the data record was retrieved. See child attributes for Dataset. |
revision Integer |
Revision of the data record, which keeps history of every change. |
created String |
Creation Date/Time of the record. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
updated String |
Update Date/Time of the record. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
lastMatched String |
Date/Time when the Record was last matched. This field is used to manage deltas in Delta Screening. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
lastChecked (Deprecated)String |
Date/Time when the Record was last matched. This field is used to manage deltas in Delta Screening. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
Organizations
Attribute | Description |
---|---|
label String |
Name of your Dataset as you specified it. |
records Array of Data Objects |
Set of source data used to populate the Dataset. |
dataID String |
Unique Identifier of the data record. |
entityType String |
Type of Named-Entities: shall be an organization. Refer to Named-Entities Objects for more info. |
names Array of Name Objects |
Name data in any and all scripts. At least one name attribute must be provided. |
fullName String |
Full Name. |
bic String |
Business Identifier Code (BIC) data to match (8-11 characters). |
lei String |
Legal Entity Identifier (LEI) data to match (20 characters). |
datesOfRegistry Array of Date Objects |
Date of registry for an organization, can be many. Refer to Dates for more info. |
placesOfRegistry Array of Location Objects |
Place of registry for an organization, can be many. See child Attributes for Places. |
addresses Array of Location Objects |
Address for an organization, can be many. See child Attributes for Addresses. |
keywords Array of Strings |
Word or phrase that is associated with a particular individual, organization or vessel and that describes information related to them. Typically in the context of Financial Crime Compliance, sanction regimes or law enforcement agencies’ programs (e.g., “Al-Qaida” or “White Collar Crimes”) are referred to as keywords. |
sources Array of Strings |
Any source from which information about the organization comes, arises, or is obtained. |
identityDocuments Array of Identity Document Objects |
Identity Document of an organization, can be many. See child attributes for Identity Documents. |
contactInformation Array of Contact Information Objects |
Contact information of an organization, can be many. See child attributes for Contact Information. |
digitalCurrencies Array of Digital Currency Objects |
Digital Currency related data, can be many. See child attributes for Digital Currencies. |
additionalInformation Array of Strings |
Additional information about an organization, can be many. |
category (Deprecated)String |
Dataset category. It can be a watchlist, a grey list, a customer list, etc. |
categories (New)Array of Strings |
Class or division of organizations regarded as having particular shared characteristics, can be many. |
active Boolean |
|
label (Deprecated)Integer |
Specific dataset's label from which the data record was retrieved. |
dataset (New)Dataset Object |
Specific dataset from which the data record was retrieved. See child attributes for Dataset. |
revision Integer |
Revision of the data record, which keeps history of every change. |
created String |
Creation Date/Time of the record. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
updated String |
Update Date/Time of the record. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
lastMatched String |
Date/Time when the Record was last matched. This field is used to manage deltas in Delta Screening. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
lastChecked (Deprecated)String |
Date/Time when the Record was last matched. This field is used to manage deltas in Delta Screening. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
Vessels
Attribute | Description |
---|---|
label String |
Name of your Dataset as you specified it. |
records Array of Data Objects |
Set of source data used to populate the Dataset. |
dataID String |
Unique Identifier of the data record. |
entityType String |
Type of Named-Entities: shall be a vessel. Refer to Named-Entities Objects for more info. |
names Array of Name Objects |
Name data in any and all scripts. At least one name attribute must be provided. |
fullName String |
Full Name. |
flags Array of Location Objects |
Flags of vessel, can be many. See child attributes for Countries. |
datesOfBuild Array of Date Objects |
Date at which the vessel was completed, can be many. See child Attributes for Dates. |
keywords Array of Strings |
Word or phrase that is associated with a particular individual, organization or vessel and that describes information related to them. Typically in the context of Financial Crime Compliance, sanction regimes or law enforcement agencies’ programs (e.g., “Al-Qaida” or “White Collar Crimes”) are referred to as keywords. |
identityDocuments Array of Identity Document Objects |
Identity Document of a vessel, can be many. See child attributes for Identity Documents. |
sources Array of Strings |
Any source from which information about the vessel comes, arises, or is obtained. |
additionalInformation Array of Strings |
Additional information about a vessel, can be many. |
category (Deprecated)String |
Dataset category. It can be a watchlist, a grey list, a customer list, etc. |
categories Array of Strings |
Class or division of individuals regarded as having particular shared characteristics, can be many. |
active Boolean |
|
label (Deprecated)Integer |
Specific dataset's label from which the data record was retrieved. |
dataset (New)Dataset Object |
Specific dataset from which the data record was retrieved. See child attributes for Dataset. |
revision Integer |
Revision of the data record, which keeps history of every change. |
created String |
Creation Date/Time of the record. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
updated String |
Update Date/Time of the record. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
lastMatched String |
Date/Time when the Record was last matched. This field is used to manage deltas in Delta Screening. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
lastChecked (Deprecated)String |
Date/Time when the Record was last matched. This field is used to manage deltas in Delta Screening. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
Deleting Records
This DELETE
method allows to delete records created within Datasets.
Contrary to an inactivation, this method ensures hard deletion.
Request Attributes
curl -s -X DELETE \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
"https://screena.ai/rest/v2/records/456"
Endpoint: DELETE rest/v2/datasets/delete/{label}/record/{dataID}
The query string is sent in the URL of the DELETE
request.
You need to pass the relevant label
and dataID
into the query string too.
Response Attributes
Response
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc29",
"responded": "2020-05-07T06:07:23.171Z"
},
"success": true
}
Returns a confirmation message that the Record was successfully deleted.
Attribute | Description |
---|---|
success Boolean |
|
Searching Datasets
Designed for data searching named-entities with large sets of data, Screena Firm was engineered taking into account the possibility of having multiple Datasets.
This POST
method allows to send one to many search queries
in a single API call, it executes a search of all Named-Entities in sourceData
against all Datasets in targetData
.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/dataset-search"
Endpoint: POST rest/v2/dataset-search
Request
{
"queries": [{
"sourceData": [{
"entityType": "individual",
"names": [{
"givenName": "john",
"surname": "kennedi"
}],
"addresses": [{
"country": "US"
}]
}],
"targetData": [{
"datasets": [{
"label": "COMPANY 1"
},
{
"label": "COMPANY 2"
}
]
}],
"threshold": 0.82,
"addressAlgo": {
"type": "same_region"
}
}]
}
Attribute | What can be used ? | Required |
---|---|---|
sourceData Array of Data Objects |
Use All the Request Attributes that are available in Screena Plus:
|
Yes |
targetData Array of Data Objects |
Use label in targetData to search within particular Dataset(s). |
No |
threshold Decimal |
The AI match threshold is the probability represented by a value from 0 to 1 at which the user decides it is deemed certain that a record is similar to another one. If this parameter is not provided, Screena will apply a default threshold value set at 0.60. Refer to Name-Matching Algorithms for more info. |
No |
- |
All available algorithms. Refer to Algorithms for more information. |
No |
Response Attributes
Response
{
"responseHeader": {
"requestID": "GEN2054093905-1620722489823",
"responded": "2021-05-11T08:41:29.823Z"
},
"results": [{
"matchType": "ai_accept",
"score": 0.84,
"sourceData": [{
"entityType": "individual",
"names": [{
"surname": "kennedi",
"givenName": "john",
"normalized": "john kennedi"
}],
"cultureCodes": [
"en"
],
"addresses": [{
"country": "US",
"normalized": "AMERICAS"
},
{
"country": "US",
"normalized": "AMERICAS"
}
]
}],
"targetData": [{
"dataID": "15999",
"entityType": "unknown",
"names": [{
"surname": "Kennedy",
"givenName": "John",
"motherName": "Fitzgerald",
"normalized": "john fitzgerald kennedy"
}],
"cultureCodes": [
"cy",
"en",
"ga"
],
"addresses": [{
"street": "131 Cambridge St",
"city": "Boston",
"country": "US",
"zipCode": "MA 02114",
"normalized": "AMERICAS"
},
{
"street": "1600 Pennsylvania Ave NW",
"city": "Washington",
"country": "US",
"zipCode": "DC 20500",
"normalized": "AMERICAS"
}
],
"dataset": {
"label": "COMPANY 1",
"category": "CUSTOMER DATA"
}
}]
},
{
"matchType": "st_match",
"score": 0.98,
"sourceData": [{
"entityType": "individual",
"names": [{
"surname": "kennedi",
"givenName": "john",
"normalized": "john kennedi"
}],
"cultureCodes": [
"en"
],
"addresses": [{
"country": "US",
"normalized": "AMERICAS"
},
{
"country": "US",
"normalized": "AMERICAS"
}
]
}],
"targetData": [{
"dataID": "15999",
"entityType": "unknown",
"names": [{
"fullName": "John Kennedy",
"normalized": "john kennedy"
}],
"cultureCodes": [
"cy",
"en",
"ga"
],
"addresses": [{
"street": "131 Cambridge St",
"city": "Boston",
"country": "US",
"zipCode": "MA 02114",
"normalized": "AMERICAS"
},
{
"street": "1600 Pennsylvania Ave NW",
"city": "Washington",
"country": "US",
"zipCode": "DC 20500",
"normalized": "AMERICAS"
}
],
"dataset": {
"label": "COMPANY 1",
"category": "CUSTOMER DATA"
}
}]
}
]
}
Attribute | What is returned ? |
---|---|
matchType String |
Type of the match result. Refer to Name-match Types for more info. |
score Decimal |
Name matching probability score: A high value of this score is a strong indication of a good name similarity. AI scores below the threshold value provided in the request are rejected. Refer to Name-Matching Algorithms for more info. |
sourceData Array of Data Objects |
Get the same Response Attributes that are available in Screena Plus:
|
targetData Array of Data Objects |
Get the same Response Attributes that are available in Screena Plus:
|
Exporting Search Reports
Exporting Search Reports is a feature designed for data searching named-entities with large sets of data and obtaining the results of the search in the form of PDF or CSV report.
When using the dataset search capability, users may need to extract search results to share or analyze data outside of the search engine. The exporting reports feature allows users to export the search results in the form of a PDF or CSV report, making it easy to share and analyze data with others.This feature is also especially useful for preserving a proof of a search at a particular time.
This POST
method allows to send one to many search queries
in a single API call, it executes a search of all Named-Entities in sourceData
against all Datasets in targetData
.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets//dataset-search-engine-export"
Endpoints: POST rest/v2/dataset-search-engine-export
and POST rest/v2/dataset-search-engine-export-pdf
Request
{
"queries": [{
"sourceData": [{
"entityType": "individual",
"names": [{
"givenName": "vladimir",
"surname": "Putin"
}],
"addresses": [{
"country": "RU"
}]
}],
"targetData": [{
"datasets": [{
"label": "EU"
},
{
"label": "OFAC"
}
]
}],
"threshold": 0.80,
"addressAlgo": {
"type": "same_region"
}
}]
}
Attribute | What can be used ? | Required |
---|---|---|
sourceData Array of Data Objects |
Use All the Request Attributes that are available in Screena Plus: | Yes |
targetData Array of Data Objects |
Use label in targetData to search within particular Dataset(s). |
No |
threshold Decimal |
The AI match threshold is the probability represented by a value from 0 to 1 at which the user decides it is deemed certain that a record is similar to another one. If this parameter is not provided, Screena will apply a default threshold value set at 0.60. Refer to Name-Matching Algorithms for more info. |
No |
- |
All available algorithms. Refer to Algorithms for more information. |
No |
Response Attributes
When a request is made, the resulting output is provided in the form of either a PDF or CSV file. These files contain comprehensive information about the source and target data.
Integrating Watchlist Screening
Screena is designed to integrate with watchlists and third-party risk intelligence for named-entity screening.
This POST
method provides additional features compared to the regular Searching Datasets method, including:
- Pagination: Divides returned content across a series of pages. It is a common and widely used technique for websites to use pagination to divide returned results into a digestible format.
- Statistics: Returns statistics on search terms.
- Matching Names: Gives the exact matching name that correlates with the searched one.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/dataset-search-engine"
Endpoint: POST rest/v2/dataset-search-engine
Request: Search by Name
{
"queries": [{
"sourceData": [{
"names": [{
"fullName": "emmanuel macron"
}]
}],
"targetData": [{
"datasets": [{
"label": "EU"
},
{
"label": "WORLD LEADERS"
}
]
}],
"threshold": 0.57
}],
"paginationRequest": {
"pageNumber": 0,
"maxPerPage": 2,
"calculateSearchStats": true
}
}
Request: Search by Identity Document
{
"queries": [{
"sourceData": [{
"identityDocuments": [{
"number": "7722437025"
}]
}],
"targetData": [{
"datasets": [{
"label": "USA"
}]
}],
"identityDocumentAlgo": {
"type": "exact_match"
}
}]
}
Request: Search by BIC
{
"queries": [{
"sourceData": [{
"bic": "SABRRUMM"
}],
"targetData": [{
"datasets": [{
"label": "USA"
}]
}],
"bicAlgo": {
"type": "exact_match"
}
}]
}
Request: Search by LEI
{
"queries": [{
"sourceData": [{
"lei": "25340038P8SYW80B9W34"
}],
"targetData": [{
"datasets": [{
"label": "USA"
}]
}],
"leiAlgo": {
"type": "exact_match"
}
}]
}
Attribute | What can be used ? | Required |
---|---|---|
sourceData Array of Data Objects |
Use All the Request Attributes that are available in Screena Plus: | Yes |
targetData Array of Data Objects |
Use label in targetData to search within particular Dataset(s). |
No |
paginationRequest Array of Pagination Objects |
Divide search results into several pages. | No |
pageNumber Integer |
Number of the page to be returned. | No |
maxPerPage Integer |
Maximum number of results provided per page. | No |
calculateSearchStats Boolean |
Calculate statistics on the returned search results. | No |
threshold Decimal |
The AI match threshold is the probability represented by a value from 0 to 1 at which the user decides it is deemed certain that a record is similar to another one. If this parameter is not provided, Screena will apply a default threshold value set at 0.60. Refer to Name-Matching Algorithms for more info. |
No |
- |
All available algorithms. Refer to Algorithms for more information. |
No |
Response Attributes
Response
{
"responseHeader": {
"requestID": "GEN2054093905-1678608268248",
"responded": "2023-03-12T08:04:28.248Z"
},
"results": [{
"matchType": "st_match",
"score": 1.00,
"matchingNames": [{
"fullName": "Emmanuel MACRON",
"normalized": "emmanuel macron"
}],
"sourceData": [{
"entityType": "unknown",
"names": [{
"fullName": "emmanuel macron",
"normalized": "emmanuel macron"
}],
"cultureCodes": [
"en",
"fr"
]
}],
"targetData": [{
"dataID": "AD-245342216",
"entityType": "individual",
"names": [{
"fullName": "Emmanuel MACRON",
"normalized": "emmanuel macron"
}],
"cultureCodes": [
"en",
"fr"
],
"nationalities": [{
"country": "AD"
}],
"categories": [
"PEP"
],
"active": true,
"sources": [
"https://www.cia.gov/resources/government/andorra/"
],
"titles": [
"Head of State (Co-Prince)"
],
"dataset": {
"label": "WORLD LEADERS",
"category": "PEP",
"dateOfUpload": "2023-03-12T00:45:32.713"
},
"lastMatched": "2023-02-08T00:45:00.698",
"lastChecked": "2023-02-08T00:45:00.698"
}]
},
{
"matchType": "st_match",
"score": 1.00,
"matchingNames": [{
"fullName": "Emmanuel MACRON",
"normalized": "emmanuel macron"
}],
"sourceData": [{
"entityType": "unknown",
"names": [{
"fullName": "emmanuel macron",
"normalized": "emmanuel macron"
}],
"cultureCodes": [
"en",
"fr"
]
}],
"targetData": [{
"dataID": "FR-245342216",
"entityType": "individual",
"names": [{
"fullName": "Emmanuel MACRON",
"normalized": "emmanuel macron"
}],
"cultureCodes": [
"en",
"fr"
],
"nationalities": [{
"country": "FR"
}],
"categories": [
"PEP"
],
"active": true,
"sources": [
"https://www.cia.gov/resources/government/france/"
],
"titles": [
"Pres."
],
"dataset": {
"label": "WORLD LEADERS",
"category": "PEP",
"dateOfUpload": "2023-03-12T00:45:32.713"
},
"lastMatched": "2023-02-08T00:45:32.594",
"lastChecked": "2023-02-08T00:45:32.594"
}]
}
],
"numberOfObjects": 2,
"searchStats": {
"numberOfPeps": 2,
"numberOfSanctions": 0,
"numberOfWanteds": 0,
"numberOfAll": 2,
"numberOfOrganizations": 0,
"numberOfIndividuals": 2,
"numberOfUnknowns": 0,
"numberOfVessels": 0,
"foundDataset": [
"WORLD LEADERS"
]
}
}
Attribute | What is returned ? |
---|---|
matchType String |
Type of the match result. Refer to Name-match Types for more info. |
score Decimal |
Name matching probability score: A high value of this score is a strong indication of a good name similarity. AI scores below the threshold value provided in the request are rejected. Refer to Name-Matching Algorithms for more info. |
matchingNames Array of Name Objects |
Get the names that have matched your query. |
sourceData Array of Data Objects |
Get the same Response Attributes that are available in Screena Plus: |
targetData Array of Data Objects |
Get the same Response Attributes that are available in Screena Plus:
|
numberOfObjects Integer |
Total number of objects returned by the search. |
searchStats Statistic Object |
Get statistical information about your data, which can vary depending on the use case. |
Periodic Screening
Endpoint: POST rest/v2/dataset-search-engine-ongoing
The purpose of creating a dedicated endpoint for Periodic Screening of relevant watchlists (a.k.a. Ongoing Screening, Ongoing Due Diligence, Continuous Screening) is to separate it from one-time event-driven watchlist screening, which is closely associated with customer onboarding or payment processing.
This segregation is important because Periodic Screening typically involves a higher volume of transactions in batch. By segregating the two, the endpoint can be optimized for the specific needs of each type of screening, resulting in better overall performance.
It is worth noting that the functioning of this endpoint is similar to Integrating Watchlist Screening: the endpoint for Periodic Screening is simply designed to handle the unique requirements of Periodic Screening of watchlists and is optimized accordingly.
Matching Datasets
Designed for matching 2 or more large Datasets, this method executes a search of all Datasets specified in sourceData
against all Datasets specified in targetData
in a single API call.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/dataset-match"
Endpoint: POST rest/v2/dataset-match
Request
{
"requestHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc35"
},
"queries": [{
"sourceData": [{
"datasets": [{
"label": "COMPANY 1"
}]
}],
"targetData": [{
"datasets": [{
"label": "WATCHLIST 1"
}, {
"label": "WATCHLIST 2"
}]
}]
}],
"threshold": 0.90,
"nationalityAlgo": {
"type": "same_country"
},
"dateOfBirthAlgo": {
"type": "same_day_month_year"
},
"placeOfBirthAlgo": {
"type": "same_country"
},
"addressAlgo": {
"type": "same_region"
}
}
Attribute | What can be used ? | Required |
---|---|---|
sourceData Array of Data Objects |
Use label in sourceData to select one or many specific Datasets to run the match query from. |
Yes |
targetData Array of Data Objects |
Use label in targetData to select one or many specific Datasets to run the match query against. |
Yes |
threshold Decimal |
The AI match threshold is the probability represented by a value from 0 to 1 at which the user decides it is deemed certain that a record is similar to another one. If this parameter is not provided, Screena will apply a default threshold value set at 0.60. Refer to Name-Matching Algorithms for more info. |
No |
- |
All available algorithms. Refer to Algorithms for more information. |
No |
Response Attributes
Response
{
"responseHeader": {
"responded": "2021-05-08T10:44:57.458Z"
},
"taskID": "TSK2054093905-1620487949689"
}
Returns a confirmation message that the asynchronous batch process was successfully started and a taskID
is allocated.
By using the provided taskID
it is possible to know the progress of a task.
Refer to Asynchronous Tasks for more details.
Getting Match Results
As the process of matching 2 Datasets is asynchronous, you shall use a taskID
to retrieve the results.
The total population of Results can be split into:
- those being predicted as positives ("st_match" and "ai_accept"), and
- those being predicted as negatives ("no_match and ai_reject").
Three Endpoints are provided allowing to retrieve the match results suited to your needs:
- Full results (i.e. results predicted as positives as well as resultats predicted as negatives).
- Results predicted as positives.
- Results predicted as negatives.
Request Attributes
curl -s -X GET \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
"https://screena.ai/rest/v2/dataset-match/c779f2c29b054066b6c03d4da903dc35"
Endpoints:
GET rest/v2/dataset-match/{taskID}
: Getting full Results.GET rest/v2/dataset-match/positives/{taskID}
: Getting Results predicted as positives.GET rest/v2/dataset-match/negatives/{taskID}
: Getting Results predicted as negatives.
The query string is sent in the URL of the GET
request.
You need to pass the relevant taskID
into the query string too.
Response Attributes
Result
{
"responseHeader": {
"responded": "2021-04-25T17:42:41.829Z",
"taskID": "TSK2054093905-1619372310206"
},
"results": [{
"matchType": "ai_reject",
"score": 0.02,
"sourceData": [{
"dataID": "110406",
"entityType": "unknown",
"names": [{
"fullName": "Aali Akber Tahmaesebi",
"normalized": "aali akber tahmaesebi"
}],
"cultureCodes": ["ar"],
"active": true,
"dataset": {
"label": "thoughtbox-source"
},
"revision": 1,
"created": "2021-04-25T17:38:31.497",
"updated": "2021-04-25T17:38:31.497",
"lastMatched": "2021-02-26T10:39:39.852"
}],
"targetData": [{
"dataID": "6696",
"entityType": "individual",
"names": [{
"surname": "Tahmaesebi",
"givenName": "Sayed",
"fatherName": "Akbar",
"normalized": "sayed akbar tahmaesebi"
}],
"cultureCodes": ["bn", "pa", "ur"],
"active": true,
"dataset": {
"label": "EU",
"category": "SANCTION",
"dateOfPublication": "2023-05-02T00:00:00",
"dateOfUpload": "2023-05-09T08:10:29.172"
},
"revision": 1,
"created": "2021-04-25T17:38:31.497",
"updated": "2021-04-25T17:38:31.497",
"lastMatched": "2021-02-28T09:00:26.341"
}]
}]
}
Attribute | What is returned ? |
---|---|
matchType String |
Type of the match result. Refer to Name-match Types for more info. |
score Decimal |
Name matching probability score: A high value of this score is a strong indication of a good name similarity. AI scores below the threshold value provided in the request are rejected. Refer to Name-Matching Algorithms for more info. |
sourceData Array of Data Objects |
Get the same Response Attributes that are available in Screena Plus:
|
targetData Array of Data Objects |
Get the same Response Attributes that are available in Screena Plus:
|
About Delta Screening
Where either source or target Datasets change frequently, Delta Screening may be required.
Screena's Delta Screening feature avoids to periodically regenerate the same results. Once the full source Dataset has been screened against the full target Dataset, only deltas are considered.
The below lists all possible deltas:
- A new source record is a delta, and is matched against all target records.
- A new target record is a delta, and is matched against all source records.
- A change in a source record attribute is a delta. When it occurs the record is matched against all target records.
- A change in a target record attribute is a delta. When it occurs the record is matched against all source records.
High-Risk Locations
High-risk locations are typically:
- countries with significant gaps in their countermeasures against financial crime,
- countries with significant level of corruption,
- countries designed as such by international bodies such as the financial work force (FATF),
- places where there is a particularly significant risk of funding crime and/or terrorism,
- places with high crime rates.
Screena proposes a solution to minimize the effort relating to the detection of the occurrence of high-risk locations in data related to named-entities.
For convenience, there is no specific endpoint for high-risk locations detection. This feature accompanies the advanced name-screening features as provided in Screena Firm Searching Datasets as well as Integrating Watchlist Screening and usefully completes them.
Structured Addresses
Addresses which are structured by their individual components (e.g, country, postal code, city, street number) are the type of data in which it is the easiest to find the occurrence of a high-risk location.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/dataset-search"
Endpoint: POST rest/v2/dataset-search
For a comprehensive list of attributes that can be used, refer to Screena Firm Searching Datasets.
Request
{
"queries": [{
"sourceData": [{
"names": [{
"fullName": "Satuev Magomed"
}],
"addresses": [{
"city": "Raqqah",
"country": "SY"
}]
}],
"targetData": [{
"datasets": [{
"label": "INTERPOL"
}]
}],
"threshold": 0.90
}]
}
Response Attributes
For a complete list of attributes that are returned, refer to Screena Firm Searching Datasets. In addition to these attributes, you will obtain the specific attributes relating to the detection of high-risk location.
On top of other information, it returns an array of matchingCountries
.
Attribute | What is returned ? |
---|---|
country String |
Country matching with a high-risk location. |
ctrp String |
Cities, Towns, Regions & Ports matching with a high-risk location. |
risk String |
Risk related to the detected high-risk location. |
Response
{
"responseHeader": {
"requestID": "GEN2054093905-1703152291777",
"responded": "2023-12-21T09:51:31.777Z"
},
"results": [
{
"matchType": "st_match",
"score": 0.98,
"matchingNames": [
{
"surname": "SATUEV",
"givenName": "MAGOMED",
"normalized": "magomed satuev"
}
],
"sourceData": [
{
"entityType": "unknown",
"names": [
{
"fullName": "Satuev Magomed",
"normalized": "satuev magomed"
}
],
"cultureCodes": [
"ru"
]
}
],
"targetData": [
{
"dataID": "2021/70850",
"entityType": "individual",
"names": [
{
"surname": "SATUEV",
"givenName": "MAGOMED",
"normalized": "magomed satuev"
}
],
"cultureCodes": [
"ru"
],
"nationalities": [
{
"country": "RU"
}
],
"datesOfBirth": [
{
"date": "1983-05-14"
}
],
"placesOfBirth": [
{
"city": "LENINAUL VILLAGE (THE REPUBLIC OF DAGESTAN)",
"country": "RU"
}
],
"additionalInformation": [
"participation in the activity of a terrorist organization; participation in the activity of an illegal armed formation"
],
"categories": [
"WANTED"
],
"active": true,
"keywords": [
"Red Notice"
],
"sources": [
"https://ws-public.interpol.int/notices/v1/red/2021-70850"
],
"label": "INTERPOL",
"dataset": {
"label": "INTERPOL",
"category": "WANTED",
"dateOfUpload": "2023-12-21T00:41:39.531"
},
"lastMatched": "2023-02-08T00:48:14.844",
"lastChecked": "2023-02-08T00:48:14.844"
}
]
},
{
"matchingCountries": [
{
"country": "SY",
"risk": "Blacklisted Country (Syria)"
},
{
"country": "SY",
"ctrp": "raqqah",
"risk": "Blacklisted CTRP (Syria)"
}
],
"sourceData": [
{
"entityType": "unknown",
"addresses": [
{
"city": "Raqqah",
"country": "SY"
}
]
}
]
}
]
}
Freeform Addresses
The addresses in freeform are a challenge because its latest submitting the whole address in a single field. This method is not recommended when it is possible to provide the structured address.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/dataset-search"
Endpoint: POST rest/v2/dataset-search
Request
{
"queries": [{
"sourceData": [{
"names": [{
"fullName": "Satuev Magomed"
}],
"addresses": [{
"fullAddress": "Somewhere in Raqqah"
}]
}],
"targetData": [{
"datasets": [{
"label": "INTERPOL"
}]
}],
"threshold": 0.90
}]
}
Response Attributes
For a complete list of attributes that are returned, refer to Screena Firm Searching Datasets. In addition to these attributes, you will obtain the specific attributes relating to the detection of high-risk location.
On top of other information, it returns an array of matchingCountries
.
Attribute | What is returned ? |
---|---|
country String |
Country matching with a high-risk location. |
ctrp String |
Cities, Towns, Regions & Ports matching with a high-risk location. |
risk String |
Risk related to the detected high-risk location. |
Response
{
"responseHeader": {
"requestID": "GEN2054093905-1703152440605",
"responded": "2023-12-21T09:54:00.605Z"
},
"results": [
{
"matchType": "st_match",
"score": 0.98,
"matchingNames": [
{
"surname": "SATUEV",
"givenName": "MAGOMED",
"normalized": "magomed satuev"
}
],
"sourceData": [
{
"entityType": "unknown",
"names": [
{
"fullName": "Satuev Magomed",
"normalized": "satuev magomed"
}
],
"cultureCodes": [
"ru"
]
}
],
"targetData": [
{
"dataID": "2021/70850",
"entityType": "individual",
"names": [
{
"surname": "SATUEV",
"givenName": "MAGOMED",
"normalized": "magomed satuev"
}
],
"cultureCodes": [
"ru"
],
"nationalities": [
{
"country": "RU"
}
],
"datesOfBirth": [
{
"date": "1983-05-14"
}
],
"placesOfBirth": [
{
"city": "LENINAUL VILLAGE (THE REPUBLIC OF DAGESTAN)",
"country": "RU"
}
],
"additionalInformation": [
"participation in the activity of a terrorist organization; participation in the activity of an illegal armed formation"
],
"categories": [
"WANTED"
],
"active": true,
"keywords": [
"Red Notice"
],
"sources": [
"https://ws-public.interpol.int/notices/v1/red/2021-70850"
],
"label": "INTERPOL",
"dataset": {
"label": "INTERPOL",
"category": "WANTED",
"dateOfUpload": "2023-12-21T00:41:39.531"
},
"lastMatched": "2023-02-08T00:48:14.844",
"lastChecked": "2023-02-08T00:48:14.844"
}
]
},
{
"matchingCountries": [
{
"country": "SY",
"risk": "Blacklisted Country (Syria)"
},
{
"country": "SY",
"ctrp": "raqqah",
"risk": "Blacklisted CTRP (Syria)"
}
],
"sourceData": [
{
"entityType": "unknown",
"addresses": [
{
"country": "SY",
"fullAddress": "raqqah"
}
]
}
]
}
]
}
Narratives
Finding the presence of geographic information in narratives is mainly used in the field of the transaction screening in order to ensure that no indicia that can suggest a transaction with a high-risk country can occur. This is a regulatory constraint imposed on financial institutions. Screena provides this functional capacity by using artificial intelligence to analyze unstructured data in the form of free text.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/dataset-search"
Endpoint: POST rest/v2/dataset-search
Request
{
"queries": [{
"sourceData": [{
"narrative": "Satuev Magomed, Labuan, Malaysia"
}],
"targetData": [{
"datasets": [{
"label": "INTERPOL"
}]
}],
"threshold": 0.90
}]
}
Response Attributes
For a complete list of attributes that are returned, refer to Screena Firm Searching Datasets. In addition to these attributes, you will obtain the specific attributes relating to the detection of high-risk location.
On top of other information, it returns an array of matchingCountries
.
Attribute | What is returned ? |
---|---|
country String |
Country matching with a high-risk location. |
ctrp String |
Cities, Towns, Regions & Ports matching with a high-risk location. |
risk String |
Risk related to the detected high-risk location. |
Response
{
"responseHeader": {
"requestID": "GEN2054093905-1703152524688",
"responded": "2023-12-21T09:55:24.688Z"
},
"results": [
{
"matchType": "st_match",
"score": 0.98,
"matchingNames": [
{
"surname": "SATUEV",
"givenName": "MAGOMED",
"normalized": "magomed satuev"
}
],
"sourceData": [
{
"entityType": "unknown",
"names": [
{
"fullName": "satuev magomed",
"normalized": "satuev magomed"
}
],
"cultureCodes": [
"ru"
],
"narrative": "Satuev Magomed, Labuan, Malaysia"
}
],
"targetData": [
{
"dataID": "2021/70850",
"entityType": "individual",
"names": [
{
"surname": "SATUEV",
"givenName": "MAGOMED",
"normalized": "magomed satuev"
}
],
"cultureCodes": [
"ru"
],
"nationalities": [
{
"country": "RU"
}
],
"datesOfBirth": [
{
"date": "1983-05-14"
}
],
"placesOfBirth": [
{
"city": "LENINAUL VILLAGE (THE REPUBLIC OF DAGESTAN)",
"country": "RU"
}
],
"additionalInformation": [
"participation in the activity of a terrorist organization; participation in the activity of an illegal armed formation"
],
"categories": [
"WANTED"
],
"active": true,
"keywords": [
"Red Notice"
],
"sources": [
"https://ws-public.interpol.int/notices/v1/red/2021-70850"
],
"label": "INTERPOL",
"dataset": {
"label": "INTERPOL",
"category": "WANTED",
"dateOfUpload": "2023-12-21T00:41:39.531"
},
"lastMatched": "2023-02-08T00:48:14.844",
"lastChecked": "2023-02-08T00:48:14.844"
}
]
},
{
"matchingCountries": [
{
"ctrp": "labuan",
"risk": "Blacklisted CTRP (Labuan)"
}
],
"sourceData": [
{
"entityType": "unknown",
"addresses": [
{
"country": "MY",
"fullAddress": "labuan"
}
],
"narrative": "Satuev Magomed, Labuan, Malaysia"
}
]
}
]
}
SWIFT/BICs
SWIFT operates the series of electronic messages that are sent between financial institutions (FIs) to facilitate the transfer of funds. A Bank Identification code or BIC Code, is assigned by SWIFT to financial institutions to identify them unequivocally. The BIC Code is an 8-11 character code that specifies financial institutions' country, city, bank, and branch. Screena analyses this structured data to find any evidence of high-risk location.
Request Attributes
For more information about the bic
attribute, refer to Matching Organizations.
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/dataset-search"
Endpoint: POST rest/v2/dataset-search
Request: 8-character BIC code
{
"queries": [{
"sourceData": [{
"bic": "BKMTIRTH"
}],
"targetData": [{
"datasets": [{
"label": "USA"
}]
}],
"bicAlgo": {
"type": "exact_match"
}
}]
}
Request: 11-character BIC code
{
"queries": [{
"sourceData": [{
"bic": "BKMTIRTH056"
}],
"targetData": [{
"datasets": [{
"label": "USA"
}]
}],
"bicAlgo": {
"type": "exact_match"
}
}]
}
Request: 11-character BIC code in a narrative
{
"queries": [{
"sourceData": [{
"narrative": "la banque utilisée est la BKMTIRTH056 qui s'occupe de gérer la transaction"
}],
"targetData": [{
"datasets": [{
"label": "USA"
}]
}]
}]
}
Response Attributes
An array of matchingCountries
is returned.
Attribute | What is returned ? |
---|---|
country String |
Country matching with a high-risk location. |
ctrp String |
Cities, Towns, Regions & Ports matching with a high-risk location. |
risk String |
Risk related to the detected high-risk location. |
Response
{
"responseHeader": {
"requestID": "GEN2054093905-1703152913898",
"responded": "2023-12-21T10:01:53.898Z"
},
"results": [
{
"matchType": "st_match",
"score": 1.00,
"matchingNames": [
{
"fullName": "BANK MELLAT",
"normalized": "bank mellat"
}
],
"sourceData": [
{
"entityType": "organization",
"bic": "BKMTIRTH"
}
],
"targetData": [
{
"dataID": "25019",
"entityType": "organization",
"names": [
{
"fullName": "BANK MELLAT",
"normalized": "bank mellat"
}
],
"addresses": [
{
"street": "Head Office Bldg, 276 Taleghani Ave",
"city": "Tehran",
"country": "IR"
}
],
"identityDocuments": [
{
"type": "Additional Sanctions Information -",
"number": "Subject to Secondary Sanctions"
}
],
"contactInformation": [
{
"type": "Website",
"value": "www.bankmellat.ir"
}
],
"additionalInformation": [
"All Branches Worldwide; (Linked To: MEHR EQTESAD BANK)"
],
"categories": [
"SANCTION"
],
"bic": "BKMTIRTH",
"active": true,
"keywords": [
"IFSR",
"SDGT",
"IRAN",
"Specially Designated Nationals (SDN) - Treasury Department"
],
"sources": [
"Specially Designated Nationals (SDN) - Treasury Department",
"https://home.treasury.gov/policy-issues/financial-sanctions/specially-designated-nationals-and-blocked-persons-list-sdn-human-readable-lists",
"https://www.treasury.gov/resource-center/sanctions/SDN-List/Pages/default.aspx"
],
"label": "USA",
"dataset": {
"label": "USA",
"category": "SANCTION",
"dateOfPublication": "2023-12-21T08:15:00.006",
"dateOfUpload": "2023-12-21T09:06:11.033"
},
"revision": 5704,
"created": "2023-02-08T07:28:21.558",
"updated": "2023-12-21T09:05:51.465",
"lastMatched": "2023-02-08T07:28:21.558",
"lastChecked": "2023-02-08T07:28:21.558"
}
]
},
{
"matchingCountries": [
{
"country": "IR",
"risk": "Blacklisted Country (Iran)"
}
],
"sourceData": [
{
"entityType": "organization",
"addresses": [
{
"country": "IR"
}
],
"bic": "BKMTIRTH"
}
]
}
]
}
Named-Entities
About Objects
Screena is designed to match and search named-entities with an unprecedented level of precision.
A named-entity is a real-world object, such as individuals, locations, organizations, products, etc., that can be denoted with a proper name. It can be abstract or have a physical existence. Examples of named-entities include George Clooney, London, Ferrari F40, or anything else that can be named. Named-entities can simply be viewed as entity instances (e.g. London, United Kingdom is an instance of a location).
Entity Types
{
"entityType": "individual"
}
The following table lists all of the possible values that can be used or returned for the entityType
attribute.
The model is currently being extended to other types of entities such as events, aircrafts and others.
Value | Description |
---|---|
individual | A human being, as opposed to an organization. |
organization | Any organization that can be either private (i.e. business entity or non-governmental organization) or public (i.e. government, agencies ...). |
vessel | All vehicles used in water, including ships, boats, hovercraft and submarines. |
unknown | An entity type not within the range of the data inputter's knowledge. |
location | A position on the world-map or marked by some distinguishing features. The level of granularity of location can vary depending on subcategories of the named-entity (place of birth, place of registry, address ...). |
event Lab |
Named events like social occasions, contests, wars, historical moments, ... |
aircraft Lab |
All vehicles that are able to fly by gaining support from the air, including Airplane, Rotorcraft, Lighter-Than-Air. |
Some named-entities like dates (absolute or relative dates or periods) are not used independently from other objects, and this is why they are not included as an entityType
value.
Technically, named-entity objects can be nested inside other objects. Each nested object must have a unique access path. The same field name can occur in nested objects in the same message. However, the full access name must still be unique.
Typically, addresses
, placesOfBirth
, and nationalities
are named-entities belonging to the location type, and they also constitute attributes of an individual.
At this stage, locations in Screena are only matchable at the country-level granularity and only when nested under individual, organization, or vessel.
Dates
{
"datesOfBirth": [{
"date": "1922/1925"
}, {
"date": "1928"
}]
}
A date
attribute nested in an Object shall always be provided in accordance with the ISO 8601.
The date
attribute is used for the following Objects:
datesOfRegistry
datesOfBirth
datesOfBuild
datesOfIssue
datesOfExpiry
The following table lists all the possible ISO 8601-compatible formats that can be used in Screena for a date
attribute.
Format | Description |
---|---|
YYYY-MM-DD | Year-Month-Day |
YYYY | Year |
YYYY/YYYY | Year Range |
Sexes and Genders
{
"sex": "F"
}
Sexual differentiation in human is crucial for identification of individuals.
Screena is capable of identifying the gender of an individual based on the fullName
or givenName
attribute and return gender data into the sex
attribute.
If the sex
cannot be recognized, it will be set to "unknown".
The following table lists all of the possible values that can be used for the sex
attribute.
Value | Description |
---|---|
f or F | female |
m or M | male |
i or I Lab |
intersex |
u or U | unknown |
Countries
{
"nationalities": [{
"country": "US"
}, {
"country": "GR"
}]
}
The following table lists all of the possible child attributes for:
nationalities
flags
Attribute | Description | Required |
---|---|---|
country String |
Country in ISO 3166-alpha 2 format. | No |
Places
{
"placesOfBirth": [{
"city": "New York City",
"state": "New York",
"country": "US"
}]
}
The following table lists all of the possible child attributes for:
placesOfBirth
placesOfBuild
placesOfRegistry
placesOfIssue
Attribute | Description | Required |
---|---|---|
city String |
Any human settlement such as a metropolis, city, town or village. | No |
state String |
First-level administrative division. | No |
country String |
Country in ISO 3166-alpha 2 format. | No |
Addresses
{
"addresses": [{
"street": "trente-six avenue Georges Mandel",
"city": "Paris",
"country": "FR"
},
{
"streetNumber ": "7",
"streetName": "Via Caio Valerio Catullo",
"zipCode": "25019",
"city": "Sirmione",
"country": "IT"
}
]
}
The following table lists all of the possible child attributes for addresses
.
Attribute | Description | Required |
---|---|---|
fullAddress String |
Full address in unstructured format. | No |
streetNumber String |
Unique number to each building in a street or area, which makes it easier to locate a particular building or vacant lot. | No |
streetName String |
The name of a street. Street is used as a generic attribute, which can be anything that connects two points on a map: Street, Road, Way, Avenue, Boulevard, Lane, Drive, ... | No |
street String |
The name of a street, including the street name and the street number (in case no separation can be made between street address number and street name). | No |
poBox String |
A box with a number in a post office to which letters and parcels can be sent and from which you they can be collected. | No |
zipCode String |
Postal code used for mail sorting. | No |
city String |
Any human settlement such as a metropolis, city, town or village. | No |
state String |
First-level administrative division. | No |
country String |
Country in ISO 3166-alpha 2 format. | No |
Identity Documents
{
"identityDocuments": [{
"type": "Passport",
"country": "FR",
"description": "French ID number seems erroneous",
"number": "86YH34567",
"placeOfIssue": {
"city": "Amsterdam",
"country": "NL"
},
"dateOfIssue": {
"date": "2020-12-15"
},
"dateOfExpiry": {
"date": "2030-12-15"
}
}]
}
The following table lists all of the possible child attributes for identityDocuments
.
Attribute | Description | Required |
---|---|---|
number String |
Unique number of the Identity Document. | No |
type String |
The type of Identity Document (e.g. Passport, ID card, Social Security card, Driver's license, Birth certificate, Death certificate, Other identity documents,...) | No |
country String |
The country which has issued the Identity Document in ISO 3166-alpha 2 format. | No |
dateOfIssue String |
The date on which a government body issued the Identity Document. Refer to Dates for more info. |
No |
placeOfIssue String |
The place (City and Country) where the government body issued the Identity Document. See child attributes for Places. |
No |
dateOfExpiry String |
The date on which the Identity Document expires. Refer to Dates for more info. |
No |
description String |
Statement giving characteristics of the Identity Document. | No |
Contact Information
{
"contactInformation": [{
"type": "Phone",
"value": "+963 - 11- 2260805"
},
{
"type": "Internet Site",
"value": "https://www.champress.net"
},
{
"type": "Email",
"value": "mail@champress.com"
}
]
}
The following table lists all of the possible child attributes for contactInformation
.
Attribute | Description | Required |
---|---|---|
type String |
The type of Contact Information. | No |
value String |
The value of the attribute. | No |
Digital Currencies
{
"digitalCurrencies": [{
"currency": "XMR",
"identifier": "5be5543ff73456ab9f2d207887e2af87322c651ea1a873c5b25b7ffae456c320"
},
{
"currency": "ETC",
"identifier": "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b"
},
{
"currency": "ZEC",
"identifier": "t1g7wowvQ8gn2v8jrU1biyJ26sieNqNsBJy"
},
{
"currency": "DASH",
"identifier": "XnPFsRWTaSgiVauosEwQ6dEitGYXgwznz2"
},
{
"currency": "BTG",
"identifier": "GPwg61XoHqQPNmAucFACuQ5H9sGCDv9TpS"
},
{
"currency": "XBT",
"identifier": "1Q6saNmqKkyFB9mFR68Ck8F7Dp7dTopF2W"
},
{
"currency": "XBT",
"identifier": "1DDA93oZPn7wte2eR1ABwcFoxUFxkKMwCf"
},
{
"currency": "ETH",
"identifier": "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b"
},
{
"currency": "LTC",
"identifier": "LNwgtMxcKUQ51dw7bQL1yPQjBVZh6QEqsd"
}
]
}
The following table lists all of the possible child attributes for digitalCurrencies
.
Attribute | Description | Required |
---|---|---|
currency String |
The type of Digital Currency, preferably its symbol. | No |
identifier String |
The identifier of the Digital Currency. | No |
Algorithms
Parametrization
{
"type": "exact_match",
"nullMatch": true,
"exclude": [
"vessel"
]
}
The following table lists the attributes that can be used to parametrize binary-matching, date-matching, and country-matching algorithms in Screena.
Attribute | Description | Required |
---|---|---|
type String |
Type of the matching Algorithm. See below for more info. |
Yes |
nullMatch Boolean |
Parameter to specify how a match should be handled when one attribute associated with the algorithm is either empty or not provided:
|
No |
include (New)Array of Strings |
This attribute is currently only usable for entityTypeAlgo , categoryAlgo and keywordAlgo . It can be used to narrow matches to specific entity types, data record categories or data record keywords. |
No |
exclude (New)Array of Strings |
This attribute is currently only usable for entityTypeAlgo , categoryAlgo and keywordAlgo . It can be used to exclude matches for specific entity types, data record categories or data record keywords. It is especially helpful to prevent irrelevant matches such as those of individuals or organizations with vessels. |
No |
Normalization
Request (Normalisation)
{
"queries": [{
"sourceData": [{
"names": [{
"fullName": "Reginald Williams"
}],
"addresses": [{
"fullAddress": "SOPTCHOM TEMDEMNO, YAOUNDE"
}]
}],
"targetData": [{
"datasets": [{
"label": "INTERPOL"
}]
}],
"addressAlgo": {
"type": "same_region",
"nullMatch": true
}
}]
}
Response (Normalisation)
{
"responseHeader": {
"requestID": "GEN2054093905-1642774501044",
"responded": "2022-01-21T14:15:01.044Z"
},
"results": [{
"matchType": "no_match",
"sourceData": [{
"entityType": "unknown",
"names": [{
"fullName": "Reginald Williams",
"normalized": "reginald williams"
}],
"addresses": [{
"country": "CM",
"fullAddress": "SOPTCHOM TEMDEMNO, YAOUNDE"
}]
}]
}]
}
The normalization process harmonizes and transforms data into a format that makes attribute matching consistent.
Normalization is specific to each Object, and influences the results provided in the normalized
attribute of a response:
Binary-Matching Algorithms
{
"entityTypeAlgo": {
"type": "exact_match",
"nullMatch": true,
"exclude": [
"vessel", "organization"
]
}
}
This chapter describes the algorithms that can be used for the following attributes:
entityTypeAlgo
sexAlgo
categoryAlgo
keywordAlgo
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/dataset-search-engine"
Request: The following example shows how to search for a name on the USA list limited to the "Sectoral Sanctions Identifications List (SSI)" sanctions program using the algorithm
keywordAlgo
.
{
"queries": [{
"sourceData": [{
"names": [{
"fullName": "Hector Villareal"
}]
}],
"targetData": [{
"datasets": [{
"label": "USA"
}]
}],
"threshold": 0.8,
"keywordAlgo": {
"type": "ignore",
"include": [
"Sectoral Sanctions Identifications List (SSI)"
]
}
}]
}
Algorithm Types
Value | Description |
---|---|
exact_match Default |
Exactly match the attribute. |
ignore | The attribute is ignored for the match. If a field is empty or set with unknown value, the application will operate as in the presence of the "ignore" algorithm. |
Identifier-Matching Algorithms
{
"identityDocumentAlgo": {
"type": "contains",
"nullMatch": true
}
}
This chapter describes the algorithms that can be used for the following attributes:
identityDocumentAlgo
bicAlgo
leiAlgo
digitalCurrencyAlgo
Algorithm Types
Value | Description |
---|---|
exact_match Default |
Exactly match the attribute. |
starts_with | Search for a query string at the beginning of a text string. It returns a match if all the characters in the query string appear in the same order at the beginning of the text string. |
ends_with | Search for a query string at the end of a text string. It returns a match if all the characters in the query string appear in the same order at the end of the text string. |
contains | Search for a query string within a text string. It returns a match if all the characters in the query string appear in the text string in the same order, regardless of additional characters in between. |
pattern | Identify strings of characters that match a specific pattern, while ignoring those that do not. It matches the input string with a pattern that includes an obscured version of the string, with only certain characters visible. For example, the string "458.211.389-12" will match with "***.211.389-**" but will not match with "***.058.029-**". |
ignore | The attribute is ignored for the match. If a field is empty or set with unknown value, the application will operate as in the presence of the "ignore" algorithm. |
Date-Matching Algorithms
{
"dateOfBirthAlgo": {
"type": "same_year",
"nullMatch": true
}
}
This chapter describes the algorithms that can be used for the following attributes:
dateOfBirthAlgo
dateOfRegistryAlgo
dateOfBuildAlgo
Algorithm Types
Value | Description |
---|---|
same_day_month_year | Match dates within the same Day/Month/Year. |
same_month_year | Match dates within the same Month/Year. |
same_year | Match dates within the same Year. |
same_quadrennium | Match dates within the same Quadrennium (source date +/-2 year). |
same_decade | Match dates within the same Decade (source date +/-5 year). |
ignore Default |
The attribute is ignored for the match. If a field is empty, the application will operate as in the presence of the "ignore" algorithm. |
Normalization
{
"date": "1985-10-14",
"normalized": "1985"
}
The choice of the algorithm type in the request influences the date formats in the normalized
attribute of the response.
The normalized
attribute format is displayed according to both:
- the date formats used in the request, as provided in
sourceData
andtargetData
. - the choice of the Date-Matching algorithm.
Algorithm Type vs Date Format |
YYYY-MM-DD | YYYY-MM | YYYY | YYYY/YYYY |
---|---|---|---|---|
same_day_month_year | YYYY-MM-DD | YYYY-MM-01 /YYYY-MM-31 |
YYYY-01-01 /YYYY-12-31 |
YYYY-01-01 /YYYY-12-31 |
same_month_year | YYYY-MM | YYYY-MM | YYYY-01 /YYYY-12 |
YYYY-01 /YYYY-12 |
same_year | YYYY | YYYY | YYYY | YYYY/YYYY |
same_quadrennium | YYYY-MM-DD /YYYY-MM-DD calculate quadrennium |
YYYYY-01-01 /YYYY-12-31 calculate quadrennium |
YYYY-01-01 /YYYY-12-31 calculate quadrennium |
YYYY-01-01 /YYYY-12-31 calculate quadrennium |
same_decade | YYYY-MM-DD /YYYY-MM-DD calculate decade |
YYYY-01-01 /YYYY-12-31 calculate decade |
YYYY-01-01 /YYYY-12-31 calculate decade |
YYYY-01-01 /YYYY-12-31 calculate decade |
ignore | no display | no display | no display | no display |
Country-Matching Algorithms
{
"nationalityAlgo": {
"type": "same_region",
"nullMatch": true
}
}
This chapter describes the algorithms that can be used for the following attributes:
placeOfBirthAlgo
placeOfRegistryAlgo
addressAlgo
nationalityAlgo
flagAlgo
Algorithm Types
Value | Description |
---|---|
same_country | Match when countries are the same. |
same_subregion | Match countries when they are in the same subregion based on the United Nations geoscheme. |
same_region | Match countries when they are in the same region based on the United Nations geoscheme. |
ignore Default |
The attribute is ignored for the match. If a field is empty, the application will operate as in the presence of the "ignore" algorithm. |
Normalization
{
"country": "DE",
"normalized": "EUROPE"
}
The choice of the algorithm type in the request influences the information provided in the normalized
attribute of the response.
Value | Normalization |
---|---|
same_country | Display the matching country in ISO 3166-alpha 2 format. |
same_subregion | Display the matching subregion based on the United Nations geoscheme. |
same_region | Display the matching region based on the United Nations geoscheme. |
ignore | The attribute is not displayed in normalized . If a field is empty, the application will operate as in the presence of the "ignore" algorithm. |
United Nations Geoscheme
The following table lists all of the regions, subregions, and countries according to the United Nations geoscheme grouping.
Regions | Subregions | Countries |
---|---|---|
Africa | Northern Africa | Algeria, Egypt, Western Sahara, Libya, Morocco, Sudan, Tunisia |
Africa | Eastern Africa | Burundi, Djibouti, Eritrea, Ethiopia, Kenya, Comoros, Madagascar, Mauritius, Malawi, Mozambique, Réunion, Rwanda, Seychelles, Somalia, South Sudan, Tanzania, Uganda, Mayotte, Zambia, Zimbabwe |
Africa | Middle Africa | Angola, Congo, Democratic Republic of the, Central African Republic, Congo, Republic of the, Cameroon, Gabon, Guinea, Sao Tome and Principe, Chad |
Africa | Southern Africa | Botswana, Lesotho, Namibia, Eswatini, South Africa |
Africa | Western Africa | Burkina Faso, Benin, Cote d'Ivoire, Cabo Verde, Ghana, The Gambia, Equatorial Guinea, Guinea-Bissau, Liberia, Mali, Mauritania, Niger, Nigeria, Saint Helena, Ascension & Tristan da Cunha, Sierra Leone, Senegal, Togo |
Americas | Caribbean | Antigua and Barbuda, Netherlands Antilles, Anguilla, Aruba, Saint-Barthélemy, Bonaire, Sint Eustatius & Saba, The Bahamas, Cuba, Curaçao, Dominica, Dominican Republic, Grenada, Guadeloupe, Haiti, Jamaica, Saint Kitts and Nevis, Cayman Islands, Saint Lucia, Saint-Martin (French part), Martinique, Montserrat, Puerto Rico, Sint Maarten (Dutch part), Turks & Caicos Islands, Trinidad and Tobago, Saint Vincent and the Grenadines, Virgin Islands (British), Virgin Islands (US) |
Americas | Southern America | Argentina, Barbados, Bolivia, Brazil, Chile, Colombia, Ecuador, Falkland Islands (Malvinas), French Guiana, South Georgia & South Sandwich Islands, Guyana, Peru, Paraguay, Suriname, Uruguay, Venezuela |
Americas | Northern America | Bermuda, Canada, Greenland, Saint Pierre & Miquelon, United States of America |
Americas | Central America | Belize, Costa Rica, Guatemala, Honduras, Mexico, Nicaragua, Panama, El Salvador |
Europe | Southern Europe | Spain, Greece, Italy, Malta, Portugal, Slovenia, Kosovo, Andorra, Albania, Bosnia and Herzegovina, Gibraltar, Croatia, Montenegro, North Macedonia, Serbia, San Marino, Holy See (Vatican City) |
Europe | Northern Europe | Aland Islands, Denmark, Estonia, Finland, Faroe Islands, United Kingdom, Guernsey, Ireland, Isle of Man, Iceland, Jersey, Lithuania, Latvia, Norway, Sweden, Svalbard & Jan Mayen Islands |
Europe | European Union | Austria, Belgium, Bulgaria, Cyprus, Czechia, Germany, Denmark, Estonia, Spain, European Union, Finland, France, Greece, Hungary, Italy, Lithuania, Luxembourg, Latvia, Malta, Netherlands, Norway, Poland, Portugal, Romania, Sweden, Slovenia, Slovakia |
Europe | Western Europe | Austria, Belgium, Switzerland, Germany, France, Liechtenstein, Luxembourg, Monaco, Netherlands |
Europe | Eastern Europe | Bulgaria, Belarus, Czechia, Hungary, Moldova, Poland, Romania, Russia, Slovakia, Ukraine |
Asia | Western Asia | Gaza Strip, United Arab Emirates, Armenia, Azerbaijan, Bahrain, Georgia, Israel, Iraq, Jordan, Kuwait, Lebanon, Oman, Palestinian Territory, Qatar, Saudi Arabia, Syria, Turkey, Yemen, Cyprus |
Asia | Eastern Asia | Burundi, Djibouti, Eritrea, Ethiopia, Kenya, Comoros, Madagascar, Mauritius, Malawi, Mozambique, Réunion, Rwanda, Seychelles, Somalia, South Sudan, Tanzania, Uganda, Mayotte, Zambia, Zimbabwe |
Asia | Central Asia | Kyrgyzstan, Kazakhstan, Tajikistan, Turkmenistan, Uzbekistan |
Asia | South-Eastern Asia | Brunei, Indonesia, Cambodia, Laos, Burma, Malaysia, Philippines, Singapore, Thailand, Timor-Leste, Vietnam |
Asia | Southern Asia | British Indian Ocean Territory, Afghanistan, Bangladesh, Bhutan, India, Iran, Sri Lanka, Maldives, Nepal, Pakistan |
Oceania | Polynesia | American Samoa, Cook Islands, Niue, French Polynesia, Pitcairn, Tokelau, Tonga, Tuvalu, Wallis & Futuna Islands, Samoa |
Oceania | Micronesia | United States Minor Outlying Islands, Micronesia, Federated States of, Guam, Kiribati, Marshall Islands, Northern Mariana Islands, Nauru, Palau |
Oceania | Melanesia | Fiji, New Caledonia, Papua New Guinea, Solomon Islands, Vanuatu |
Oceania | Australia & New Zealand | Australia, Cocos (Keeling) Islands, Christmas Island, Heard Island & Mcdonald Islands, Norfolk Island, New Zealand |
Antarctica | Antarctica | Antarctica, Bouvet Island, French Southern Territories |
Name-Matching Algorithms
Screena offers a set of technologies to address the specific needs and demands of managing, searching, scoring, and matching multicultural name Datasets.
Normalization
{
"surname": "MANSUR",
"givenName": "'Abd el-Ḥamīd",
"normalized": "abd el hamid mansur"
}
Before processing names, Screena automatically generates normalized versions of name tokens.
Normalization ensures consistency in how your name data is matched by:
- Switching all characters to lower case
- Removing all diacritics (e.g.: accents)
- Removing punctuation within words (e.g.: apostrophes)
- Managing punctuation between words
- Using transliteration mechanisms (when required). Screena will always return a romanized name.
- Removing prefixes and suffixes (e.g.: Jr., Sr., Mr., PLC, www,...)
- Harmonizing numbers in digits and letters (e.g.: 3 = three, 3rd = third, ...)
Algorithm Types
Instead of just searching or matching names using standard methods, Screena uses sophisticated AI to provide the best possible real-time results.
Screena does not establish a phonetic or edit distance similarity between 2 strings, but the probability that they are the same name or named-entity.
The following table gives some examples which allow to understand the important advantage that this brings compared to standard solutions and algorithms.
String 1 |
String 2 |
Screena Probability |
Levenshtein Distance |
Jaro Distance |
Metaphone Phonetic |
---|---|---|---|---|---|
b r u c e m a l m u t h | bruce malmuth | 98% | 57% | 0% | 71% |
al-qaida in the arabian peninsula/ansar al-sharia | //al-qa'ida in the arabian peninsula | 89% | 61% | 86% | 70% |
Mrs Maddie Ziegler | Madison Ziegler | 100% | 56% | 73% | 67% |
Screena also automatically adapts to Name Cultures specifics.
Threshold
You can use the threshold
attribute to adjudicate the relative yield of true-positive versus true-negative cases.
By default, it is set at 60% which provides maximum recall as requested by the majority of users.
Raising the threshold would result in fewer matches, which would increase the possibility of false-negatives and vice-versa.
A score
below the threshold
value provided in the request is rejected.
Then a match processed by the AI engine can end up as either discarded or acknowledged.
Name-match Types
{
"matchType": "ai_accept",
"score": 0.98
}
The following table lists all of the possible values that can be returned for the matchType
attribute.
Value | Description |
---|---|
ai_reject | Discarded by AI (below threshold): A match score based on probabilistic calculation is returned. Every score below the above-mentioned threshold is considered as rejected. |
ai_accept | Acknowledged by AI (above threshold): A match score based on probabilistic calculation is returned. Every score above the above-mentioned threshold is considered as accepted. |
no_match | No Match: The probability that the 2 strings are the same is so low that it is not considered. |
st_match | Straightforward Match: A match score is returned. Such cases use deterministic rules. AI would have a counterproductive effect in terms of performance and quality - So, they are not processed through it. Every score above the above-mentioned threshold is considered as accepted. |
Name Beginning & End
{
"nameAlgo": [{
"endBeginBoost": true,
"entityTypes": ["individual", "vessel"],
"minNbrOfToken": 4
}, {
"endBeginBoost": false,
"entityTypes": ["organization", "unknown"],
"minNbrOfToken": 4
}]
}
Similarities in the beginning and end of names can be more significant than other name parts.
You can decide to apply a boost if the beginning and the end of two names are similar.
In Arabic, Aysha Mazar Rashed Mohamed Erakat is typically the daughter of Mazar Rashed Mohamed Erakat:
- If the
endBeginBoost
attribute is set to "false" there is no influence on thescore
. - If the
endBeginBoost
attribute is set to "true" thescore
is reduced to 0%.
Conversely, in Spanish Pablo Diego José Francisco de Paula Juan Nepomuceno María de los Remedios Cipriano de la Santísima Trinidad Ruiz y Picasso is Pablo Picasso:
- If the
endBeginBoost
attribute is set to "false" there is no influence on thescore
. - If the
endBeginBoost
attribute is set to "true" thescore
is increased to 100%.
Depending on the circumstances of your data you can adapt the endBeginBoost
value.
The following table lists the attributes used to boost the score
when beginning and end of name pairs is similar.
Attribute | Description | Required |
---|---|---|
endBeginBoost Boolean |
Parameter to specify if a boost is applied if the beginning and end of the names pair is dissimilar/similar
|
No |
entityTypes Array of Strings |
Types of named-entity to which the boost applies. Refer to Named-Entities Objects for more info. If not provided, it applies to all named-entities by default |
No |
minNbrOfToken String |
This is the minimum number of name elements (token) per string. | No |
Transliteration
Request: The API can be queried directly with names in original scripts using the transliteration capability of Screena.
{
"queries": [{
"sourceData": [{
"names": [{
"fullName": "毛泽东"
}]
}],
"targetData": [{
"names": [{
"fullName": "Máo Zédōng"
}]
}]
}]
}
Response
{
"results": [{
"matchType": "st_match",
"score": 0.98,
"sourceData": [{
"entityType": "unknown",
"names": [{
"fullName": "毛泽东",
"normalized": "mao ze dong"
}],
"cultureCodes": [
"zh"
]
}],
"targetData": [{
"entityType": "unknown",
"names": [{
"fullName": "Máo Zédōng",
"normalized": "mao zedong"
}],
"cultureCodes": [
"zh"
]
}]
}]
}
Screena matches name variants across languages and writing systems.
Romanization mechanisms convert names from one script to Roman script automatically and vice-versa.
Script | Transliteration | Method |
---|---|---|
Latin | N/A | N/A |
Arabic | - | - |
Chinese | Romanized Chinese | Hanyu Pinyin romanization |
Cyrillic | Romanized Cyrillic | International Civil Aviation Organization romanization as published published in Doc 9303 "Machine Readable Travel Documents, Part 3" |
Greek | Romanized Greek | ISO843_1997 romanization |
Armenian Lab |
- | - |
Bengali Lab |
- | - |
Bharat Lab |
- | - |
Devanagari Lab |
- | - |
Ge'ez Lab |
- | - |
Georgian Lab |
- | - |
Hangeul Lab |
- | - |
Hebrew Lab |
- | - |
Japanese Lab |
- | - |
Khmer Lab |
- | - |
Lao Lab |
- | - |
Mongolian Lab |
- | - |
Tengwar Lab |
- | - |
Thai Lab |
- | - |
Tifinagh Lab |
- | - |
Name Cultures
{
"normalized": "xi jinping",
"cultureCodes": [
"zh"
]
}
As names differ from one part of the world and from one cultural group to another, Screena automates the identification of individual name cultures in romanized scripts.
If successfully detected, each culture is assigned a two-letter code based on the ISO 639-1. Identifying the culture of a name significantly improves the quality of name matching.
This knowledge allows the correct set of AI models based on the culture to be applied to the name.
The following table lists all of the possible values that can be returned for the cultureCodes
attribute based on the ISO 639-1.
Value | Description |
---|---|
xx | Ambiguous: no valid culture can be determined |
af | Afrikaans |
ak | Akan |
sq | Albanian |
am | Amharic |
ar | Arabic |
an | Aragonese |
hy | Armenian |
as | Assamese |
az | Azerbaijani |
eu | Basque |
be | Belarusian |
bn | Bengali |
bs | Bosnian |
br | Breton |
bg | Bulgarian |
my | Burmese |
ca | Catalan, Valencian |
ce | Chechen |
ny | Chichewa, Chewa, Nyanja |
zh | Chinese |
kw | Cornish |
co | Corsican |
hr | Croatian |
cs | Czech |
da | Danish |
nl | Dutch, Flemish |
en | English |
et | Estonian |
ee | Ewe |
fi | Finnish |
fr | French |
ff | Fulah |
gl | Galician |
ka | Georgian |
de | German |
el | Greek, Modern (1453–) |
gu | Gujarati |
ha | Hausa |
he | Hebrew |
hz | Herero |
hi | Hindi |
ho | Hiri Motu |
hu | Hungarian |
id | Indonesian |
ga | Irish |
ig | Igbo |
io | Ido |
is | Icelandic |
it | Italian |
iu | Inuktitut |
ja | Japanese |
kn | Kannada |
kk | Kazakh |
km | Central Khmer |
ki | Kikuyu, Gikuyu |
ky | Kirghiz, Kyrgyz |
kg | Kongo |
ko | Korean |
ku | Kurdish |
kj | Kuanyama, Kwanyama |
lg | Ganda |
li | Limburgan, Limburger, Limburgish |
lt | Lithuanian |
lo | Lao |
lu | Luba-Katanga |
lv | Latvian |
gv | Manx |
mk | Macedonian |
ms | Malay |
ml | Malayalam |
mr | Marathi |
mn | Mongolian |
nv | Navajo, Navaho |
nd | North Ndebele |
ne | Nepali |
ng | Ndonga |
no | Norwegian |
nr | South Ndebele |
oc | Occitan |
oj | Ojibwa |
om | Oromo |
or | Oriya |
pa | Punjabi, Panjabi |
fa | Persian |
pl | Polish |
ps | Pashto, Pushto |
pt | Portuguese |
ro | Romanian, Moldavian, Moldovan |
ru | Russian |
sa | Sanskrit |
sc | Sardinian |
sr | Serbian |
gd | Gaelic, Scottish Gaelic |
sn | Shona |
sk | Slovak |
sl | Slovenian |
so | Somali |
st | Southern Sotho |
es | Spanish, Castilian |
sw | Swahili |
ss | Swati |
sv | Swedish |
ta | Tamil |
te | Telugu |
tg | Tajik |
th | Thai |
bo | Tibetan |
tk | Turkmen |
tl | Tagalog |
tn | Tswana |
tr | Turkish |
tt | Tatar |
ug | Uighur, Uyghur |
uk | Ukrainian |
ur | Urdu |
uz | Uzbek |
vi | Vietnamese |
cy | Welsh |
fy | Western Frisian |
xh | Xhosa |
yi | Yiddish |
yo | Yoruba |
zu | Zulu |
ab | Abkhazian Lab |
aa | Afar Lab |
av | Avaric Lab |
ae | Avestan Lab |
ay | Aymara Lab |
bm | Bambara Lab |
ba | Bashkir Lab |
bh | Bihari languages Lab |
bi | Bislama Lab |
ch | Chamorro Lab |
cv | Chuvash Lab |
cr | Cree Lab |
dv | Divehi, Dhivehi, Maldivian Lab |
dz | Dzongkha Lab |
fo | Faroese Lab |
fj | Fijian Lab |
gn | Guarani Lab |
ht | Haitian, Haitian Creole Lab |
ik | Inupiaq Lab |
jv | Javanese Lab |
kl | Kalaallisut, Greenlandic Lab |
kr | Kanuri Lab |
ks | Kashmiri Lab |
rw | Kinyarwanda Lab |
kv | Komi Lab |
la | Latin Discarded |
lb | Luxembourgish, Letzeburgesch Lab |
ln | Lingala Lab |
mg | Malagasy Lab |
mt | Maltese Lab |
mi | Maori Lab |
mh | Marshallese Lab |
na | Nauru Lab |
nb | Norwegian Bokmål Lab |
nn | Norwegian Nynorsk Lab |
ii | Sichuan Yi, Nuosu Lab |
os | Ossetian, Ossetic Lab |
pi | Pali Lab |
qu | Quechua Lab |
rm | Romansh Lab |
rn | Rundi Lab |
sd | Sindhi Lab |
se | Northern Sami Lab |
sm | Samoan Lab |
sg | Sango Lab |
si | Sinhala, Sinhalese Lab |
su | Sundanese Lab |
ti | Tigrinya Lab |
to | Tonga (Tonga Islands) Lab |
ts | Tsonga Lab |
tw | Twi Lab |
ty | Tahitian Lab |
ve | Venda Lab |
vo | Volapük Lab |
wa | Walloon Lab |
wo | Wolof Lab |
za | Zhuang, Chuang Lab |
eo | Esperanto Discarded |
ia | Interlingua (International Auxiliary Language Association) Discarded |
ie | Interlingue, Occidental Discarded |
cu | Church Slavic, Old Slavonic, Church Slavonic, Old Bulgarian, Old Church Slavonic Discarded |
Libraries
About
Screena Firm is designed for users that want to build their own libraries of Stopwords, Synonyms, Prefixes and Suffixes. You can provide your own Libraries to either replace or supplement the default ones.
Libraries are paramount to keep false negatives rates as low as possible, as they are used in the Name Normalization process and ensure consistency in how your data is matched. For example, Synonyms will help to determine which names should be considered equal despite being syntactically dissimilar.
Libraries can be managed independently. There is no need to populate all of the Libraries in one go (i.e., Prefixes, Suffixes, Synonyms, and Stopwords) through a single API call. For example, it is quite possible to populate Prefixes all while leaving Suffixes unchanged when calling the method to populate Libraries.
The following Libraries are supported:
Library | Description |
---|---|
Prefixes | A Prefix is placed "before" a name and is not part of it:
|
Suffixes | A Suffix is placed "after" a name and is not part of it:
|
Stopwords | A Stopword is a word that adds no meaning to name and therefore is not included in the matching:
|
Synonyms | All words to define names like alternative spellings, nicknames, diminutives,... :
|
Locations | All locations and their associated level of risk :
|
Populating Prefixes Library
This POST
method allows to populate the Prefixes Library in a single API call.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/libraries/populate"
Endpoint: POST rest/v2/libraries/populate
Request
{
"libraries": [{
"prefixes": [{
"value": "Mr.",
"entityTypes": ["individual", "unknown"],
"sex": "M",
"active": true
},
{
"value": "MM.",
"entityTypes": ["individual", "unknown"],
"sex": "M",
"active": true
}
]
}]
}
Attribute | Description | Required |
---|---|---|
prefixes Array of Prefix Objects |
Set of Prefixes used to populate the Library. | Yes |
value String |
Value of the Prefix. | Yes |
entityTypes Array of Strings |
Types of named-entity to which the value applies. Refer to Named-Entities Objects for more info. |
Yes |
sex String |
Sex related to the Prefix. Only applicable to an individual. |
No |
active Boolean |
|
No |
Response Attributes
Response
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc29",
"responded": "2020-05-07T06:07:23.171Z"
},
"success": true,
"processed": "2"
}
Returns a confirmation that the prefixes
were successfully populated.
Attribute | Description |
---|---|
success Boolean |
|
processed Integer |
Count of the total number of Records with which the Library has been populated. |
Populating Suffixes Library
This POST
method allows to populate the Suffixes Library in a single API call.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/libraries/populate"
Endpoint: POST rest/v2/libraries/populate
Request
{
"libraries": [{
"suffixes": [{
"value": "LLC",
"entityTypes": ["organization"],
"active": true
},
{
"value": "Jr",
"entityTypes": ["individual"],
"sex": "M",
"active": true
}
]
}]
}
Attribute | Description | Required |
---|---|---|
suffixes Array of Suffix Objects |
Set of Suffixes used to populate the Library. | Yes |
value String |
Value of the Suffix. | Yes |
entityTypes Array of Strings |
Type of named-entity to which the value applies. Refer to Named-Entities Objects for more info. |
Yes |
sex String |
Sex related to the Suffix. Only applicable to an individual. |
No |
active Boolean |
|
No |
Response Attributes
Response
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc29",
"responded": "2020-05-07T06:07:23.171Z"
},
"success": true,
"processed": "2"
}
Returns a confirmation that the suffixes
were successfully populated.
Attribute | Description |
---|---|
success Boolean |
|
processed Integer |
Count of the total number of Records with which the Library has been populated. |
Populating Stopwords Library
This POST
method allows to populate the Stopwords Library in a single API call.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/libraries/populate"
Endpoint: POST rest/v2/libraries/populate
Request
{
"libraries": [{
"stopwords": [{
"value": "of",
"active": true
}]
}]
}
Attribute | Description | Required |
---|---|---|
stopwords Array of Stopword Objects |
Set of Stopwords used to populate the Library. | Yes |
value String |
Value of the Stopword. | Yes |
active Boolean |
|
No |
Response Attributes
Response
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc29",
"responded": "2020-05-07T06:07:23.171Z"
},
"success": true,
"processed": "1"
}
Returns a confirmation that the stopwords
were successfully populated.
Attribute | Description |
---|---|
success Boolean |
|
processed Integer |
Count of the total number of Records with which the Library has been populated. |
Populating Synonyms Library
This POST
method allows to populate the Synonyms Library in a single API call.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/libraries/populate"
Endpoint: POST rest/v2/libraries/populate
Request
{
"libraries": [{
"synonyms": [{
"entityTypes": ["individual", "unknown"],
"value": "Arnold",
"sex": "M",
"altValues": ["Arnie"],
"active": true
}]
}]
}
Attribute | Description | Required |
---|---|---|
synonyms Array of Synonym Objects |
Set of Synonyms used to populate the Library. | Yes |
value String |
Value of the Synonym. | Yes |
altValues Array of Strings |
Alternative values for a Synonym. Only applicable to Synonyms. |
Yes |
entityTypes Array of Strings |
Types of named-entity to which the value applies. Refer to Named-Entities Objects for more info. |
Yes |
sex String |
Sex related to the Synonym. Only applicable to an individual. |
No |
active Boolean |
|
No |
Response Attributes
Response
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc29",
"responded": "2020-05-07T06:07:23.171Z"
},
"success": true,
"processed": "1"
}
Returns a confirmation that the synonyms
were successfully populated.
Attribute | Description |
---|---|
success Boolean |
|
processed Integer |
Count of the total number of Records with which the Library has been populated. |
Populating Locations Library
This POST
method allows to populate the Locations Library in a single API call.
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/libraries/populate"
Endpoint: POST rest/v2/libraries/populate
Request
{
"libraries": [{
"locations": [{
"riskLevel": "Blacklisted Country",
"iso2": "AF",
"active": true
},
{
"riskLevel": "Blacklisted Region",
"ctrp": "Crimea",
"active": true
}
]
}]
}
Attribute | Description | Required |
---|---|---|
locations Array of Synonym Objects |
Set of Locations used to populate the Library. | Yes |
riskLevel String |
Risk level based on the impact and likelihood ranking of the location risk. | No |
ctrp String |
Cities, Towns, Regions & Ports. | No |
iso2 String |
Country in ISO 3166-alpha 2 format. | No |
active Boolean |
|
No |
Response Attributes
Response
{
"responseHeader": {
"requestID": "c779f2c29b054066b6c03d4da903dc29",
"responded": "2020-05-07T06:07:23.171Z"
},
"success": true,
"processed": "1"
}
Returns a confirmation that the synonyms
were successfully populated.
Attribute | Description |
---|---|
success Boolean |
|
processed Integer |
Count of the total number of Records with which the Library has been populated. |
Library Bulk Importing
This POST
method allows to import bulk data into Screena Libraries.
This method makes use of multipart/form-data
, which is one of the value of enctype attribute used in form elements that have a file upload.
The multi-part means that the form data divides the file into multiple parts and sends it to the server.
Request Attributes
curl -s -X POST \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: multipart/form-data" \
-F 'upload_file=@/path/to/file' \
"https://screena.ai/rest/v2/libraries/bulk-import"
Endpoint: POST rest/v2/libraries/bulk-import
Response Attributes
Response
{
"responseHeader": {
"responded": "2021-05-08T10:44:57.458Z"
},
"taskID": "TSK2054093905-1620470697458"
}
Returns a confirmation message that the asynchronous batch process was successfully started and a taskID
is allocated.
Browsing Libraries
This GET
method allows to retrieve all entries of a Library.
Request Attributes
curl -s -X GET \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
"https://screena.ai/rest/v2/libraries/suffixes"
Endpoint: GET rest/v2/libraries/{library}
The query string is sent in the URL of the GET
request. You need to pass the relevant library
into the query string too (either "prefixes", "suffixes", "stopwords", "synonyms", or "locations").
Response Attributes
Response
{
"responseHeader": {
"responded": "2020-05-07T06:07:23.171Z"
},
"libraries": [{
"suffixes": [{
"value": "LLC",
"entityTypes": ["organization"],
"active": true
},
{
"value": "Jr",
"entityTypes": ["individual"],
"sex": "M",
"active": true
}
]
}]
}
Attribute | Description |
---|---|
dataID String |
Unique Identifier of the Library record. |
value String |
Value of the Prefix, Suffix, Stopword, or Synonym. |
altValues Array of Strings |
Alternative values for a Synonym. Only applicable to Synonyms. |
entityTypes String |
Types of named-entity to which the value applies. Refer to Named-Entities Objects for more info. |
sex String |
Sex related to the Prefix, Suffix or Synonym. Only applicable to an individual. |
active Boolean |
|
Toolbox
About
One of the features of Screena's API is the provision of specific endpoints that are designed to provide users with a toolbox intended to help them execute specific tasks that can be useful on a day-to-day basis.
Retrieving Keywords
This GET
method allows to retrieve all Keywords of a specified Dataset in a single API call.
Request Attributes
curl -s -X GET \
-H "X-Screena-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Cache-Control: no-cache" \
-d '{your_json_data}' \
"https://screena.ai/rest/v2/datasets/keywords/OFAC SDN"
Endpoint: GET rest/v2/datasets/keywords/{label}
The query string is sent in the URL of the GET
request. You need to pass the relevant label
into the query string too (e.g., the label of the dataset from which you wish to retrieve all keywords).
Response Attributes
Response
{
"responseHeader": {
"responded": "2023-05-09T06:35:11.379Z"
},
"datasets": [{
"label": "OFAC SDN",
"active": true,
"keywords": [
"CUBA",
"SDGT",
"SYRIA",
"SDNT",
"IRAN",
"IRAN-EO13902",
"IFSR",
"IRGC",
"FTO",
"SDNTK",
"ILLICIT-DRUGS-EO14059",
"ZIMBABWE",
"BALKANS",
"IRAQ2",
"DRCONGO",
"NPWMD",
"IRAN-CON-ARMS-EO",
"DPRK2",
"DARFUR",
"NS-PLC",
"BELARUS",
"IRAN-HR",
"HRIT-IR",
"ELECTION-EO13848",
"IRAQ3",
"LEBANON",
"SOMALIA",
"HRIT-SY",
"CAR",
"IRAN-TRA",
"VENEZUELA",
"IFCA",
"TCO",
"RUSSIA-EO14024",
"IRAN-EO13876",
"CYBER2",
"DPRK",
"LIBYA2",
"SYRIA-EO13894",
"ISA",
"DPRK3",
"MAGNIT",
"«Al-Qaïda», Taliban",
"UKRAINE-EO13660",
"UKRAINE-EO13661",
"SOUTH SUDAN",
"UKRAINE-EO13662",
"RUSSIA-EO14065",
"YEMEN",
"UKRAINE-EO13685",
"VENEZUELA-EO13850",
"HIFPAA",
"LIBYA3",
"PEESA-EO14039",
"CAATSA - RUSSIA",
"HOSTAGES-EO14078",
"BALKANS-EO14033",
"DPRK4",
"GLOMAG",
"BURMA-EO14014",
"IRAN-EO13871",
"SSIDES",
"NICARAGUA",
"VENEZUELA-EO13884",
"NICARAGUA-NHRAA",
"IRAN-EO13846",
"MALI-EO13882",
"DPRK-NKSPEA",
"CAATSA - IRAN",
"SYRIA-CAESAR",
"HK-EO13936",
"BELARUS-EO14038",
"PEESA",
"ETHIOPIA-EO14046",
"Belarus",
"Yugoslavia",
"Iraq",
"Sudan",
"Congo",
"Guinea",
"North Korea",
"Liberia",
"Libya",
"Guinea-Bissau",
"Côte d’Ivoire",
"Somalia",
"Iran",
"Syria",
"Zimbabwe",
"South Sudan",
"Myanmar",
"Situation in Ukraine",
"Central African Republic",
"Yemen",
"Burundi",
"Venezuela",
"Nicaragua",
"Mali",
"Haiti"
]
}]
}
Attribute | Description |
---|---|
label String |
Name of the Dataset, which shall be unique. |
active Boolean |
|
keywords Array of Strings |
Words or phrases that are associated with the dataset and all the Records contained inside and that describe information related to them. Typically in the context of Financial Crime Compliance, sanction regimes or law enforcement agencies’ programs (e.g., “Al-Qaida” or “White Collar Crimes”) are referred to as keywords. |
Watchlists
About Watchlists
Screena offers native support for several open source global watchlists, including lists of sanctioned individuals, law enforcement databases, and politically exposed persons. Our watchlists are regularly updated to ensure that you have access to the most current information.
To see which public lists are currently available, please refer to our official set of Supported Watchlists published in our Help Center.
Datasets
{
"dataset": {
"label": "OFAC SDN",
"category": "SANCTION",
"dateOfPublication": "2023-05-02T00:00:00",
"dateOfUpload": "2023-05-09T08:10:29.172"
}
}
The following table lists all of the possible child attributes for dataset
.
Attribute | Description | Required |
---|---|---|
label String |
Name of the Dataset, which shall be unique. | Yes |
category String |
Category is used for organizing the Datasets into groups that can be categorized in some way similar to each other. | No |
dateOfPublication String |
Latest official Publication Date/Time by the owner of the source. Only returned for the Datasets included in our official set of supported Watchlists. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
No |
dateOfUpload String |
Latest Upload Date/Time into the Screena Firm repository. Only returned for the Datasets included in our official set of supported Watchlists. Provided in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sTZD. |
No |
Errors
Requests can fail for various reasons. They are categorized by types of errors.
HTTP Status
Status | Meaning |
---|---|
400 | Bad Request - The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing). |
401 | Unauthorized - Your API key is wrong. |
404 | Not Found - The specified API could not be found. |
405 | Method Not Allowed - You tried to access the API with an invalid method. |
406 | Not Acceptable - You requested a format that isn't json. |
410 | Gone - The method requested has been removed from our servers. |
418 | I'm a teapot. |
422 | Unprocessable Entity - The server understands the content type of the request entity but was unable to process the contained instructions. For example, this error condition may occur if the request body contains well-formed (i.e., syntactically correct), but semantically erroneous instructions. |
429 | Too Many Requests - You're requesting too many things in parrallel! Slow down! |
500 | Internal Server Error - We had a problem with our server. Try again later. |
503 | Service Unavailable - We're temporarily offline for maintenance. Please try again later. |
Response: Typical example of an error
{
"timestamp": "2020-09-01T12:50:29.258Z",
"status": "400",
"error": "Bad Request",
"message": "SURNAME IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 255 CHARACTERS",
"path": "/rest/v2/name-match"
}
Error Messages
Parameter | Message | HTTP Status |
---|---|---|
requestID |
REQUEST ID IS NOT CONFORM, SHALL BE IN THE RANGE FROM 20 TO 200 CHARACTERS | 400 |
requestID |
REQUEST ID VALUE IS ALREADY USED | 400 |
apiKey |
UNAUTHORIZED - CHECK YOUR API KEY (MISSING OR WRONG) | 401 |
dataID |
DATA ID IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 200 CHARACTERS | 400 |
entityType |
INVALID ENTITY TYPE, CHECK POSSIBLE ENTITY TYPE VALUES | 400 |
fullName |
FULL NAME IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 255 CHARACTERS. IF YOU'RE NAME IS LONGER THAN ADOLPH BLAINE CHARLES DAVID EARL FREDERICK GERALD HUBERT IRVIN JOHN KENNETH LLOYD MARTIN NERO OLIVER PAUL QUINCY RANDOLPH SHERMAN THOMAS UNCAS VICTOR WILLIAM XERXES YANCY WOLFESCHLEGELSTEINHAUSENBERGERDORFF, GIVE US A CALL ! IF YOU'RE THE MAN WITH NO NAME YOU SHOULD BE IN THE WILD WEST AND NOT IN SOFTWARE DATABASES ! | 400 |
fullName |
FULL NAME WITH PARSED NAMES, SHALL NOT BE PROVIDED IF ANY OF THE FOLLOWING ATTRIBUTE IS PROVIDED WITHIN THE SAME BLOCK: SURNAME, GIVEN NAME, FATHER NAME, MOTHER NAME | 400 |
surname |
SURNAME IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 255 CHARACTERS | 400 |
surname |
SURNAME IS NOT APPLICABLE, SHALL NOT BE PROVIDED IF ENTITY TYPE IS DIFFERENT FROM: INDIVIDUAL, UNKNOWN | 422 |
givenName |
GIVEN NAME IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 255 CHARACTERS. IF YOU'RE GIVEN NAME IS LONGER THAN RHOSHANDIATELLY-NESHIAUNNVESHENK KOYAANFSQUATSIUTY GIVE US A CALL ! | 400 |
givenName |
GIVEN NAME IS NOT APPLICABLE, SHALL NOT BE PROVIDED IF ENTITY TYPE IS DIFFERENT FROM: INDIVIDUAL, UNKNOWN | 422 |
fatherName |
FATHER NAME IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 255 CHARACTERS | 400 |
fatherName |
FATHER NAME IS NOT APPLICABLE, SHALL NOT BE PROVIDED IF ENTITY TYPE IS DIFFERENT FROM: INDIVIDUAL, UNKNOWN | 422 |
motherName |
MOTHER NAME IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 255 CHARACTERS | 400 |
motherName |
MOTHER NAME IS NOT APPLICABLE, SHALL NOT BE PROVIDED IF ENTITY TYPE IS DIFFERENT FROM: INDIVIDUAL, UNKNOWN | 422 |
threshold |
INVALID THRESHOLD VALUE, SHALL BE A NUMBER BETWEEN 0 AND 1 WITH 2 DECIMAL PLACES AFTER THE DECIMAL POINT | 400 |
sex |
INVALID SEX, CHECK POSSIBLE SEX VALUES | 400 |
sex |
SEX IS NOT APPLICABLE, SHALL NOT BE PROVIDED IF ENTITY TYPE IS DIFFERENT FROM: INDIVIDUAL, UNKNOWN | 422 |
date |
INVALID DATE, SHALL BE A VALID DATE VALUE/FORMAT | 422 |
streetName |
STREET NAME IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 255 CHARACTERS | 400 |
streetNumber |
STREET NUMBER IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 10 CHARACTERS | 400 |
street |
STREET IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 255 CHARACTERS | 400 |
poBox |
PO BOX IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 40 CHARACTERS | 400 |
zipCode |
ZIP CODE IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 40 CHARACTERS | 400 |
city |
CITY IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 100 CHARACTERS | 400 |
state |
STATE IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 20 CHARACTERS | 400 |
country |
INVALID COUNTRY, SHALL BE A VALID ISO 3166-1 ALPHA-2 VALUE | 422 |
nationalities |
NATIONALITY IS NOT APPLICABLE, SHALL NOT BE PROVIDED IF ENTITY TYPE IS DIFFERENT FROM: INDIVIDUAL, UNKNOWN | 400 |
datesOfBirth |
DATES OF BIRTH ARE NOT APPLICABLE, SHALL NOT BE PROVIDED IF ENTITY TYPE IS DIFFERENT FROM: INDIVIDUAL, UNKNOWN | 422 |
datesOfRegistry |
DATES OF REGISTRY NOT APPLICABLE, SHALL NOT BE PROVIDED IF ENTITY TYPE IS DIFFERENT FROM: ORGANIZATION | 422 |
countriesOfRegistry |
COUNTRIES O FREGISTRY NOT APPLICABLE, SHALL NOT BE PROVIDED IF ENTITY TYPE IS DIFFERENT FROM: ORGANIZATION | 422 |
datesOfBuild |
DATES OF BUILD NOT APPLICABLE, SHALL NOT BE PROVIDED IF ENTITY TYPE IS DIFFERENT FROM: VESSEL | 422 |
flags |
FLAGS ARE NOT APPLICABLE, SHALL NOT BE PROVIDED IF ENTITY TYPE IS DIFFERENT FROM: VESSEL | 422 |
entityTypeAlgo |
INVALID ENTITY TYPE ALGO, CHECK POSSIBLE ENTITY TYPE ALGO VALUES | 400 |
entityTypeAlgo |
INVALID INCLUDE/EXCLUDE OPTION FOR ENTITY TYPE ALGO, CHECK POSSIBLE ENTITY TYPE OPTION VALUES | 422 |
sexAlgo |
INVALID SEX ALGO, CHECK POSSIBLE SEX ALGO VALUES | 400 |
dateOfBirthAlgo |
INVALID DATE OF BIRTH ALGO, CHECK POSSIBLE DATE OF BIRTH ALGO VALUES | 400 |
placeOfBirthAlgo |
INVALID PLACE OF BIRTH ALGO, CHECK POSSIBLE PLACE OF BIRTH ALGO VALUES | 400 |
nationalityAlgo |
INVALID NATIONALITY ALGO, CHECK POSSIBLE NATIONALITY ALGO VALUES | 400 |
addressAlgo |
INVALID ADDRESS ALGO, CHECK POSSIBLE ADDRESS ALGO VALUES | 400 |
fullAddress |
FULL ADDRESS WITH PARSED ADDRESSES, SHALL NOT BE PROVIDED IF ANY OF THE FOLLOWING ATTRIBUTE IS PROVIDED WITHIN THE SAME BLOCK: STREET NUMBER, STREET NAME, STREET, PO BOX, ZIP CODE, CITY, STATE | 400 |
dateOfRegistryAlgo |
INVALID DATE OF REGISTRY ALGO, CHECK POSSIBLE DATE OF REGISTRY ALGO VALUES | 400 |
placeOfRegistryAlgo |
INVALID PLACE OF REGISTRY ALGO, CHECK POSSIBLE PLACE OF REGISTRY ALGO VALUES | 400 |
dateOfBuildAlgo |
INVALID DATE OF BUILD ALGO, CHECK POSSIBLE DATE OF BUILD ALGO VALUES | 400 |
flagAlgo |
INVALID FLAG ALGO, CHECK POSSIBLE FLAG ALGO VALUES | 400 |
nullMatch |
NULL-MATCH IS NOT CONFORM, SHALL BE A BOOLEAN VALUE | 400 |
libraries |
DUPLICATE LIBRARY ENTRY | 422 |
label |
LABEL IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 999 CHARACTERS | 400 |
label |
LABEL VALUE IS ALREADY USED | 422 |
value |
VALUE IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 999 CHARACTERS | 400 |
altValues |
ALT. VALUE IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 999 CHARACTERS | 400 |
cultureCodes |
INVALID CULTURE CODE, SHALL BE A VALID ISO 639-1 VALUE | 422 |
cultureCodes |
CULTURE CODE IS NOT APPLICABLE, SHALL NOT BE PROVIDED IF ENTITY TYPE IS DIFFERENT FROM: INDIVIDUAL, UNKNOWN | 422 |
prefixes |
THE COMBINATION OF THE FOLLOWING ATTRIBUTES MUST BE UNIQUE: VALUE; ENTITY TYPE | 422 |
suffixes |
THE COMBINATION OF THE FOLLOWING ATTRIBUTES MUST BE UNIQUE: VALUE; ENTITY TYPE | 422 |
stopwords |
THE COMBINATION OF THE FOLLOWING ATTRIBUTES MUST BE UNIQUE: VALUE; ENTITY TYPE; CULTURE CODES | 422 |
synonyms |
THE COMBINATION OF THE FOLLOWING ATTRIBUTES MUST BE UNIQUE: VALUE; ENTITY TYPE; CULTURE CODES; SEX | 422 |
dataset |
THE DATASET PROVIDED DOESN'T EXIST | 422 |
number |
NUMBER IS NOT CONFORM, SHALL BE IN THE RANGE FROM 1 TO 200 CHARACTERS | 400 |
narrative |
NARRATIVE SHALL BE PROVIDED WITH NO OTHER ATTRIBUTES (BUT DATAID) | 400 |
Legal
Terms of Service
Check Screena Help Center for Screena API Terms of Use.
Data Policy
Check Screena Help Center for Screena API Data Policy.