Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Opdateret endepunkter for CPR
Anchor
Toppen
Toppen

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.

Læs mere om CPR GraphQL i CPRs dokumentation.


Table of Contents

Display Metadata
hidetableheadertrue





Generelt for CPR GraphQL 


Version
Excerpt
v1

v2

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
v2/schema?
https://graphql.datafordeler.dk/CPR/custom/PublicSector/
v1
v2/schema?
Endepunkt
Endepunkter for CPRhttps://graphql.datafordeler.dk/CPR/custom/
<entitet>
PrivateSector/<version>
https://graphql.datafordeler.dk/CPR/custom/PublicSector/<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
Tjenester og entiteter

Registret har følgende

special udviklede entiteter

specialudviklede tjenester, der skal anmodes om adgang til for at få adgang til CPR:

  • CustomPrivateSectorPerson (giver adgang til entiteten CPRCustom_PrivateSectorPerson)
  • CustomPublicSectorPerson (giver adgang til entiteten CPRCustom_PublicSectorPerson)

Læs også mere om registrets entiteter i objekttypekataloget





CPR Custom entiteter og tjenester

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.






CPR Private Sector

CustomPrivateSectorPerson - til private


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.'s CustomPrivateSectorPerson-tjeneste.

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

Info

Bemærk

Hvis du skal have adgang til GraphQL-tjenesten CustomPrivateSectorPerson, skal det være den eneste valgte tjeneste i feltet ”Entiteter og tjenester” i menuen under Anmodning i Datafordeler Administration. Ingen entiteter skal være valgt.

Anmodninger bliver afslået, hvis der både er valgt GraphQL-tjenester og entiteter i samme anmodning.




Omfang af tjenesten


Med godkendt adgang til CPR Private SectorCustomPrivateSectorPerson-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 CustomPrivateSectorPerson som for Datafordelerens nuværende REST-tjenester for private. Du kan læse mere om disse regler på siden siden REST - private (CPR) (udfases Q2-2026) på Det Centrale Personregister (CPR).




Opbygning af kald via tjenesten


For at bruge CPR Private SectorCustomPrivateSectorPerson-tjenesten skal du give en række input, der unikt identificerer en person. Dvs. Normalt kan du kan udelukkende hente data på én person ad gangen og denne person skal kunne identificeres unikt ud fra en række inputparametre. Dog er det muligt at hente flere personer ved brug af PNR-liste-søgning. Tjenesten tager følgende inputparametre:

  • pnr: Personnummeret på en person. Parameteren kan ikke bruges sammen med parametrene navn, adresse eller foedselsdato. Kan godt bruges i kombination med parameteren haendelse.
  • pnrIn: En liste af op til 100  Parameteren kan ikke bruges sammen med parametrene pnr, navn, adresse eller foedselsdato. Kan godt bruges i kombination med parameteren haendelse.
  • navn: Navnene på en person. Hvis navn benyttes, skal du som minimum angive efternavn sammen med enten fornavn eller mellemnavn. Fornavn, mellemnavn og efternavn kan godt alle bruges samtidig.
  • adresse: Adressen på en person. Adressen består blandt andet af daradresse, som id’et på den pågældende adresse i Danmarks Adresseregister (DAR). daradresse kan ikke bruges i kombination med nogen af de øvrige adresseparametre. Hvis ikke daradresse angives, skal der angives mindst én fra hver af de følgende punkter:
    • kommunekode, postnummer eller postdistrikt
    • vejkode, vejnavn eller vejadresseringsnavn
    • bygningsnummer eller husnummer
  • foedselsdato: Den pågældende persons fødselsdato.
  • haendelse: Hændelser for en person. Kan bruges i kombination med alle de andre parametre. Skal dog overholde følgende regler:
    • Hvis dato angives, skal både til- og fra-parametrene angives. Fra-parameteren må ikke være efter til-parameteren og hverken til- eller fra-parameteren må være i fremtiden.
    • Du har kan kun lov til at hente hændelser der er sket inden for de seneste 7 dage. 
    • Parameteren haen kan kun tage følgende værdier: "ADRESSEOPLYSNINGER_OG_BESKYTTELSE", "CPRADRESSE", "KONTAKTADRESSE", "NAVN_OG_BESKYTTELSE", "UDREJSEINDREJSE", "VAERGEMAAL"
    • Parameteren haenkode kan kun tage følgende værdier: "A01", "A02", "A03", "A04", "A05", "A06", "A08", "A09", "A10", "A13", "A14", "A15", "A16", "A17", "A19", "A20", "A21", "A22", "A23", "A24", "A25", "A33", "A34", "A39", "A40", "A42", "A45", "A47", "A73", "A74", "K74", "P02", "P03", "P10", "P11", "P30", "P31", "P42", "P43", "P45"




Du kan identificere en person på en af tre følgende måder:

  • Personnummer: Du kan fremsøge en person eller flere personer ved brug af et personnummer (pnr). Hvis inputparameteren pnr , eller en liste af personnumre (pnrIn). Inputparameteren pnr eller pnrIn kan ikke bruges sammen med andre inputparametre.
  • Navn og adresse: Du kan fremsøge en person ved at kombinere navn med adresse
  • Navn og fødselsdato: Du kan fremsøge en person ved at kombinere navn og fødselsdato.




