Siden beskriver GraphQL, der udstilles på Datafordeleren fra CPR.
Få en introduktion til GraphQL på Datafordeleren, hvis du har brug for en generel og mere teknisk indføring i GraphQL på Datafordeleren.
Læs derudover mere om Anmodning om adgang til beskyttede registerdata.
| Version | 1 |
|---|---|
| Sikkerhedszone | 5 – Indeholder fortrolige eller følsomme data |
| Adgangsniveau | Bruger oprettet med MitID Erhverv, og OAuth Shared Secret eller OAuth Certifikat |
| GraphQL skemaer | https://graphql.datafordeler.dk/CPR/custom/PrivateSector/v1/schema? |
| https://graphql.datafordeler.dk/CPR/custom/PublicSector/v1/schema? | |
| Endepunkt for CPR | https://graphql.datafordeler.dk/CPR/custom/<entitet>/<version> |
| Dato- og tidsformat | Datoformat følger ISO 8601 Date and time format. Alle datoer skrives med andre ord i formatet yyyy-mm-ddTHH:MM:SS.ssssss, hvor tidsangivelsen kan udelades. UTC kan angives enten ved +HH:MM (2019-07-05T07:50:14.687580+01:00) eller ved at benytte Z (2019-07-05T07:50:14.687580Z) |
| Entiteter | Registret har følgende special udviklede entiteter, der skal anmodes om adgang til for at få adgang til CPR:
|
For at imødekomme specielle forretningsmæssige behov for enkelte registre udstilles der en række specialudviklede entiteter og tjenester der kan søges adgang til gennem Datafordeler Administration.
Hvis du ønsker at tilgå CPR-data hos Datafordeleren via GraphQL på vegne af en privat virksomhed, skal du først have adgang til CPR Private Sector-tjenesten.
Tjenesten hedder CustomPrivateSectorPerson og adgang søges på samme måde som for andre registre med beskyttet data hos Datafordeleren.
Tjenesten vælges i drop-down-menuen ”Vælg entiteter og tjenester” når CPR-registeret er valgt i ”Register”-menuen i en almindelig ”Dataadgang”-ansøgning.
”Dataadgang”-ansøgninger er beskrevet yderligere under Anmodning om adgang til beskyttede registerdata .
Med godkendt adgang til CPR Private Sector-tjenesten, har du mulighed for at tilgå entiteten CPRCustom_PrivateSectorPerson via GraphQL. Denne specialudviklede entitet giver mulighed for at tilgå en række af de almindelige entiteter fra CPR-registret og sammenstiller disse, så du ikke selv behøver at tage stilling til hvordan data hænger sammen.
Bemærk at der er en række begrænsninger på hvilke data der kan returneres, som følge af CPR-lovgivningen. Tjenesten udstiller for eksempel udelukkende aktuelle data og der kan ikke hentes data på personer, der har status = ’nedlagt’. Derudover vil adresser, udrejse/indrejse og navn, i tilfælde hvor den pågældende person har navne- og adressebeskyttelse, ikke blive inkluderet i outputtet.
Generelt gælder der de samme regler for udstilling af CPR-data til private anvendere gennem CPR Private Sector som for Datafordelerens nuværende REST-tjenester for private. Du kan læse mere om disse regler på siden REST - private (CPR) (udfases Q2-2026) på Det Centrale Personregister (CPR).
For at bruge CPR Private Sector-tjenesten skal du give en række input der unikt identificerer en person. Dvs. du kan udelukkende hente data på én person ad gangen og denne person skal kunne identificeres unikt ud fra en række inputparametre. Tjenesten tager følgende inputparametre:
Du kan identificere en person på en af tre følgende måder:
Udover brug af inputparametre, kalder du CPR Private Sector på nøjagtig samme måde som de almindelige GraphQL-tjenester. Hvis du for eksempel ønsker at hente adresseoplysninger for en bestemt person, kan du sende nedenstående GraphQL-query som en POST-request til https://graphql.datafordeler.dk/CPR/custom/PrivateSector/v1:
query {
CPRCustom_PrivateSectorPerson(
input: {
navn: { fornavne: "John", efternavn: "Doe" },
adresse: {
postnr: 1550,
vejnavn: "Rådhuspladsen",
husnr: "1"
}
}
) {
navn {
fornavne
mellemnavn
efternavn
}
adresseoplysninger {
cprAdresse {
daradresse
bygningsnummer
bynavn
cprkommunekode
cprvejkode
etage
husnummer
postdistrikt
postnummer
sidedoer
vejadresseringsnavn
vejnavn
}
status
virkningfra
virkningfrausikkerhedsmarkering
}
beskyttelser {
beskyttelsestype
status
virkningfra
virkningtil
}
}
} |
Bemærk at beskyttelser-feltet altid skal inkluderes i en query og alle kald til CPR Private Sector-tjenesten uden beskyttelser inkluderet i query’en vil blive afvist og intet data returneret.
Hvis du ønsker at tilgå CPR-data hos Datafordeleren via GraphQL på vegne af en offentlig myndighed, skal du først have adgang til CPR Public Sector-tjenesten.
Tjenesten hedder CustomPublicSectorPerson og adgang søges på samme måde som for andre registre med beskyttet data hos Datafordeleren.
Tjenesten vælges blot i drop-down-menuen ”Vælg entiteter og tjenester” når CPR-registeret er valgt i ”Register”-menuen i en”Dataadgang”-ansøgning.
”Dataadgang”-ansøgninger er beskrevet yderligere under Anmodning om adgang til beskyttede registerdata .
Med godkendt adgang til CPR Public Sector-tjenesten, har du mulighed for at tilgå entiteten CPRCustom_PublicSectorPerson via GraphQL. Denne specialudviklede entitet giver mulighed for at tilgå en række af de almindelige entiteter fra CPR-registret og sammenstille disse, så du ikke selv behøver at tage stilling til hvordan data hænger sammen.
Bemærk at du med denne tjeneste har mulighed for at hente alle data som CPR har tilgængeligt og der derfor er et dataminimeringsansvar, som ligger hos anvenderen, i kun at hente den data der er nødvendigt for at udføre sin funktion i den tilknyttede myndighed.
Ligesom i CPR Private Sector-tjenesten kan CPR Public Sector tage en række inputparametre. Hvilke inputparametre og datafiltreringer og hvordan disse benyttes, fremgår af det tilhørende GraphQL-skema. I modsætning til den private tjeneste, er der ingen af parametrene der er obligatoriske, da du behøver ikke unikt at kunne identificere en person for at fremsøge informationer om vedkommende og tjenesten kan derfor returnere flere personer samtidig. Du kan for eksempel fremsøge adresseoplysninger for flere personer der hedder ”John Doe” samtidig ved at sende nedenstående GraphQL-query, som en POST-request til https://graphql.datafordeler.dk/CPR/custom/PublicSector/v1:
query {
CPRCustom_PublicSectorPerson(
first: 3
input: { navn: { fornavne: { eq: "John" }, efternavn: { eq: "Doe" } } }
) {
nodes {
id
navne {
fornavne
mellemnavn
efternavn
}
adresseoplysninger {
cprAdresse {
daradresse
bygningsnummer
bynavn
cprkommunekode
cprvejkode
etage
husnummer
postdistrikt
postnummer
sidedoer
vejadresseringsnavn
vejnavn
}
status
virkningfra
virkningfrausikkerhedsmarkering
}
beskyttelser {
beskyttelsestype
status
virkningfra
virkningtil
}
}
}
} |
Du kan fremsøge flere personer samtidig, understøtter CPR Public Sector paging af resultaterne, så du ved almindelige query-parametre (se afsnit 2.7 om paging) kan specificere hvor mange personer du ønsker returneret ved at givet kald.
Bemærk at beskyttelser-feltet, ligesom for CPR Private Sector-tjenesten, altid skal inkluderes i en query og alle kald til tjenesten uden beskyttelser inkluderet i query’en vil blive afvist og intet data returneret.
Noget nyt sammenlignet med de tidligere CPR-tjenester er, at det nu er muligt at filtrere på "Hændelse" og "Hændelseskoder" for den offentlige sektor. Der er introduceret fire nye parametre: haendelsekode.haendelsekode, haendelsekode.virkningfra, haendelse.forretningshaendelse og haendelse.afleveringdato.
En komplet liste over hvilke hændelseskoder og forretningshændelser der findes kan ses på CPR's egen dokumentation CPRhændelser til Datafordeleren.