Fra FS-APIet til FS GraphQL API
Her finner du informasjon om hvordan du kan gå fram for å migrere fra FS-APIet til FS GraphQL API.
Konstruer en relevant GraphQL-spørring for henting av data
FS-APIet er bygget opp av ressurser som ligger ganske nær tabellstrukturen i FS. Responsen for de fleste GET-operasjoner vil inneholde lenker til API-kall for å hente relevante grunnlagsdata. For å hente alle relevante data, må du derfor ofte gjøre mange separate HTTP-kall.
I GraphQL har du imidlertid mulighet til å konstruere spørringer som henter nøstede data. Du bør derfor ikke nødvendigvis lete etter spørringer eller oppslag som nøyaktig samsvarer med API-kallene du gjør i dagens løsning. Grunnlagsdata vil som regel være mulig å hente direkte i kontekst av hovedspørringen.
Les mer om spørringer i FS GraphQL API her: FS GraphQL API: Spørringer
Paginering i FS GraphQL API
FS-APIet benytter sidebasert paginering. Det vil si at du spesifiserer hvor mange resultater du vil ha per side, og deretter hvilken side du vil ha tilbake. FS GraphQL API benytter cursor-basert paginering. Det betyr at hver rad i resultatet ditt får et bokmerke, og når du skal bla i pagineringen, ber du alltid om et visst antall rader etter et bestemt bokmerke.
Les mer her: FS GraphQL API: Paginering
Finn en relevant skriveoperasjon
Skriveoperasjoner i FS-APIet følger vanlig REST-mønster med POST, PATCH og DELETE på spesifikke ressurser. Mutasjonene i FS GraphQL API følger et annet mønster. Mutasjonene er knyttet til studieadministrative arbeidsprosesser, og en mutasjon vil typisk svare til en handling som utføres i en slik prosess.
Les mer her: FS GraphQL API: Mutations
Klienten må bruke FS GraphQL APIs ID for objektet
FS GraphQL API bruker andre IDer enn FS-APIet. Det betyr at klienten kan måtte gjøre et oppslag mot FS GraphQL API for å finne APIets ID, før man kan utføre selve skriveoperasjonen. For endepunkter som er varslet avviklet, vil det som regel finnes et oppslag som tar inn FS-APIets ID, og som returnerer objektet med FS GraphQL APIs id.
Eksempelvis er personløpenummer IDen for personer i FS-APIet. Slik finner du IDen for person-profil for personen med personløpenummer 1440 i FS GraphQL API:
query FinnIdGittPersonlopenummer {
personProfilerGittPersonlopenumre(
eierInstitusjonsnummer: "1234"
personlopenumre: "1440"
) {
id
}
}
Dette gir følgende respons:
{
"data": {
"personProfilerGittPersonlopenumre": [
{
"id": "NzY6MTIzNCwxNDQw"
}
]
}
}
Kontakt FS-support dersom du ikke finner et oppslag som passer til behovet ditt.
Abonnere på hendelser
FS-APIet har støtte for å sende meldinger til en meldingskø når det skjer endringer i database. FS GraphQL API har en løsning for det samme behovet, men det er løst på en annen måte. Det er to hovedforskjeller på FS-APIet og FS GraphQL API her.
For det første er hendelsene i FS GraphQL API designet som trinn i en studieadministrativ prosess, der FS-APIet er forholder seg til CRUD-hendelser (INSERT, UPDATE, DELETE) i databasen. Det betyr at GraphQL-hendelsene stort sett vil være mer spissede enn FS-API-meldingene. Det betyr også at du kan måtte lytte på flere hendelser i FS GraphQL API for å erstatte meldingskø-funksjonaliteten for en gitt ressurs. Det betyr imidlertid også at klienten får mer informasjon om hva som faktisk har skjedd, og kan reagere mer presist, og at du får færre falske positiver.
For det andre så baserer FS-APIet sin hendelsesarkitektur seg på mønsteret for meldingsforsendelse, mens FS GraphQL APIet baserer seg på mønsteret for spørring og oppslag. Se Digitaliseringsdirektoratets Referansearkitekturer for detaljer.
Dette valget har vi gjort for å kunne levere en enklere og mer fleksibel brukeropplevelse til brukergrupper som tåler å vente i mer enn et par sekunder med å få vite at hendelser har oppstått. Våre undersøkelser viser at dette treffer de aller fleste av behovene som FS GraphQL API skal levere på.
Mønsteret for meldingsforsendelse vil kunne bli støttet på et senere tidspunkt, men det har foreløpig ikke vært prioritert. Dersom dere har konkrete behov som krever dette så ønsker vi å komme i kontakt for å diskutere dette.
Les mer her: [FS GraphQL API: Hendelser]
Hva om mitt behov ikke er dekket?
Vi vil normalt ikke varsle avvikling av hele eller deler av et API før vi er trygge på at tilsvarende funksjonalitet er på plass i FS GraphQL API. Dersom du likevel opplever at behovet ditt ikke er dekket i det nye APIet, ber vi om at du tar kontakt med fs-support@sikt.no og beskriver behovet.
FS-APIet vil avvikles gradvis og over tid, etterhvert som funksjonalitet blir tilgjengelig i FS GraphQL API. Det vil si at mange klienter må forholde seg til å bruke en kombinasjon av begge APIene i en overgangsperiode.
Kontakt FS-support for hjelp ved behov
Kontakt fs-support@sikt.no dersom du trenger hjelp til å komme i gang, eller underveis i migreringen.
Eksempler
Her vil du finne eksempler på hvordan du kan erstatte endepunkter i FS-APIet med kall mot FS GraphQL API. Merk at GraphQL gir stor fleksibilitet i hvilke data du kan hente, så bruk eksemplene som utgangspunkt, og konstruer en spørring skreddersydd for ditt behov.
GET /akseptansetyper og GET /akseptansetyper/{id}
Eksempel på GraphQL-kall som henter akseptansetyper:
query Akseptansetyper {
samtykkekrav(eierOrganisasjonskode: "1234") {
edges {
cursor
node {
aktiv
id
sporsmal {
en
nn
nb
}
forklaring {
en
nn
nb
}
}
}
}
}
Eksempel på svar:
{
"data": {
"samtykkekrav": {
"edges": [
{
"cursor": "MToxMjM0LEZMUg",
"node": {
"aktiv": false,
"id": "MToxMjM0LEZMUg",
"sporsmal": {
"en": "Do you accept that information about your ID will be sent \"Joint Library Card\"?",
"nn": "Godtar du at informasjon om deg skal overførast til Felles Låneregister?",
"nb": "Godtar du at informasjon om deg skal overføres til Felles Lånerregister?"
},
"forklaring": {
"en": "This service requires a norwegian ID-number. If you have a norwegian ID-number and you accept the following question, you may also use your studentcard as library-card on other libraries.",
"nn": "Dersom du svarer \"Ja\" kan du også bruke studentkortet ditt som lånekort på andre bibliotek som er med i ordninga.",
"nb": "Hvis du svarer \"Ja\" kan du også bruke studentkortet ditt som lånekort på andre bibliotek som er med i ordningen."
}
}
},
{
"cursor": "MToxMjM0LE5FVFRQVUJM",
"node": {
"aktiv": false,
"id": "MToxMjM0LE5FVFRQVUJM",
"sporsmal": {
"en": "Do you want to have your name and your email address listed in the institution's directory service?",
"nn": "Ønskjer du at namnet ditt og e-postadressa di skal vere tilgjengeleg via personsøkjetenesta ?",
"nb": "Ønsker du å gjøre ditt navn og din e-postadresse tilgjengelig via institusjonens personsøketjeneste?"
},
"forklaring": {
"en": "The institution has an electronic, searchable directory of employees and students. By using the search engine, information about students' e-mail addresses, usernames, their faculty/department/programme and the URL for home pages, will appear if they exist. <BR>The information will be collected from FS (the student directory).<BR>The directory is accessible through the Internet. According to the Norwegian Personal Data Act, consent from the individual the data can be related to must be collected before this individual can be included in the directory services.",
"nn": "Institusjonen har ein elektronisk katalog kor det er mogeleg å søkje etter tilsette og studentar. For ein student som er registrert i denne katalogen, vil personsøk på nettsidene til institusjonen vise e-postadresse, brukarnamn, kva for ei eining studenten er knytte til og URL for eventuell heimeside på nettet til institusjonen.<BR>Det er frivillig å vere oppført i katalogen. Dersom du samtykkjer, vil du vere oppført i katalogen fram til brukarkontoen din ved institusjonen blir avslutta. Samtykkjet kan kva tid som helst trekkjast tilbake.",
"nb": "Institusjonen har en elektronisk søkbar katalog over sine studenter og ansatte. For en student som er registrert i denne katalogen, vil personsøk på institusjonens nettsider vise studentens e-postadresse, brukernavn, enhetstilknytning og URL for eventuell hjemmeside på institusjonens nett.<BR>Det er frivillig å være oppført i katalogen. Hvis du samtykker, vil du være oppført i katalogen frem til brukerkontoen din ved institusjonen opphører. Samtykket kan når som helst trekkes tilbake."
}
}
},
{
"cursor": "MToxMjM0LFJFU1VUVkVLU0w",
"node": {
"aktiv": false,
"id": "MToxMjM0LFJFU1VUVkVLU0w",
"sporsmal": {
"en": "Do you accept that this institution can fetch result information from other Norwegian institutions?",
"nn": "Ønskjer du å åpne for at institusjonen skal kunne hente resultatinformasjon om deg frå andre institusjonar?",
"nb": "Ønsker du å åpne for at institusjonen skal kunne hente resultatinformasjon om deg fra andre institusjoner?"
},
"forklaring": {
"en": "If you answer \"Yes\" to this question you will allow this institution to gather exam-information about you from other Norwegian institutions. <p><a href=\"http://www.fellesstudentsystem.no/dokumentasjon/rutiner/resultatutveksling/studentrutiner-en.html\" target=\"_blank\">Click here for more information about exchange of results</a></p>",
"nn": "Dersom du svarer \"Ja\" på dette, så tillet du at det blir henta inn informasjon om dine resultater frå andre nasjonale institusjonar du har gått på.<p><a href=\"http://www.fellesstudentsystem.no/dokumentasjon/rutiner/resultatutveksling/studentrutiner-ny.html\" target=\"_blank\">Klikk her for mer info om resultatutveksling</a></p>",
"nb": "Hvis du svarer \"Ja\" på dette, så tillater du at det blir hentet inn informasjon om dine resultater fra andre nasjonale institusjoner du har gått på. <p><a href=\"http://www.fellesstudentsystem.no/dokumentasjon/rutiner/resultatutveksling/studentrutiner.html\" target=\"_blank\">Klikk her for mer info om resultatutveksling</a></p>"
}
}
},
{
"cursor": "MToxMjM0LFNFTUtWSVRU",
"node": {
"aktiv": false,
"id": "MToxMjM0LFNFTUtWSVRU",
"sporsmal": {
"en": "I want to order a paper version of the semester card",
"nn": "Eg ynskjer å bestille semesterkvittering i papirformat",
"nb": "Jeg ønsker å bestille semesterkvittering i papirformat"
},
"forklaring": {
"en": "<b>New from autumn semester 2015:</b> Student ID with photo and semester receipt is now available as an app for Android and IOS phones.</br></br>\r\n\r\nIt is not necessary to present the student ID app or a valid semester receipt at exams. \r\n\r\n<a href=\"http://www.uib.no/studentid\" target=\"_blank\">You can download the app here!</a></br></br>\r\n\r\nIf you still need a paper version of the semester receipt you can order this below. The semester receipt will be sent to your semester address. Please make sure to update your semester address here at StudentWeb.\r\n",
"nn": "<b>Nytt fra haustsemesteret 2015:</b> Semesterkvittering og studentbevis får du no på app for Android- og IOS-telefoner.</br></br> \r\n\r\nDet er ikkje naudsynt å syne fram studentbevisappen eller anna semesterkvittering ved eksamen</br></br>\r\n\r\n<a href=\"http://www.uib.no/studentbevis\" target=\"_blank\">Du kan laste ned appen her!</a></br></br>\r\n\r\nDersom du likevel har bruk for semesterkvittering på papir, kan dette bestillast under. Semesterkvitteringa vil bli sendt til di semesteradresse. Husk å oppdatere di semesteradresse her på StudentWeb.\r\n",
"nb": "<b>Nytt fra høstsemesteret 2015:</b> Semesterkvittering og studentbevis får du nå på app for Android- og IOS-telefoner. </br></br> \r\n\r\nDet er ikke nødvendig å vise frem studentbevisappen eller annen semesterkvittering ved eksamen.</br></br>\r\n\r\n<a href=\"http://www.uib.no/studentbevis\" target=\"_blank\">Du kan laste ned appen her!</a></br></br>\r\n\r\nDersom du likevel har behov for semesterkvittering på papir kan dette bestilles under. Semesterkvitteringen vil bli sendt til din semesteradresse. Husk å oppdatere din semesteradresse her på Studentweb."
}
}
}
]
}
}
}
GET /bygninger og GET /bygninger/{id}
Eksempel på GraphQL-kall som henter alle aktive bygninger:
query HentBygninger {
bygninger(
filter: {
eierOrganisasjonskode: "1234"
}
first: 10
) {
edges {
node {
id
navnAlleSprak {
und
}
}
}
}
}
Eksempel på svar:
{
"data": {
"bygninger": {
"edges": [
{
"node": {
"id": "NjoxMjM0LDIwMQ",
"navnAlleSprak": {
"und": "HI%"
}
}
},
{
"node": {
"id": "NjoxMjM0LDIwMw",
"navnAlleSprak": {
"und": "HiB"
}
}
},
{
"node": {
"id": "NjoxMjM0LDgxMDAz",
"navnAlleSprak": {
"und": "Bygning 3 (NTNU)"
}
}
},
{
"node": {
"id": "NjoxMjM0LEFC",
"navnAlleSprak": {
"und": "Administrasjonsbygningen"
}
}
},
{
"node": {
"id": "NjoxMjM0LEFCVQ",
"navnAlleSprak": {
"und": "Bygning A, HiBu"
}
}
},
{
"node": {
"id": "NjoxMjM0LEFETQ",
"navnAlleSprak": {
"und": "Administrasjonsbygget"
}
}
},
{
"node": {
"id": "NjoxMjM0LEFMQQ",
"navnAlleSprak": {
"und": "Hine"
}
}
},
{
"node": {
"id": "NjoxMjM0LEFMTFJPTQ",
"navnAlleSprak": {
"und": "Rommet mitt"
}
}
},
{
"node": {
"id": "NjoxMjM0LEFOREVSUw",
"navnAlleSprak": {
"und": "Anders"
}
}
},
{
"node": {
"id": "NjoxMjM0LEFVRE1BWA",
"navnAlleSprak": {
"und": "Aud.max"
}
}
}
]
}
}
}
Søket returnerer kun aktive bygninger som standard. Bruk filter.erAktiv for å få med inaktive bygninger i resultatet.
Query.bygninger har støtte for fritekstsøk som filtrerer på tvers av bygningens navn og adresse:
query HentBygninger {
bygninger(
filter: {
eierOrganisasjonskode: "1234"
freeText: "admin"
}
first: 10
) {
edges {
node {
id
navnAlleSprak {
und
}
}
}
}
}
Eksempel på svar:
{
"data": {
"bygninger": {
"edges": [
{
"node": {
"id": "NjoxMjM0LEFC",
"navnAlleSprak": {
"und": "Administrasjonsbygningen"
}
}
},
{
"node": {
"id": "NjoxMjM0LEFETQ",
"navnAlleSprak": {
"und": "Administrasjonsbygget"
}
}
}
]
}
}
}
Du kan også slå opp på en bygning med FS-APIets ID:
query FinnEnBygning {
bygningerGittBygningskoder(
eierOrganisasjonskode: "1234"
bygningskoder: "ADM"
) {
id
navnAlleSprak {
und
}
}
}
Eksempel på svar:
{
"data": {
"bygningerGittBygningskoder": [
{
"id": "NjoxMjM0LEFETQ",
"navnAlleSprak": {
"und": "Administrasjonsbygget"
}
}
]
}
}
GET /campuser og GET /campuser{id}
Eksempel på et GraphQL-kall som henter campuser uten filtrering:
query HentCampuser {
campuser(
filter: {
eierOrganisasjonskode: "1234"
}
first: 10
) {
edges {
node {
id
navnAlleSprak {
nb
nn
en
}
}
}
}
}
Eksempel på svar:
{
"data": {
"campuser": {
"edges": [
{
"node": {
"id": "NzoxMjM0LEFITw",
"navnAlleSprak": {
"nb": "Campus AHO",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "NzoxMjM0LEFORA",
"navnAlleSprak": {
"nb": "Campus Andeby",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "NzoxMjM0LEJPRMOY",
"navnAlleSprak": {
"nb": "Bodø",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "NzoxMjM0LERSQUdWT0xM",
"navnAlleSprak": {
"nb": "Dragvoll",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "NzoxMjM0LEVMR0VTRVRFUg",
"navnAlleSprak": {
"nb": "Elgeseter",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "NzoxMjM0LEVMVkVSVU0",
"navnAlleSprak": {
"nb": "Elverum",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "NzoxMjM0LEdKw5hWSUs",
"navnAlleSprak": {
"nb": "Gjøvik",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "NzoxMjM0LEdMw5hTSEFVR0VO",
"navnAlleSprak": {
"nb": "Gløshaugen",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "NzoxMjM0LEhBTUFS",
"navnAlleSprak": {
"nb": "Hamar",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "NzoxMjM0LEhPR1dBUlRT",
"navnAlleSprak": {
"nb": "Hogwarts School of Witchcraft and Wizardry",
"nn": null,
"en": null
}
}
}
]
}
}
}
Du kan hente en bestemt campus med FS-APIets ID slik:
query FinnCampus {
campuserGittCampuskoder(
eierOrganisasjonskode: "1234"
campuskoder: "AND"
) {
id
navnAlleSprak {
nb
nn
en
}
}
}
Eksempel på svar:
{
"data": {
"campuserGittCampuskoder": [
{
"id": "NzoxMjM0LEFORA",
"navnAlleSprak": {
"nb": "Campus Andeby",
"nn": null,
"en": null
}
}
]
}
}
GET /deltakere og GET /deltakere{id}
Se under GET /personer.
GET /emner og GET /emner/{id}
Eksempel på GraphQL-kall som henter emner:
query Emner {
query Emner {
emnerV2(
filter: {eierOrganisasjonskode: "1234"},
first: 10) {
edges {
node {
id
kode
navnAlleSprak {
nb
nn
en
se
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
Eksempel på svar:
{
"data": {
"emnerV2": {
"edges": [
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement",
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMywx",
"kode": "1BA-113",
"navnAlleSprak": {
"nb": "Treningslære",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwy",
"kode": "1BA-121",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwz",
"kode": "1BA-121",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEzNSwx",
"kode": "1BA-135",
"navnAlleSprak": {
"nb": "Ballspill",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEzNiwx",
"kode": "1BA-136",
"navnAlleSprak": {
"nb": "Andre aktiviteter",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEzNywx",
"kode": "1BA-137",
"navnAlleSprak": {
"nb": "Uteaktiviteter",
"nn": null,
"en": null,
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsQUtUMjAyLTEsMQ",
"kode": "AKT202-1",
"navnAlleSprak": {
"nb": "Aktivitetslære",
"nn": null,
"en": "Physical Activity Education",
"se": null
}
}
},
{
"node": {
"id": "MjA6MTIzNCwxNTAsRkFIMzQyLDE",
"kode": "FAH342",
"navnAlleSprak": {
"nb": "Aktivitetsformidling III: Aktiviteter i sal",
"nn": null,
"en": null,
"se": null
}
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "WzEyMzQsMTUwLCJGQUgzNDIiLCIxIl0"
}
}
}
}
Du kan også hente ut et enkelt emne med emnekode og versjonskode slik:
query Emneoppslag {
emnerGittEmnekoder(
eierInstitusjonsnummer: "1234"
emnekoder: {emnekode: "VK21A", versjonskode: "1"}
) {
id
kode
versjonskode
navnAlleSprak {
nb
nn
en
se
}
}
}
Eksempel på svar:
{
"data": {
"emnerGittEmnekoder": [
{
"id": "MjA6MTIzNCwxODUsVksyMUEsMQ",
"kode": "VK21A",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Vk21a",
"nn": null,
"en": null,
"se": null
}
}
]
}
}
Emnehendelser
Du kan hente hendelser for emner via Query.emnehendelser.
Dersom du har behov for andre hendelser enn de som er tilgjengelig, ta kontakt med fs-support@sikt.no og beskriv behovet.
GET /evukurs og GET /evukurs/{id}
Eksempel på GraphQL-kall som henter EVU-kurs med tidsangivelse som inneholder 2011:
query EvuKurs {
evuKurs(
filter: {
eierOrganisasjonskode: "1234"
tidsangivelse: "2011"
}
) {
edges {
node {
id
kode
tidsangivelseskode
navnAlleSprak {
nb
nn
en
}
}
}
}
}
Eksempel på svar:
{
"data": {
"evuKurs": {
"edges": [
{
"node": {
"id": "Mjg6MTIzNCwxMTIyMCwyMDEx",
"kode": "11220",
"tidsangivelseskode": "2011",
"navnAlleSprak": {
"nb": "Program for pedagogisk basiskompetanse",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "Mjg6MTIzNCwxMTIyMSwyMDEx",
"kode": "11221",
"tidsangivelseskode": "2011",
"navnAlleSprak": {
"nb": "Profesjonsteori I: Introduksjon",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "Mjg6MTIzNCwxNS1JVExFRDQwMTAsMjAxMUg",
"kode": "15-ITLED4010",
"tidsangivelseskode": "2011H",
"navnAlleSprak": {
"nb": "IT-ledelse: Å være leder",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "Mjg6MTIzNCxLSkUtNjAwMSwyMDExLUjDmFNU",
"kode": "KJE-6001",
"tidsangivelseskode": "2011-HØST",
"navnAlleSprak": {
"nb": "Biologisk kjemi for lærere 1",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "Mjg6MTIzNCxURVNUQVVUSkFTVkEsMjAxMQ",
"kode": "TESTAUTJASVA",
"tidsangivelseskode": "2011",
"navnAlleSprak": {
"nb": "Sorgbehandling",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "Mjg6MTIzNCxURVNUQVVUVEIsMjAxMQ",
"kode": "TESTAUTTB",
"tidsangivelseskode": "2011",
"navnAlleSprak": {
"nb": "Test automatisk tilb",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "Mjg6MTIzNCxURVNUTUVLUywyMDEx",
"kode": "TESTMEKS",
"tidsangivelseskode": "2011",
"navnAlleSprak": {
"nb": "Spesialpedagogikk",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "Mjg6MTIzNCxURVNUTUVLU0FVVEosMjAxMQ",
"kode": "TESTMEKSAUTJ",
"tidsangivelseskode": "2011",
"navnAlleSprak": {
"nb": "Tilpasset opplæring",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "Mjg6MTIzNCxURVNUTVNQLDIwMTE",
"kode": "TESTMSP",
"tidsangivelseskode": "2011",
"navnAlleSprak": {
"nb": "Akupunktur",
"nn": null,
"en": "Testing and asking"
}
}
},
{
"node": {
"id": "Mjg6MTIzNCxURVNUVVNQLDIwMTE",
"kode": "TESTUSP",
"tidsangivelseskode": "2011",
"navnAlleSprak": {
"nb": "Test uten spørreund",
"nn": null,
"en": "Testing without any questions"
}
}
}
]
}
}
}
Du kan også hente et enkelt EVU-kurs med FS-APIets ID slik:
query FinnEvukurs {
evukursGittKurskoder(
eierOrganisasjonskode: "1234"
koder: {
kurskode: "TESTMSP"
tidsangivelsekode: "2011"
}
) {
kode
tidsangivelseskode
navnAlleSprak {
nb
nn
en
}
}
}
Eksempel på svar:
{
"data": {
"evukursGittKurskoder": [
{
"kode": "TESTMSP",
"tidsangivelseskode": "2011",
"navnAlleSprak": {
"nb": "Akupunktur",
"nn": null,
"en": "Testing and asking"
}
}
]
}
}
GET /evukursdeltakelser og GET /evukursdeltakelser/{id}
Eksempel på GraphQL-kall som henter evukursdeltakelser:
query EvuKursdeltakelser {
evuKursdeltakelser(filter: {eierOrganisasjonskode: "1234"}, first: 5) {
pageInfo {
hasNextPage
hasPreviousPage
}
nodes {
id
gjennomforingErGodkjent
kurs {
id
navnAlleSprak {
nb
}
kode
tidsangivelseskode
}
personProfil {
navn {
fornavn
etternavn
}
}
deltaker {
deltakernummer
}
}
}
}
Eksempel på svar:
{
"data": {
"evuKursdeltakelser": {
"pageInfo": {
"hasNextPage": true,
"hasPreviousPage": false
},
"nodes": [
{
"id": "MzIxOjEyMzQsMDAwMDAsMjAxOSwxMDA5NzE",
"gjennomforingErGodkjent": null,
"kurs": {
"id": "Mjg6MTIzNCwwMDAwMCwyMDE5",
"navnAlleSprak": {
"nb": "Språkutvikling og lek"
},
"kode": "00000",
"tidsangivelseskode": "2019"
},
"personProfil": null,
"deltaker": {
"deltakernummer": "100971"
}
},
{
"id": "MzIxOjEyMzQsMDAwXDAwLDIwMTksMTAxMTAx",
"gjennomforingErGodkjent": null,
"kurs": {
"id": "Mjg6MTIzNCwwMDBcMDAsMjAxOQ",
"navnAlleSprak": {
"nb": "Språkutvikling og lek"
},
"kode": "000\\00",
"tidsangivelseskode": "2019"
},
"personProfil": {
"navn": {
"fornavn": "Adelin Krzys",
"etternavn": "Eira"
}
},
"deltaker": {
"deltakernummer": "101101"
}
},
{
"id": "MzIxOjEyMzQsMDAwXDAwLDIwMTksMTAxMTA1",
"gjennomforingErGodkjent": null,
"kurs": {
"id": "Mjg6MTIzNCwwMDBcMDAsMjAxOQ",
"navnAlleSprak": {
"nb": "Språkutvikling og lek"
},
"kode": "000\\00",
"tidsangivelseskode": "2019"
},
"personProfil": {
"navn": {
"fornavn": "Esmin Milaim",
"etternavn": "Thorgersen"
}
},
"deltaker": {
"deltakernummer": "101105"
}
},
{
"id": "MzIxOjEyMzQsMDYyMjAsMjAwNiwxMDkw",
"gjennomforingErGodkjent": true,
"kurs": {
"id": "Mjg6MTIzNCwwNjIyMCwyMDA2",
"navnAlleSprak": {
"nb": "Kvalitetsledelse"
},
"kode": "06220",
"tidsangivelseskode": "2006"
},
"personProfil": {
"navn": {
"fornavn": "Ola",
"etternavn": "Normann"
}
},
"deltaker": {
"deltakernummer": "1090"
}
},
{
"id": "MzIxOjEyMzQsMDYyMjAsMjAwNiwxMDk0",
"gjennomforingErGodkjent": true,
"kurs": {
"id": "Mjg6MTIzNCwwNjIyMCwyMDA2",
"navnAlleSprak": {
"nb": "Kvalitetsledelse"
},
"kode": "06220",
"tidsangivelseskode": "2006"
},
"personProfil": null,
"deltaker": {
"deltakernummer": "1094"
}
}
]
}
}
}
Du kan også hente en enkelt evukursdeltakels:
query EvuKursdeltakelserGittLegacyIder {
evuKursdeltakelserGittLegacyIder(
eierOrganisasjonskode: "1234"
legacyIder: [
{
evuKurskode: "06220"
tidsangivelseskode: "2006"
deltakernummer: "1090"
}
]
) {
id
gjennomforingErGodkjent
kurs {
id
navnAlleSprak {
nb
}
}
personProfil {
id
fodselsnummer
navn {
fornavn
etternavn
}
}
}
}
Eksempel på svar:
{
"data": {
"evuKursdeltakelserGittLegacyIder": [
{
"id": "MzIxOjEyMzQsMDYyMjAsMjAwNiwxMDkw",
"gjennomforingErGodkjent": true,
"kurs": {
"id": "Mjg6MTIzNCwwNjIyMCwyMDA2",
"navnAlleSprak": {
"nb": "Kvalitetsledelse"
}
},
"personProfil": {
"id": "NzY6MTIzNCwxNzE4",
"fodselsnummer": "28607290522",
"navn": {
"fornavn": "Ola",
"etternavn": "Normann"
}
}
}
]
}
}
Hendelser for evukursdeltakelser er foreløpig ikke tilgjengelig. Hvis du trenger slike hendelser, kontakt fs-support@sikt.no og beskriv behovet.
GET /infotyper og GET /infotyper/{id}
Infotyper heter "tekstkategorier" i FS GraphQL API. Her er et eksempel på en spørring som henter ut alle aktive infotyper:
query Infotyper {
tekstkategorier(
filter: {
eierOrganisasjonskode: "1234"
kanBrukesTilEmnebeskrivelser: true
}
first: 10
) {
edges {
node {
id
navnAlleSprak {
nb
nn
en
}
bruksomrader {
edges {
node {
id
navnAlleSprak {
und
}
}
}
}
rekkefolgenummer
}
}
}
}
Eksempel på svar:
{
"data": {
"tekstkategorier": {
"edges": [
{
"node": {
"id": "NDU6MTIzNCwg",
"navnAlleSprak": {
"nb": "blank",
"nn": "blank",
"en": "blanc"
},
"bruksomrader": {
"edges": []
},
"rekkefolgenummer": 1
}
},
{
"node": {
"id": "NDU6MTIzNCxFLUVLU0JFU0tS",
"navnAlleSprak": {
"nb": "Beskrivelse av eksamen for kurset",
"nn": null,
"en": "Description of the exam for the course"
},
"bruksomrader": {
"edges": []
},
"rekkefolgenummer": 2
}
},
{
"node": {
"id": "NDU6MTIzNCxFLUlOTkhPTEQ",
"navnAlleSprak": {
"nb": "Emnets innhold",
"nn": null,
"en": "Subject's content"
},
"bruksomrader": {
"edges": [
{
"node": {
"id": "MjIxOjEyMzQsRS1JTk5IT0xELFJFU1VUVg",
"navnAlleSprak": {
"und": "Resultatutveksling"
}
}
}
]
},
"rekkefolgenummer": 3
}
},
{
"node": {
"id": "NDU6MTIzNCxFLUtPUlRJTlRS",
"navnAlleSprak": {
"nb": "Introduksjon til emnet",
"nn": null,
"en": "Introduction to the subject"
},
"bruksomrader": {
"edges": []
},
"rekkefolgenummer": 4
}
},
{
"node": {
"id": "NDU6MTIzNCxFLU1URVNU",
"navnAlleSprak": {
"nb": "Mym tester igjen",
"nn": null,
"en": null
},
"bruksomrader": {
"edges": []
},
"rekkefolgenummer": 5
}
},
{
"node": {
"id": "NDU6MTIzNCxFLU9QUFRBSw",
"navnAlleSprak": {
"nb": "Generell adgangsinformasjon for emnet",
"nn": null,
"en": null
},
"bruksomrader": {
"edges": []
},
"rekkefolgenummer": 6
}
},
{
"node": {
"id": "NDU6MTIzNCxFLVRPTQ",
"navnAlleSprak": {
"nb": "Tomme saker",
"nn": null,
"en": null
},
"bruksomrader": {
"edges": []
},
"rekkefolgenummer": null
}
},
{
"node": {
"id": "NDU6MTIzNCxFLVRPTTI",
"navnAlleSprak": {
"nb": "Tomme saker2",
"nn": null,
"en": null
},
"bruksomrader": {
"edges": []
},
"rekkefolgenummer": null
}
},
{
"node": {
"id": "NDU6MTIzNCxFLVVOREJFU0tS",
"navnAlleSprak": {
"nb": "Undervisningsmetode for emnet",
"nn": null,
"en": null
},
"bruksomrader": {
"edges": []
},
"rekkefolgenummer": 7
}
},
{
"node": {
"id": "NDU6MTIzNCxFLVVSTA",
"navnAlleSprak": {
"nb": "Link til informasjon om emnet",
"nn": null,
"en": null
},
"bruksomrader": {
"edges": []
},
"rekkefolgenummer": 8
}
}
]
}
}
}
GET /karakterregler og GET /karakterregler/{id}
Dersom du kjenner karakterregelkoden kan du hente en karakterregel slik:
query Karakterregler {
karakterreglerGittKarakterregelkoder (
karakterregelkoder: ["30"]
) {
id
beskrivelseAlleSprak {
nb
nn
en
}
}
}
Eksempel på svar:
{
"data": {
"karakterreglerGittKarakterregelkoder": [
{
"id": "NTU6MTIzNCwzMA",
"beskrivelseAlleSprak": {
"nb": "Bokstavkarakterer ",
"nn": "Bokstavkarakterar",
"en": "Letter grades"
}
}
]
}
}
GET /kommisjoner og GET /kommisjoner/{id}
Kommisjoner heter "sensurkommisjoner" i FS GraphQL API. Her er et eksempel på en spørring som henter ut sensurkommisjoner:
Du kan også filtrere på emner for å begrense til spesifikke emner.
query {
sensurkommisjoner(
filter: {
eierOrganisasjonskode: "1234"
}
first: 10
) {
edges {
node {
id
kommisjonsnummer
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
Eksempel på svar:
{
"data": {
"sensurkommisjoner": {
"edges": [
{
"node": {
"id": "MjQ5OjEyMzQsMTc4LEFGMDhBLDEsVSwwNiwz",
"kommisjonsnummer": "3"
}
},
{
"node": {
"id": "MjQ5OjEyMzQsMTg0LEJaTTIzMSwxLFMsMTIsMQ",
"kommisjonsnummer": "1"
}
},
{
"node": {
"id": "MjQ5OjEyMzQsMTg0LEJaTTIzMSwxLFMsMTIsMg",
"kommisjonsnummer": "2"
}
},
{
"node": {
"id": "MjQ5OjEyMzQsMTg0LEkxMTAsMSxPUyxIw5hTVCwx",
"kommisjonsnummer": "1"
}
},
{
"node": {
"id": "MjQ5OjEyMzQsMTg0LEkxMTAsMSxPUyxIw5hTVCwy",
"kommisjonsnummer": "2"
}
},
{
"node": {
"id": "MjQ5OjEyMzQsMTg0LEkxMTAsMSxPUyxIw5hTVCwz",
"kommisjonsnummer": "3"
}
},
{
"node": {
"id": "MjQ5OjEyMzQsMTg0LEkxMTAsMSxPUyxIw5hTVCwxMQ",
"kommisjonsnummer": "11"
}
},
{
"node": {
"id": "MjQ5OjEyMzQsMTg0LEkxMTAsMSxPUyxIw5hTVCwxMg",
"kommisjonsnummer": "12"
}
},
{
"node": {
"id": "MjQ5OjEyMzQsMTg0LE1FVkkxMDAsMSxTLDEyLDE",
"kommisjonsnummer": "1"
}
},
{
"node": {
"id": "MjQ5OjEyMzQsMTg0LE1FVkkxMDAsMSxTLDEyLDI",
"kommisjonsnummer": "2"
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "WzEyMzQsMTg0LCJNRVZJMTAwIiwiMSIsIlMiLDIwMDUsIjEyIiwyXQ"
}
}
}
}
For å hente en spesifikk sensurkommisjon brukes sensurkommisjonerGittLegacyIder:
query {
sensurkommisjonerGittLegacyIder(
eierOrganisasjonskode: "1234"
legacyIder: [
{
emneInstitusjonsnummer: "178"
emnekode: "AF08A"
emneversjonskode: "1"
vurderingskombinasjonskode: "U"
vurderingstidkode: "06"
kommisjonsnummer: "3"
}
]
) {
id
kommisjonsnummer
}
}
Eksempel på svar:
{
"data": {
"sensurkommisjonerGittLegacyIder": [
{
"id": "MjQ5OjEyMzQsMTc4LEFGMDhBLDEsVSwwNiwz",
"kommisjonsnummer": "3"
}
]
}
}
GET /kull og GET /kull/{id}
Eksempel på spørring som henter alle aktive kull:
query Kull {
kull(
filter: {
eierOrganisasjonskode: "1234",
erAktiv: true
}
first: 3) {
edges {
node {
id
studieprogram {
kode
}
termin {
arstall
betegnelse {
navnAlleSprak {
nb
nn
en
}
}
}
navnAlleSprak {
en
no
}
}
}
}
}
Eksempel på svar:
{
"data": {
"kull": {
"edges": [
{
"node": {
"id": "NTg6MTIzNCwxMCwxOTkzLEjDmFNU",
"studieprogram": {
"kode": "10"
},
"termin": {
"arstall": 1993,
"betegnelse": {
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"navnAlleSprak": {
"en": null,
"no": "Studiekull 1993-HØST"
}
}
},
{
"node": {
"id": "NTg6MTIzNCwxMCwyMDA1LEjDmFNU",
"studieprogram": {
"kode": "10"
},
"termin": {
"arstall": 2005,
"betegnelse": {
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"navnAlleSprak": {
"en": null,
"no": "Studiekull 2005-HØST"
}
}
},
{
"node": {
"id": "NTg6MTIzNCwyS1JMQjIsMjAwMyxIw5hTVA",
"studieprogram": {
"kode": "2KRLB2"
},
"termin": {
"arstall": 2003,
"betegnelse": {
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"navnAlleSprak": {
"en": null,
"no": "Kull 2003 høst"
}
}
}
]
}
}
}
Du kan også filtrere kullsøket på studieprogrammer og terminer. Til dette trenger du FS GraphQL APIs ID for studieprogrammet og terminen du vil filtrere på. Se under GET /studieprogrammer og GET /semestre for hvordan du henter ut disse IDene.
For å hente ut et kull med FS-APIets ID, kan du slå opp slik:
query KullGittId {
kullGittLegacyIder(
eierOrganisasjonskode: "1234"
legacyIder: [
{studieprogramkode: "2KRLB"
arstall: 2024
terminkode: "VÅR"
}
]
) {
id
navnAlleSprak {
no
en
}
}
}
Kullhendelser
Du kan hente hendelser for kull via Query.studieprogramhendelser.
Dersom du har behov for andre hendelser enn de som er tilgjengelig, ta kontakt med fs-support@sikt.no og beskriv behovet.
GET /kullklasser og GET /kullklasser/{id}
"Kullklasse" heter "klasse" i FS GraphQL API. Her er et eksempel på en spørring som henter ut alle aktive klasser:
query Klasser {
klasser(filter: {
eierOrganisasjonskode: "1234",
erAktiv: true},
first: 10) {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
kode
navnAlleSprak {
und
}
}
}
}
}
Eksempel på svar:
{
"data": {
"klasser": {
"pageInfo": {
"hasNextPage": true,
"endCursor": "WzEyMzQsIkFMMiIsIkjDmFNUIiwyMDI0LCIxIl0"
},
"edges": [
{
"node": {
"id": "NTk6MTIzNCwxMCwyMDA1LEjDmFNULDE",
"kode": "1",
"navnAlleSprak": {
"und": "1. klasse"
}
}
},
{
"node": {
"id": "NTk6MTIzNCwxMCwyMDA1LEjDmFNULEE",
"kode": "A",
"navnAlleSprak": {
"und": "A"
}
}
},
{
"node": {
"id": "NTk6MTIzNCwyS1JMQjIsMjAyNCxIw5hTVCxB",
"kode": "A",
"navnAlleSprak": {
"und": "A-klassen"
}
}
},
{
"node": {
"id": "NTk6MTIzNCwyS1JMQjIsMjAyNCxWw4VSLEE",
"kode": "A",
"navnAlleSprak": {
"und": "A-klassen"
}
}
},
{
"node": {
"id": "NTk6MTIzNCwzMCwxOTk1LEjDmFNULDMwM0sx",
"kode": "303K1",
"navnAlleSprak": {
"und": "Bygning, 3 årskurs, Konstruksjonsteknikk, 1 klasse"
}
}
},
{
"node": {
"id": "NTk6MTIzNCwzMCwxOTk4LEjDmFNULDMwNEs",
"kode": "304K",
"navnAlleSprak": {
"und": "Bygningsingeniør, 4. årskurs, Konstruksjonsteknikk"
}
}
},
{
"node": {
"id": "NTk6MTIzNCwzMCwyMDEwLFbDhVIsQQ",
"kode": "A",
"navnAlleSprak": {
"und": "A"
}
}
},
{
"node": {
"id": "NTk6MTIzNCw0MCwxOTk3LEjDmFNULFUtVQ",
"kode": "U-U",
"navnAlleSprak": {
"und": "Gjøvik-klassen"
}
}
},
{
"node": {
"id": "NTk6MTIzNCxBTDIsMjAwNSxIw5hTVCxB",
"kode": "A",
"navnAlleSprak": {
"und": "Grunnskolelærerutdanning-2010-HØST"
}
}
},
{
"node": {
"id": "NTk6MTIzNCxBTDIsMjAyNCxIw5hTVCwx",
"kode": "1",
"navnAlleSprak": {
"und": "1 klasse"
}
}
}
]
}
}
}
Du kan også filtrere klassesøket blant annet på kull, terminer og studieprogrammer. Til dette trenger du FS GraphQL APIs ID for verdiene du skal filtrere på. Se under migreringsguiden for disse GET kull, GET semestere og GET studieprogrammer for mer informasjon om hvordan du finner disse IDene.
Du kan slå opp med FS-APIets ID for å finne en spesifikk klasse slik:
query klasseOppslag {
klasserGittKlassekoder(
eierOrganisasjonskode: "1234",
klassekoder: [
{
studieprogramkode: "MA-INF"
arstall: 2025
terminkode: "HØST"
klassekode: "B"
}
]
) {
id
navnAlleSprak {
und
}
}
}
Eksempel på svar:
{
"data": {
"klasserGittKlassekoder": {
"id": "NTk6MTIzNCwzMCwxOTk1LEjDmFNULDMwM0sx",
"navnAlleSprak": {
"und": "B"
}
}
}
Klassehendelser
Du kan spørre etter endringer på klasser via Query.studieprogramhendelser.
Dersom du har behov for andre hendelser enn de som er tilgjengelig, ta kontakt med fs-support@sikt.no og beskriv behovet.
GET /kullklassestudenter og GET /kullklassestudenter/{id}
"Kullklassestudent" heter "klassemedlemskap" i FS GraphQL API.
Eksempel på spørring som henter ut alle studenter med aktive medlemskap i en klasse (se GET /kullklasser over for eksempel på hvordan du kan hente ut IDen for en klasse):
query studenterIKlasse {
klassemedlemskap(
filter:{
klasser:["NTk6MTIzNCwzMCwxOTk1LEjDmFNULDMwM0sx"],
erAktiv: true
}
first: 10
) {nodes {
id
studentVedLarested {
id
studentnummer
}
}}}
Eksempel på svar:
{
"data": {
"klassemedlemskap": {
"nodes": [
{
"id": "NjA6MTIzNCw5NTMsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTM",
"studentnummer": "000052"
}
},
{
"id": "NjA6MTIzNCw5NTQsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTQ",
"studentnummer": "000054"
}
},
{
"id": "NjA6MTIzNCw5NTUsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTU",
"studentnummer": "000055"
}
},
{
"id": "NjA6MTIzNCw5NTYsMzAsSMOYU1QsMTk5NCxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTY",
"studentnummer": "000056"
}
},
{
"id": "NjA6MTIzNCw5NTcsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTc",
"studentnummer": "000057"
}
},
{
"id": "NjA6MTIzNCw5NTgsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTg",
"studentnummer": "000059"
}
},
{
"id": "NjA6MTIzNCw5NTksMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NTk",
"studentnummer": "000060"
}
},
{
"id": "NjA6MTIzNCw5NjAsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NjA",
"studentnummer": "000061"
}
},
{
"id": "NjA6MTIzNCw5NjEsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NjE",
"studentnummer": "000062"
}
},
{
"id": "NjA6MTIzNCw5NjIsMzAsSMOYU1QsMTk5NSxIw5hTVCwxOTk1LDMwM0sx",
"studentVedLarested": {
"id": "OTk6MTIzNCw5NjI",
"studentnummer": "000063"
}
}
]
}
}
}
Du kan slå opp klassemedlemskap basert på FS-APIets ID slik:
query KlassemedlemskapOppslag {
klassemedlemskapGittLegacyIder(
eierOrganisasjonskode: "1234"
legacyIder: [
{
studieprogramkode: "30"
arstall: 1995
terminkode: "HØST"
klassekode: "303K1"
personlopenummer: "1687"
}
]
) {
studentVedLarested {
studentnummer
}
}
}
Eksempel på svar:
{
"data": {
"klassemedlemskapGittLegacyIder": {
"studentVedLarested": {
"studentnummer": "000052"
}
}
}
}
Klassemedlemskapshendelser
Du kan spørre etter endringer på klassemedlemskap via Query.studieprogramhendelser og Query.studenthendelser.
Dersom du har behov for andre hendelser enn de som er tilgjengelig, ta kontakt med fs-support@sikt.no og beskriv behovet.
GET /land og GET /land/{id}
Det finnes et par alternativer til oppslag på land.
Query.land(henter alle land)Query.landGittLandkodeAlfa3(henter land med filter på ISO-3166-Alpha3-landkoder)Query.landGittLandnumre(henter land med filter på landnumre, som er gammel fs-api ID)
Eksempel på GraphQL-kall som henter alle land (vi henter kun første fem land i eksemplet):
query Land {
land(first: 5) {
edges {
node {
id
navnAlleSprak {
nb
en
nn
}
landkodeAlfa2
landkodeAlfa3
}
}
}
}
Eksempel på svar:
{
"data": {
"land": {
"edges": [
{
"node": {
"id": "NjI6MA",
"navnAlleSprak": {
"nb": "Norge",
"en": "Norway",
"nn": "Noreg"
},
"landkodeAlfa2": "NO",
"landkodeAlfa3": "NOR"
}
},
{
"node": {
"id": "NjI6MTAx",
"navnAlleSprak": {
"nb": "Danmark",
"en": "Denmark",
"nn": null
},
"landkodeAlfa2": "DK",
"landkodeAlfa3": "DNK"
}
},
{
"node": {
"id": "NjI6MTAy",
"navnAlleSprak": {
"nb": "Grønland",
"en": "Greenland",
"nn": null
},
"landkodeAlfa2": "GL",
"landkodeAlfa3": "GRL"
}
},
{
"node": {
"id": "NjI6MTAz",
"navnAlleSprak": {
"nb": "Finland",
"en": "Finland",
"nn": null
},
"landkodeAlfa2": "FI",
"landkodeAlfa3": "FIN"
}
},
{
"node": {
"id": "NjI6MTA0",
"navnAlleSprak": {
"nb": "Færøyene",
"en": "Faroe Islands",
"nn": "Færøyane"
},
"landkodeAlfa2": "FO",
"landkodeAlfa3": "FRO"
}
}
]
}
}
}
Du kan hente et eller flere land med FS-APIets ID-er (landnumre) slik:
query LandGittLandnumre {
landGittLandnumre(landnumre: ["0", "101"]) {
id
navnAlleSprak {
nb
}
}
}
Eksempel på svar:
{
"data": {
"landGittLandnumre": [
{
"id": "NjI6MA",
"navnAlleSprak": {
"nb": "Norge"
}
},
{
"id": "NjI6MTAx",
"navnAlleSprak": {
"nb": "Danmark"
}
}
]
}
}
Du kan også hente et eller flere land med ISO-3166-Alpha3-landkoder slik:
query LandGittLandkodeAlfa3 {
landGittLandkodeAlfa3(landkoder: ["NOR"]) {
id
navnAlleSprak {
nb
en
nn
}
}
}
Eksempel på svar:
{
"data": {
"landGittLandkodeAlfa3": [
{
"id": "NjI6MA",
"navnAlleSprak": {
"nb": "Norge",
"en": "Norway",
"nn": "Noreg"
}
}
]
}
}
GET /organisasjonsenheter og GET /organisasjonsenheter/{id}
Organisasjonsenheter hentes med spørringen organisasjonsenheter. Denne tar inn et filter med eierorganisasjonskode, og kan også filtreres på organisasjonskode, om enheten er aktiv, eller om den skal eksporteres til LMS.
Eksempel på spørring som henter organisasjonsenheter:
query Organisasjonsenheter {
organisasjonsenheter(
filter: {
eierOrganisasjonskode: "1234"
}
first: 10
) {
edges {
node {
id
navnAlleSprak {
nb
nn
en
}
erAktiv
postadresse {
co
gate
postnummerOgSted
land
}
organisasjon {
navnAlleSprak {
nb
}
organisasjonskode
}
fakultet {
navnAlleSprak {
nb
}
fakultetsnummer
}
instituttnummer
gruppenummer
}
}
}
}
Eksempel på svar:
{
"data": {
"organisasjonsenheter": {
"edges": [
{
"node": {
"id": "Nzk6MTIzNCwwLDAsMCww",
"navnAlleSprak": {
"nb": "Uniwersytet w Bialymstoku"
},
"erAktiv": true,
"postadresse": {
"co": "Adresselinje 1",
"gate": "Adresselinje 2",
"postnummerOgSted": "0101 OSLO",
"land": "land"
},
"organisasjon": {
"navnAlleSprak": {
"nb": "Uniwersytet w Bialymstoku"
},
"organisasjonskode": "0"
},
"fakultet": {
"navnAlleSprak": {
"nb": "Uniwersytet w Bialymstoku"
},
"fakultetsnummer": "0"
},
"instituttnummer": "0",
"gruppenummer": "0"
}
},
{
"node": {
"id": "Nzk6MTIzNCwxNTAsMCwwLDA",
"navnAlleSprak": {
"nb": "Norges idrettshøgskole"
},
"erAktiv": true,
"postadresse": null,
"organisasjon": {
"navnAlleSprak": {
"nb": "Norges idrettshøgskole"
},
"organisasjonskode": "150"
},
"fakultet": {
"navnAlleSprak": {
"nb": "Norges idrettshøgskole"
},
"fakultetsnummer": "0"
},
"instituttnummer": "0",
"gruppenummer": "0"
}
},
{
"node": {
"id": "Nzk6MTIzNCwxNTgsMCwwLDA",
"navnAlleSprak": {
"nb": "Handelshøyskolen BI"
},
"erAktiv": true,
"postadresse": null,
"organisasjon": {
"navnAlleSprak": {
"nb": "Handelshøyskolen BI"
},
"organisasjonskode": "158"
},
"fakultet": {
"navnAlleSprak": {
"nb": "Handelshøyskolen BI"
},
"fakultetsnummer": "0"
},
"instituttnummer": "0",
"gruppenummer": "0"
}
},
{
"node": {
"id": "Nzk6MTIzNCwxNzgsMCwwLDA",
"navnAlleSprak": {
"nb": "Norges musikkhøgskole"
},
"erAktiv": true,
"postadresse": {
"co": null,
"gate": "Postboks 5190, Majorstua",
"postnummerOgSted": "0302 OSLO",
"land": null
},
"organisasjon": {
"navnAlleSprak": {
"nb": "Norges musikkhøgskole"
},
"organisasjonskode": "178"
},
"fakultet": {
"navnAlleSprak": {
"nb": "Norges musikkhøgskole"
},
"fakultetsnummer": "0"
},
"instituttnummer": "0",
"gruppenummer": "0"
}
},
{
"node": {
"id": "Nzk6MTIzNCwxNzgsMSwwLDA",
"navnAlleSprak": {
"nb": "Norges musikkhøgskole"
},
"erAktiv": true,
"postadresse": {
"co": null,
"gate": "Postboks 5190, Majorstua",
"postnummerOgSted": "0302 OSLO",
"land": null
},
"organisasjon": {
"navnAlleSprak": {
"nb": "Norges musikkhøgskole"
},
"organisasjonskode": "178"
},
"fakultet": {
"navnAlleSprak": {
"nb": "Norges Musikkhøgskole, avd 1"
},
"fakultetsnummer": "1"
},
"instituttnummer": "0",
"gruppenummer": "0"
}
}
]
}
}
}
For å hente en spesifikk organisasjonsenhet, bruk organisasjonsenheterGittOrganisasjonsenhetskoder med stedkodene:
query EnkeltOrganisasjonsenhet {
organisasjonsenheterGittOrganisasjonsenhetskoder(
eierOrganisasjonskode: "1234"
organisasjonsenhetskoder: [
{
organisasjonskode: "178"
fakultetskode: "1"
instituttkode: "0"
gruppekode: "0"
}
]
) {
id
navnAlleSprak {
nb
}
erAktiv
postadresse {
co
gate
postnummerOgSted
}
}
}
Eksempel på svar:
{
"data": {
"organisasjonsenheterGittOrganisasjonsenhetskoder": [
{
"id": "Nzk6MTIzNCwxNzgsMSwwLDA",
"navnAlleSprak": {
"nb": "Norges musikkhøgskole"
},
"erAktiv": true,
"postadresse": {
"co": null,
"gate": "Postboks 5190, Majorstua",
"postnummerOgSted": "0302 OSLO"
}
}
]
}
}
Hendelser for organisasjonsenheter er foreløpig ikke tilgjengelig. Hvis du trenger slike hendelser, kontakt fs-support@sikt.no og beskriv behovet.
GET /personer og GET /personer/{id}
Person er modellert litt annerledes i FS GraphQL API enn i FS-APIet. I FS-APIet er personer en ressurs, og hvorvidt personen er student, fagperson eller ingen av delene, er attributter på personobjektet. I GraphQL-APIet har vi egne typer for student, fagperson og EVU-kursdeltaker. I tillegg er grunnleggende personopplysninger samlet i PersonProfil-typen. Du kan gjøre søk og oppslag mot alle disse typene for å hente ut personinformasjon. Hvilket objekt det lønner seg å rote spørringen i, vil variere ut fra brukerbehovet, og hvordan du ønsker dataene strukturert i responsen. PersonProfil er tilgjengelig via StudentVedLarested, FagpersonVedLarested og DeltakerVedLarested, og de tre sistnevnte er også tilgjengelig via personProfil-objektet.
Oppslag på identifikatorer
Du kan gjøre oppslag på personer basert på forskjellige identifikatorer.
For studenter har vi følgende:
- Query.studenterGittFeideBrukere
- Query.studenterGittFodselsnumre
- Query.studenterGittLanetakerIder
- Query.studenterGittPersonlopenumre
- Query.studenterGittStudentnumre
For EVU-kursdeltakere har vi:
- Query.deltakereGittDeltakernumre
- Query.deltakereGittPersonlopenumre
For fagpersoner har vi:
- Query.fagpersonerGittFodselsnumre
- Query.fagpersonerGittPersonlopenumre
For person-profiler har vi:
- Query.personProfilerGittFodselsnumre
- Query.personProfilerGittPersonlopenumre
- Query.personProfilerGittFeideBrukere
Søk på person-profiler
Query.personProfiler gir deg et filtrert søk på personer basert på en rekke kriterier.
Søket filtrerer som standard bort døde personer.
Du kan velge å inkludere døde personer ved å sette inkluderAvdode: true i filteret.
Her er et eksempel på en spørring som henter ut personer med norsk eller nordisk statsborgerskap:
query PersonProfiler {
personProfiler(filter: {
eierOrganisasjonskode: "1234"
statsborgerskapkategori: NORSK_NORDISK
}
orderBy: {
direction: ASC,
orderByField: ETTERNAVN_FORNAVN}
first: 10) {
edges {
node {
id
navn {
fornavn
etternavn
}
}
}
}
}
Eksempel på svar:
{
"data": {
"personProfiler": {
"edges": [
{
"node": {
"id": "NzY6MTIzNCw4MTk0",
"navn": {
"fornavn": "Vagar",
"etternavn": "Aabrek"
}
}
},
{
"node": {
"id": "NzY6MTIzNCw1OTA0",
"navn": {
"fornavn": "Kristin",
"etternavn": "Aadland"
}
}
},
{
"node": {
"id": "NzY6MTIzNCwxNTMy",
"navn": {
"fornavn": "Fredrik",
"etternavn": "Aalbakk"
}
}
},
{
"node": {
"id": "NzY6MTIzNCwxMjU1NA",
"navn": {
"fornavn": "A'rnt Inge",
"etternavn": "Aalbu"
}
}
},
{
"node": {
"id": "NzY6MTIzNCwxMzQ4",
"navn": {
"fornavn": "Ingrid",
"etternavn": "Aalbu"
}
}
},
{
"node": {
"id": "NzY6MTIzNCwxMjAz",
"navn": {
"fornavn": "Petra",
"etternavn": "Aalbu"
}
}
},
{
"node": {
"id": "NzY6MTIzNCw0Nzk4",
"navn": {
"fornavn": "Susanna Julia",
"etternavn": "Aam"
}
}
},
{
"node": {
"id": "NzY6MTIzNCw0Njcw",
"navn": {
"fornavn": "Anne Kjersti",
"etternavn": "Aamlid"
}
}
},
{
"node": {
"id": "NzY6MTIzNCwxNjk0Mw",
"navn": {
"fornavn": "Berit",
"etternavn": "Aamodt"
}
}
},
{
"node": {
"id": "NzY6MTIzNCw0MjI3",
"navn": {
"fornavn": "Yngvild Margrethe",
"etternavn": "Aamodt"
}
}
}
]
}
}
}
Parameteren freetext tar inn en søkestreng som søker på tvers av fornavn, etternavn, fødselsnummer, mobilnummer og studentnummer.
For fornavn og etternavn utføres det et trunkert søk på tvers av fornavn, etternavn og eventuelt mellomnavn.
Her søker vi på alle personer som har navn som inneholder Hans og Per:
query PersonProfiler {
personProfiler(filter: {
eierOrganisasjonskode: "1234"
freeText: "Hans Per"
}
orderBy: {
direction: ASC,
orderByField: ETTERNAVN_FORNAVN}
first: 10) {
edges {
node {
id
navn {
fornavn
etternavn
}
}
}
}
}
Søket ga følgende treff:
{
"data": {
"personProfiler": {
"edges": [
{
"node": {
"id": "NzY6MTIzNCw2MjE1",
"navn": {
"fornavn": "Per Arne Hans-Erik",
"etternavn": "Bakke-Viig Bendiksen"
}
}
},
{
"node": {
"id": "NzY6MTIzNCw2MjE0",
"navn": {
"fornavn": "Per Ola Hans-Erik",
"etternavn": "Bakke-Wig"
}
}
},
{
"node": {
"id": "NzY6MTIzNCwxMzc4",
"navn": {
"fornavn": "Per",
"etternavn": "Hansen"
}
}
},
{
"node": {
"id": "NzY6MTIzNCw3ODY3",
"navn": {
"fornavn": "Pernille",
"etternavn": "Hansen"
}
}
}
]
}
}
}
Søk på studenter
Query.studenter gir deg et filtrert søk på studenter. Her kan du filtrere blant annet på studienivå. Filteret sjekker studienivå for aktive studieretter og vurderingsmeldinger.
Eksempel på søk som henter ut alle studenter som er aktive på bachelor- eller masterstudier:
query Studenter {
studenter(
filter: {
eierOrganisasjonskode: "1234"
studieniva: [BACHELOR, MASTER]
}
first: 10
) {
edges {
node {
id
studentnummer
personProfil {
navn {
fornavn
etternavn
}
}
}
}
}
}
Eksempel på svar:
{
"data": {
"studenter": {
"edges": [
{
"node": {
"id": "OTk6MTIzNCww",
"studentnummer": "080859",
"personProfil": {
"navn": {
"fornavn": "ΣΤΕΦΑΝΟΣ",
"etternavn": "ΣΤΑΜΑΤΗΣ"
}
}
}
},
{
"node": {
"id": "OTk6MTIzNCw4ODM",
"studentnummer": "000114",
"personProfil": {
"navn": {
"fornavn": "Njål",
"etternavn": "Øye"
}
}
}
},
{
"node": {
"id": "OTk6MTIzNCw4ODg",
"studentnummer": "080858",
"personProfil": {
"navn": {
"fornavn": "Arild B.",
"etternavn": "Holt"
}
}
}
},
{
"node": {
"id": "OTk6MTIzNCw4ODk",
"studentnummer": "100496",
"personProfil": {
"navn": {
"fornavn": "Constanse",
"etternavn": "Gran-Pedersen"
}
}
}
},
{
"node": {
"id": "OTk6MTIzNCw4OTM",
"studentnummer": "100522",
"personProfil": {
"navn": {
"fornavn": "Fredrik C.",
"etternavn": "Hjort"
}
}
}
},
{
"node": {
"id": "OTk6MTIzNCw5MDA",
"studentnummer": "000247",
"personProfil": {
"navn": {
"fornavn": "Yngve",
"etternavn": "Andersen"
}
}
}
},
{
"node": {
"id": "OTk6MTIzNCw5MDI",
"studentnummer": "100499",
"personProfil": {
"navn": {
"fornavn": "Vigdis B.",
"etternavn": "Tvedestrand"
}
}
}
},
{
"node": {
"id": "OTk6MTIzNCw5MDY",
"studentnummer": "000401",
"personProfil": {
"navn": {
"fornavn": "Ole",
"etternavn": "Nordby"
}
}
}
},
{
"node": {
"id": "OTk6MTIzNCw5MDc",
"studentnummer": "000002",
"personProfil": {
"navn": {
"fornavn": "Per Arne",
"etternavn": "Vestli"
}
}
}
},
{
"node": {
"id": "OTk6MTIzNCw5MDg",
"studentnummer": "000003",
"personProfil": {
"navn": {
"fornavn": "Kari",
"etternavn": "Sørvik"
}
}
}
}
]
}
}
}
Søk på fagpersoner
Query.fagpersoner gir deg et filtrert søk på fagpersoner. Her kan du filtrere på hvorvidt fagpersonen er aktiv eller i permisjon. Standardverdi er aktiv og ikke i permisjon.
Eksempel på søk som henter ut alle aktive fagpersoner:
query Fagpersoner {
fagpersoner(
filter: {eierOrganisasjonskode: "1234"},
first: 10) {
edges {
node {
id
personProfil {
navn {
fornavn
etternavn
}
}
}
}
}
}
Eksempel på svar:
{
"data": {
"fagpersoner": {
"edges": [
{
"node": {
"id": "MzE6MTIzNCw4ODM",
"personProfil": {
"navn": {
"fornavn": "Njål",
"etternavn": "Øye"
}
}
}
},
{
"node": {
"id": "MzE6MTIzNCw4ODQ",
"personProfil": {
"navn": {
"fornavn": "Kristian",
"etternavn": "Vennemo"
}
}
}
},
{
"node": {
"id": "MzE6MTIzNCw4ODU",
"personProfil": {
"navn": {
"fornavn": "Monica Blide",
"etternavn": "Blidensol"
}
}
}
},
{
"node": {
"id": "MzE6MTIzNCw4ODY",
"personProfil": {
"navn": {
"fornavn": "Fredrik",
"etternavn": "Godal"
}
}
}
},
{
"node": {
"id": "MzE6MTIzNCw4ODc",
"personProfil": {
"navn": {
"fornavn": "May-Britt",
"etternavn": "Denstad"
}
}
}
},
{
"node": {
"id": "MzE6MTIzNCw4ODg",
"personProfil": {
"navn": {
"fornavn": "Arild B.",
"etternavn": "Holt"
}
}
}
},
{
"node": {
"id": "MzE6MTIzNCw4ODk",
"personProfil": {
"navn": {
"fornavn": "Constanse",
"etternavn": "Gran-Pedersen"
}
}
}
},
{
"node": {
"id": "MzE6MTIzNCw4OTA",
"personProfil": {
"navn": {
"fornavn": "Henriette W",
"etternavn": "Brodkorp"
}
}
}
},
{
"node": {
"id": "MzE6MTIzNCw4OTE",
"personProfil": {
"navn": {
"fornavn": "Wenche Christine",
"etternavn": "Aasen"
}
}
}
},
{
"node": {
"id": "MzE6MTIzNCw4OTI",
"personProfil": {
"navn": {
"fornavn": "Einar P.",
"etternavn": "Torgersen"
}
}
}
}
]
}
}
}
Hendelser for personer og studenter
Du kan spørre etter hendelser for person-profiler og studenter. Det er foreløpig ikke mulig å hente hendelser for fagpersoner og EVU-kursdeltakere.
Spørringen Query.personProfilhendelser returnerer hendelser for endringer i enkelte grunnleggende personopplysninger.
Query.studenthendelser returnerer hendelser for endringer i grunnleggende studentopplysnigner, samt forskjellige andre hendelser som er relevante for studenter.
Dersom du har bruk for hendelser som ikke finnes i disse spørringene, ta kontakt med fs-support@sikt.no og beskriv behovet.
GET /personer/{id}/bilde
Personbilde hentes som nøstet data fra studenter eller fagpersoner.
Eksempel på spørring som henter bilde for en student:
query GET {
studenterGittPersonlopenumre(
eierOrganisasjonskode: "1234"
personlopenumre: ["16393"]
) {
bilde {
bilde
id
filtype
}
}
}
Eksempel på svar:
{
"data": {
"studenterGittPersonlopenumre": [
{
"bilde": {
"bilde": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",
"id": "MTY1OjEyMzQsMTYzOTM",
"filtype": "png"
}
}
]
}
}
For fagpersoner, bruk tilsvarende spørring med fagpersoner-feltet.
POST /personer/{id}/bilde
For å opprette eller oppdatere et studentbilde, bruk mutasjonen angiStudentbilder:
mutation {
angiStudentbilder(
input: {
studentVedLarestedId: "OTk6MTIzNCwxNjM5Mw"
bilde: "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
filtype: png
}
) {
studentbilder {
id
bilde
filtype
}
}
}
Eksempel på svar:
{
"data": {
"angiStudentbilder": {
"studentbilder": [
{
"id": "MTY1OjEyMzQsMTYzOTM",
"bilde": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",
"filtype": "png"
}
]
}
}
}
Bildet må være base64-encodet.
DELETE /personer/{id}/bilde
For å slette et personbilde, bruk mutasjonen slettPersonbilder:
mutation {
slettPersonbilder(
input: {
id: "MTY1OjEyMzQsMTYzOTM"
}
) {
ids
}
}
Eksempel på svar:
{
"data": {
"slettPersonbilder": {
"ids": ["MTY1OjEyMzQsMTYzOTM"]
}
}
}
GET /personer/{id}/pinkode
Pinkode hentes som nøstet data fra personprofiler.
Eksempel på spørring som henter pinkode for personprofiler:
query {
personProfilerGittPersonlopenumre(
eierOrganisasjonskode: "1234"
personlopenumre: ["12345"]
) {
id
pinkode
}
}
Eksempel på svar:
{
"data": {
"personProfilerGittPersonlopenumre": [
{
"id": "MzQzOjEyMzQsMTIzNDU2",
"pinkode": "PIN123"
}
]
}
}
Du kan også hente pinkode via andre personprofil-spørringer som personProfilerGittFodselsnumre, personProfilerGittFeideBrukere, eller personProfilerGittAnsattnumre.
PATCH /personer/{id}
Med dette endepunktet kan man endre feidebrukernavn og/eller institusjonsepostadresse til en person, samt slette eller blanke ut disse personopplysningene.
Samme funksjonalitet oppnås ved å bruke mutasjonen angiBrukerinformasjonForPersonProfiler.
Nedenfor vises et eksempel der person-ID er kjent.
Først endrer vi både feidebrukernavn og epostadresse:
mutation {
angiBrukerinformasjonForPersonProfiler(
input: {
id: "NzY6MTIzNCw4ODE"
feideBruker: "test"
institusjonsEpost: "bruker@institusjon.no"
}
) {
personProfiler {
id
feideBruker
institusjonsEpost
}
}
}
Eksempel på svar:
{
"data": {
"angiBrukerinformasjonForPersonProfiler": {
"personProfiler": [
{
"id": "NzY6MTIzNCw4ODE",
"feideBruker": "test@spusers.feide.no",
"institusjonsEpost": "bruker@institusjon.no"
}
]
}
}
}
Her bruker vi mutasjon for å slette eller blanke ut disse feltene:
NB! Det er også mulig å bruke en tom streng "" i stedet for null
mutation MyMutation {
angiBrukerinformasjonForPersonProfiler(
input: {
id: "NzY6MTIzNCw4ODE"
feideBruker: null
institusjonsEpost: null
}
) {
personProfiler {
id
feideBruker
institusjonsEpost
}
}
}
Eksempel på svar:
{
"data": {
"angiBrukerinformasjonForPersonProfiler": {
"personProfiler": [
{
"id": "NzY6MTIzNCw4ODE",
"feideBruker": null,
"institusjonsEpost": null
}
]
}
}
}
GET /personroller og GET /personroller/{ID}
I FS GraphQL API er "personroller" delt opp i forskjellige objekter, avhengig av hva rollen er knyttet til:
- Organisasjonsenhetsrolle
- Studieprogramrolle
- Kullrolle
- Klasserolle
- Emnerolle
- Evukursrolle
- Undervisningsenhetsrolle
- Undervisningsaktivitetsrolle
- Timeplanrolle
Eksempel på spørring som henter emneroller for en gitt person:
query Emneroller {
emneroller(
filter: {
eierOrganisasjonskode: "1234",
emner: "MjA6MTIzNCwxODUsTFVOU0ozMDAsMQ",
personProfiler: "NzY6MTIzNCw4ODI",
fsRoller: "OTE6MTIzNCxLT05UUEVSU09O"
}
) {
edges {
node {
id
gyldighetsperiode {
fraDato
tilDato
}
}
}
}
}
Eksempel på svar:
{
"data": {
"emneroller": {
"edges": [
{
"node": {
"id": "MjcyOjEyMzQsODgyLDY",
"gyldighetsperiode": {
"fraDato": "2017-01-01",
"tilDato": "2017-12-31"
}
}
}
]
}
}
}
I eksempelet bruker vi FS GraphQLs IDer for å filtrere på emner, personer og FS-roller. Se under GET emner, GET personer og GET roller for eksempler på hvordan du kan finne disse IDene.
Du kan også slå opp på de ulike rolletypene ved å bruke FS-APIets ID slik med følgende spørringer:
- QueryOrganisasjonsenhetsrollerGittLegacyIder
- QueryStudieprogramrollerGittLegacyIder
- QueryKullrollerGittLegacyIder
- QueryKlasserollerGittLegacyIder
- QueryEmnerollerGittLegacyIder
- QueryUndervisningsenhetsrollerGittLegacyIder
- QueryUndervisningsaktivitetsrollerGittLegacyIder
- QueryTimeplanrollerGittLegacyIder
Eksempel på oppslag på emnerolle:
query PersonrolleOppslag {
emnerollerGittLegacyIder(
eierOrganisasjonskode: "1234"
legacyIder: {
personlopenummer: "882",
rollenummer: "8"}
) {
id
emne {
id
kode
navnAlleSprak {
nb
nn
en
}
}
}
}
Eksempel på svar:
{
"data": {
"emnerollerGittLegacyIder": [
{
"id": "MjcyOjEyMzQsODgyLDg",
"emne": {
"id": "MjA6MTIzNCwxODUsR1VOVk9SMTAwLDE",
"kode": "GUNVOR100",
"navnAlleSprak": {
"nb": "Testemne",
"nn": "gunvor",
"en": null
}
}
}
]
}
}
GET /roller og GET /roller/{id}
"Rolle" heter "FsRolle" i FS GraphQL API. Du kan hente en liste over alle tilgjengelige roller slik:
query Roller {
fsRoller(
filter: {eierOrganisasjonskode: "1234"}
first: 10
) {
nodes {
id
kode
navnAlleSprak {
nb
nn
en
}
}
}
}
Eksempel på svar:
{
"data": {
"fsRoller": {
"nodes": [
{
"id": "OTE6MTIzNCxBU1NJU1RFTlQ",
"kode": "ASSISTENT",
"navnAlleSprak": {
"nb": "Studentassistent",
"nn": null,
"en": null
}
},
{
"id": "OTE6MTIzNCxGQUdBTlNW",
"kode": "FAGANSV",
"navnAlleSprak": {
"nb": "Faglig ansvarlig",
"nn": null,
"en": "Custom Role test"
}
},
{
"id": "OTE6MTIzNCxGQUdM",
"kode": "FAGL",
"navnAlleSprak": {
"nb": "Faglærer",
"nn": null,
"en": null
}
},
{
"id": "OTE6MTIzNCxGT1JMRVM",
"kode": "FORLES",
"navnAlleSprak": {
"nb": "Foreleser",
"nn": null,
"en": null
}
},
{
"id": "OTE6MTIzNCxHUlVMRUQ",
"kode": "GRULED",
"navnAlleSprak": {
"nb": "Gruppeleder",
"nn": null,
"en": null
}
},
{
"id": "OTE6MTIzNCxIT1ZFREzDhlJFUg",
"kode": "HOVEDLÆRER",
"navnAlleSprak": {
"nb": "Hovedlærer",
"nn": null,
"en": null
}
},
{
"id": "OTE6MTIzNCxLT05UQUtU",
"kode": "KONTAKT",
"navnAlleSprak": {
"nb": "Kontaktperson",
"nn": null,
"en": null
}
},
{
"id": "OTE6MTIzNCxLT05UUEVSU09O",
"kode": "KONTPERSON",
"navnAlleSprak": {
"nb": "Kontaktperson",
"nn": null,
"en": null
}
},
{
"id": "OTE6MTIzNCxLVVJTQU5TVg",
"kode": "KURSANSV",
"navnAlleSprak": {
"nb": "Kursansvarlig",
"nn": null,
"en": null
}
},
{
"id": "OTE6MTIzNCxMw4ZSRVI",
"kode": "LÆRER",
"navnAlleSprak": {
"nb": "Lærer",
"nn": null,
"en": null
}
}
]
}
}
}
GET /rom og GET /rom/{id}
Slik kan du hente alle rom for en bestemt bygning:
query HentRom {
rom(
filter: {
eierOrganisasjonskode: "1234"
bygninger: "NjoxMjM0LEFETQ"
}
first: 10
) {
edges {
node {
id
kode
navnAlleSprak {
und
}
}
}
}
}
Eksempel på svar:
{
"data": {
"rom": {
"edges": [
{
"node": {
"id": "OTI6MTIzNCxLMixBRE0",
"kode": "K2",
"navnAlleSprak": {
"und": "Klasserom K2"
}
}
}
]
}
}
}
Dette søket henter kun aktive rom som standard.
Dersom du ønsker å inkludere inaktive rom, kan du angi dette i Filter.erAktiv.
Se under GET /bygninger for hvordan du kan finne ID-en til bygningen.
Query.rom har også et fritekstfelt som filtrerer basert på navn, merknad og ankomstmerknad:
query HentRom {
rom(
filter: {
eierOrganisasjonskode: "1234"
freeText: "klasserom"
}
first: 10
) {
edges {
node {
id
kode
navnAlleSprak {
und
}
}
}
}
}
Eksempel på svar:
{
"data": {
"rom": {
"edges": [
{
"node": {
"id": "OTI6MTIzNCwzMDEsQy1OTUg",
"kode": "301",
"navnAlleSprak": {
"und": "Klasserom C-301"
}
}
},
{
"node": {
"id": "OTI6MTIzNCwzMDIsQy1OTUg",
"kode": "302",
"navnAlleSprak": {
"und": "Klasserom C-302"
}
}
},
{
"node": {
"id": "OTI6MTIzNCwzMDMsQy1OTUg",
"kode": "303",
"navnAlleSprak": {
"und": "Klasserom C-303"
}
}
},
{
"node": {
"id": "OTI6MTIzNCxBLTI2MCxLRQ",
"kode": "A-260",
"navnAlleSprak": {
"und": "Klasserom A-260"
}
}
},
{
"node": {
"id": "OTI6MTIzNCxBLTI3MCxLRQ",
"kode": "A-270",
"navnAlleSprak": {
"und": "Klasserom A-270"
}
}
},
{
"node": {
"id": "OTI6MTIzNCxELTIwMSxLRQ",
"kode": "D-201",
"navnAlleSprak": {
"und": "Klasserom D-201"
}
}
},
{
"node": {
"id": "OTI6MTIzNCxELTIwNSxLRQ",
"kode": "D-205",
"navnAlleSprak": {
"und": "Klasserom D-205"
}
}
},
{
"node": {
"id": "OTI6MTIzNCxELTIwNixLRQ",
"kode": "D-206",
"navnAlleSprak": {
"und": "Klasserom D-206"
}
}
},
{
"node": {
"id": "OTI6MTIzNCxELTIxMCxLRQ",
"kode": "D-210",
"navnAlleSprak": {
"und": "Klasserom D-210"
}
}
},
{
"node": {
"id": "OTI6MTIzNCxELTIxMixLRQ",
"kode": "D-212",
"navnAlleSprak": {
"und": "Klasserom D-212"
}
}
}
]
}
}
}
Du kan slå opp et rom med FS-APIets ID slik:
query FinnEtRom {
romGittRomkoder(
eierOrganisasjonskode: "1234"
romkoder: {
romkode: "301"
bygningskode: "C-NMH"
}
) {
id
navnAlleSprak {
und
}
}
}
Eksempel på svar:
{
"data": {
"romGittRomkoder": [
{
"id": "OTI6MTIzNCwzMDEsQy1OTUg",
"navnAlleSprak": {
"und": "Klasserom C-301"
}
}
]
}
}
GET /semesterregistreringer og GET /semesterregistreringer/{ID}
Eksempel på hvordan du kan hente semesterregistreringer for en gitt student:
query Semesterregistreringer{
semesterregistreringer(
filter: {
eierOrganisasjonskode: "1234"
studenterVedLarested: "OTk6MTIzNCw5MDY"
erSemesterregistrert: true
erUgyldiggjort: false
}
first: 10
) {
edges {
node {
id
termin {
arstall
betegnelse {
navnAlleSprak {
nb
nn
en
}
}
}
student {
id
}
}
}
}
}
Eksempel på svar:
{
"data": {
"semesterregistreringer": {
"edges": [
{
"node": {
"id": "OTQ6MTIzNCwxOTk1LEjDmFNULDkwNg",
"termin": {
"arstall": 1995,
"betegnelse": {
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"student": {
"id": "OTk6MTIzNCw5MDY"
}
}
},
{
"node": {
"id": "OTQ6MTIzNCwyMDAwLEjDmFNULDkwNg",
"termin": {
"arstall": 2000,
"betegnelse": {
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"student": {
"id": "OTk6MTIzNCw5MDY"
}
}
},
{
"node": {
"id": "OTQ6MTIzNCwxOTk2LFbDhVIsOTA2",
"termin": {
"arstall": 1996,
"betegnelse": {
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
},
"student": {
"id": "OTk6MTIzNCw5MDY"
}
}
},
{
"node": {
"id": "OTQ6MTIzNCwxOTk3LFbDhVIsOTA2",
"termin": {
"arstall": 1997,
"betegnelse": {
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
},
"student": {
"id": "OTk6MTIzNCw5MDY"
}
}
},
{
"node": {
"id": "OTQ6MTIzNCwyMDAxLFbDhVIsOTA2",
"termin": {
"arstall": 2001,
"betegnelse": {
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
},
"student": {
"id": "OTk6MTIzNCw5MDY"
}
}
},
{
"node": {
"id": "OTQ6MTIzNCwyMDAyLFbDhVIsOTA2",
"termin": {
"arstall": 2002,
"betegnelse": {
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
},
"student": {
"id": "OTk6MTIzNCw5MDY"
}
}
},
{
"node": {
"id": "OTQ6MTIzNCwyMDEwLFbDhVIsOTA2",
"termin": {
"arstall": 2010,
"betegnelse": {
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
},
"student": {
"id": "OTk6MTIzNCw5MDY"
}
}
}
]
}
}
}
I eksempelet bruker vi en StudentVedLarested-ID som input. For eksempler på hvordan du kan finne denne IDen, se under GET /personer og GET /personer/{id} over.
Du kan slå opp en semesterregistrering basert på FS-APIets ID slik:
query SemesterregistreringOppslag {
semesterregistreringerGittLegacyIder(
eierOrganisasjonskode: "1234"
legacyIder: {
arstall: 2010
terminkode: "VÅR"
personlopenummer: "906"
}
) {
id
erUgyldiggjort
erSemesterregistrert
harBetaltSemesteravgiftV2
}
}
Eksempel på svar:
{
"data": {
"semesterregistreringerGittLegacyIder": [
{
"id": "OTQ6MTIzNCwyMDEwLFbDhVIsOTA2",
"erUgyldiggjort": null,
"erSemesterregistrert": true,
"harBetaltSemesteravgiftV2": true
}
]
}
}
GET /semestre og GET /semestre/{id}
"Semester" heter "Termin" i FS GraphQL API. I FS GraphQl API vil du i de fleste tilfeller hente inn termininformasjon denormalisert som en del av et annet kall. Hvis du likevel har behov for å hente en liste med terminer, eller en enkelt termin, kan du gjøre det slik:
Hent en liste med terminer:
query Terminer {
terminer(
filter: {
eierOrganisasjonskode: "1234"
arstall: [2024, 2025]
}
) {
edges {
node {
id
arstall
betegnelse {
navnAlleSprak {
nb
nn
en
}
}
}
}
}
}
Respons:
{
"data": {
"terminer": {
"edges": [
{
"node": {
"id": "MTE2OjEyMzQsMjAyNCxIw5hTVA",
"arstall": 2024,
"betegnelse": {
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
}
},
{
"node": {
"id": "MTE2OjEyMzQsMjAyNSxIw5hTVA",
"arstall": 2025,
"betegnelse": {
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
}
},
{
"node": {
"id": "MTE2OjEyMzQsMjAyNCxTT00",
"arstall": 2024,
"betegnelse": {
"navnAlleSprak": {
"nb": "Sommer",
"nn": "Sommar",
"en": "Summer"
}
}
}
},
{
"node": {
"id": "MTE2OjEyMzQsMjAyNCxWw4VS",
"arstall": 2024,
"betegnelse": {
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
}
},
{
"node": {
"id": "MTE2OjEyMzQsMjAyNSxWw4VS",
"arstall": 2025,
"betegnelse": {
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
}
}
]
}
}
}
Hent terminer basert på IDen fra FS-APIet:
query TerminerGittId {
terminerGittTerminkoder(
eierOrganisasjonskode: "1234"
terminkoder: [
{
arstall: 2024
terminkode: "HØST"
},
{
arstall: 2025
terminkode: "VÅR"
}
]
) {
id
arstall
betegnelse {
navnAlleSprak {
nb
nn
en
}
}
}
}
Eksempel på svar:
{
"data": {
"terminerGittTerminkoder": [
{
"id": "MTE2OjEyMzQsMjAyNCxIw5hTVA",
"arstall": 2024,
"betegnelse": {
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
{
"id": "MTE2OjEyMzQsMjAyNSxWw4VS",
"arstall": 2025,
"betegnelse": {
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
}
]
}
}
Ikke alle felter fra GET /semestre er tilgjengelig i FS GraphQL API ennå, men mange klienter vil klare seg med det som finnes allerede. Kontakt FS-support dersom du har behov for flere felter for å migrere din klient.
GET /studentundervisning og GET /studentundervisning/{id}
Studentundervisning er delt i to i FS GraphQL API:
EmneStudierettEmneSoknad
EmneSoknad returnerer alle rader i UNDERVISNINGSMELDING-tabellen, med data knyttet til emne/undervisningsopptaket.
EmneStudierett returnerer kun rader der studenten er tatt opp til emnet/undervisningen (UNDERVISNINGSMELDING.STATUS_OPPTATT = 'J').
Du må velge den spørringen som gir mest relevant filtrering for ditt bruk.
Emnesøknader
Eksempel på spørring som henter alle emnesøknader:
query EmneSoknader {
emneSoknader(
filter: {
eierOrganisasjonskode: "1234"
}
first: 10
) {
edges {
node {
id
student {
personProfil {
id
navn {
fornavn
etternavn
}
}
}
emne {
id
kode
versjonskode
navnAlleSprak {
nb
nn
en
}
}
termin {
id
arstall
betegnelse {
kode
navnAlleSprak {
nb
nn
en
}
}
}
terminnummer
soknadsstatus
}
}
}
}
Eksempel på svar:
{
"data": {
"emneSoknader": {
"edges": [
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDkzOA",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5Mzg",
"navn": {
"fornavn": "Rune",
"etternavn": "Vangensten"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDk0OQ",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5NDk",
"navn": {
"fornavn": "Test",
"etternavn": "Testesen"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDEwNTk",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxMDU5",
"navn": {
"fornavn": "Test",
"etternavn": "Testesen"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDEwNzc",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxMDc3",
"navn": {
"fornavn": "Blå",
"etternavn": "Blomst"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDE0OTg",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxNDk4",
"navn": {
"fornavn": "Irritert",
"etternavn": "Funksjon"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDE1NzQ",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxNTc0",
"navn": {
"fornavn": "Synlig",
"etternavn": "Buss"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMjEsMSxIw5hTVCwyMDA3LDE0OTg",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxNDk4",
"navn": {
"fornavn": "Glinsende",
"etternavn": "Foss"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNyxIw5hTVA",
"arstall": 2007,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMjEsMSxIw5hTVCwyMDA3LDUzOTU",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw1Mzk1",
"navn": {
"fornavn": "Syrlig",
"etternavn": "Potet"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNyxIw5hTVA",
"arstall": 2007,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMjEsMSxWw4VSLDIwMDcsOTM4",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5Mzg",
"navn": {
"fornavn": "Blyg",
"etternavn": "Stein"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNyxWw4VS",
"arstall": 2007,
"betegnelse": {
"kode": "VÅR",
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
},
{
"node": {
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMjEsMSxWw4VSLDIwMDcsOTQ5",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5NDk",
"navn": {
"fornavn": "Rød",
"etternavn": "Sno"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNyxWw4VS",
"arstall": 2007,
"betegnelse": {
"kode": "VÅR",
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
},
"terminnummer": 1,
"soknadsstatus": "TATT_OPP"
}
}
]
}
}
}
Du kan filtrere søket blant annet på student, termin, emne og undervisningsenhet. Til dette trenger du FS GraphQL APIs IDer for disse objektene. Se under hhv. GET /personer, GET /semestre, GET /emner og GET /undervisning for eksempler på hvordan du kan hente disse IDene.
Du kan hente en enkelt emnesøknad med FS-APIets ID slik:
query hentEmneSoknad {
emneSoknaderGittLegacyIder(
eierOrganisasjonskode: "1234"
legacyIder: {
institusjonsnummer: "150"
emnekode: "1BA-111"
versjonskode: "1"
terminkode: "HØST"
arstall: 2006
terminnummer: 1
personlopenummer: "938"
}
) {
id
personProfil {
navn {
fornavn
etternavn
}
}
soknadsstatus
}
}
Eksempel på svar:
{
"data": {
"emneSoknaderGittLegacyIder": [
{
"id": "MjA3OjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDkzOA",
"personProfil": {
"navn": {
"fornavn": "Blyg",
"etternavn": "Stein"
}
},
"soknadsstatus": "TATT_OPP"
}
]
}
}
EmneStudierett
Eksempel på spørring som henter alle emnestudieretter:
query EmneStudierett {
emneStudieretter(
filter: {
eierOrganisasjonskode: "1234"
}
first: 10
) {
edges {
node {
id
student {
personProfil {
id
navn {
fornavn
etternavn
}
}
}
emne {
id
kode
versjonskode
navnAlleSprak {
nb
nn
en
}
}
termin {
id
arstall
betegnelse {
kode
navnAlleSprak {
nb
nn
en
}
}
}
terminnummer
}
}
}
}
Eksempel på svar:
{
"data": {
"emneStudieretter": {
"edges": [
{
"node": {
"id": "MTcxOjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDkzOA",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5Mzg",
"navn": {
"fornavn": "Blyg",
"etternavn": "Stein"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1
}
},
{
"node": {
"id": "MTcxOjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDk0OQ",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5NDk",
"navn": {
"fornavn": "Sen",
"etternavn": "Sommer"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1
}
},
{
"node": {
"id": "MTcxOjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDEwNTk",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxMDU5",
"navn": {
"fornavn": "Skeiv",
"etternavn": "Hylle"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1
}
},
{
"node": {
"id": "MTcxOjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDEwNzc",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxMDc3",
"navn": {
"fornavn": "Humpete",
"etternavn": "Trikk"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1
}
},
{
"node": {
"id": "MTcxOjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDE0OTg",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxNDk4",
"navn": {
"fornavn": "Fin",
"etternavn": "Gjenbruk"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1
}
},
{
"node": {
"id": "MTcxOjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDE1NzQ",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxNTc0",
"navn": {
"fornavn": "Bitter",
"etternavn": "Seremoni"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1
}
},
{
"node": {
"id": "MTcxOjEyMzQsMTUwLDFCQS0xMjEsMSxIw5hTVCwyMDA3LDE0OTg",
"student": {
"personProfil": {
"id": "NzY6MTIzNCwxNDk4",
"navn": {
"fornavn": "Bitter",
"etternavn": "Seremoni"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNyxIw5hTVA",
"arstall": 2007,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1
}
},
{
"node": {
"id": "MTcxOjEyMzQsMTUwLDFCQS0xMjEsMSxIw5hTVCwyMDA3LDUzOTU",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw1Mzk1",
"navn": {
"fornavn": "Servil",
"etternavn": "Fantasi"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNyxIw5hTVA",
"arstall": 2007,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1
}
},
{
"node": {
"id": "MTcxOjEyMzQsMTUwLDFCQS0xMjEsMSxWw4VSLDIwMDcsOTM4",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5Mzg",
"navn": {
"fornavn": "Blyg",
"etternavn": "Stein"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNyxWw4VS",
"arstall": 2007,
"betegnelse": {
"kode": "VÅR",
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
},
"terminnummer": 1
}
},
{
"node": {
"id": "MTcxOjEyMzQsMTUwLDFCQS0xMjEsMSxWw4VSLDIwMDcsOTQ5",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5NDk",
"navn": {
"fornavn": "Atle H.",
"etternavn": "Gregersen"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTEyMSwx",
"kode": "1BA-121",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Idrett og samfunn",
"nn": null,
"en": null
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNyxWw4VS",
"arstall": 2007,
"betegnelse": {
"kode": "VÅR",
"navnAlleSprak": {
"nb": "Vår",
"nn": "Vår",
"en": "Spring"
}
}
},
"terminnummer": 1
}
}
]
}
}
}
Du kan filtrere søket blant annet på student, termin, emne og undervisningsenhet. Til dette trenger du FS GraphQL APIs IDer for disse objektene. Se under hhv. GET /personer, GET /semestre, GET /emner og GET /undervisning for eksempler på hvordan du kan hente disse IDene.
Du kan hente en enkelt emnestudierett med FS-APIets ID slik:
query hentEmneStudierett {
emneStudieretterGittLegacyIder(
eierOrganisasjonskode: "1234"
legacyIder: {
institusjonsnummer: "150"
emnekode: "1BA-111"
versjonskode: "1"
terminkode: "HØST"
arstall: 2006
terminnummer: 1
personlopenummer: "938"
}
) {
id
student {
personProfil {
id
navn {
fornavn
etternavn
}
}
}
emne {
id
kode
versjonskode
navnAlleSprak {
nb
nn
en
}
}
termin {
id
arstall
betegnelse {
kode
navnAlleSprak {
nb
nn
en
}
}
}
terminnummer
}
}
Eksempel på svar:
{
"data": {
"emneStudieretterGittLegacyIder": [
{
"id": "MTcxOjEyMzQsMTUwLDFCQS0xMTEsMSxIw5hTVCwyMDA2LDkzOA",
"student": {
"personProfil": {
"id": "NzY6MTIzNCw5Mzg",
"navn": {
"fornavn": "Blyg",
"etternavn": "Stein"
}
}
},
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111",
"versjonskode": "1",
"navnAlleSprak": {
"nb": "Bevegelseslære bokmål",
"nn": "Bevegingslære",
"en": "The Science of Movement"
}
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST",
"navnAlleSprak": {
"nb": "Høst",
"nn": "Haust",
"en": "Autumn"
}
}
},
"terminnummer": 1
}
]
}
}
Hendelser
Du kan hente hendelser knyttet til emnesøknader via Query.emneSoknadHendelser.
Kontakt fs-support@sikt.no hvis du har behov for andre hendelser enn de som allerede er definert.
Hendelser knyttet til emnestudieretter er foreløpig ikke tilgjengelig.
Hvis du trenger slike hendelser, kontakt fs-support@sikt.no og beskriv behovet.
GET /studentundervisningsaktiviteter og GET /studentundervisningsaktiviteter/{id}
Studentundervisningsaktiviteter i FS-APIet er en kombinasjon av to tabeller, AKTIVITET_ONSKE og STUDENT_PA_UNDERVISNINGSPARTI. AKTIVITET_ONSKE brukes i undervisningsopptak, der studenten kan velge mellom alternative undervisningsaktiviteter, og der det er begrenset antall plasser på hver aktivitet. Når opptaket er ferdig, registreres den aktivitetn studenten fikk plass på, i STUDENT_PA_UNDERVISNINGSPARTI. Ved direkte opptakt til undervisningsaktivitet registreres datene direkte i STUDENT_PA_UNDERVISNINGSPARTI.
I FS GraphQL API henter du aktivitetsønsker og partiplasseringer hver for seg.
Aktivitetsønsker
Eksempel på spørring som henter alle aktivitetsønsker for en gitt undervisningsaktivitet:
query Aktivitetsonsker {
undervisningsaktivitetsonsker(
filter: {
eierOrganisasjonskode: "1234"
undervisningsaktiviteter: "MTIwOjEyMzQsMTUwLDFCQS0xMjEsMSwyMDA3LEjDmFNULDEsMw"
}
) {
edges {
node {
id
student {
id
studentnummer
}
}
}
}
}
Eksempel på svar:
{
"data": {
"undervisningsaktivitetsonsker": {
"edges": [
{
"node": {
"id": "MjA4OjEyMzQsMTUwLDFCQS0xMjEsMSxIw5hTVCwyMDA3LDEsMyw1Mzk1",
"student": {
"id": "OTk6MTIzNCw1Mzk1",
"studentnummer": "070010"
}
}
}
]
}
}
}
Se under GET /undervisningsaktiviteter for eksempel på hvordan du kan hente undervisningsaktiviteter og deres IDer.
Du kan også hente et enkelt aktivitetsønske med FS-APIets ID slik:
query FinnUndervisningsaktivitetsonske {
undervisningsaktivitetsonskerGittLegacyIder(
eierOrganisasjonskode: "1234"
legacyIder: {
institusjonsnummer: "150"
emnekode:"1BA-121"
emneversjonskode: "1"
terminkode: "HØST"
arstall: 2007
terminnummer: 1
aktivitetskode: "3"
personlopenummer: "5395"
}
) {
id
student {
studentnummer
}
}
}
Eksempel på svar:
{
"data": {
"undervisningsaktivitetsonskerGittLegacyIder": [
{
"id": "MjA4OjEyMzQsMTUwLDFCQS0xMjEsMSxIw5hTVCwyMDA3LDEsMyw1Mzk1",
"student": {
"studentnummer": "070010"
}
}
]
}
}
Partiplasseringer
Eksempel på spørring for å hente alle partiplasseringer i en gitt termin:
query Partiplasseringer {
undervisningspartiplasseringer(
filter: {
eierOrganisasjonskode: "1234"
terminer: "MTE2OjEyMzQsMjAwNyxIw5hTVA"
}
) {
edges {
node {
id
undervisningsaktivitet {
kode
navnAlleSprak {
nb
nn
en
}
undervisningsenhet {
emne {
kode
}
}
}
student {
id
studentnummer
}
}
}
}
}
Se under GET /semestre for eksempel på hvordan du kan hente terminer og deres IDer.
Du kan hente en enkelt partiplassering med FS-APIets ID slik:
query FinnPartiplassering {
undervisningspartiplasseringerGittLegacyIder(
eierOrganisasjonskode: "1234"
legacyIder: {
institusjonsnummer: "210"
emnekode: "1SO06"
emneversjonskode: "1"
arstall: 2007
terminkode: "VÅR"
terminnummer: 1
aktivitetskode: "2"
personlopenummer: "1315"
}
) {
id
student {
studentnummer
}
undervisningsaktivitet {
navnAlleSprak {
nb
nn
en
}
kode
}
}
}
Eksempel på svar:
{
"data": {
"undervisningspartiplasseringerGittLegacyIder": [
{
"id": "MjA5OjEyMzQsMjEwLDFTTzA2LDEsVsOFUiwyMDA3LDEsMiwxMzE1",
"student": {
"studentnummer": "000412"
},
"undervisningsaktivitet": {
"navnAlleSprak": {
"nb": "Lillehammer kommune",
"nn": null,
"en": null
},
"kode": "2"
}
}
]
}
}
Hendelser
Du kan hente hendelser for undervisningspartiplasseringer via Query.undervisningspartiplasseringHendelser.
Hvis du trenger andre hendelser enn de som er tilgjengelig der, kontakt fs-support@sikt.no.
Det er foreløpig ikke laget hendelsesspørringer for aktivitetsønsker.
Kontakt fs-support@sikt.no hvis du har behov for dette.
GET /studienivaer og GET /studienivaer/{id}
Du kan hente alle studienivåer slik:
query HentStudienivaer {
studienivaer {
edges {
node {
id
navnAlleSprak {
nb
nn
en
}
}
}
}
}
Eksempel på svar:
{
"data": {
"studienivaer": {
"edges": [
{
"node": {
"id": "MTA0OjA",
"navnAlleSprak": {
"nb": "Uspesifisert nivå",
"nn": null,
"en": "Unspecified level"
}
}
},
{
"node": {
"id": "MTA0OjMw",
"navnAlleSprak": {
"nb": "Videregående skole",
"nn": "Vidaregåande skule",
"en": "Upper Secondary School"
}
}
},
{
"node": {
"id": "MTA0OjQw",
"navnAlleSprak": {
"nb": "Fagskole - 1 årig",
"nn": "Fagskule - 1 årig",
"en": "Tertiary Vocational Education - 1 year"
}
}
},
{
"node": {
"id": "MTA0OjQx",
"navnAlleSprak": {
"nb": "Fagskole - 2 årig",
"nn": "Fagskule - 2 årig",
"en": "Tertiary Vocational Education - 2 years"
}
}
},
{
"node": {
"id": "MTA0OjUw",
"navnAlleSprak": {
"nb": "Norsk for internasjonale studenter",
"nn": "Norsk for internasjonale studentar",
"en": "Norwegian for international students"
}
}
},
{
"node": {
"id": "MTA0OjYw",
"navnAlleSprak": {
"nb": "Forprøve/forkurs",
"nn": null,
"en": "Preparatory test/preparatory course"
}
}
},
{
"node": {
"id": "MTA0Ojcw",
"navnAlleSprak": {
"nb": "Examen philosophicum",
"nn": null,
"en": "Examen philosophicum"
}
}
},
{
"node": {
"id": "MTA0Ojcx",
"navnAlleSprak": {
"nb": "Examen facultatum",
"nn": null,
"en": "Examen facultatum"
}
}
},
{
"node": {
"id": "MTA0Ojgw",
"navnAlleSprak": {
"nb": "Norsk for internasjonale studenter",
"nn": null,
"en": "Norwegian for international students"
}
}
},
{
"node": {
"id": "MTA0Ojkw",
"navnAlleSprak": {
"nb": "Lavere grad, redskapskurs",
"nn": null,
"en": "First degree"
}
}
},
{
"node": {
"id": "MTA0OjEwMA",
"navnAlleSprak": {
"nb": "Grunnleggende emner, nivå I",
"nn": null,
"en": "Foundation courses, level I"
}
}
},
{
"node": {
"id": "MTA0OjE3MA",
"navnAlleSprak": {
"nb": "Halvårsstudium og kortere",
"nn": null,
"en": "Half-year programme and shorter"
}
}
},
{
"node": {
"id": "MTA0OjE4MA",
"navnAlleSprak": {
"nb": "Årsstudium",
"nn": null,
"en": "One-year programme"
}
}
},
{
"node": {
"id": "MTA0OjIwMA",
"navnAlleSprak": {
"nb": "Videregående emner, nivå II",
"nn": null,
"en": "Intermediate course, level II"
}
}
},
{
"node": {
"id": "MTA0OjI4MA",
"navnAlleSprak": {
"nb": "Toårig studium",
"nn": null,
"en": "Two-year programme"
}
}
},
{
"node": {
"id": "MTA0OjI5MA",
"navnAlleSprak": {
"nb": "Høgskolekandidat",
"nn": null,
"en": "University college graduate"
}
}
},
{
"node": {
"id": "MTA0OjMwMA",
"navnAlleSprak": {
"nb": "Tredjeårsemner, nivå III",
"nn": null,
"en": "Third-year courses, level III"
}
}
},
{
"node": {
"id": "MTA0OjM1MA",
"navnAlleSprak": {
"nb": "Praktisk pedagogisk utdanning",
"nn": null,
"en": "1-year progr in edu theory and practice"
}
}
},
{
"node": {
"id": "MTA0OjM4MA",
"navnAlleSprak": {
"nb": "Treårig studium",
"nn": "Treårig studium på nynorsk",
"en": "Three-year programme"
}
}
},
{
"node": {
"id": "MTA0OjM5MA",
"navnAlleSprak": {
"nb": "Bachelor studium",
"nn": null,
"en": "Bachelor's degree programme"
}
}
},
{
"node": {
"id": "MTA0OjQwMA",
"navnAlleSprak": {
"nb": "Fjerdeårsemner, nivå IV",
"nn": null,
"en": "Fourth-year courses, level IV"
}
}
},
{
"node": {
"id": "MTA0OjQ4MA",
"navnAlleSprak": {
"nb": "Fireårig studium",
"nn": null,
"en": "Four-year programme"
}
}
},
{
"node": {
"id": "MTA0OjQ5MA",
"navnAlleSprak": {
"nb": "Bachelor studium, fireårig",
"nn": null,
"en": "Bachelor's degree programme (4-years)"
}
}
},
{
"node": {
"id": "MTA0OjQ5NQ",
"navnAlleSprak": {
"nb": "Cand. Mag. Studium",
"nn": null,
"en": "First degree (pre-2003 system)"
}
}
},
{
"node": {
"id": "MTA0OjUwMA",
"navnAlleSprak": {
"nb": "Høyere grads nivå",
"nn": null,
"en": "Second degree level"
}
}
},
{
"node": {
"id": "MTA0OjU2MA",
"navnAlleSprak": {
"nb": "Mastergrad iht §7, 1-1,5 år",
"nn": null,
"en": "Master's degree (1 - 1.5 years)"
}
}
},
{
"node": {
"id": "MTA0OjU3MA",
"navnAlleSprak": {
"nb": "Mastergrad iht §5 (erf.bas.), 1,5-2 år",
"nn": null,
"en": "Exp-based master's degree (1.5-2 years) "
}
}
},
{
"node": {
"id": "MTA0OjU4MA",
"navnAlleSprak": {
"nb": "Mastergrad iht §3, 2 år",
"nn": null,
"en": "Master's degree (2 years)"
}
}
},
{
"node": {
"id": "MTA0OjU5MA",
"navnAlleSprak": {
"nb": "Mastergrad iht §4, 5 år",
"nn": null,
"en": "Master's degree (5 years)"
}
}
},
{
"node": {
"id": "MTA0OjY4MA",
"navnAlleSprak": {
"nb": "Magistergrad",
"nn": null,
"en": "Master's degree"
}
}
},
{
"node": {
"id": "MTA0OjY5MA",
"navnAlleSprak": {
"nb": "Hovedfagsgrad",
"nn": null,
"en": "Second degree (pre-2003 system)"
}
}
},
{
"node": {
"id": "MTA0Ojc5MA",
"navnAlleSprak": {
"nb": "Profesjonsstudium, høyere grad",
"nn": null,
"en": "Programme of professional study"
}
}
},
{
"node": {
"id": "MTA0OjgwMA",
"navnAlleSprak": {
"nb": "Videreutdanning lavere grad",
"nn": null,
"en": "Further education, lower degree level"
}
}
},
{
"node": {
"id": "MTA0Ojg1MA",
"navnAlleSprak": {
"nb": "Videreutdanning høyere grad",
"nn": null,
"en": "Further education, higher degree level"
}
}
},
{
"node": {
"id": "MTA0OjkwMA",
"navnAlleSprak": {
"nb": "Doktorgrads nivå",
"nn": null,
"en": "Doctoral degree level"
}
}
},
{
"node": {
"id": "MTA0Ojk3MA",
"navnAlleSprak": {
"nb": "Lisensiatgrad",
"nn": null,
"en": "Lisensiate degree level"
}
}
},
{
"node": {
"id": "MTA0Ojk4MA",
"navnAlleSprak": {
"nb": "Doktorgrad, tidsnormert",
"nn": null,
"en": "Doctoral degree with nom length of study"
}
}
},
{
"node": {
"id": "MTA0Ojk5MA",
"navnAlleSprak": {
"nb": "Doktorgrad, ikke tidsnormert",
"nn": null,
"en": "Doc degr without nom length of study"
}
}
}
]
}
}
}
Du kan hente et gitt studienivå med FS-APIets ID slik:
query FinnEtStudieniva {
studienivaerGittStudienivakoder(
studienivakoder: "50"
) {
id
navnAlleSprak {
nb
nn
en
}
}
}
Eksempel på svar:
{
"data": {
"studienivaerGittStudienivakoder": [
{
"id": "MTA0OjUw",
"navnAlleSprak": {
"nb": "Norsk for internasjonale studenter",
"nn": "Norsk for internasjonale studentar",
"en": "Norwegian for international students"
}
}
]
}
}
GET /studieprogrammer og GET /studieprogrammer/{id}
Du kan hente ute en liste med studieprogrammer med forskjellige filtreringer. Eksempel på spørring som henter ut alle studieprogrammer:
query Studieprogrammer {
studieprogramV2(
filter: {
eierOrganisasjonskode: "1234",
}
first: 3
) {
nodes {
id
kode
navnAlleSprak {
nb
nn
en
}
}
}
}
Eksempel på svar:
{
"data": {
"studieprogramV2": {
"nodes": [
{
"id": "MTA2OjEyMzQsMTA",
"kode": "10",
"navnAlleSprak": {
"nb": "Sivilarkitektstudiet ved NTNU",
"nn": "k",
"en": null
}
},
{
"id": "MTA2OjEyMzQsQUxN",
"kode": "ALM",
"navnAlleSprak": {
"nb": "4-årig allmennlærerutdanning",
"nn": null,
"en": null
}
},
{
"id": "MTA2OjEyMzQsQUxNTMOGUg",
"kode": "ALMLÆR",
"navnAlleSprak": {
"nb": "Almennlærerutdanning HSH",
"nn": null,
"en": null
}
}
]
}
}
}
Du kan slå opp et studieprogram basert på FS-APIets ID slik:
query StudieprogramGittId {
studieprogramGittStudieprogramkoder(
eierInstitusjonsnummer: "1234"
studieprogramkoder: "ALM"
) {
id
navnAlleSprak {
nb
nn
en
}
}
}
Eksempel på svar:
{
"data": {
"studieprogramGittStudieprogramkoder": [
{
"id": "MTA2OjEyMzQsQUxN",
"navnAlleSprak": {
"nb": "4-årig allmennlærerutdanning",
"nn": null,
"en": null
}
}
]
}
}
Studieprogramhendelser
Du kan spørre etter endringer på studieprogram via Query.studieprogramhendelser.
Dersom du har behov for andre hendelser enn de som er tilgjengelig, ta kontakt med fs-support@sikt.no og beskriv behovet.
GET /sprak og GET /sprak/{id}
Du kan hente ut en liste med språk slik:
query Sprak {
sprak (
first: 10
) {
edges {
node {
id
navn {
en
no
}
}
}
}
}
Eksempel på svar:
{
"data": {
"sprak": {
"edges": [
{
"node": {
"id": "OTg6OTk5",
"navn": {
"en": null,
"no": "Ukjent"
}
}
},
{
"node": {
"id": "OTg6QUFS",
"navn": {
"en": null,
"no": "Afar"
}
}
},
{
"node": {
"id": "OTg6QUJL",
"navn": {
"en": null,
"no": "Abkhazian"
}
}
},
{
"node": {
"id": "OTg6QUNF",
"navn": {
"en": null,
"no": "Achinese"
}
}
},
{
"node": {
"id": "OTg6QUNI",
"navn": {
"en": null,
"no": "Acoli"
}
}
},
{
"node": {
"id": "OTg6QURB",
"navn": {
"en": null,
"no": "Adangme"
}
}
},
{
"node": {
"id": "OTg6QURZ",
"navn": {
"en": null,
"no": "Adyghe, Adygei"
}
}
},
{
"node": {
"id": "OTg6QUZB",
"navn": {
"en": null,
"no": "Afro-Asiatic (Other)"
}
}
},
{
"node": {
"id": "OTg6QUZI",
"navn": {
"en": null,
"no": "Afrihili"
}
}
},
{
"node": {
"id": "OTg6QUZS",
"navn": {
"en": null,
"no": "Afrikaans"
}
}
}
]
}
}
}
Du kan også slå opp på språk basert på FS-APIets ID slik:
query Sprak {
sprakGittSprakkoder (
sprakkoder: ["BOKMÅL", "ENG"]
) {
navn {
no
en
}
}
}
Eksempel på svar:
{
"data": {
"sprakGittSprakkoder": [
{
"navn": {
"no": "Bokmål",
"en": "Norwegian Bokmål"
}
},
{
"navn": {
"no": "Engelsk",
"en": "English"
}
}
]
}
}
Du kan også slå opp på ISO-koder hvis du foretrekker det:
query Sprak {
sprakGitt6391Sprakkoder (
sprakkoder6391: ["BE", "BR"]
) {
navn {
no
en
}
}
}
Eksempel på svar:
{
"data": {
"sprakGitt6391Sprakkoder": [
{
"navn": {
"no": "Bengali",
"en": "Bengali"
}
},
{
"navn": {
"no": "Breton",
"en": "Breton"
}
}
]
}
}
query Sprak {
sprakGitt6392Sprakkoder (
sprakkoder6392: ["HEB", "HIN"]
) {
navn {
no
en
}
}
}
Eksempel på svar:
{
"data": {
"sprakGitt6392Sprakkoder": [
{
"navn": {
"no": "Hebraisk",
"en": "Hebrew"
}
},
{
"navn": {
"no": "Hindi",
"en": "Hindi"
}
}
]
}
}
GET /studieprogrammer og GET /studieprogrammer/{id}
Du kan hente ute en liste med studieprogrammer med forskjellige filtreringer. Eksempel på spørring som henter ut alle studieprogrammer:
query Studieprogrammer {
studieprogramV2(
filter: {
eierOrganisasjonskode: "1234",
}
first: 3
) {
nodes {
id
kode
navnAlleSprak {
nb
nn
en
}
}
}
}
Eksempel på svar:
{
"data": {
"studieprogramV2": {
"nodes": [
{
"id": "MTA2OjEyMzQsMTA",
"kode": "10",
"navnAlleSprak": {
"nb": "Sivilarkitektstudiet ved NTNU",
"nn": "k",
"en": null
}
},
{
"id": "MTA2OjEyMzQsQUxN",
"kode": "ALM",
"navnAlleSprak": {
"nb": "4-årig allmennlærerutdanning",
"nn": null,
"en": null
}
},
{
"id": "MTA2OjEyMzQsQUxNTMOGUg",
"kode": "ALMLÆR",
"navnAlleSprak": {
"nb": "Almennlærerutdanning HSH",
"nn": null,
"en": null
}
}
]
}
}
}
Du kan slå opp et studieprogram basert på FS-APIets ID slik:
query StudieprogramGittId {
studieprogramGittStudieprogramkoder(
eierInstitusjonsnummer: "1234"
studieprogramkoder: "ALM"
) {
id
navnAlleSprak {
nb
nn
en
}
}
}
Eksempel på svar:
{
"data": {
"studieprogramGittStudieprogramkoder": [
{
"id": "MTA2OjEyMzQsQUxN",
"navnAlleSprak": {
"nb": "4-årig allmennlærerutdanning",
"nn": null,
"en": null
}
}
]
}
}
Studieprogramhendelser
Du kan spørre etter endringer på studieprogram via Query.studieprogramhendelser.
Dersom du har behov for andre hendelser enn de som er tilgjengelig, ta kontakt med fs-support@sikt.no og beskriv behovet.
GET /studieretninger og GET /studieretninger/{id}
Du kan hente ut en liste med studieretninger slik:
query Studieretninger {
studieretninger (
filter: {eierOrganisasjonskode: "1234"}
first: 10
) {
edges {
node {
id
navnAlleSprak {
en
nb
nn
}
}
}
}
}
Eksempel på svar:
{
"data": {
"studieretninger": {
"edges": [
{
"node": {
"id": "MTEwOjEyMzQsIA",
"navnAlleSprak": {
"en": null,
"nb": " ",
"nn": null
}
}
},
{
"node": {
"id": "MTEwOjEyMzQsQUw",
"navnAlleSprak": {
"en": "Teaching",
"nb": "Almenlærer",
"nn": null
}
}
},
{
"node": {
"id": "MTEwOjEyMzQsQUxS",
"navnAlleSprak": {
"en": null,
"nb": "Almenlærer - realfag",
"nn": null
}
}
},
{
"node": {
"id": "MTEwOjEyMzQsQU1ILU1VUzMtVEVPUklNVVNJS0s",
"navnAlleSprak": {
"en": null,
"nb": "Studieretning for musikkteori",
"nn": null
}
}
},
{
"node": {
"id": "MTEwOjEyMzQsQU1ILU1VUzMtVVTDmFZNVVNJS0s",
"navnAlleSprak": {
"en": null,
"nb": "Studieretning for utøvende musikk",
"nn": null
}
}
},
{
"node": {
"id": "MTEwOjEyMzQsQU5JTUEtVUlP",
"navnAlleSprak": {
"en": "Applied and industrial mathematics",
"nb": "Anvendt og industriell matematikk",
"nn": "Anvendt og industriell matematikk (nn)"
}
}
},
{
"node": {
"id": "MTEwOjEyMzQsQVBGLU5UTlU",
"navnAlleSprak": {
"en": null,
"nb": "Astro- og partikkelfysikk, moderne feltteori",
"nn": "Astro- og partikkelfysikk, moderne feltteori"
}
}
},
{
"node": {
"id": "MTEwOjEyMzQsQVVESU8",
"navnAlleSprak": {
"en": null,
"nb": "Audiografutdanning som har fått et laaaaaaaaaaaangt laaaaaaaaaaaangt laaaaaaaaaaaangt laaaaaaaaaaaangt navnnnn",
"nn": null
}
}
},
{
"node": {
"id": "MTEwOjEyMzQsQVVUT01BVElTRVJJTkc",
"navnAlleSprak": {
"en": null,
"nb": "Studieretning for automatisering",
"nn": null
}
}
},
{
"node": {
"id": "MTEwOjEyMzQsQVVUVEVTVDE",
"navnAlleSprak": {
"en": null,
"nb": "Opprettet for testing",
"nn": null
}
}
}
]
}
}
}
GET /studieretninginfoer og GET /studieretninginfoer/{id}
Dette endepunktet er lite brukt, men er laget primært for å hente informasjon til nettsideløsninger. Her er et eksempel på et API-kall som henter ut studieretninginfoer som er klare for publisering høsten 2024:
query Studieretninginfoer {
publiseringsklareStudieprogram(
filter: {eierInstitusjonsnummer: "1234", kanPubliseres: true, terminer: {arstall: 2024, terminbetegnelse: "HØST"}}
) {
edges {
node {
id
studieprogram {
kode
studieretninger(filter: {erAktiv: true}) {
nodes {
studieretning {
navnAlleSprak {
nb
nn
en
}
}
beskrivelser(filter: {gjelderForTermin: {arstall: 2024, betegnelse: HOST}}) {
nodes {
id
innhold
publiseringstag
rekkefolgenummer
sprak {
iso6392Kode
}
}
}
}
}
}
}
}
}
}
Eksempel på svar:
{
"data": {
"publiseringsklareStudieprogram": {
"edges": [
{
"node": {
"id": "MjE0OjEyMzQsQkZZLU5UTlUsSMOYU1QsMjAyMA",
"studieprogram": {
"kode": "BFY-NTNU",
"studieretninger": [
null
]
}
}
},
{
"node": {
"id": "MjE0OjEyMzQsTVNQUk9HNTgsSMOYU1QsMjAyMA",
"studieprogram": {
"kode": "MSPROG58",
"studieretninger": [
{
"node": {
"studieretning": {
"navn": {
"nob": "Sen høst",
"nno": null,
"eng": null
}
},
"beskrivelser": [
{
"node": {
"id": "MTExOjEyMzQsTVNQUk9HNTgsU0VOIEjDmFNULElOTkhPTEQsQk9LTcOFTCwyMDIzLEjDmFNU",
"innhold": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vehicula, orci aliquet pharetra ultricies, dolor urna vestibulum risus, id malesuada magna purus non nunc. Integer pellentesque eu libero et interdum. Ut turpis nisi, sollicitudin non urna ut, consequat auctor felis. Etiam lobortis purus id maximus sodales. Suspendisse ex arcu, tempus at enim ut, ultricies faucibus enim. In orci orci, commodo at porta sit amet, sagittis ac diam. Maecenas tincidunt vestibulum mi quis elementum. Vestibulum nisl magna, porta at augue eu, gravida vestibulum ipsum. Vivamus ac varius ante. Nulla felis est, auctor sit amet laoreet ac, viverra eu erat. Aliquam ac ligula varius, condimentum ipsum sed, scelerisque ex. Mauris porta faucibus placerat. Mauris pretium augue id interdum sollicitudin. Integer tincidunt dui a sem efficitur feugiat. Donec a elementum libero. Fusce a eleifend velit. Nulla facilisi. Donec elementum lectus sed vulputate congue. Suspendisse faucibus pharetra volutpat. Maecenas pellentesque tellus eros, quis molestie velit tincidunt bibendum. Integer ut porta nisi, id lacinia orci. Fusce a finibus ipsum, nec mollis neque. In id quam vel dui consectetur interdum. Donec tempor maximus libero, ac congue mauris laoreet sed. Nam laoreet massa quis gravida tempus. Vivamus vehicula vulputate aliquet. Aenean rutrum nibh nec lacus ullamcorper bibendum. Phasellus vel sodales libero, sed blandit turpis. Etiam consectetur egestas massa at viverra.",
"publiseringstag": "innhold",
"rekkefolgenummer": 15,
"sprak": {
"iso6392Kode": "NOB"
}
}
}
]
}
},
{
"node": {
"studieretning": {
"navn": {
"nob": "Tidlig høst",
"nno": null,
"eng": null
}
},
"beskrivelser": [
{
"id": "MTExOjEyMzQsTVNQUk9HNTgsVElETElHIEjDmFNULElOTkhPTEQsQk9LTcOFTCwyMDE5LEjDmFNU",
"innhold": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vehicula, orci aliquet pharetra ultricies, dolor urna vestibulum risus, id malesuada magna purus non nunc. Integer pellentesque eu libero et interdum. Ut turpis nisi, sollicitudin non urna ut, consequat auctor felis. Etiam lobortis purus id maximus sodales. Suspendisse ex arcu, tempus at enim ut, ultricies faucibus enim. In orci orci, commodo at porta sit amet, sagittis ac diam. Maecenas tincidunt vestibulum mi quis elementum. Vestibulum nisl magna, porta at augue eu, gravida vestibulum ipsum. Vivamus ac varius ante. Nulla felis est, auctor sit amet laoreet ac, viverra eu erat. Aliquam ac ligula varius, condimentum ipsum sed, scelerisque ex. Mauris porta faucibus placerat. Mauris pretium augue id interdum sollicitudin. Integer tincidunt dui a sem efficitur feugiat. Donec a elementum libero. Fusce a eleifend velit. Nulla facilisi. Donec elementum lectus sed vulputate congue. Suspendisse faucibus pharetra volutpat. Maecenas pellentesque tellus eros, quis molestie velit tincidunt bibendum. Integer ut porta nisi, id lacinia orci. Fusce a finibus ipsum, nec mollis neque. In id quam vel dui consectetur interdum. Donec tempor maximus libero, ac congue mauris laoreet sed. Nam laoreet massa quis gravida tempus. Vivamus vehicula vulputate aliquet. Aenean rutrum nibh nec lacus ullamcorper bibendum. Phasellus vel sodales libero, sed blandit turpis. Etiam consectetur egestas massa at viverra.",
"publiseringstag": "innhold",
"rekkefolgenummer": 15,
"sprak": {
"iso6392Kode": "NOB"
}
}
]
}
}
]
}
}
}
]
}
}
}
GET /studieretter og GET /studieretter/{id}
Studieretter heter "ProgramStudieretter" i FS GraphQL API (for å skille studieretter på studieprogram og studieretter på emner fra hverandre). Du kan hente ut en lista med program-studieretter slik:
query MyQuery {
programStudieretter(
filter: {
eierOrganisasjonskode: "1234"
aktivStatus: [FREMTIDIG, AKTIV, AVSLUTTET]
}
first: 10
) {
edges {
node {
id
studieprogram {
id
navnAlleSprak {
nb
nn
en
}
}
studierettperiode {
fraDato
tilDato
}
student {
studentnummer
}
}
}
}
}
Merk at aktivStatus-filteret har standardverdi AKTIV.
Hvis du ikke oppgir noe her, får du bare tilbake studieretter som er aktive på spørretidspunktet.
Eksempel på svar:
{
"data": {
"programStudieretter": {
"edges": [
{
"node": {
"id": "MTU0OjEyMzQsODgzLDJLUkxCMiwyMDI0LEjDmFNU",
"studieprogram": {
"id": "MTA2OjEyMzQsMktSTEIy",
"navnAlleSprak": {
"nb": "KRISTENDOMS- RELIGIONS- OG LIVSSYNSKUNNSKAP",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "2024-08-01",
"tilDato": null
},
"student": {
"studentnummer": "000114"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsODkzLEJBQ0gtw5hLQURNLDIwMDUsSMOYU1Q",
"studieprogram": {
"id": "MTA2OjEyMzQsQkFDSC3DmEtBRE0",
"navnAlleSprak": {
"nb": "Bachelor i økonomi og administrasjon",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "2005-08-01",
"tilDato": null
},
"student": {
"studentnummer": "100522"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTAyLEJBU1ksMjAwNSxIw5hTVA",
"studieprogram": {
"id": "MTA2OjEyMzQsQkFTWQ",
"navnAlleSprak": {
"nb": "Bachelor i sykepleie",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "2005-08-01",
"tilDato": null
},
"student": {
"studentnummer": "100499"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA2LEFMUkVBTC1IU1QsMTk5OCxWw4VS",
"studieprogram": {
"id": "MTA2OjEyMzQsQUxSRUFMLUhTVA",
"navnAlleSprak": {
"nb": "Allmenlærerutd. med realfag",
"nn": "Allmenlærarutd. med realfag",
"en": null
}
},
"studierettperiode": {
"fraDato": "1998-01-01",
"tilDato": null
},
"student": {
"studentnummer": "000401"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA2LEhJU1RGSUwsMTk5NSxIw5hTVA",
"studieprogram": {
"id": "MTA2OjEyMzQsSElTVEZJTA",
"navnAlleSprak": {
"nb": "Historisk-filosofisk studium, UiO",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "1995-08-12",
"tilDato": null
},
"student": {
"studentnummer": "000401"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA2LFNQUDJBLDIwMDEsSMOYU1Q",
"studieprogram": {
"id": "MTA2OjEyMzQsU1BQMkE",
"navnAlleSprak": {
"nb": "Spesialpedagogikk 2 avd., linje A, UiO",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "2002-08-02",
"tilDato": null
},
"student": {
"studentnummer": "000401"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA3LEZSQU5TSy1VSU8sMTk5NyxIw5hTVA",
"studieprogram": {
"id": "MTA2OjEyMzQsRlJBTlNLLVVJTw",
"navnAlleSprak": {
"nb": "Fransk hovedfag",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "1997-08-02",
"tilDato": null
},
"student": {
"studentnummer": "000002"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA3LEhJU1RGSUwsMTk5NSxIw5hTVA",
"studieprogram": {
"id": "MTA2OjEyMzQsSElTVEZJTA",
"navnAlleSprak": {
"nb": "Historisk-filosofisk studium, UiO",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "1995-08-15",
"tilDato": null
},
"student": {
"studentnummer": "000002"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA4LEZSQU5TSy1VSU8sMTk5OSxIw5hTVA",
"studieprogram": {
"id": "MTA2OjEyMzQsRlJBTlNLLVVJTw",
"navnAlleSprak": {
"nb": "Fransk hovedfag",
"nn": null,
"en": null
}
},
"studierettperiode": {
"fraDato": "1999-10-11",
"tilDato": null
},
"student": {
"studentnummer": "000003"
}
}
},
{
"node": {
"id": "MTU0OjEyMzQsOTA4LEZZU0lPLUhPUywxOTk3LEjDmFNU",
"studieprogram": {
"id": "MTA2OjEyMzQsRllTSU8tSE9T",
"navnAlleSprak": {
"nb": "Fysioterapistudiet, HiOslo",
"nn": "Fysioterapistudiet, HiOslo",
"en": null
}
},
"studierettperiode": {
"fraDato": "1997-08-15",
"tilDato": null
},
"student": {
"studentnummer": "000003"
}
}
}
]
}
}
}
Du kan hente ut en bestemt studierett med FS-APIets ID slik:
query FinnEnStudierett {
programStudieretterGittLegacyIder(
eierOrganisasjonskode: "1234"
legacyIder: [
{studieprogramkode: "2KRLB2"
personlopenummer: "883"
startArstall: 2024
startTerminkode: "HØST"
}
]
) {
id
student {
studentnummer
}
}
}
Eksempel på svar:
{
"data": {
"programStudieretterGittLegacyIder": [
{
"id": "MTU0OjEyMzQsODgzLDJLUkxCMiwyMDI0LEjDmFNU",
"student": {
"studentnummer": "000114"
}
}
]
}
}
GET /undervisning og GET /undervisning/{id}
"Undervisning" heter "Undervisningsenhet i FS GraphQL API".
Eksempel på spørring som henter alle undervisningsenheter for et gitt emne i en gitt termin:
query HentUndervisning {
undervisningsenheter(filter: {
eierOrganisasjonskode: "1234"
emner: "MjA6MTIzNCwxNTAsMUJBLTExMSwx"
terminer: "MTE2OjEyMzQsMjAwNixIw5hTVA"
},
first: 10) {
edges {
node {
id
emne {
id
kode
}
termin {
id
arstall
betegnelse {
kode
}
}
terminnummer
}
}
}
}
Eksempel på svar:
{
"data": {
"undervisningsenheter": {
"edges": [
{
"node": {
"id": "MTIxOjEyMzQsMTUwLDFCQS0xMTEsMSwyMDA2LEjDmFNULDE",
"emne": {
"id": "MjA6MTIzNCwxNTAsMUJBLTExMSwx",
"kode": "1BA-111"
},
"termin": {
"id": "MTE2OjEyMzQsMjAwNixIw5hTVA",
"arstall": 2006,
"betegnelse": {
"kode": "HØST"
}
},
"terminnummer": 1
}
}
]
}
}
}
Se under GET /emner og GET /semestre for eksempler på hvordan du kan finne riktige emne- og termin-IDer.
Du kan hente ut en enkelt undervisningsenhet med FS-APIets ID slik:
query FinnEnUndervisningsenhet {
undervisningsenheterGittLegacyIder(
eierOrganisasjonskode:"1234"
legacyIder: {
institusjonsnummer: "150"
emnekode: "1BA-113"
emneversjonskode: "1"
arstall: 2006
terminkode: "HØST"
terminnummer: 1
}
) {
id
}
}
Eksempel på svar:
{
"data": {
"undervisningsenheterGittLegacyIder": [
{
"id": "MTIxOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDE"
}
]
}
}
GET /undervisningsaktiviteter og GET /undervisningsaktiviteter/{id}
Du kan hente ut undervisningsaktiviteter slik:
query HentUndervisningsaktiviteter {
undervisningsaktiviteter(
filter: {
eierOrganisasjonskode: "1234",
undervisningsenheter: "MTIxOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDE"}
first: 10
) {
edges {
node {
id
kode
navnAlleSprak {
nb
nn
en
}
}
}
}
}
Eksempel på svar:
{
"data": {
"undervisningsaktiviteter": {
"edges": [
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMA",
"kode": "0",
"navnAlleSprak": {
"nb": "Treningslære",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMQ",
"kode": "1",
"navnAlleSprak": {
"nb": "Treningslære 1",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMTA",
"kode": "10",
"navnAlleSprak": {
"nb": "Treningslære 10",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMTE",
"kode": "11",
"navnAlleSprak": {
"nb": "Treningslære 11",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMg",
"kode": "2",
"navnAlleSprak": {
"nb": "Treningslære 2",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMw",
"kode": "3",
"navnAlleSprak": {
"nb": "Treningslære 3",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsNA",
"kode": "4",
"navnAlleSprak": {
"nb": "Treningslære 4",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsNQ",
"kode": "5",
"navnAlleSprak": {
"nb": "Treningslære 5",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsNg",
"kode": "6",
"navnAlleSprak": {
"nb": "Treningslære 6",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsNw",
"kode": "7",
"navnAlleSprak": {
"nb": "Treningslære 7",
"nn": null,
"en": null
}
}
}
]
}
}
}
For eksempel på hvordan du finner IDen for en undervisningsenhet, se under GET /undervisning.
Det er også mulighet for å søke på fritekst i navnet på undervisningsaktiviteten:
query HentUndervisningsaktiviteter {
undervisningsaktiviteter(
filter: {
eierOrganisasjonskode: "1234",
freeText: {
sprak: NB
freetext: "Treningslære"}}
first: 10
) {
edges {
node {
id
kode
navnAlleSprak {
nb
nn
en
}
}
}
}
}
Eksempel på svar:
{
"data": {
"undervisningsaktiviteter": {
"edges": [
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMA",
"kode": "0",
"navnAlleSprak": {
"nb": "Treningslære",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMQ",
"kode": "1",
"navnAlleSprak": {
"nb": "Treningslære 1",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMTA",
"kode": "10",
"navnAlleSprak": {
"nb": "Treningslære 10",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMTE",
"kode": "11",
"navnAlleSprak": {
"nb": "Treningslære 11",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMg",
"kode": "2",
"navnAlleSprak": {
"nb": "Treningslære 2",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMw",
"kode": "3",
"navnAlleSprak": {
"nb": "Treningslære 3",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsNA",
"kode": "4",
"navnAlleSprak": {
"nb": "Treningslære 4",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsNQ",
"kode": "5",
"navnAlleSprak": {
"nb": "Treningslære 5",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsNg",
"kode": "6",
"navnAlleSprak": {
"nb": "Treningslære 6",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsNw",
"kode": "7",
"navnAlleSprak": {
"nb": "Treningslære 7",
"nn": null,
"en": null
}
}
}
]
}
}
}
Du kan hente ut en enkelt undervisningsaktivitet med FS-APIets ID slik:
query FinnEnUndervisningsaktivitet {
undervisningsaktiviteterGittLegacyIder(
eierOrganisasjonskode: "1234"
legacyIder: [{
institusjonsnummer: "150"
emnekode: "1BA-113"
emneversjonskode: "1"
arstall: 2006
terminkode: "HØST"
terminnummer: 1
aktivitetkode: "0"
}]
) {
id
}
}
Eksempel på svar:
{
"data": {
"undervisningsaktiviteterGittLegacyIder": [
{
"id": "MTIwOjEyMzQsMTUwLDFCQS0xMTMsMSwyMDA2LEjDmFNULDEsMA"
}
]
}
}
Undervisningsaktivitetshendelser
Du kan hente hendelser knyttet til undervisningsaktiviteter via Query.emnehendelser.
GET /vurderingsenheter og GET /vurderingsenheter/{id}
Du kan hente ut vurderingsenheter slik:
query Vurderingsenheter {
vurderingsenheter(filter: {eierOrganisasjonskode: "1234"}, first: 10) {
edges {
node {
id
vurderingsoppbygningsdel {
kode
}
emne {
kode
}
vurderingsperiode {
arstall
betegnelse
}
}
}
}
}
Eksempel på svar:
{
"data": {
"vurderingsenheter": {
"edges": [
{
"node": {
"id": "MTM5OjEyMzQsMCwxODUsSU5GMTAwMCwxLDIwMTYsVsOFUg",
"vurderingsoppbygningsdel": {
"kode": "0"
},
"emne": {
"kode": "INF1000"
},
"vurderingsperiode": {
"arstall": 2016,
"betegnelse": "VÅR"
}
}
},
{
"node": {
"id": "MTM5OjEyMzQsMCwxODUsTVNFTU5FMTAsMSwyMDEyLFbDhVI",
"vurderingsoppbygningsdel": {
"kode": "0"
},
"emne": {
"kode": "MSEMNE10"
},
"vurderingsperiode": {
"arstall": 2012,
"betegnelse": "VÅR"
}
}
},
{
"node": {
"id": "MTM5OjEyMzQsMCwxODUsTVNFTU5FMTAsMSwyMDE2LFbDhVI",
"vurderingsoppbygningsdel": {
"kode": "0"
},
"emne": {
"kode": "MSEMNE10"
},
"vurderingsperiode": {
"arstall": 2016,
"betegnelse": "VÅR"
}
}
},
{
"node": {
"id": "MTM5OjEyMzQsMCwxODUsTVNFTU5FMTAsMSwyMDE3LFbDhVI",
"vurderingsoppbygningsdel": {
"kode": "0"
},
"emne": {
"kode": "MSEMNE10"
},
"vurderingsperiode": {
"arstall": 2017,
"betegnelse": "VÅR"
}
}
},
{
"node": {
"id": "MTM5OjEyMzQsMCwxODUsTVNFTU5FMTAsMSwyMDE5LFbDhVI",
"vurderingsoppbygningsdel": {
"kode": "0"
},
"emne": {
"kode": "MSEMNE10"
},
"vurderingsperiode": {
"arstall": 2019,
"betegnelse": "VÅR"
}
}
},
{
"node": {
"id": "MTM5OjEyMzQsMCwxODUsTVNFTU5FMTAsMSwyMDIwLFbDhVI",
"vurderingsoppbygningsdel": {
"kode": "0"
},
"emne": {
"kode": "MSEMNE10"
},
"vurderingsperiode": {
"arstall": 2020,
"betegnelse": "VÅR"
}
}
},
{
"node": {
"id": "MTM5OjEyMzQsMCwxODUsTVNFTU5FMTAsMSwyMDIyLFbDhVI",
"vurderingsoppbygningsdel": {
"kode": "0"
},
"emne": {
"kode": "MSEMNE10"
},
"vurderingsperiode": {
"arstall": 2022,
"betegnelse": "VÅR"
}
}
},
{
"node": {
"id": "MTM5OjEyMzQsMCwxODUsTVNFTU5FMTAsMSwyMDIzLFbDhVI",
"vurderingsoppbygningsdel": {
"kode": "0"
},
"emne": {
"kode": "MSEMNE10"
},
"vurderingsperiode": {
"arstall": 2023,
"betegnelse": "VÅR"
}
}
},
{
"node": {
"id": "MTM5OjEyMzQsMCwxODUsU0VBTjEsMSwyMDIzLFbDhVI",
"vurderingsoppbygningsdel": {
"kode": "0"
},
"emne": {
"kode": "SEAN1"
},
"vurderingsperiode": {
"arstall": 2023,
"betegnelse": "VÅR"
}
}
},
{
"node": {
"id": "MTM5OjEyMzQsMCwxODUsU0VBTjEsMSwyMDI0LFbDhVI",
"vurderingsoppbygningsdel": {
"kode": "0"
},
"emne": {
"kode": "SEAN1"
},
"vurderingsperiode": {
"arstall": 2024,
"betegnelse": "VÅR"
}
}
}
]
}
}
}
Du kan også filtrere søket basert på:
- terminer
- vurderingsoppbygningsdeler
- emner
- vurderingsperioder
- reelleVurderingsperioder Her trenger du FS GraphQL APIs ID for å gjøre filtreringen. Se under GET /semestre, GET /vurderingskombinasjoner, GET /emner og GET vurderingstider for mer informasjon om hvordan du kan hente ut IDer til disse.
Hendelser
Hendelser for vurderingsenheter er foreløpig ikke tilgjengelig. Har du behov for å lytte på hendelser knyttet til vurderingsenheter, kontakt fs-support@sikt.no og beskriv behovet.
GET /vurderingskombinasjoner og GET /vurderingskombinasjoner/{ID}
"Vurderingskombinasjon" heter "Vurderingsoppbyggingsdel" i FS GraphQL API. Her er et eksempel på hvordan du kan hente ut aktive vurderingskombinasjoner for et gitt emne og en gitt vurderingsordning (se under GET /vurderingsordninger og GET /emner for mer informasjon om hvordan du finner input-dataene):
query Vurderingskombinasjoner {
vurderingsoppbygningsdeler(
filter: {
eierOrganisasjonskode: "1234"
emner: "MjA6MTIzNCwxNTAsMUJBLTEyMSwx"
vurderingsordninger: "MTQ1OjEyMzQsUw"
}
) {
edges {
node {
id
kode
navnAlleSprak {
en
nn
nb
}
vurderingsordning {
id
}
}
}
}
}
Eksempel på svar:
{
"data": {
"vurderingsoppbygningsdeler": {
"edges": [
{
"node": {
"id": "MTQxOjEyMzQsMTUwLDFCQS0xMjEsMSxT",
"kode": "S",
"navnAlleSprak": {
"en": null,
"nn": null,
"nb": "1 skriftlig prøve"
},
"vurderingsordning": {
"id": "MTQ1OjEyMzQsUw"
}
}
}
]
}
}
}
Du kan også hente ut en bestemt vurderingkombinasjon med FS-APIets ID:
query VurderingskombinasjonOppslag {
vurderingsoppbygningsdelerGittVurderingsoppbygningsdelkoder(
eierOrganisasjonskode: "1234"
vurderingsoppbygningsdelkoder: {
institusjonsnummer: "150"
emnekode: "1BA-121"
versjonskode: "1"
vurderingskombinasjonskode: "S"
}
) {
id
kode
navnAlleSprak {
nb
nn
en
se
}
}
}
Eksempel på svar:
{
"data": {
"vurderingsoppbygningsdelerGittVurderingsoppbygningsdelkoder": [
{
"id": "MTQxOjEyMzQsMTUwLDFCQS0xMjEsMSxT",
"kode": "S",
"navnAlleSprak": {
"nb": "1 skriftlig prøve",
"nn": null,
"en": null,
"se": null
}
}
]
}
}
Vurderingskombinasjonshendelser
Hendelser for vurderingskombinasjoner er foreløpig ikke tilgjengelig i FS GraphQL API. Hvis du har behov for å spørre etter slike hendelser, kontakt fs-support@sikt.no og beskriv behovet.
GET /vurderingsordninger og GET /vurderingsordninger/{id}
Eksempel på spørring som henter alle aktive vurderingsordninger:
query Vurderingsordninger {
vurderingsordninger(
filter: {eierOrganisasjonskode: "1234"}
first: 10
) {
edges {
node {
id
kode
navnAlleSprak {
nb
nn
en
}
}
}
}
}
Eksempel på svar:
{
"data": {
"vurderingsordninger": {
"edges": [
{
"node": {
"id": "MTQ1OjEyMzQsQVM",
"kode": "AS",
"navnAlleSprak": {
"nb": "Undersøkende aarbeid + skriftlig prøve",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTQ1OjEyMzQsQkFP",
"kode": "BAO",
"navnAlleSprak": {
"nb": "Bacheloroppgave",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTQ1OjEyMzQsRUtT",
"kode": "EKS",
"navnAlleSprak": {
"nb": "Eksamensmodellen",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTQ1OjEyMzQsRw",
"kode": "G",
"navnAlleSprak": {
"nb": "Gruppearbeid",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTQ1OjEyMzQsR00",
"kode": "GM",
"navnAlleSprak": {
"nb": "Gruppeoppgave og muntlig høring",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTQ1OjEyMzQsR01T",
"kode": "GMS",
"navnAlleSprak": {
"nb": "Gruppeoppgave, en muntlig og en skriftli",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTQ1OjEyMzQsR1M",
"kode": "GS",
"navnAlleSprak": {
"nb": "Gruppeoppgave og en skiftlig prøve",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTQ1OjEyMzQsSA",
"kode": "H",
"navnAlleSprak": {
"nb": "Hjemmeeksamen",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTQ1OjEyMzQsSE0",
"kode": "HM",
"navnAlleSprak": {
"nb": "Hjemmeeksamen og en muntlig prøve",
"nn": null,
"en": null
}
}
},
{
"node": {
"id": "MTQ1OjEyMzQsSE1T",
"kode": "HMS",
"navnAlleSprak": {
"nb": "Hjemmeoppgave, muntlig og skriftlig eks.",
"nn": null,
"en": null
}
}
}
]
}
}
}
Du kan også hente ut en gitt vurderingsordning basert på vurderingsordningskode slik:
query Vurderingsordninger {
vurderingsordningerGittVurderingsordningskoder(
eierOrganisasjonskode: "1234"
vurderingsordningskoder: "H"
) {
id
kode
navnAlleSprak {
nb
nn
en
}
}
}
Eksempel på svar:
{
"data": {
"vurderingsordningerGittVurderingsordningskoder": [
{
"id": "MTQ1OjEyMzQsSA",
"kode": "H",
"navnAlleSprak": {
"nb": "Hjemmeeksamen",
"nn": null,
"en": null
}
}
]
}
}
GET /vurderingsresultatstatuser og GET /vurderingsresultatstatuser/{id}
Vurderingsresultatstatuser er kan du hente slik:
query Vurderingsresultatstatuser {
vurderingsresultatstatuser(
filter: {eierOrganisasjonskode: "1234"}
first: 10
) {
edges {
node {
id
vurderingsstatusnavn {
en
nb
nn
}
}
}
}
}
Svar:
{
"data": {
"vurderingsresultatstatuser": {
"edges": [
{
"node": {
"id": "MTQ2OjEyMzQsQQ",
"vurderingsstatusnavn": {
"en": "Withdrawal during an examination",
"nb": "Trekk under eksamen (Avbrutt eksamen)",
"nn": null
}
}
},
{
"node": {
"id": "MTQ2OjEyMzQsQg",
"vurderingsstatusnavn": {
"en": "Pass",
"nb": "Bestått",
"nn": null
}
}
},
{
"node": {
"id": "MTQ2OjEyMzQsRg",
"vurderingsstatusnavn": {
"en": null,
"nb": "Annulert pga fusk",
"nn": null
}
}
},
{
"node": {
"id": "MTQ2OjEyMzQsRw",
"vurderingsstatusnavn": {
"en": "Absence",
"nb": "Gyldig fravær",
"nn": "Gyldig fravær"
}
}
},
{
"node": {
"id": "MTQ2OjEyMzQsSQ",
"vurderingsstatusnavn": {
"en": "Failure to attend",
"nb": "Ikke møtt",
"nn": "Ikkje møtt"
}
}
},
{
"node": {
"id": "MTQ2OjEyMzQsSw",
"vurderingsstatusnavn": {
"en": null,
"nb": "Annet sted",
"nn": null
}
}
},
{
"node": {
"id": "MTQ2OjEyMzQsTA",
"vurderingsstatusnavn": {
"en": "Medical certificate",
"nb": "Legeattest",
"nn": null
}
}
},
{
"node": {
"id": "MTQ2OjEyMzQsTQ",
"vurderingsstatusnavn": {
"en": "\r\nLack of mandatory prior knowledge requ",
"nb": "Manglende obligatoriske forkunnskapskrav",
"nn": null
}
}
},
{
"node": {
"id": "MTQ2OjEyMzQsUw",
"vurderingsstatusnavn": {
"en": "Fail",
"nb": "Ikke bestått",
"nn": "Ikkje greidd"
}
}
},
{
"node": {
"id": "MTQ2OjEyMzQsVA",
"vurderingsstatusnavn": {
"en": "Withdrawal prior to an examination",
"nb": "Trekk før eksamen",
"nn": null
}
}
}
]
}
}
}
GET /vurderingstider og GET /vurderingstider/{id}
"Vurderingstid" heter "vurderingsperiode" i FS GraphQL API. Du kan hente ut alle vurderingsperioder slik:
query Vurderingsperioder {
vurderingsperioder(
filter: {
eierOrganisasjonskode: "1234"
}
first: 10) {
edges {
node {
id
navnAlleSprak {
nb
en
nn
}
}
}
}
}
Eksempel på svar:
{
"data": {
"vurderingsperioder": {
"edges": [
{
"node": {
"id": "MTQ4OjEyMzQsMTk5MCwwNg",
"navnAlleSprak": {
"nb": "06",
"en": "06",
"nn": "06"
}
}
},
{
"node": {
"id": "MTQ4OjEyMzQsMTk5MCwwNks",
"navnAlleSprak": {
"nb": "06K",
"en": "06K",
"nn": "06K"
}
}
},
{
"node": {
"id": "MTQ4OjEyMzQsMTk5MCwwNlU",
"navnAlleSprak": {
"nb": "06U",
"en": "06U",
"nn": "06U"
}
}
},
{
"node": {
"id": "MTQ4OjEyMzQsMTk5MCwxMg",
"navnAlleSprak": {
"nb": "12",
"en": "12",
"nn": "12"
}
}
},
{
"node": {
"id": "MTQ4OjEyMzQsMTk5MCwxMks",
"navnAlleSprak": {
"nb": "12K",
"en": "12K",
"nn": "12K"
}
}
},
{
"node": {
"id": "MTQ4OjEyMzQsMTk5MCwxMlU",
"navnAlleSprak": {
"nb": "12U",
"en": "12U",
"nn": "12U"
}
}
},
{
"node": {
"id": "MTQ4OjEyMzQsMTk5MSwwNg",
"navnAlleSprak": {
"nb": "06",
"en": "06",
"nn": "06"
}
}
},
{
"node": {
"id": "MTQ4OjEyMzQsMTk5MSwwNks",
"navnAlleSprak": {
"nb": "06K",
"en": "06K",
"nn": "06K"
}
}
},
{
"node": {
"id": "MTQ4OjEyMzQsMTk5MSwwNlU",
"navnAlleSprak": {
"nb": "06U",
"en": "06U",
"nn": "06U"
}
}
},
{
"node": {
"id": "MTQ4OjEyMzQsMTk5MSwxMg",
"navnAlleSprak": {
"nb": "12",
"en": "12",
"nn": "12"
}
}
}
]
}
}
}
Det er foreløpig ikke lagt til rette for uthenting basert på FS-APIets ID. Dette er en liten tabell, så dette behovet kan enkelt løses på klientsiden.