Du er ikke logget på
The Danish CPR (Person) Registry

The Danish CPR (Person) Registry covers all persons registered in Denmark.

This documentation is divided into two parts:

  1. A full overview of all available variables.
  2. Some recipies for how to access the variables through the API.

In the latter section you can find examples of how to:

Why use Geomatic's API for access to CPR data?

Geomatic's Variables API provides access to CPR via CPR's own CPR Direkte webservice, but compared to the CPR Direkte webservice the Geomatic API offers a number of advantages:

What data is available?

Here you can get an overview of all the data that is available. If you cannot find what you are looking for, then it may belong to another data universe.

Before reading on, you may find it useful to read the concepts section to understand what we mean by e.g. variables and domains.

Domains

The variables available in this universe provides information about the following domains:

Domain ID Description
Personer per Personer som er tilmeldt CPR registret og har bopælsadresse i Danmark.

Variables

The following variables are available in The Danish CPR (Person) Registry. You can click on the variable name in the list below to get further information about the particular variable.

Personer

Variable Defined On Type ID Data Levels Source Version Update Freq Description
Adresseringsnavn Personer Text per_name_adr CPR 10-12-2018 Dagligt Adresseringsnavn kan være anderledes en personens officielle navn og vil aldrig være længere end 34 tegn. Efternavn og mindst et fornavn, evt. i forkortet form, skal indgå i adresseringsnavnet.
C/O navn Personer Text per_careof CPR 10-12-2018 Dagligt C/O navn angiver en logivært.
CPR-nummer Personer Text per_cprno CPR 10-12-2018 Dagligt
CPR-status Personer Category per_cpr_status CPR 10-12-2018 Dagligt
CPR-status start dato Personer Date per_cpr_status_date CPR 10-12-2018 Dagligt Angiver ændringsdatoen for CPR status, dog kun for følgende status: Inaktiv, død, udrejst eller forsvunden.
Efternavn Personer Text per_name_last CPR 10-12-2018 Dagligt
Er på Robinsonlisten Personer Boolean per_advptect_robinson CPR 10-12-2018 Dagligt Robinsonlisten indeholder personer der har frabedt sig uanmodet henvendelse i markedsføringsøjemed.
Fornavne Personer Text per_name_firsts CPR 10-12-2018 Dagligt Samtlige for- og mellemnavne registreret i CPR.
Kontaktadresse Personer Text per_adr_contact CPR 10-12-2018 Dagligt Adresse på kontaktperson, der kan indsættes i CPR-systemet når personen er udrejst, forsvundet eller død.
Kontaktadressens registreringsdato Personer Date per_adr_contact_date CPR 10-12-2018 Dagligt
Kreditadvarsel Personer Boolean per_credwarn CPR 10-12-2018 Dagligt En markering om kreditadvarsel vil være et signal til virksomheder om at udvise særlig opmærksomhed i forbindelse med deres identitetskontrol, før der ydes lån eller kredit. I mange tilfælde vil det være relevant at afslå lån eller kredit, fordi virksomheden har mistanke om, at den, der ønsker lån eller kredit, ikke er den, som vedkommende udgiver sig for at være. På den måde kan konkrete tilfælde af identitetsmisbrug forhindres.
Kreditadvarsel registreringsdato Personer Date per_credwarn_date CPR 10-12-2018 Dagligt
Navn Personer Text per_name CPR 10-12-2018 Dagligt
Navne- og adressebeskyttelse start dato Personer Date per_protect_date CPR 10-12-2018 Dagligt
Navne- og adressebeskyttet Personer Boolean per_protect CPR 10-12-2018 Dagligt Har en person navne- og adressebeskyttelse, vil alle navne- og adressefelter være blanke bortset fra evt. kontaktadresse.
Robinson-liste start dato Personer Date per_advptect_robinson_date CPR 10-12-2018 Dagligt
Tilflytningsdato Personer Date per_movdat CPR 10-12-2018 Dagligt Datoen hvor personen flyttede til den nuværende adresse.
Udlandsadresse Personer Text per_adr_foreign CPR 10-12-2018 Dagligt Udlandsadresse for udrejste personer. Adresselinierne er fritekstfelter og kan opdateres mens personen er udrejst. Personer, der udrejser, har ikke pligt at oplyse udlandsadresse til registrering i CPR.
Udlandsadressens registreringsdato Personer Date per_adr_foreign_date CPR 10-12-2018 Dagligt

Further, you can get all related address information, such streetname, postcode etc. For details click here.

Using The API

In this section we will through examples show how the API can be used to retrieve data from this universe.

Before reading on, you may want to read the technical documentation to understand how the API is structured. There you will also find information about how authentication works in the API. Also, if you do not have an account see here for how to get one.

If the provided examples do not cover your needs, then please contact us and we will try to help out.

An important note from the technical documentation is that you in production should supply the vars argument in requests to specify exactly which variables you want returned in your response. Leaving out the vars argument will return some variables - but exactly which can change in the future.

Some of the examples below will for brevity leave out the vars argument.

Finding persons in CPR

Accessing persons is done using Geomatic's CPR Matcher. You can read details about this here, and in the Match API documentation for further details on how to make match requests as well as on the specification of the response.

But for just getting started quickly check the examples below.

Use CPR Test Data for Development and QA

When you develop and test you are not allowed to use real CPR data according the terms set out by the CPR registry. Therefore Geomatic can provide you with a test account where you can call the API without getting real CPR data back.

To see which fictitious persons exists in the CPR test data, download this CSV file.

Using the Variables API, you can:

Find a person from CPR-number

If you have CPR number (e.g. 0707074321) you can look up information on the CPR number as follows:

https://apps.conzoom.eu/api/v1/match/dk/cpr?in_person_id=0707074321&vars=per_cpr_status,per_name,unadr_name

Find a person from name and address

The following example will try to match on name Ole Stinson and address Vestervang 9 st 0053, 8000 Aarhus C:

https://apps.conzoom.eu/api/v1/match/dk/cpr?in_name=Ole Stinson&in_adr=Vestervang 9 st 0053, 8000 Aarhus C&vars=per_cpr_status,per_name,unadr_name

Find a person from name and date of birth

The following example will try to match on name Poul Skipper and date of birth 14-10-47:

https://apps.conzoom.eu/api/v1/match/dk/cpr?in_name=Poul Skipper&in_birth_date=141047&vars=per_cpr_status,per_name,unadr_name

Find a person from phone number

We can ask for the key of the person owning the phone number (e.g. 22985275) :

https://apps.conzoom.eu/api/v1/values/dk/tele_phone/22985275?vars=tele_per_key

And then use this key to find this person as follows:

https://apps.conzoom.eu/api/v1/match/dk/cpr?in_tele_per_key=213837559&vars=per_cpr_status

Getting phone numbers back in CPR lookup

Even though phone numbers are not part of the CPR-registry, you can still get those back via the Geomatic Variables API (provided you have access to teledata). You simply do this by specifying the phone number variables as part of the vars argument. In the example below this is done in a match on name and address, but it can also be done on matches on CPR-number or name + d.o.b.

https://apps.conzoom.eu/api/v1/match/dk/cpr?in_name=Martin Midtgaard&in_adr=Ebbe Rodes Allé 8, 2 TV, 2500 Valby&vars=per_name,unadr_name,tele_per_primob,tele_per_prilan,tele_per_secmob,tele_per_seclan