Udover brug af inputparametre, kalder du CPR Private Sector CustomPrivateSectorPerson 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/v1v2:


Code Block
titleCPRCustom_PrivateSectorPerson
collapsetrue
query {
   CPRCustom_PrivateSectorPerson(
      input: {
          navn: { fornavne: "John", efternavn: "Doe" },
          adresse: {
        postnr: 1550,
        vejnavn: "Rådhuspladsen",
        husnr: "1" }
        }
    } ) {
    statusdato
    statusdatousikkerhedsmarkering
    status
  )  beskyttelser {
        beskyttelsestype
      status
      virkningfra
    }
    navn {
      adresseringsnavn
      efternavn
          fornavne
       mellemnavn
      efternavn
    }
       mellemnavn
      status
    }
    vaergemaal {
      vaergenavn
      adresselinie1
      adresselinie2
      adresselinie3r
      adresselinie4
      adresselinie5
      vaergemaalstype
      virkningfra
      virkningfrausikkerhedsmarkering
      status
    }
    udrejseIndrejse {
      cprLandIndrejse {
        kode
        navn
        landekode
        administrativEnhedType {
          typeKode
          typeNavn
        }
      }
      cprLandUdrejse {
        kode
        navn
        landekode
        administrativEnhedType {
          typeKode
          typeNavn
        }
      }
      status
      udenlandsadresselinie1
      udenlandsadresselinie2
      udenlandsadresselinie3
      udenlandsadresselinie4
      udenlandsadresselinie5
      virkningfra
      virkningfrausikkerhedsmarkering
    }
    forsvinding {
      status
      virkningfra
      virkningfrausikkerhedsmarkering
    }
    kontaktadresse {
      adresselinie1
      adresselinie2
      adresselinie3
      adresselinie4
      adresselinie5
      virkningfra
    }
    adresseoplysninger {
          cprAdresse {
        daradresse
              bygningsnummer
              bynavn
              cprkommunekode
               cprkommunenavn
        cprvejkode
              etage
              husnummer
              postdistrikt
              postnummer
              sidedoer
              vejadresseringsnavn
              vejnavn
      }
      status       daradresse
      virkningfra
      virkningfrausikkerhedsmarkering
    }
       beskyttelser {conavn
        beskyttelsestype
      status
          virkningfra
          virkningtilvirkningfrausikkerhedsmarkering
      }
   }
}




Bemærk at

beskyttelser-feltet altid 

overstående eksempel indeholder alle de obligatoriske-felter, som altid skal inkluderes i en query

og alle

. Alle kald til

CPR Private Sector

CustomPrivateSectorPerson-tjenesten uden

beskyttelser

de obligatoriske felter inkluderet i query’en vil blive afvist og intet data returneret.






CPR Public Sector

CustomPublicSectorPerson - til offentlige

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.'s CustomPublicSectorPerson-tjeneste.

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

Info

Bemærk

Hvis du skal have adgang til GraphQL-tjenesten CustomPublicSectorPerson, skal det være den eneste valgte tjeneste i feltet ”Entiteter og tjenester” i menuen under Anmodning i Datafordeler Administration. Ingen entiteter skal være valgt.

Adgang til tjenesten CustomPublicSectorPerson giver tillige adgang til CPR_Events (hændelser) - også selvom dette ikke fremgår af feltet ”Entiteter og tjenester”.


Skal du også have adgang til CPR fildownload, skal du oprette andet IT-system og anmode om dataadgang til entiteter via dette.

Anmodninger bliver afslået, hvis der både er valgt GraphQL-tjenester og entiteter til Fildownload i samme anmodning, eller hvis anmodningerne kommer fra samme IT-system.



Omfang af tjenesten


Med godkendt adgang til CPR Public SectorCustomPublicSectorPerson-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.




Opbygning af kald via tjenesten


Ligesom i CPR Private SectorCustomPrivateSectorPerson-tjenesten kan CPR Public Sector CustomPublicSectorPerson 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/v1v2:


Code Block
titleCPRCustom_PublicSectorPerson
collapsetrue
query {
    CPRCustom_PublicSectorPerson(
      first: 3
      input: { navn: { fornavne: { eq: "John" }, efternavn: { eq: "Doe" } } }
  ) {
      nodes {
          id
          navne {
              fornavne
               mellemnavn
              efternavn
          }
          adresseoplysningeradresseoplysninger {
              cprAdresse {
                   daradresse
                   bygningsnummer
                   bynavn
                   cprkommunekode
                   cprvejkode
                   etage
                   husnummer
                  postdistrikt
                   postnummer
                   sidedoer
          vejadresseringsnavn
          vejnavn
        }
        status
        virkningfra
        virkningfrausikkerhedsmarkering
      }
               vejadresseringsnavn
          vejnavn
        }
        status
        virkningfra
        virkningfrausikkerhedsmarkering
      }
      beskyttelser {
              beskyttelsestype
              status
              virkningfra
              virkningtil
          }
      }
   }
}


  


Du kan fremsøge flere personer samtidig, understøtter CPR Public Sector CustomPublicSectorPerson paging af resultaterne, så du ved almindelige query-parametre (se afsnit 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.