Using PEP data
Practical advice for screening against our PEP data, whether you call the API or load the bulk files.
Dataset selection
For bulk use, we recommend the default collection, filtered to the topic role.pep: you get the same PEP records as in the peps collection and keep the sanctions and debarment records in the same pipeline, so a PEP who is also sanctioned is not missed.
# PEP records from the Crown Default collection
jq -c 'select(.properties.topics | index("role.pep"))' targets.nested.json > peps.json
If you only want PEPs, download the peps collection (— records). Through the API, screen against /api/match/peps, or against /api/match/default and look at each result's list_type.
curl -X POST "https://api.crownintelligence.net/api/match/peps" \
-H "Content-Type: application/json" \
-d '{"queries":{"q1":{"schema":"Person","properties":{"name":["Jane Example"],"nationality":["ca"]}}}}'
To keep the sanctions and debarment records in the same call, screen against default and add the topics=role.pep filter. Candidates are then limited to records tagged as PEPs, and the filter you applied is echoed back in the response's filters field.
curl -X POST "https://api.crownintelligence.net/api/match/default?topics=role.pep" \
-H "Content-Type: application/json" \
-d '{"queries":{"q1":{"schema":"Person","properties":{"name":["Jane Example"],"nationality":["ca"]}}}}'
To limit or widen the registers, add include_dataset (keep only the named registers) or exclude_dataset (leave them out). Both take the register's full name as shown on Sources and in each result's datasets field, URL-encoded, and both can be repeated. For example, members of the House of Commons only:
curl -X POST "https://api.crownintelligence.net/api/match/default?topics=role.pep&include_dataset=Canada%20Commons%20%E2%80%94%20Members%20of%20the%20House%20of%20Commons" \
-H "Content-Type: application/json" \
-d '{"queries":{"q1":{"schema":"Person","properties":{"name":["Pierre Poilievre"]}}}}'
The same three filters work on /api/search. Several values of one filter are combined with OR, different filters with AND. See the request for the full rules.
What to look at in a PEP record
| In the bulk files | In API results | Use |
|---|---|---|
properties.sanctions[].properties.program | programme | The role or office as the register publishes it. |
properties.sanctions[].properties.authority, datasets | source | The register, which tells you the country and level of government. |
birthDate, nationality | birth_date, nationality | To confirm identity. Often missing on office-holder registers. |
first_seen, last_seen | last_seen | When we first collected the record and last confirmed it. |
canonical_id | merged_entity | Other records we have matched as the same person. |
We do not yet hold start and end dates of office, constituency, party or whether a person is still in office; see PEP methodology.
Filtering
- By country or level of government: filter on the register (
datasetsorsource); each register belongs to one publisher. The register list is in each collection'ssources.json, with its country. Through the API, useinclude_datasetorexclude_dataset. - Prefer excluding to including. If some registers are outside your obligations, drop them by name rather than keeping a short list of registers you want: new registers we add will then reach you by default.
- Records typed as organisations. A few PEP registers list bodies (committees, parties) rather than people. Filter on
schema=Personif you only want individuals.
Last updated 2026-10-03