PEP
The PEP dataset carries politically exposed persons (PEP) and their relatives and close associates (RCA). Each record is one person, with schema set to Person, and its topics carry role.pep, role.rca or both.
Requires the pep scope. Your API key is also granted a set of coverage source codes, and responses include only records from those sources. See Authentication.
- 200
- OK
- 400
- Bad Request
- 401
- Unauthorized
- 403
- Forbidden
- 404
- Not Found
- 406
- Not Acceptable
- 410
- Gone
- 422
- Validation error
- 429
- Too Many Requests
- 500
- Internal Server Error
- 503
- Service Unavailable
The PEP entity object
Section titled “The PEP entity object”Every PEP record carries eight top-level fields: id, schema, status, topics, sources, firstSeen, lastSeen and properties. Every properties key is present on every record. names[] holds one item per distinct full name, and is an empty array when the record has no name. names[], identifiers[], addresses[], roles[] and relations[] are arrays of objects, deceased is a boolean, and the remaining properties are arrays of strings.
Attributes
Stable entity id in UUIDv4 format.
Entity type. Always Person.
A natural person: the politically exposed person or the relative/close associate.
Lifecycle state of the record. Served records currently carry published.
Topic memberships of the record.
The record is a politically exposed person.
The record is a relative or close associate of a politically exposed person.
Coverage codes: one pep-{iso3} code per coverage country (e.g. pep-swe); pep-eu and pep-intl cover EU institutions and international organisations. The authoritative coverage field: key grants and the country query parameter match on these codes.
See Source codes for the codes this field can carry and how grants decide which records you receive.
When the record was first observed (ISO 8601).
Most recent observation of the record (ISO 8601).
Propertiesobject · always present
The entity's attributes. Fields are served in the documented order and appear only when the source asserts a value.
The person's names, one item per name as the source asserts it ({type, fullName, firstName, middleName, lastName}). primary items first, then alias, then variant, each group ordered by fullName. Always served; may be empty.
Show child attributesHide child attributes
Name type: primary for the registered legal name, alias for a name the source itself records as another name of the person (an alias, a nickname, a maiden name), variant for a spelling or transliteration variant of a name.
The registered legal name.
A name the source records as another name of the person: an alias, a nickname, a maiden name.
A spelling or transliteration variant of a name.
The whole name, always set.
First-name part; null when the source did not record one.
Middle-name part; null when the source did not record one.
Last-name part; null when the source did not record one.
Dates of birth; ISO 8601, possibly partial (1975, 1975-03).
Places of birth, as published by the source.
Countries of birth, ISO 3166-1 alpha-2.
The person's coverage countries, ISO 3166-1 alpha-2: the same countries sources carries as pep-{iso3} codes.
See Coverage fields.
Gender, as published by the source (e.g. male, female).
Image URLs, when the source provides them.
Whether the person is recorded as deceased.
Typed identification numbers, one item per number ({type, value, country}).
See Identifier types for the applicable types and their value formats per country.
Show child attributesHide child attributes
The identification number, e.g. 19980808-1234. The format is specific to the identifier type and issuing country.
Identifier type as named by the issuing country's scheme (e.g. ssn). Null if the source didn't record one.
See Identifier types for the applicable types and their value formats.
Issuing country, ISO 3166-1 alpha-2 (e.g. se). Null if the source didn't record one.
Typed address objects, one shared shape across datasets. Only the holder's primary addresses are served.
Show child attributesHide child attributes
Stable UUID of the address row.
Pre-formatted single-line address (e.g. EXEMPELGATAN 1, 11122 STOCKHOLM).
Street address line.
Second street address line, when the source splits the street over two.
City or locality.
Postal code.
Region or county.
State or province.
ISO 3166-1 alpha-2.
Whether this is the holder's primary address.
Rolesarray of object · optional
See PEP positions for the position titles and categories these entries carry.
Stable UUID of the role, the specific holding by this person.
The position (post) this role is a holding of: a post defined independently of its holders, occupiable by one or more persons over time. Shared across every holder of the same position.
Show child attributesHide child attributes
Stable UUID of the position. Shared across every holder of the same position.
The title of the position (e.g. Prime Minister).
The general category of the position, for grouping and identifying the type of PEP the holder is (e.g. Members of Parliament). Null when the position has no category.
See PEP positions for the categories this field can carry.
The body the role is held at (e.g. Embassy of Zambia in Sweden). Null when no organization is recorded.
Show child attributesHide child attributes
Stable UUID of the organization. Shared across every role held at the same body.
Organization name (e.g. Sveriges Riksdag).
The jurisdiction whose PEP rules classify this role: an ISO 3166-1 alpha-2 country code (e.g. se), or eu for a role classified under EU-level rules. When the source records none, the holder's coverage country is used if there is exactly one; null otherwise.
Status of the holding as recorded by the source: active for a current role, inactive for one that has ended.
When the holder took the position (ISO 8601 date, e.g. 2022-09-26).
When the holding ended or is scheduled to end (ISO 8601 date). null while open-ended.
Relationsarray of object · optional
See Relation types for the relationship labels these entries carry.
Stable UUID of the relationship edge.
Relationship label (e.g. Spouse, Cohabitant, Son).
See Relation types for the labels this field can carry.
id of the related person.
The related person is a record in this dataset. Look it up with Entity lookup; it is returned when it falls within your key's source grants.
When the relationship began, if recorded (ISO 8601).
When the relationship ended, if recorded (ISO 8601).
Version 2.0.8 records carry the same eight top-level fields as 3.0.0. The schema enum also declares Family, Occupancy, Organization and Position, which no record carries. Every properties key is present on every record. The names are flat string arrays (name, firstName, middleName, lastName) built from the person’s primary names only, deceased is ["yes"] for a deceased person and [] otherwise, and each role carries an organization object and a jurisdiction. The flat idNumber, passportNumber and taxNumber arrays repeat values from the typed identifiers[] and are deprecated, as are email, phone, citizenship and nationality. Version 2.0.8 is deprecated and scheduled to stop being served on 2027-10-05. See Pinning a version for how to request it, and the PEP schema changelog for what changed in 3.0.0.
Attributes
Stable entity id in UUIDv4 format.
Entity type. Value currently served: Person.
A family-relationship record. Relationships are inlined as properties.relations[] instead. Not served: no record carries this value. Deprecated; removed in the next major.
A position-holding record. Role holdings are inlined as properties.roles[] instead. Not served: no record carries this value. Deprecated; removed in the next major.
An organization. Not served: no record carries this value. Deprecated; removed in the next major.
A natural person: the politically exposed person or the relative/close associate.
A position reference record. The post is inlined as properties.roles[].position instead. Not served: no record carries this value. Deprecated; removed in the next major.
Lifecycle state of the record. Served records currently carry published.
Topic memberships of the record.
The record is a politically exposed person.
The record is a relative or close associate of a politically exposed person.
Coverage codes: one pep-{iso3} code per coverage country (e.g. pep-swe); pep-eu and pep-intl cover EU institutions and international organisations. The authoritative coverage field: key grants and the country query parameter match on these codes.
See Source codes for the codes this field can carry and how grants decide which records you receive.
When the record was first observed (ISO 8601).
Most recent observation of the record (ISO 8601).
Propertiesobject · always present
The entity's attributes. Fields are served in the documented order and appear only when the source asserts a value.
Full names, one item per known form.
First-name parts of the person's names.
Middle-name parts of the person's names.
Last-name parts of the person's names.
Honorific or professional titles, as published by the source.
Dates of birth; ISO 8601, possibly partial (1975, 1975-03).
Places of birth, as published by the source.
Countries of birth, ISO 3166-1 alpha-2.
The person's coverage countries, ISO 3166-1 alpha-2: the same countries sources carries as pep-{iso3} codes.
See Coverage fields.
Gender, as published by the source (e.g. male, female).
Image URLs, when the source provides them.
Deceased marker: ["yes"] when the person is recorded as deceased, empty otherwise. Becomes a boolean in the next major.
Typed identification numbers, one item per number ({type, value, country}).
See Identifier types for the applicable types and their value formats per country.
Show child attributesHide child attributes
The identification number, e.g. 19980808-1234. The format is specific to the identifier type and issuing country.
Identifier type as named by the issuing country's scheme (e.g. ssn). Null if the source didn't record one.
See Identifier types for the applicable types and their value formats.
Issuing country, ISO 3166-1 alpha-2 (e.g. se). Null if the source didn't record one.
Typed address objects, one shared shape across datasets. Only the holder's primary addresses are served.
Show child attributesHide child attributes
Stable UUID of the address row.
Pre-formatted single-line address (e.g. EXEMPELGATAN 1, 11122 STOCKHOLM).
Street address line.
Second street address line, when the source splits the street over two.
City or locality.
Postal code.
Region or county.
State or province.
ISO 3166-1 alpha-2.
Whether this is the holder's primary address.
Deprecated: rarely populated. Removed in the next major.
Citizenships, ISO 3166-1 alpha-2. Deprecated: removed in the next major.
Deprecated: not populated by the source. Removed in the next major.
Deprecated: not populated by the source. Removed in the next major.
Deprecated: duplicated in the typed identifiers[]; use that. Removed in a future major.
Deprecated: duplicated in the typed identifiers[]; use that. Removed in a future major.
Deprecated: duplicated in the typed identifiers[]; use that. Removed in a future major.
Rolesarray of object · optional
Structured post-holdings: one item per position held at an organization.
Stable UUID of the role, the specific holding by this person.
The position (post) this role is a holding of: a post defined independently of its holders, occupiable by one or more persons over time. Shared across every holder of the same position.
Show child attributesHide child attributes
Stable UUID of the position. Shared across every holder of the same position.
The title of the position (e.g. Prime Minister).
The general category of the position, for grouping and identifying the type of PEP the holder is (e.g. Members of Parliament). Null when the position has no category.
See PEP positions for the categories this field can carry.
The body the role is held at (e.g. Embassy of Zambia in Sweden). Null when no organization is recorded.
Show child attributesHide child attributes
Stable UUID of the organization. Shared across every role held at the same body.
Organization name (e.g. Sveriges Riksdag).
Deprecated: misleading (the country of the body, which for embassies and similar is the accreditation country). Use the role's jurisdiction. Removed in the next major.
The jurisdiction whose PEP rules classify this role: an ISO 3166-1 alpha-2 country code (e.g. se), or eu for a role classified under EU-level rules. When the source records none, the holder's coverage country is used if there is exactly one; null otherwise.
Status of the holding as recorded by the source: active for a current role, inactive for one that has ended.
When the holder took the position (ISO 8601 date, e.g. 2022-09-26).
When the holding ended or is scheduled to end (ISO 8601 date). null while open-ended.
Relationsarray of object · optional
Family and close-associate links to other persons in the dataset.
Stable UUID of the relationship edge.
Relationship label (e.g. Spouse, Cohabitant, Son).
See Relation types for the labels this field can carry.
id of the related person.
The related person is a record in this dataset. Look it up with Entity lookup; it is returned when it falls within your key's source grants.
When the relationship began, if recorded (ISO 8601).
When the relationship ended, if recorded (ISO 8601).
Version 1.0.0 records carry the same eight top-level fields as 3.0.0. The schema enum also declares Family, Occupancy, Organization and Position, which no record carries. Every properties key is present on every record. The names are flat string arrays (name, firstName, middleName, lastName) built from the person’s primary names only, and deceased is ["yes"] for a deceased person and [] otherwise. Each role carries an organizationName string and a position.country instead of an organization object, has no jurisdiction, and its position.institution is always null. The flat idNumber, passportNumber and taxNumber arrays repeat values from the typed identifiers[] and are deprecated, as are email, phone, citizenship and nationality. Version 1.0.0 is deprecated and scheduled to stop being served on 2027-06-04. See Pinning a version for how to request it, and the PEP schema changelog for what changed since.
Attributes
Stable entity id in UUIDv4 format.
Entity type. Value currently served: Person.
A family-relationship record. Relationships are inlined as properties.relations[] instead. Not served: no record carries this value. Deprecated; removed in the next major.
A position-holding record. Role holdings are inlined as properties.roles[] instead. Not served: no record carries this value. Deprecated; removed in the next major.
An organization. Not served: no record carries this value. Deprecated; removed in the next major.
A natural person: the politically exposed person or the relative/close associate.
A position reference record. The post is inlined as properties.roles[].position instead. Not served: no record carries this value. Deprecated; removed in the next major.
Lifecycle state of the record. Served records currently carry published.
Topic memberships of the record.
The record is a politically exposed person.
The record is a relative or close associate of a politically exposed person.
Coverage codes: one pep-{iso3} code per coverage country (e.g. pep-swe); pep-eu and pep-intl cover EU institutions and international organisations. The authoritative coverage field: key grants and the country query parameter match on these codes.
See Source codes for the codes this field can carry and how grants decide which records you receive.
When the record was first observed (ISO 8601).
Most recent observation of the record (ISO 8601).
Propertiesobject · always present
The entity's attributes. Fields are served in the documented order and appear only when the source asserts a value.
Full names, one item per known form.
First-name parts of the person's names.
Middle-name parts of the person's names.
Last-name parts of the person's names.
Honorific or professional titles, as published by the source.
Dates of birth; ISO 8601, possibly partial (1975, 1975-03).
Places of birth, as published by the source.
Countries of birth, ISO 3166-1 alpha-2.
The person's coverage countries, ISO 3166-1 alpha-2: the same countries sources carries as pep-{iso3} codes.
See Coverage fields.
Gender, as published by the source (e.g. male, female).
Image URLs, when the source provides them.
Deceased marker: ["yes"] when the person is recorded as deceased, empty otherwise. Becomes a boolean in the next major.
Typed identification numbers, one item per number ({type, value, country}).
See Identifier types for the applicable types and their value formats per country.
Show child attributesHide child attributes
The identification number, e.g. 19980808-1234. The format is specific to the identifier type and issuing country.
Identifier type as named by the issuing country's scheme (e.g. ssn). Null if the source didn't record one.
See Identifier types for the applicable types and their value formats.
Issuing country, ISO 3166-1 alpha-2 (e.g. se). Null if the source didn't record one.
Typed address objects, one shared shape across datasets. Only the holder's primary addresses are served.
Show child attributesHide child attributes
Stable UUID of the address row.
Pre-formatted single-line address (e.g. EXEMPELGATAN 1, 11122 STOCKHOLM).
Street address line.
Second street address line, when the source splits the street over two.
City or locality.
Postal code.
Region or county.
State or province.
ISO 3166-1 alpha-2.
Whether this is the holder's primary address.
Deprecated: rarely populated. Removed in the next major.
Citizenships, ISO 3166-1 alpha-2. Deprecated: removed in the next major.
Deprecated: not populated by the source. Removed in the next major.
Deprecated: not populated by the source. Removed in the next major.
Deprecated: duplicated in the typed identifiers[]; use that. Removed in a future major.
Deprecated: duplicated in the typed identifiers[]; use that. Removed in a future major.
Deprecated: duplicated in the typed identifiers[]; use that. Removed in a future major.
Rolesarray of object · optional
Structured post-holdings: one item per position held at an organization.
Stable UUID of the role, the specific holding by this person.
The position (post) this role is a holding of: a post defined independently of its holders, occupiable by one or more persons over time. Shared across every holder of the same position.
Show child attributesHide child attributes
Stable UUID of the position. Shared across every holder of the same position.
The title of the position (e.g. Prime Minister).
The general category of the position, for grouping and identifying the type of PEP the holder is (e.g. Members of Parliament). Null when the position has no category.
See PEP positions for the categories this field can carry.
ISO 3166-1 alpha-2. Country of the body this role is held at.
DEPRECATED. Always null in 1.0.0. The kind of body the post sits in; no longer populated. Removed in 2.0.0.
Status of the holding as recorded by the source: active for a current role, inactive for one that has ended.
When the holder took the position (ISO 8601 date, e.g. 2022-09-26).
When the holding ended or is scheduled to end (ISO 8601 date). null while open-ended.
The specific body the role is held at (e.g. Embassy of Zambia in Sweden).
Relationsarray of object · optional
Family and close-associate links to other persons in the dataset.
Stable UUID of the relationship edge.
Relationship label (e.g. Spouse, Cohabitant, Son).
See Relation types for the labels this field can carry.
id of the related person.
The related person is a record in this dataset. Look it up with Entity lookup; it is returned when it falls within your key's source grants.
When the relationship began, if recorded (ISO 8601).
When the relationship ended, if recorded (ISO 8601).
{ "id": "00000000-0000-4000-8000-000000000001", "schema": "Person", "status": "published", "topics": [ "role.pep" ], "sources": [ "pep-swe" ], "firstSeen": "2026-04-01T12:00:00+00:00", "lastSeen": "2026-06-29T12:00:00+00:00", "properties": { "names": [ { "type": "primary", "fullName": "Anna Maria Exempelsson", "firstName": "Anna Maria", "middleName": null, "lastName": "Exempelsson" } ], "birthDate": [ "1970-01-01" ], "birthPlace": [], "birthCountry": [], "country": [ "se" ], "gender": [ "female" ], "image": [], "deceased": false, "identifiers": [ { "value": "19700101-XXXX", "type": "ssn", "country": "se" } ], "addresses": [ { "id": "00000000-0000-4000-8000-00000000000a", "full": "EXEMPELGATAN 1, 11122 STOCKHOLM", "street": "EXEMPELGATAN 1", "street2": null, "city": "STOCKHOLM", "postalCode": "11122", "region": null, "state": null, "country": "se", "primary": true } ], "roles": [ { "id": "00000000-0000-4000-8000-00000000000b", "position": { "id": "00000000-0000-4000-8000-00000000000c", "title": "Member of National Parliament", "category": "Members of Parliament" }, "organization": { "id": "00000000-0000-4000-8000-00000000000d", "name": "Sveriges Riksdag" }, "jurisdiction": "se", "status": "active", "startDate": "2022-09-26", "endDate": null } ], "relations": [ { "id": "00000000-0000-4000-8000-00000000000e", "relationship": "Spouse", "targetId": "00000000-0000-4000-8000-000000000002", "startDate": null, "endDate": null } ] }}Full snapshot
Full pep snapshot.
Unlike /v1/sanctions/full there is no sources parameter: per-source access for pep is a licensing grant on the API key (allowed_sources, see /v1/whoami) and is applied automatically; sanctions sources are unrestricted and selected per request instead.
Full snapshot, filtered to your key’s source grants. It streams as application/json, application/x-ndjson or text/csv, and takes schema_version to pin a version, like the sanctions full snapshot. It has no sources parameter. See Streaming and snapshots.
Successful responses set X-Schema-Version to the version served, for example pep=3.0.0.
Query parameters
Cap the number of records returned.
Must be at least 1.
Wire format:
json(default): single array, browser-friendlyjsonl: newline-delimited, one record per linecsv: flattened spreadsheet, downloads
Rebuild the dataset snapshot before serving this response. Requires the admin scope; other keys receive 403 scope_missing. An operational recovery lever, never needed by consumers.
Defaults to false.
Keep only records whose coverage codes (sources, one pep-{iso3} code per country) include this country. Matches on sources only; a returned record's properties.country can lack the requested country. Accepts iso2 (se) or iso3 (swe).
Pin the schema version (major or major.minor, e.g. 1 or 2.0). Defaults to the current version.
- withdrawn version: 410
- unknown version: 406
Accept: …; schema-version= works as a fallback.
curl -sS \ -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.editedsource.com/v1/pep/full"[ { "id": "00000000-0000-4000-8000-000000000001", "schema": "Person", "status": "published", "topics": [ "role.pep" ], "sources": [ "pep-swe" ], "firstSeen": "2026-04-01T12:00:00+00:00", "lastSeen": "2026-06-29T12:00:00+00:00", "properties": { "names": [ { "type": "primary", "fullName": "Anna Maria Exempelsson", "firstName": "Anna Maria", "middleName": null, "lastName": "Exempelsson" } ], "birthDate": [ "1970-01-01" ], "birthPlace": [], "birthCountry": [], "country": [ "se" ], "gender": [ "female" ], "image": [], "deceased": false, "identifiers": [ { "value": "19700101-XXXX", "type": "ssn", "country": "se" } ], "addresses": [ { "id": "00000000-0000-4000-8000-00000000000a", "full": "EXEMPELGATAN 1, 11122 STOCKHOLM", "street": "EXEMPELGATAN 1", "street2": null, "city": "STOCKHOLM", "postalCode": "11122", "region": null, "state": null, "country": "se", "primary": true } ], "roles": [ { "id": "00000000-0000-4000-8000-00000000000b", "position": { "id": "00000000-0000-4000-8000-00000000000c", "title": "Member of National Parliament", "category": "Members of Parliament" }, "organization": { "id": "00000000-0000-4000-8000-00000000000d", "name": "Sveriges Riksdag" }, "jurisdiction": "se", "status": "active", "startDate": "2022-09-26", "endDate": null } ], "relations": [ { "id": "00000000-0000-4000-8000-00000000000e", "relationship": "Spouse", "targetId": "00000000-0000-4000-8000-000000000002", "startDate": null, "endDate": null } ] } }]Entity lookup
Single-entity lookup. Returns the same record shape as /full.
Honours ?schema_version= (and the Accept: …; schema-version= fallback); the resolved version is echoed in X-Schema-Version.
Single-entity lookup by person UUID, e.g. 00000000-0000-4000-8000-000000000001. PEP ids carry no dataset or country prefix. A record outside your key’s source grants reads as 404 Not Found, the same as a record that does not exist.
Path parameters
Person UUID (e.g. 00000000-0000-4000-8000-000000000001).
curl -sS \ -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.editedsource.com/v1/pep/00000000-0000-4000-8000-000000000001"{ "id": "00000000-0000-4000-8000-000000000001", "schema": "Person", "status": "published", "topics": [ "role.pep" ], "sources": [ "pep-swe" ], "firstSeen": "2026-04-01T12:00:00+00:00", "lastSeen": "2026-06-29T12:00:00+00:00", "properties": { "names": [ { "type": "primary", "fullName": "Anna Maria Exempelsson", "firstName": "Anna Maria", "middleName": null, "lastName": "Exempelsson" } ], "birthDate": [ "1970-01-01" ], "birthPlace": [], "birthCountry": [], "country": [ "se" ], "gender": [ "female" ], "image": [], "deceased": false, "identifiers": [ { "value": "19700101-XXXX", "type": "ssn", "country": "se" } ], "addresses": [ { "id": "00000000-0000-4000-8000-00000000000a", "full": "EXEMPELGATAN 1, 11122 STOCKHOLM", "street": "EXEMPELGATAN 1", "street2": null, "city": "STOCKHOLM", "postalCode": "11122", "region": null, "state": null, "country": "se", "primary": true } ], "roles": [ { "id": "00000000-0000-4000-8000-00000000000b", "position": { "id": "00000000-0000-4000-8000-00000000000c", "title": "Member of National Parliament", "category": "Members of Parliament" }, "organization": { "id": "00000000-0000-4000-8000-00000000000d", "name": "Sveriges Riksdag" }, "jurisdiction": "se", "status": "active", "startDate": "2022-09-26", "endDate": null } ], "relations": [ { "id": "00000000-0000-4000-8000-00000000000e", "relationship": "Spouse", "targetId": "00000000-0000-4000-8000-000000000002", "startDate": null, "endDate": null } ] }}