LSEG World-Check One Client Watchlist API
Maintain custom client watchlist sources and records for screening.
Maintain custom client watchlist sources and records for screening.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/lseg-world-check-one-client-watchlist-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: London Stock Exchange Group LSEG World-Check One Api-Info Client Watchlist API
description: 'The World-Check One API enables developers to integrate the next generation of LSEG screening capabilities into existing workflows and internal systems (such as CRMs) in order to help streamline the processes for on-boarding, KYC and third party due diligence.
The API provides, among other features:
- The ability to screen entity names, with or without secondary fields such as date of birth for individuals. These names are called “cases” within the World-Check One system.
- The ability to retrieve results of the screening process from the World-Check database
- The ability to flag cases for Ongoing Screening, and retrieve the World-Check results from the Ongoing Screening process.
- The ability to submit request for reports.
- The ability to fetch the status of the report requests and download the completed reports.
> © 2018 - 2023 LSEG. All rights reserved. Republication or redistribution of LSEG content, including by framing or similar means, is prohibited without the prior written consent of LSEG. ''LSEG'' and the LSEG logo are registered trademarks and trademarks of LSEG and its affiliated companies.
'
version: 2.61.0
termsOfService: https://www.lseg.com/en/risk-intelligence/screening-solutions/world-check-kyc-screening/one-kyc-verification
contact:
name: LSEG World-Check One API Q&A
url: https://community.developers.refinitiv.com/index.html
email: c3r.api1@lseg.com
license:
name: Commercial
url: https://www.lseg.com/en/risk-intelligence/screening-solutions/world-check-kyc-screening/one-kyc-verification
servers:
- url: https://api-worldcheck.refinitiv.com/v2
tags:
- name: Client-Watchlist
description: Operations for the Watchlist domain.
paths:
/reference/providers/sources/{identifier}:
put:
operationId: createOrUpdateProviderSource
tags:
- Client-Watchlist
summary: London Stock Exchange Group Create or update a provider source
description: 'Create or update a provider source for uploading entity records to. An example usage would be for a client watchlist.
'
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
in: header
required: true
schema:
type: string
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format
in: header
required: true
schema:
type: string
- name: Content-Type
description: The media type of the request (e.g., 'application/json')
in: header
required: true
schema:
type: string
- name: Content-Length
description: The length of the request body in octets (8-bit bytes)
in: header
required: true
schema:
type: integer
- name: identifier
description: Unique identifier for this provider source. Has to be alphanumeric.
in: path
required: true
schema:
type: string
responses:
204:
description: Provider source definition updated
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/CannotReturnResponse'
415:
$ref: '#/components/responses/UnsupportedMediaType'
429:
$ref: '#/components/responses/TooManyRequests'
500:
$ref: '#/components/responses/UnexpectedError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProviderSource'
description: Provider source details
required: true
/reference/watchlist:
post:
operationId: saveWatchlist
tags:
- Client-Watchlist
summary: London Stock Exchange Group Maintain your Watchlist data
description: "Maintain your Watchlist data using the following supported entity actions.\n\n* entityCreateOrUpdate - Add a new entity to your Watchlist or replace if it already exists.\n\n* entityDelete - Mark the given entity as deleted in your Watchlist.\n\n* entitySupersede - Supersede enables you to redirect matches against your superseded entity to a new entity. This\nis useful if you want to redirect users with existing matches against an old entity to a newer / more accurate\nversion of those entities.\n\n* entityPurge - Purge enables you to remove an entity as required by GDPR whereby the personally identifiable\ninformation is removed.\n\nDue to the large number of entries within a Watchlist it is not possible to update the entire Watchlist in a single request\nThe overall request must be split into blocks of up to 500 individual entity actions.\n\n\nThe response consists of a list of any entities which were not successfully processed and a reason for failure.\n\n**Note:** The client watchlist record may not be considered for re-screening if the 'modificationDate' field \n has not been specified while modifying the record.\n"
parameters:
- name: Authorization
description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
in: header
required: true
schema:
type: string
- name: Date
description: The date and time at which the message was originated in 'RFC 1123' format
in: header
required: true
schema:
type: string
- name: Content-Type
description: The media type of the request (e.g., 'application/json')
in: header
required: true
schema:
type: string
- name: Content-Length
description: The length of the request body in octets (8-bit bytes)
in: header
required: true
schema:
type: integer
responses:
201:
description: Request to maintain Watchlist data has succeeded. Please review the contents of WatchlistResponse errors for details on any individual entity actions which were not successful.
content:
application/json:
schema:
$ref: '#/components/schemas/WatchlistResponse'
application/octet-stream:
schema:
$ref: '#/components/schemas/WatchlistResponse'
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/CannotReturnResponse'
415:
$ref: '#/components/responses/UnsupportedMediaType'
429:
$ref: '#/components/responses/TooManyRequests'
500:
$ref: '#/components/responses/UnexpectedError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WatchlistDataSet'
description: A collection of maintenance actions to be performed on your Watchlist.
required: true
components:
schemas:
IdentityDocument:
type: object
properties:
entity:
$ref: '#/components/schemas/Entity'
expiryDate:
type: string
issueDate:
type: string
issuer:
type: string
locationType:
$ref: '#/components/schemas/IdentityDocumentLocationType'
number:
type: string
type:
type: string
EntityUpdatedDates:
type: object
properties:
ageUpdated:
type: string
format: date-time
aliasesUpdated:
type: string
format: date-time
alternativeSpellingUpdated:
type: string
format: date-time
asOfDateUpdated:
type: string
format: date-time
categoryUpdated:
type: string
format: date-time
citizenshipsUpdated:
type: string
format: date-time
companiesUpdated:
type: string
format: date-time
deceasedUpdated:
type: string
format: date-time
dobsUpdated:
type: string
format: date-time
eiUpdated:
type: string
format: date-time
enteredUpdated:
type: string
format: date-time
externalSourcesUpdated:
type: string
format: date-time
firstNameUpdated:
type: string
format: date-time
foreignAliasUpdated:
type: string
format: date-time
furtherInformationUpdated:
type: string
format: date-time
idNumbersUpdated:
type: string
format: date-time
keywordsUpdated:
type: string
format: date-time
lastNameUpdated:
type: string
format: date-time
linkedToUpdated:
type: string
format: date-time
locationsUpdated:
type: string
format: date-time
lowQualityAliasesUpdated:
type: string
format: date-time
passportsUpdated:
type: string
format: date-time
placeOfBirthUpdated:
type: string
format: date-time
positionUpdated:
type: string
format: date-time
ssnUpdated:
type: string
format: date-time
subCategoryUpdated:
type: string
format: date-time
titleUpdated:
type: string
format: date-time
updatecategoryUpdated:
type: string
format: date-time
sicUpdated:
type: string
format: date-time
TranslatedEntity:
type: object
description: Representation of translated entity.
properties:
translationDisclaimer:
type: string
description: Disclaimer for Translation Response.
details:
type: array
description: A collection of translated entity details.
items:
$ref: '#/components/schemas/Detail'
IdentityDocumentLocationType:
type: object
description: 'Represents the type of identity document location that includes the type of document, name, country
and what type of entity it belongs to.
'
properties:
country:
$ref: '#/components/schemas/Country'
name:
type: string
type:
type: string
entityTypes:
type: array
items:
$ref: '#/components/schemas/EntityType'
ProviderSourceType:
type: object
properties:
category:
$ref: '#/components/schemas/ProviderSourceTypeCategoryDetail'
identifier:
type: string
name:
type: string
Country:
type: object
required:
- code
- name
properties:
code:
type: string
name:
type: string
AbstractAssociate:
type: object
description: 'The `AbstractAssociate` subclasses corresponding to each type of entity are:
* `COUNTRY`: `CountryAssociate`
* `INDIVIDUAL`: `IndividualAssociate`
* `ORGANISATION`: `OrganisationAssociate`
* `VESSEL`: `VesselAssociate`
'
discriminator:
propertyName: associateEntityType
required:
- associateEntityType
- entityType
properties:
associateEntityType:
type: string
description: Discriminator field. Might go away in a future major version of the API
entityType:
type: string
description: 'Profile Entity Type Enumeration.
The `Entity` subclasses corresponding to each type of entity are:
* `COUNTRY` : `CountryEntity`
* `INDIVIDUAL` : `IndividualEntity`
* `ORGANISATION` : `OrganisationEntity`
* `VESSEL` : `VesselEntity`
'
enum:
- COUNTRY
- INDIVIDUAL
- ORGANISATION
- VESSEL
reversed:
type: boolean
default: false
targetEntityId:
type: string
targetExternalImportId:
type: string
type:
type: string
description: Associate Type Enumeration
default: UNKNOWN
enum:
- ADVISOR
- AGENT_REPRESENTATIVE
- AFFILIATED_COMPANY
- AFFILIATED_ORGANIZATION
- AFFILIATED_POSITION
- ASSET
- ASSISTANT
- ASSOCIATE
- ASSOCIATED_SPECIAL_INTEREST_PERSON
- AUNT
- BANKER
- BRANCH_OFFICE
- BROTHER
- BROTHER_IN_LAW
- BUSINESS_ASSOCIATE
- CHILD
- CLIENT
- COLLEAGUE
- COUSIN
- CO_DEFENDANT
- DAUGHTER
- DAUGHTER_IN_LAW
- DIRECTOR
- DOC_COMPANY
- EMPLOYEE
- EMPLOYER
- EXECUTIVE
- EX_HUSBAND
- EX_WIFE
- FAMILY
- FAMILY_MEMBER
- FATHER
- FATHER_IN_LAW
- FINANCIAL_ADVISOR
- FRIEND
- FRONT_COMPANY
- GRANDDAUGHTER
- GRANDFATHER
- GRANDMOTHER
- GRANDSON
- GRAND_CHILD
- GROUP_BENEFICIAL_OWNER
- HUSBAND
- KEY_MEMBER
- LEGAL_ADVISOR
- MISC
- MOTHER
- MOTHER_IN_LAW
- NEPHEW
- NIECE
- NOMINEE
- OPERATOR
- OWNER
- PARENT
- POLITICAL_ADVISOR
- REGISTERED_OWNER
- RELATIVE
- SAME_SEX_SPOUSE
- SENIOR_OFFICIAL
- SHAREHOLDER_OWNER
- SHIP_MANAGER
- SISTER
- SISTER_IN_LAW
- SON
- SON_IN_LAW
- SPOUSE
- STEP_DAUGHTER
- STEP_SON
- STEPFATHER
- STEPMOTHER
- SUBSIDIARY
- TECHNICAL_MANAGER
- UNCLE
- UNKNOWN
- UNMARRIED_PARTNER
- WIFE
targetPrimaryName:
type: string
creationDate:
type: string
format: date-time
modificationDate:
type: string
format: date-time
updateCategory:
type: string
description: Entity Update Category Enumeration
enum:
- C1
- C2
- C3
- C4
- C6
- UNKNOWN
category:
type: string
targetCategories:
type: array
description: List of names of [ProviderSourceTypeCategoryDetail](#ProviderSourceTypeCategoryDetail) in sources of target Entity.
uniqueItems: true
items:
type: string
EntityDelete:
type: object
required:
- entityId
properties:
entityId:
type: string
Address:
type: object
properties:
city:
type: string
country:
$ref: '#/components/schemas/Country'
postCode:
type: string
region:
type: string
street:
type: string
ContactDetail:
type: object
required:
- contactDetailType
properties:
contactDetailType:
type: string
description: Contact Detail Type Enumeration
enum:
- EMAIL
- FAX
- URL
- VOICE
country:
$ref: '#/components/schemas/Country'
detail:
type: string
Error:
type: object
required:
- error
- cause
properties:
error:
type: string
cause:
type: string
objectId:
type: string
Name:
type: object
required:
- fullName
- type
properties:
fullName:
type: string
givenName:
type: string
languageCode:
$ref: '#/components/schemas/LanguageCode'
lastName:
type: string
originalScript:
type: string
prefix:
type: string
suffix:
type: string
type:
type: string
description: Watchlist Profile Name Type enumeration
enum:
- PRIMARY
- AKA
- AKAENHANCED
- FKA
- DBA
- MAIDEN
- LANG_VARIATION
- PREVIOUS
- VEHICLE_ID
- LOW_QUALITY_AKA
- NATIVE_AKA
Detail:
type: object
properties:
detailType:
type: string
description: Detail Type Enumeration
default: UNKNOWN
enum:
- BIOGRAPHY
- FUNDING
- IDENTIFICATION
- NOTE
- REPORTS
- REGULATION
- SANCTION
- UNKNOWN
text:
type: string
title:
type: string
maxLength: 255
EntityPurge:
type: object
required:
- entityId
properties:
entityId:
type: string
purgedDate:
type: string
format: date-time
Provider:
type: object
properties:
code:
type: string
identifier:
type: string
master:
type: boolean
default: false
name:
type: string
Image:
type: object
required:
- uri
properties:
caption:
type: string
height:
type: integer
format: int32
imageUseCode:
type: string
uri:
type: string
tags:
type: array
description: "Label(s) for the corresponding uri. For example,\n - PHOTO indicates the page represented by the uri contains images.\n - PDF indicates the page represented by the uri contains PDFs.\n"
items:
type: string
width:
type: integer
format: int32
ActionDetail:
type: object
required:
- actionType
properties:
actionId:
type: string
actionType:
type: string
description: Action Detail Type Enumeration
enum:
- CIVIL_ACTION
- CRIMINAL_CONVICTION
- ENFORCEMENT
- SANCTION
comment:
type: string
endDate:
type: string
format: date-time
files:
type: array
items:
$ref: '#/components/schemas/FileMeta'
publicationType:
type: string
published:
type: string
reference:
type: string
source:
$ref: '#/components/schemas/ProviderSource'
startDate:
type: string
format: date-time
text:
type: string
title:
type: string
FileMeta:
type: object
required:
- caption
- uri
properties:
caption:
type: string
uri:
type: string
tags:
type: array
description: "Label(s) for the corresponding uri. For example,\n - PHOTO indicates the page represented by the uri contains images.\n - PDF indicates the page represented by the uri contains PDFs.\n"
items:
type: string
WatchlistResponse:
type: object
required:
- errors
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Error'
LanguageCode:
type: object
properties:
code:
type: string
name:
type: string
Weblink:
type: object
properties:
caption:
type: string
uri:
type: string
tags:
type: array
description: "Label(s) for the corresponding uri. For example,\n - PHOTO indicates the page represented by the uri contains images.\n - PDF indicates the page represented by the uri contains PDFs.\n - DATE indicates the date when the uri was added to the record.\n"
items:
type: string
EntitySupersede:
type: object
required:
- entityId
- supersedingEntityId
properties:
entityId:
type: string
supersedingEntityId:
type: string
ProviderSource:
type: object
required:
- abbreviation
- identifier
- name
- providerSourceStatus
- type
properties:
abbreviation:
type: string
description: Abbreviated form of this source's `name`.
creationDate:
type: string
format: date-time
identifier:
type: string
description: An alphanumeric value
importIdentifier:
type: string
name:
type: string
description: Full name of this source.
maxLength: 255
provider:
description: Provider for this source.
$ref: '#/components/schemas/Provider'
providerSourceStatus:
type: string
description: Provider Source Status Enumeration
enum:
- ACTIVE
- DELETED
- HIDDEN
regionOfAuthority:
type: string
subscriptionCategory:
type: string
description: Subscription Category Type Enumeration
default: STANDARD
enum:
- PREMIUM
- STANDARD
modificationDate:
type: string
description: "Modification date of source. This field is updated only when there is a change in either source name \nor description. This field does not capture any updates to the underlying records that are added/deleted \nto/from the source.\n"
format: date-time
description:
type: string
description: Description of the source.
type:
$ref: '#/components/schemas/ProviderSourceType'
EntityType:
type: string
description: Entity type of the case.
enum:
- INDIVIDUAL
- ORGANISATION
- VESSEL
- COUNTRY
CountryLink:
type: object
required:
- country
- type
properties:
country:
$ref: '#/components/schemas/Country'
countryText:
type: string
type:
type: string
description: Country Link Type Enumeration
enum:
- NATIONALITY
- OPERATESIN
- POB
- POD
- REGISTEREDIN
- RESIDENT
- VESSELFLAG
- LOCATION
Entity:
type: object
description: 'Represents a specific entity - usually corresponding to an individual or an organisation - that can appear
as a potential screening result against a `Case`. Synonyms for this concept include "Profile".
The `Entity` subclasses corresponding to each type of entity (designated by the `entityType` field below) are:
* `COUNTRY` : `CountryEntity`
* `INDIVIDUAL` : `IndividualEntity`
* `ORGANISATION` : `OrganisationEntity`
* `VESSEL` : `VesselEntity`
Notes for Client Watchlist usage:
* to add Date of Birth to an Individual entity, please use the `events` array with the "type":"BIRTH"
* to add Place of Birth to an Individual entity, please use the `events` array with the "type":"BIRTH" and populate the `Region` field as part of the event `address` object
* to add Registered Country to a Vessel entity, please use the `countryLinks` array with the "type":"VESSELFLAG"
* to add Registered Country to an Organisation entity, please use the `countryLinks` array with the "type": "REGISTEREDIN"
'
discriminator:
propertyName: entityType
required:
- entityId
- creationDate
- names
- sources
- externalImportId
properties:
actions:
type: array
items:
$ref: '#/components/schemas/ActionDetail'
active:
type: boolean
default: false
addresses:
type: array
items:
$ref: '#/components/schemas/Address'
associates:
type: array
items:
$ref: '#/components/schemas/AbstractAssociate'
category:
type: string
comments:
type: string
contacts:
type: array
items:
$ref: '#/components/schemas/ContactDetail'
countryLinks:
type: array
items:
$ref: '#/components/schemas/CountryLink'
creationDate:
type: string
format: date-time
deletionDate:
type: string
format: date-time
description:
type: string
details:
type: array
items:
$ref: '#/components/schemas/Detail'
entityId:
type: string
description: An alphanumeric value including "_"
externalImportId:
type: string
description: An alphanumeric value including "_"
files:
type: array
items:
$ref: '#/components/schemas/FileMeta'
identityDocuments:
type: array
items:
$ref: '#/components/schemas/IdentityDocument'
images:
type: array
items:
$ref: '#/components/schemas/Image'
lastAdjunctChangeDate:
type: string
format: date-time
modificationDate:
type: string
format: date-time
names:
type: array
items:
$ref: '#/components/schemas/Name'
previousCountryLinks:
type: array
items:
$ref: '#/components/schemas/CountryLink'
provider:
$ref: '#/components/schemas/Provider'
sourceDescription:
type: string
sourceUris:
type: array
items:
type: string
sources:
type: array
items:
$ref: '#/components/schemas/ProviderSource'
subCategory:
type: string
updateCategory:
type: string
description: Entity Update Category Enumeration
enum:
- C1
- C2
- C3
- C4
- C6
- UNKNOWN
updatedDates:
$ref: '#/components/schemas/EntityUpdatedDates'
weblinks:
type: array
items:
$ref: '#/components/schemas/Weblink'
translatedEntity:
allOf:
- $ref: '#/components/schemas/TranslatedEntity'
x-wc1-field-extra-annotations: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)'
WatchlistDataSet:
type: object
properties:
entityCreateOrUpdate:
type: array
items:
$ref: '#/components/schemas/Entity'
entityDelete:
type: array
items:
$ref: '#/components/schemas/EntityDelete'
entitySupersede:
type: array
items:
$ref: '#/components/schemas/EntitySupersede'
entityPurge:
type: array
items:
$ref: '#/components/schemas/EntityPurge'
ProviderSourceTypeCategoryDetail:
type: object
properties:
description:
type: string
identifier:
type: string
maxLength: 255
name:
type: string
maxLength: 255
responses:
Unauthorized:
description: The request has failed an authorisation check. This can happen for a variety of reasons, such as an invalid or expired API key, an invalid HMAC signature or a request timing issue/problem with the Date header value. The API client should ensure a correctly synchronised clock is used to generate request timestamps.
UnexpectedError:
description: Unexpected error
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Error'
application/octet-stream:
schema:
type: array
items:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad request
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Error'
application/octet-stream:
schema:
type: array
items:
$ref: '#/components/schemas/Error'
UnsupportedMediaType:
description: For requests with payloads, an unsupported Content-Type was specified. The World-Check One API only supports a content type of application/json.
TooManyRequests:
description: The API client is making too many concurrent requests, and some are being throttled. Throttled requests can be retried (with an updated request Date and HTTP signature) after a short delay.
CannotReturnResponse:
description: Cannot return response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Error'
application/octet-stream:
schema:
type: array
items:
$ref: '#/components/schemas/Error'
externalDocs:
description: Refer to the LSEG Developer Portal for additional documentation on the World-Check One API.
url: https://developers.lseg.com/en/api-catalog/customer-and-third-party-screening/world-check-one-api
x-tagGroups:
- name: Upcoming Features and Changes
tags:
- upcoming
- name: Zero Footprint Screening
tags:
- zfs
- name: Case Management and Audit
tags:
- api-info
- reference
- group
- case
- audit
- media-check
- client-watchlist
- user
- passport-check
- linked-cases
- case-rating
- smart-filter
- reporting