Documentation · Coverage

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 filesIn API resultsUse
properties.sanctions[].properties.programprogrammeThe role or office as the register publishes it.
properties.sanctions[].properties.authority, datasetssourceThe register, which tells you the country and level of government.
birthDate, nationalitybirth_date, nationalityTo confirm identity. Often missing on office-holder registers.
first_seen, last_seenlast_seenWhen we first collected the record and last confirmed it.
canonical_idmerged_entityOther 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 (datasets or source); each register belongs to one publisher. The register list is in each collection's sources.json, with its country. Through the API, use include_dataset or exclude_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 = Person if you only want individuals.

Last updated 2026-10-03