The Danish CPR (Person) Registry covers all persons registered in Denmark.
This documentation is divided into two parts:
- A full overview of all available variables.
- Some recipies for how to access the variables through the API.
In the latter section you can find examples of how to:
- Find a person from CPR-number
- Find a person from name and address
- Find a person from name and date of birth
- Find a person from phone number
- Getting phone numbers back in CPR lookup
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:
- A modern RESTful JSON API that is easy to work with.
- You can get information that is not available in CPR. For example phone numbers, BBR information and much more. See the other data universes offered by Geomatic.
- Higher match rate. By pre-washing address and name information before calling CPR, we ensure a higher match percentage compared to calling CPR Direkte directly.
- Better test environment that allows your developers and QA to make calls on test data covering all kinds of different scenarios. (You are not allowed to use real CPR data for testing purposes.)
- Better documentation.
- Get up and running faster. No need to talk to CPR's customer service.
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 | 04-12-2024 | 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 | 04-12-2024 | Dagligt | C/O navn angiver en logivært. | |
CPR-nummer | Personer | Text | per_cprno |
CPR | 04-12-2024 | Dagligt | ||
CPR-status | Personer | Category | per_cpr_status |
CPR | 04-12-2024 | Dagligt | ||
CPR-status start dato | Personer | Date | per_cpr_status_date |
CPR | 04-12-2024 | 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 | 04-12-2024 | Dagligt | ||
Er på Robinsonlisten | Personer | Boolean | per_advptect_robinson |
CPR | 04-12-2024 | Dagligt | Robinsonlisten indeholder personer der har frabedt sig uanmodet henvendelse i markedsføringsøjemed. | |
Fornavne | Personer | Text | per_name_firsts |
CPR | 04-12-2024 | Dagligt | Samtlige for- og mellemnavne registreret i CPR. | |
Kontaktadresse | Personer | Text | per_adr_contact |
CPR | 04-12-2024 | 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 | 04-12-2024 | Dagligt | ||
Kreditadvarsel | Personer | Boolean | per_credwarn |
CPR | 04-12-2024 | 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 | 04-12-2024 | Dagligt | ||
Navn | Personer | Text | per_name |
CPR | 04-12-2024 | Dagligt | ||
Navne- og adressebeskyttelse start dato | Personer | Date | per_protect_date |
CPR | 04-12-2024 | Dagligt | ||
Navne- og adressebeskyttet | Personer | Boolean | per_protect |
CPR | 04-12-2024 | 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 | 04-12-2024 | Dagligt | ||
Tilflytningsdato | Personer | Date | per_movdat |
CPR | 04-12-2024 | Dagligt | Datoen hvor personen flyttede til den nuværende adresse. | |
Udlandsadresse | Personer | Text | per_adr_foreign |
CPR | 04-12-2024 | 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 | 04-12-2024 | 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
- Find a person from name and address
- Find a person from name and date of birth
- Find a person from phone number
- Getting phone numbers back in CPR lookup
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. 26224775) :
https://apps.conzoom.eu/api/v1/values/dk/tele_phone/26224775?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=226832036&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