Person‑API informasjonsmodell
Denne siden gir en kort introduksjon til informasjonsmodellen som brukes i Person‑API.
Den tekniske spesifikasjonen finnes i OpenAPI‑spesifikasjonen, men dette dokumentet gir en mer leservennlig oversikt over datastrukturen.
Person‑API‑ens informasjonsmodell er et superset av modellen som brukes av
Folkeregisteret (FREG).
Den beholder den samme kjerne•strukturen, men beriker enkelte datapunkter utover Folkeregisterets grunnlag.
For detaljer om disse berikelsene, se: Enrichments
Om du ønsker en fullstendig beskrivelse av Folkeregisterets informasjonsmodell, kan du lese:
- Folkeregisterets informasjonsmodell
- Den nyeste dokumentasjonen: Informasjonsmodell v4.51 (PDF)
Generell struktur og metadata for informasjon
Person‑dokumentet består av flere informasjonselementer, vanligvis presentert som lister. Hvert liste‑element representerer ett spesifikt informasjonsstykke med tilhørende metadata som viser status (gyldig / historisk), registreringsdetaljer, kilde osv.
Viktige metadata‑felt for hvert element
| JSON‑navn (metadata) | FREG‑navn | Datatype | Beskrivelse |
|---|---|---|---|
isValid |
erGjeldende |
boolean | Angir om dette informasjonselementet er gyldig og i bruk i dag. |
registeredAt |
ajourholdstidspunkt |
datetime | Registreringstidspunktet i Folkeregisteret. |
source |
kilde |
string | Hvor informasjonen kommer fra (f.eks. individ, UDI, sykehus). |
reason |
aarsak |
string | Registrerings‑årsak, for eksempel «født i Norge» (born in Norway) eller «innflyttet til Norge» (immigrated to Norway) for oppholdsstatus. |
validFrom |
gyldighetstidspunkt |
datetime | Når informasjonen ble gyldig (f.eks. et nasjonalt identifikasjonsnummer er gyldig fra fødselen, men kan bli registrert senere). |
validTo |
opphoerstidspunkt |
datetime | Utløps‑ tidspunktet for historisk informasjon. |
Et minimert JSON‑eksempel fra testdata som viser en persons navn med tilhørende metadata er:
{
"name": [
{
"givenName": "RAKRYGGET",
"familyName": "ABBED",
"registeredAt": "2022-02-22T07:36:17.753116Z",
"isValid": true,
"source": "Synutopia",
"reason": "Patch",
"validFrom": "2022-02-22T07:36:17.753113Z",
"validTo": null
}
]
}
Et komplett JSON‑svar‑eksempel finnes i avsnittet JSON Response eksempel nedenfor.
Vanlige informasjons‑elementer
Person‑API returnerer informasjon som lister som inneholder både nåværende og historiske data. Hvert liste‑element er merket med flagget isValid som indikerer om elementet representerer nåværende eller historisk informasjon. Det finnes tre hovedmønstre:
- Ett gyldig element – enkelte felter, som norske identifikasjonsnumre (NIN‑er), må ha akkurat ett gyldig element.
- Flere gyldige elementer – felter som familierelasjoner kan ha flere samtidige gyldige elementer.
- Tomt eller kun historisk – tomme (
null) felter ignoreres i svaret. Felter kan også inneholde kun historiske poster.
Tabellen nedenfor oppsummerer de mest brukte informasjons‑elementene og deres egenskaper:
| Informasjons‑element | JSON‑nodename | Gyldige elementer | Beskrivelse |
|---|---|---|---|
| Norske identifikasjonsnumre (NIN) | norwegianIdentificationNumber |
1 | Personens nåværende og historiske identifikasjonsnumre. Eksakt ett nummer må være gyldig til enhver tid. |
| Navn | name |
1 | Personens nåværende og historiske navn. Kun ett navn kan være gyldig om gangen. |
| Kjønn | gender |
1 | Personens kjønn. Kun ett kjønn kan være gyldig om gangen. |
| Personstatus | status |
1 | Nåværende status i Norge (bosatt, avdød, utflyttet osv.). Ett gyldig status‑element er påkrevd. |
| Fødsel | birth |
1 | Fødselsinformasjon. Vanligvis kun ett element. |
| Dødsfall | death |
N/A | Dødsinformasjon dersom relevant. Ikke en liste – enten inneholder data eller er null. |
| Familiære relasjoner | familyRelation |
0‑n | Nåværende og historiske familierelasjoner. Flere relasjoner kan være gyldige samtidig. |
| Foreldre‑ansvar | parentalResponsibility |
0‑n | Nåværende og historisk foreldre‑ansvar. Flere poster kan være gyldige samtidig. |
| Adressebeskyttelse | addressProtection |
0‑1 | Personens samlede adressebeskyttelsesnivå (for bolig‑, oppholds‑ og delt‑bostedsadresse). Kan settes til ungraded, confidential eller strictly confidential. Når ingen data (null), behandles som ungraded. |
| Felles kontaktregister (KRR) | commonContactRegisterInformation |
N/A | Kontaktinformasjon fra KRR. Inneholder kun gjeldende informasjon uten historikk. Enten data er tilstede eller null hvis ingen informasjon finnes. |
Merk: Norske identifikasjonsnumre bør behandles kun som identifikatorer. Fra 2032 vil nye fødsels‑ og D‑numre være kjønn‑nøytrale, og individ‑delen vil ikke lenger pålitelig angi århundre. Konsumenter bør derfor bruke de dedikerte feltene
genderogbirthi stedet for å utlede kjønn eller fødselsdato fra NIN. Se New NIN from 2032 for mer informasjon.
Adresseinformasjon
Person‑API og FREG støtter flere adresse‑typer for hver person. Hvilken adresse du skal bruke avhenger av ditt formål (f.eks. post‑kommunikasjon vs. fast bosted). For detaljert informasjon om adresse‑typene, se kapittel 5.9 i FREG Information Model Documentation.
| Adresse‑type | JSON‑nodename | Gyldige elementer | Beskrivelse |
|---|---|---|---|
| Bostedsadresse (residential) | residentialAddress |
0‑1 | Primær bostedsadresse for norske borgere med nasjonalt identifikasjonsnummer (fødselsnummer). Må samsvare med Matrikkelen. |
| Oppholdsadresse (present) | presentAddress |
0‑1 | Midlertidig adresse for ikke‑bosatte med D‑nummer. Kun én gyldig oppholdsadresse om gangen. |
| Delt bosted (shared residence) | sharedResidence |
0‑1 | Tillegg‑bosted, typisk brukt for barn med delt foreldre‑ansvar. |
| Postadresse (postal) | postalAddress |
0‑1 | Alternativ postadresse når vanlig post ikke skal sendes til bostedsadressen. |
| Internasjonal postadresse | foreignPostalAddress |
0‑1 | Internasjonal postadresse for personer bosatt i utlandet. |
Tilleggsinformasjon
Person‑API inneholder også andre relevante informasjons‑typer, som:
- Sivilstatus
- Statsborgerskap
- Ekstra identifikatorer
- Familiære relasjoner
For en fullstendig oversikt over disse feltene, se FREG Information Model.
id
id‑en som forekommer i et person‑dokument blir utstedt av Persontjenesten. Dersom en person blir RestoredBySplitting, får vedkommende en ny id. I et svært sjeldent scenario der all data går tapt og Person‑API må bygges opp fra Folkeregisteret på nytt, vil hver person få en ny id. Dette er en ekstremt usannsynlig katastrofe‑gjenopprettings‑situasjon og vil kun skje i en nødsituasjon.
Har du spørsmål om Person‑API eller informasjonsmodellen, ta kontakt på [utvikling-persontjenesten@nhn.no](mailto:utvikling-persontjenesten@nhn.no).
JSON‑svar‑eksempel
Nedenfor er et representativt JSON‑svar fra test‑miljøet vårt. Selv om det ikke er uttømmende, viser det typiske datastrukturer og relasjoner. Merk at i versjon 3 av API‑et blir null‑verdier utelatt fra svarene.
Json eksempel
{
"id": "b55209b9-0be0-43c3-b1df-4d3e3cdeda63",
"sequenceNumber": 185183,
"norwegianIdentificationNumber": [
{
"status": "InUse",
"identificationNumber": "06896496989",
"identificationNumberType": "NationalIdentityNumber",
"registeredAt": "2020-12-22T16:08:24.354Z",
"isValid": true,
"source": "KILDE_DSF"
}
],
"identityVerification": [],
"residuaryEstateContactInformation": [],
"identificationDocument": [],
"status": [
{
"status": "Resident",
"registeredAt": "2020-12-22T16:08:24.354Z",
"isValid": true,
"source": "KILDE_DSF",
"validFrom": "2020-12-22T16:08:24.354Z"
}
],
"immigrationAuthoritiesIdentificationNumber": [],
"foreignPersonIdentificationNumber": [],
"sharedResidence": [],
"gender": [
{
"gender": "Male",
"isValid": true,
"source": "KILDE_DSF"
}
],
"birth": [
{
"birthDate": "1964-09-06T00:00:00Z",
"birthYear": "1964",
"birthMunicipalityNumber": "3020",
"birthCountry": "NOR",
"registeredAt": "2022-02-18T13:35:07.043124Z",
"isValid": true,
"source": "Synutopia",
"validFrom": "1964-09-06T13:35:07.04312Z"
}
],
"birthInNorway": [
{
"organizationName": "Bra Testinstitusjon",
"multipleBirthNumber": 11,
"registeredAt": "2022-02-18T13:35:07.13083Z",
"isValid": true,
"source": "Synutopia",
"reason": "Fødsel",
"validFrom": "1964-09-06T13:35:07.13083Z"
}
],
"familyRelation": [
{
"relatedPerson": "26879497719",
"relatedPersonsRole": "Child",
"myRoleForRelatedPerson": "Father",
"registeredAt": "2022-02-18T13:35:06.690672Z",
"isValid": true,
"source": "Synutopia",
"reason": "Patch",
"validFrom": "1994-07-25T23:00:00Z"
},
{
"relatedPerson": "13926298253",
"relatedPersonsRole": "SpouseOrPartner",
"myRoleForRelatedPerson": "SpouseOrPartner",
"registeredAt": "2022-03-11T15:35:30.391334Z",
"isValid": true,
"source": "Synutopia",
"reason": "Patch",
"validFrom": "1991-02-09T15:35:30.143021Z"
},
{
"relatedPerson": "22848797212",
"relatedPersonsRole": "Child",
"myRoleForRelatedPerson": "Father",
"registeredAt": "2022-02-23T14:55:25.645122Z",
"isValid": true,
"source": "Synutopia",
"reason": "Patch",
"validFrom": "1987-04-21T23:00:00Z"
},
{
"relatedPerson": "07893049740",
"relatedPersonsRole": "Father",
"myRoleForRelatedPerson": "Child",
"registeredAt": "2022-03-11T15:35:31.290816Z",
"isValid": true,
"source": "Synutopia",
"reason": "Patch",
"validFrom": "1964-09-05T23:00:00Z"
},
{
"relatedPerson": "04922649486",
"relatedPersonsRole": "Mother",
"myRoleForRelatedPerson": "Child",
"registeredAt": "2022-03-11T15:35:31.062102Z",
"isValid": true,
"source": "Synutopia",
"reason": "Patch",
"validFrom": "1964-09-05T23:00:00Z"
}
],
"maritalStatus": [
{
"status": "Married",
"statusDate": "1991-02-09T00:00:00Z",
"authority": "DEN_NORSKE_KIRKE",
"municipalityNumber": "0301",
"municipalityName": "Oslo",
"countyNumber": "03",
"countyName": "Oslo",
"place": "Sist Testkirke",
"relatedByMaritalStatus": "13926298253",
"registeredAt": "2022-03-11T15:35:30.143022Z",
"isValid": true,
"source": "Synutopia",
"reason": "Patch",
"validFrom": "1991-02-09T15:35:30.143021Z"
}
],
"name": [
{
"givenName": "FRISK",
"familyName": "BÅT",
"registeredAt": "2022-02-18T13:35:07.224651Z",
"isValid": true,
"source": "Synutopia",
"reason": "Patch",
"validFrom": "2022-02-18T13:35:07.224649Z"
}
],
"addressProtection": [],
"residentialAddress": [
{
"streetAddress": {
"separatelyOccupiedUnitNumber": "H0202",
"separatelyOccupiedUnitType": "Housing",
"addressName": "Kirkegata",
"addressNumber": {
"houseNumber": "19",
"houseLetter": "B"
},
"addressCode": "13707",
"city": {
"cityName": "OSLO",
"postalCode": "0153"
},
"municipalityNumber": "0301",
"municipalityName": "Oslo",
"countyNumber": "03",
"countyName": "Oslo"
},
"coordinate": {
"epsgCode": 25833,
"north": 7273600,
"east": 454000
},
"cadastralIdentifier": "285856075",
"addressConfidentiality": "Unclassified",
"moveDate": "2022-03-11T00:00:00Z",
"basicStatisticalUnit": 102,
"fullBasicStatisticalUnitNumber": "03010102",
"basicStatisticalUnitName": "Sentrum 1 - Rode 2",
"constituency": 1601,
"schoolDistrict": 216,
"churchDistrict": 5,
"urbanDistrictCode": "030104",
"urbanDistrictName": "St.Hanshaugen",
"geographicalUrbanDistrictCode": "030116",
"geographicalUrbanDistrictName": "Sentrum",
"registeredAt": "2022-03-11T15:35:33.018848Z",
"isValid": true,
"source": "Synutopia",
"reason": "Flytting innenlands",
"validFrom": "2022-03-10T23:00:00Z"
}
],
"presentAddress": [
{
"isAddressUnknown": true,
"addressConfidentiality": "Unclassified",
"presentAddressDate": "2022-12-18T00:00:00Z",
"stayElsewhere": "Military",
"registeredAt": "2022-12-18T10:01:01.189209Z",
"isValid": true,
"source": "Synutopia",
"reason": "Oppholdsadresse og opphold annet sted",
"validFrom": "2022-12-17T23:00:00Z"
}
],
"immigrationToNorway": [],
"emigrationFromNorway": [],
"useOfSamiLanguage": [],
"samiParliamentElectoralRegistryStatus": [],
"postalAddress": [
{
"addressConfidentiality": "Unclassified",
"postBoxAddress": {
"postBoxIdentification": "Test 61",
"city": {
"cityName": "VESTSIDA",
"postalCode": "2863"
}
},
"registeredAt": "2022-12-18T10:01:00.568046Z",
"isValid": true,
"source": "Synutopia",
"reason": "Oppholdsadresse og opphold annet sted",
"validFrom": "2022-12-17T23:00:00Z"
}
],
"foreignPostalAddress": [],
"parentalResponsibility": [],
"citizenship": [
{
"countryCode": "NOR",
"aquiredDate": "1964-09-06T00:00:00Z",
"registeredAt": "2022-02-18T13:35:07.316077Z",
"isValid": true,
"source": "Synutopia",
"reason": "Fødsel",
"validFrom": "1964-09-06T13:35:07.316093Z"
}
],
"citizenshipRetention": [],
"residencePermit": [],
"stayOnSvalbard": [],
"guardianshipOrFuturePowerOfAttorney": [],
"legalAuthority": [],
"commonContactRegisterInformation": {
"reservation": "No",
"status": "Active",
"notificationStatus": "CanBeNotified",
"contactInformation": {
"email": "kjetil.braadland@capgemini.com",
"emailLastUpdated": "2023-11-15T12:39:49+01",
"emailLastVerified": "2023-11-15T12:39:49+01",
"phoneNumber": "+4741522179",
"phoneNumberLastUpdated": "2023-11-15T12:39:49+01",
"phoneNumberLastVerified": "2023-11-15T12:39:49+01"
},
"digitalPost": {}
}
}