Skip to content

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.

HTTP STATUS SUMMARY
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

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

idstring · always present

Stable entity id in UUIDv4 format.

schemaenum · always present

Entity type. Always Person.

Possible enum values
Person

A natural person: the politically exposed person or the relative/close associate.

statusstring · nullable · always present

Lifecycle state of the record. Served records currently carry published.

topicsarray of enum · always present

Topic memberships of the record.

Possible enum values
role.pep

The record is a politically exposed person.

role.rca

The record is a relative or close associate of a politically exposed person.

sourcesarray of string · always present

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.

firstSeenstring · date-time · always present

When the record was first observed (ISO 8601).

lastSeenstring · date-time · always present

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.

namesarray of object · always present

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
typeenum · always present

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.

Possible enum values
primary

The registered legal name.

alias

A name the source records as another name of the person: an alias, a nickname, a maiden name.

variant

A spelling or transliteration variant of a name.

fullNamestring · always present

The whole name, always set.

firstNamestring · optional

First-name part; null when the source did not record one.

middleNamestring · optional

Middle-name part; null when the source did not record one.

lastNamestring · optional

Last-name part; null when the source did not record one.

birthDatearray of string · optional

Dates of birth; ISO 8601, possibly partial (1975, 1975-03).

birthPlacearray of string · optional

Places of birth, as published by the source.

birthCountryarray of string · optional

Countries of birth, ISO 3166-1 alpha-2.

countryarray of string · optional

The person's coverage countries, ISO 3166-1 alpha-2: the same countries sources carries as pep-{iso3} codes.

See Coverage fields.

genderarray of string · optional

Gender, as published by the source (e.g. male, female).

imagearray of string · optional

Image URLs, when the source provides them.

deceasedboolean · optional

Whether the person is recorded as deceased.

identifiersarray of object · optional

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
valuestring · always present

The identification number, e.g. 19980808-1234. The format is specific to the identifier type and issuing country.

typestring · optional

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.

countrystring · optional

Issuing country, ISO 3166-1 alpha-2 (e.g. se). Null if the source didn't record one.

addressesarray of object · optional

Typed address objects, one shared shape across datasets. Only the holder's primary addresses are served.

Show child attributesHide child attributes
idstring · always present

Stable UUID of the address row.

fullstring · optional

Pre-formatted single-line address (e.g. EXEMPELGATAN 1, 11122 STOCKHOLM).

streetstring · optional

Street address line.

street2string · optional

Second street address line, when the source splits the street over two.

citystring · optional

City or locality.

postalCodestring · optional

Postal code.

regionstring · optional

Region or county.

statestring · optional

State or province.

countrystring · optional

ISO 3166-1 alpha-2.

primaryboolean · always present

Whether this is the holder's primary address.

Rolesarray of object · optional

See PEP positions for the position titles and categories these entries carry.

idstring · uuid · always present

Stable UUID of the role, the specific holding by this person.

positionobject · always present

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
idstring · uuid · always present

Stable UUID of the position. Shared across every holder of the same position.

titlestring · optional

The title of the position (e.g. Prime Minister).

categorystring · optional

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.

organizationobject · optional

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
idstring · uuid · always present

Stable UUID of the organization. Shared across every role held at the same body.

namestring · optional

Organization name (e.g. Sveriges Riksdag).

jurisdictionstring · optional

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.

statusstring · optional

Status of the holding as recorded by the source: active for a current role, inactive for one that has ended.

startDatestring · optional

When the holder took the position (ISO 8601 date, e.g. 2022-09-26).

endDatestring · optional

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.

idstring · uuid · always present

Stable UUID of the relationship edge.

relationshipstring · always present

Relationship label (e.g. Spouse, Cohabitant, Son).

See Relation types for the labels this field can carry.

targetIdstring · uuid · always present

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.

startDatestring · optional

When the relationship began, if recorded (ISO 8601).

endDatestring · optional

When the relationship ended, if recorded (ISO 8601).

The PEP entity objectpep 3.0.0
{
"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

GET/v1/pep/full

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

limitinteger · optional

Cap the number of records returned.

Must be at least 1.

formatenum · optional

Wire format:

  • json (default): single array, browser-friendly
  • jsonl: newline-delimited, one record per line
  • csv: flattened spreadsheet, downloads
regenboolean · optional

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.

countrystring · optional

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).

schema_versionstring · optional

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.

cURLcURL
curl -sS \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://api.editedsource.com/v1/pep/full"
RESPONSEapplication/json · application/x-ndjson · text/csv
[
{
"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

GET/v1/pep/{entity_id}

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

entity_idstring · required

Person UUID (e.g. 00000000-0000-4000-8000-000000000001).

cURLcURL
curl -sS \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://api.editedsource.com/v1/pep/00000000-0000-4000-8000-000000000001"
RESPONSEapplication/json
{
"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
}
]
}
}