Updates / Deltas
To ensure that your local copies of both the Records and References data are fresh, frequent retrievals of new, updated, and deleted records should be performed by your application.
Request Date
World-Check On Demand is designed with deterministic responses, even across multiple pages. This means that all pages in a response are based on the state of the records when the first request was made (i.e., the request that generated page #1). This timestamp is returned as the meta.requestDate
.
This value from page #1 must be safely stored by your application as this is the maximum starting point for subsequent delta retrievals, ensuring that no publications are missed. You should store and use the request dates for different request types separately.
"meta": {
"legalNotices": "https://developers.lseg.com/content/dam/devportal/en_us/product-docs/wcod/legal",
"requestingUser": "XXXXXXXXXXXXXXXXXX",
"requestDate": "2025-08-29T02:56:50.763Z",
"cursors": {
"previous": "0",
"next": "gAAAAABosRbzlx0X4nZ79VRXmnTas01HitkS_S98jkExd_LkJjPxenGYKmmftyxBErIAR6I6lnThBzY9us7iCwfztgM6xd_xA-jEVCzyU5nwKCXQ8wlUQys="
},
"queryHash": "0803c3f725f67be965edcf4b0c223d9328db29a0926593f6c38b96ceea962e70-MjAyNS0wOC0yOVQwMjo1Njo1MC43NjNa"
},
Delta Request (New and Updated Records / References)
With World-Check On Demand, it is highly recommended to design your application and ingestion to do a delta run for new, updated, and deleted records and references on the highest frequency as possible, such as every 1 minute. This provides two benefits: (a) data freshness at par with LSEG, and (b) fast delta performance as only a small number of records are new/updated/deleted in the past 1 minute.
Every new record or updates to an existing record will have a value in their respective lastPublishedDate
indicating when the record or most recent record update was made publicly available by World-Check On Demand. Hence, when requesting for both new and updated records, the lastPublishedDate
filter must used in the request payload.
{
"criteria": {
"field": "lastPublishedDate",
"operator": "gt",
"value": "2025-08-25T03:00:00.000Z"
}
}
{
"query": {
"queryOperator": "and",
"criteria": [
{
"field": "lastPublishedDate",
"operator": "gt",
"value": "2025-08-25T03:05:00.000Z"
},
{
"field": "keywordType",
"operator": "includes",
"value": [
"wcKeywordType:SANCTIONS"
]
}
]
}
}
The value
in the above examples should be the previous requestDate
from page #1 of the previous data retrieval session. This approach will ensure that no record published since will be missed. It is possible to have a slightly earlier value than the captured requestDate
to create a slight overlap, but your application must ensure that it handles duplicate records gracefully.
Depending on your risk appetite, you can design your application to have multiple deltas for different types of data. For example:
- A delta every 12 hours for Politically Exposed Persons
- A delta every 5 minutes for records with Sanctions keywords
- A daily delta for everything else
- A weekly delta for everything else again for peace of mind
Once you get page #1 of the new delta, save the requestDate
value for the subsequent delta session. This gives you flexibility on your delta schedules.
Recommended delta retrieval sequence:
- Retrieve new schemes using the
/newSince
parameter with the value of the previousrequestDate
for the same "new schemes" query in the previous delta run. Save the newrequestDate
value from page #1 of the response. - Retrieve updated schemes using the
/changedSince
parameter with the value of the previousrequestDate
value for the same "updated schemes" query in the previous delta run. Save the newrequestDate
value from page #1 of the response. - Retrieve new concepts using the
/newSince
parameter with the value of the previousrequestDate
value for the same "new concepts" query in the previous delta run. Save the newrequestDate
value from page #1 of the response. - Retrieve updated concepts using the
/changedSince
parameter with the value of the previousrequestDate
value for the same "updated concepts" query in the previous delta run. Save the newrequestDate
value from page #1 of the response. - Retrieve updated and changed records using the
lastPublishedDate
filter with thegt
operator. Use the previousrequestDate
value for the same "new/updated records" query in the previous delta run. Save the newrequestDate
value from page #1 of the response. - Retrieve deleted records using the
lastPublishedDate
filter with thegt
operator and a second filter using therecordStatus
field. Use the previousrequestDate
value for the same "deleted records" query in the previous delta run. Save the newrequestDate
value from page #1 of the response.
At the end of each run, you should have a new set of six requestDate
values from the different queries above.
If you are specifically after new records only, use the initialPublishedDate
in the query payload instead. Note that records without any update since initial publication will have a lastPublishedDate
value that is equal to the initialPublishedDate
.
Design your application to handle duplicate records gracefully. Duplicate records may appear if you have multiple overlapping deltas across different data types, like the example above. Duplicates are also expected if you are purposely overlapping delta starting points. Duplicates are records with the same UID and lastPublishedDate
values.