- SOMtoday REST API docs
- Discord
- Table of contents
- Some miscellaneous stuff
- Authentication / authorization
- Fetching information
- Current student(s):
GET /rest/v1/leerlingen
- Student by ID:
GET /rest/v1/leerlingen/[id]
- Grades:
GET /rest/v1/resultaten/huidigVoorLeerling/[id]
- Schedule:
GET /rest/v1/afspraken
- Absence Reports:
GET /rest/v1/absentiemeldingen
- Study Guides:
GET /rest/v1/studiewijzers
- Subjects:
GET /rest/v1/vakken
- User Account:
GET /rest/v1/account
- School Years:
GET /rest/v1/schooljaren
- Vakkeuzes:
GET /rest/v1/vakkeuzes
- Waarnemingen:
GET /rest/v1/waarnemingen
- Schoolgegevens:
GET /rest/v1/leerlingen/[id]/schoolgegevens
- Vakanties:
GET /rest/v1/vakanties/leerling/[id]
- Studiemateriaal:
GET /rest/v1/vakken/studiemateriaal/[id]
&GET rest/v1/vakken/studiemateriaal/[id]/vak/[uuid]
&/rest/v1/studiemateriaal/algemeen/[id]
- ICalendar:
GET /rest/v1/icalendar
- ICalendar:
DELETE /rest/v1/icalendar
- Current student(s):
- Homework
- 1. Homework from appointments:
GET /rest/v1/studiewijzeritemafspraaktoekenningen
- 2. Homework from days:
GET /rest/v1/studiewijzeritemdagtoekenningen
- 3. Homework from weeks:
GET /rest/v1/studiewijzeritemweektoekenningen
- 1. Homework Made
PUT /rest/v1/swigemaakt/[id]
- 2. Homework Made
PUT /rest/v1/swigemaakt/cou
- 1. Homework from appointments:
Click to open miscellaneous stuff
-
Endpoint for the API is returned when you fetch the access token
-
Always include the header "Accept" with the value of "application/json" so you won't get XML. (except if you want XML :-) ) (the authentication stuff always returns JSON)
-
you can do sample requests using curl, for example:
curl http://example.com/user/blah?active=true&limit=3 -d "key=value&otherkey=value" -H "AHeader: Value"
which will be listed here as
Name | Type | Value |
---|---|---|
id | URL | blah |
active | Query | true |
limit | Query | 3 |
key | Body | value |
otherkey | Body | value |
AHeader | Header | Value |
When there is a value that is unique to you (like username, password, or token), it will have a value like [username]
I don't recommend using curl in your programming language, except for PHP but even there it's a pain. There are much better libraries.
A list of libraries for your language
JavaScript: window.fetch
NodeJS: node-fetch, HTTP from stdlib, Request, Axios
Go: net/http
Ruby: Faraday, HTTParty
Python: requests
Please add more if you know more.
baseurl: returned when you fetch a token (somtoday_api_url
), usually [lowercase snakecased schoolname]-api.somtoday.nl
All routes here are prefixed with that baseurl.
Click to open
This REST method might return multiple students (I cannot test), since it says /leerlingen (Dutch plural for student).
I suppose it returns all students the current user has access to (so if a school administrator runs it, it will return all students on the school).
Name | Type | Value |
---|---|---|
Authorization | Header | Bearer [access_token] |
additional | Parameter | pasfoto |
The additional parameter is an optional GET parameter.
Depending on the additional parameters, some of the items in the result may not be present. Assuming pasfoto
is set:
{
"items": [
{
"$type": "leerling.RLeerling",
"links": [
{
"id": 1234,
"rel": "self",
"type": "leerling.RLeerling",
"href": "https://bonhoeffer-api.somtoday.nl/rest/v1/leerlingen/1234"
}
],
"permissions": [
{
"full": "leerling.RLeerlingPrimer:READ:INSTANCE(1234)",
"type": "leerling.RLeerlingPrimer",
"operations": ["READ"],
"instances": ["INSTANCE(1234)"]
}
],
"additionalObjects": {
"pasfoto": {
"$type": "leerling.RLeerlingpasfoto",
"links": [
{
"id": 1234,
"rel": "self"
}
],
"permissions": [],
"additionalObjects": {},
"datauri": "<base64 image>"
}
},
"leerlingnummer": 450000,
"roepnaam": "Eli",
"achternaam": "Saado",
"email": "[email protected]",
"mobielNummer": "06-00000000",
"geboortedatum": "2000-00-00",
"geslacht": "Man"
}
]
}
token='<REDACTED>' school_url=https://bonhoeffer-api.somtoday.nl
curl "$school_url/rest/v1/leerlingen" -H "Authorization: Bearer $token" -H "Accept: application/json"
Name | Type | Value |
---|---|---|
id | URL | [user id] |
Authorization | Header | Bearer [access_token] |
{
"links": [
{
"id": 1234,
"rel": "self",
"type": "leerling.RLeerling",
"href": "https://bonhoeffer-api.somtoday.nl/rest/v1/leerlingen/1234"
}
],
"permissions": [
{
"full": "leerling.RLeerlingPrimer:READ:INSTANCE(1234)",
"type": "leerling.RLeerlingPrimer",
"operations": ["READ"],
"instances": ["INSTANCE(1234)"]
}
],
"additionalObjects": {},
"leerlingnummer": 450000,
"roepnaam": "Eli",
"achternaam": "Saado",
"email": "[email protected]",
"mobielNummer": "06-00000000",
"geboortedatum": "2000-00-00",
"geslacht": "Man"
}
token='<REDACTED>' school_url=https://bonhoeffer-api.somtoday.nl id=1234
curl "$school_url/rest/v1/leerlingen/$id" -H "Authorization: Bearer $token" -H "Accept: application/json"
Click to open
Fetches the grades of the student. Note that all average grades are also grade items returned by the API. There are the different types of columns: the type
property in the json (e.g. 'Toetskolom', 'ToetssoortGemiddeldeKolom').
Name | Type | Value |
---|---|---|
id | URL | [user id] |
Authorization | Header | Bearer [access_token] |
Range | Header | items=[LowerBound]-[UpperBound] |
additional | Parameter | berekendRapportCijfer |
additional | Parameter | samengesteldeToetskolomId |
additional | Parameter | resultaatkolomId |
additional | Parameter | cijferkolomId |
additional | Parameter | toetssoortnaam |
additional | Parameter | huidigeAnderVakKolommen |
These LowerBound and UpperBound values are the amount of grades you want to request (the API uses pagination here). The value may not exceed 100, so the way to request all grades is by doing the following:
- Request 0-99
- Request 100-199
- Request 200-299
- Request .00-.99
- Continue until the response contains less than 99 records
- Profit!
{
"items": [
{
"$type": "resultaten.RResultaat",
"links": [
{
"id": 1234,
"rel": "self",
"type": "resultaten.RResultaat",
"href": "https://api.somtoday.nl/rest/v1/resultaten/1234"
}
],
"permissions": [
{
"full": "resultaten.RResultaat:READ:INSTANCE(<REDACTED>)",
"type": "resultaten.RResultaat",
"operations": [
"READ"
],
"instances": [
"INSTANCE(<REDACTED>)"
]
}
],
"additionalObjects": {},
"herkansingstype": "Geen",
"resultaat": "7.9",
"geldendResultaat": "7.9",
"datumInvoer": "2019-09-10T13:41:11.805+02:00",
"teltNietmee": false,
"toetsNietGemaakt": false,
"leerjaar": 0,
"periode": 0,
"examenWeging": 0,
"isExamendossierResultaat": true,
"isVoortgangsdossierResultaat": false,
"type": "ToetssoortGemiddeldeKolom",
"vak": {
"links": [
{
"id": 1234,
"rel": "self",
"type": "onderwijsinrichting.RVak",
"href": "https://api.somtoday.nl/rest/v1/vakken/1234"
}
],
"permissions": [
{
"full": "onderwijsinrichting.RVak:READ:INSTANCE(<REDACTED>)",
"type": "onderwijsinrichting.RVak",
"operations": [
"READ"
],
"instances": [
"INSTANCE(<REDACTED>)"
]
}
],
"additionalObjects": {},
"afkorting": "ckv",
"naam": "culturele en kunstzinnige vorming"
},
"leerling": {
"links": [
{
"id": 1234,
"rel": "self",
"type": "leerling.RLeerlingPrimer",
"href": "https://api.somtoday.nl/rest/v1/leerlingen/1234"
}
],
"permissions": [
{
"full": "leerling.RLeerlingPrimer:READ:INSTANCE(<REDACTED>)",
"type": "leerling.RLeerlingPrimer",
"operations": [
"READ"
],
"instances": [
"INSTANCE(<REDACTED>)"
]
}
],
"additionalObjects": {},
"UUID": "070dabd4-3449-4af3-8c38-788faac283a3",
"leerlingnummer": 1234,
"roepnaam": "<REDACTED>",
"voorvoegsel": "<REDACTED>",
"achternaam": "<REDACTED>"
}
},
...
}
Click to open
Fetch the appointments from the schedule of the student.
Name | Type | Value |
---|---|---|
Authorization | Header | Bearer [access_token] |
sort | Parameter | asc-id |
additional | Parameter | vak |
additional | Parameter | docentAfkortingen |
additional | Parameter | leerlingen |
begindatum | Parameter | yyyy-MM-dd |
einddatum | Parameter | yyyy-MM-dd |
{
"items": [
{
"$type": "participatie.RAfspraak",
"links": [
{
"id": 8849104409,
"rel": "self",
"type": "participatie.RAfspraak",
"href": "AFSPRAAK_URL"
}
],
"permissions": [
{
"full": "participatie.RAfspraak:READ:INSTANCE(8849104409)",
"type": "participatie.RAfspraak",
"operations": ["READ"],
"instances": ["INSTANCE(8849104409)"]
}
],
"additionalObjects": {
"vak": {
"$type": "onderwijsinrichting.RVak",
"links": [
{
"id": 126211284,
"rel": "self",
"type": "onderwijsinrichting.RVak",
"href": "VAK_URL"
}
],
"permissions": [
{
"full": "onderwijsinrichting.RVak:READ:INSTANCE(126211284)",
"type": "onderwijsinrichting.RVak",
"operations": ["READ"],
"instances": ["INSTANCE(126211284)"]
}
],
"additionalObjects": {},
"afkorting": "wisB",
"naam": "wiskunde B"
},
"docentAfkortingen": "Stk",
"leerlingen": {
"$type": "LinkableWrapper",
"items": [
{
"$type": "leerling.RLeerlingPrimer",
"links": [
{
"id": 546308480,
"rel": "self",
"type": "leerling.RLeerlingPrimer",
"href": "LEERLING_URL"
}
],
"permissions": [
{
"full": "leerling.RLeerlingPrimer:READ:INSTANCE(546308480)",
"type": "leerling.RLeerlingPrimer",
"operations": ["READ"],
"instances": ["INSTANCE(546308480)"]
}
],
"additionalObjects": {},
"UUID": "UUID",
"leerlingnummer": 119371,
"roepnaam": "Christos",
"achternaam": "Karapasias"
}
]
}
},
"afspraakType": {
"links": [
{
"id": 144662674,
"rel": "self",
"type": "participatie.RAfspraakType",
"href": "AFSPRAAK_TYPE_URL"
}
],
"permissions": [
{
"full": "participatie.RAfspraakType:READ:INSTANCE(144662674)",
"type": "participatie.RAfspraakType",
"operations": ["READ"],
"instances": ["INSTANCE(144662674)"]
}
],
"additionalObjects": {},
"naam": "Les",
"omschrijving": "Les",
"standaardKleur": -2394583,
"categorie": "Rooster",
"activiteit": "Verplicht",
"percentageIIVO": 0,
"presentieRegistratieDefault": true,
"actief": true,
"vestiging": {
"$type": "instelling.RVestiging",
"links": [
{
"id": 126208855,
"rel": "self",
"type": "instelling.RVestiging",
"href": "VESTIGING_URL"
}
],
"permissions": [
{
"full": "instelling.RVestiging:READ:INSTANCE(126208855)",
"type": "instelling.RVestiging",
"operations": ["READ"],
"instances": ["INSTANCE(126208855)"]
}
],
"additionalObjects": {},
"naam": "Fortes Lyceum"
}
},
"locatie": "217",
"beginDatumTijd": "2020-05-04T11:15:00.000+02:00",
"eindDatumTijd": "2020-05-04T12:00:00.000+02:00",
"beginLesuur": 4,
"eindLesuur": 4,
"titel": "217 - A5wisB_2 - Stk",
"omschrijving": "217 - A5wisB_2 - Stk",
"presentieRegistratieVerplicht": true,
"presentieRegistratieVerwerkt": false,
"afspraakStatus": "ACTIEF",
"vestiging": {
"links": [
{
"id": 126208855,
"rel": "self",
"type": "instelling.RVestiging",
"href": "VESTIGING_URL"
}
],
"permissions": [
{
"full": "instelling.RVestiging:READ:INSTANCE(126208855)",
"type": "instelling.RVestiging",
"operations": ["READ"],
"instances": ["INSTANCE(126208855)"]
}
],
"additionalObjects": {},
"naam": "SCHOOL_NAAM"
}
}
]
}
curl "$school_url/rest/v1/afspraken?sort=asc-id&additional=vak&additional=docentAfkortingen&additional=leerlingen&begindatum=2020-05-01&einddatum=2020-05-19" -H "Authorization: Bearer $token" -H "Accept: application/json"
Click to open
Fetches the absence reports of the user
Name | Type | Value |
---|---|---|
Authorization | Header | Bearer [access_token] |
begindatumtijd | Parameter | yyyy-MM-dd |
einddatumtijd | Parameter | yyyy-MM-dd |
Array of absance reports
{
"items": [
{
"$type": "participatie.RAbsentieMelding",
"links": [
{
"id": 1234567890123,
"rel": "self",
"type": "participatie.RAbsentieMelding",
"href": "{{api_url}}/rest/v1/waarnemingen/1234567890123"
}
],
"permissions": [],
"additionalObjects": {},
"leerling": {
"links": [
{
"id": 1234567890,
"rel": "self",
"type": "leerling.RLeerlingPrimer",
"href": "{{api_url}}/rest/v1/leerlingen/1234567890"
}
],
"permissions": [],
"additionalObjects": {},
"UUID": "12abc34e-12a3-1a2b-a1b2-1a2b34cd5e67",
"leerlingnummer": 100000,
"roepnaam": "Name",
"achternaam": "Name"
},
"absentieReden": {
"links": [
{
"id": 1234567890,
"rel": "self",
"type": "participatie.RAbsentieRedenPrimer",
"href": "{{api_url}}/rest/v1/absentieredenen/1234567890"
}
],
"permissions": [],
"additionalObjects": {},
"absentieSoort": "Absent",
"afkorting": "XC",
"omschrijving": "Onbekend",
"geoorloofd": false
},
"datumTijdInvoer": "yyyy-MM-dd'T'HH:mm:ss.SSS+HH:mm",
"beginDatumTijd": "yyyy-MM-dd'T'HH:mm:ss.SSS+HH:mm",
"eindDatumTijd": "yyyy-MM-dd'T'HH:mm:ss.SSS+HH:mm",
"beginLesuur": 3,
"eindLesuur": 3,
"afgehandeld": true,
"eigenaar": {
"links": [
{
"id": 1234567890,
"rel": "self",
"type": "medewerker.RMedewerker",
"href": "{{api_url}}/rest/v1/medewerkers/1234567890"
}
],
"permissions": [],
"additionalObjects": {},
"UUID": "12abc34e-12a3-1a2b-a1b2-1a2b34cd5e67",
"nummer": 100000,
"afkorting": "HH",
"achternaam": "Henk",
"geslacht": "MAN",
"voorletters": "H.H.",
"roepnaam": "Hans"
}
}
]
}
Click to open
Fetches the study guides for the user
Name | Type | Value |
---|---|---|
Authorization | Header | Bearer [access_token] |
additional | Parameter | leerlingen |
additional | Parameter | bijlagen |
additional | Parameter | externeMaterialen |
additional | Parameter | bijlageMappen |
The additional parameters are optional GET parameters to include information in the result. leerlingen
will only give back 1 result when queried by a student, but will fetch all students when queried by a teacher/school admin.
Depending on the additional parameters, some of the items in the result may not be present. Assuming all 4 are set:
{
"items": [
{
"$type": "studiewijzer.RStudiewijzer",
"links": [
{
"id": 3709468886305,
"rel": "self",
"type": "studiewijzer.RStudiewijzer",
"href": "https://api.somtoday.nl/rest/v1/studiewijzers/3709468886305"
}
],
"permissions": [
{
"full": "studiewijzer.RStudiewijzer:READ:INSTANCE(3709468886305)",
"type": "studiewijzer.RStudiewijzer",
"operations": [
"READ"
],
"instances": [
"INSTANCE(3709468886305)"
]
}
],
"additionalObjects": {
"bijlageMappen": {
"$type": "LinkableWrapper",
"items": []
},
"bijlagen": {
"$type": "LinkableWrapper",
"items": []
},
"leerlingen": {
"$type": "LinkableWrapper",
"items": [
{
"$type": "leerling.RLeerlingPrimer",
"links": [
{
"id": 9496745174,
"rel": "self",
"type": "leerling.RLeerlingPrimer",
"href": "https://api.somtoday.nl/rest/v1/leerlingen/9496745174"
}
],
"permissions": [
{
"full": "leerling.RLeerlingPrimer:READ:INSTANCE(9496745174)",
"type": "leerling.RLeerlingPrimer",
"operations": [
"READ"
],
"instances": [
"INSTANCE(9496745174)"
]
}
],
"additionalObjects": {},
"UUID": "f8cf6f6c-c213-4526-8ba1-6a306cf724a4",
"leerlingnummer": 123456,
"roepnaam": "{{first_name}}",
"achternaam": "{{last_name}}"
}
]
},
"externeMaterialen": {
"$type": "LinkableWrapper",
"items": []
}
},
"uuid": "4d2188a0-03d8-4dca-9f51-0e54d3c353c6",
"naam": "vwo5.schka",
"vestiging": {
"links": [
{
"id": 9496567717,
"rel": "self",
"type": "instelling.RVestiging",
"href": "https://api.somtoday.nl/rest/v1/vestigingen/9496567717"
}
],
"permissions": [
{
"full": "instelling.RVestiging:READ:INSTANCE(9496567717)",
"type": "instelling.RVestiging",
"operations": [
"READ"
],
"instances": [
"INSTANCE(9496567717)"
]
}
],
"additionalObjects": {},
"naam": "Stella Maris College Meerssen"
},
"lesgroep": {
"links": [
{
"id": 3543707887108,
"rel": "self",
"type": "lesgroep.RLesgroep",
"href": "https://api.somtoday.nl/rest/v1/lesgroepen/3543707887108"
}
],
"permissions": [
{
"full": "lesgroep.RLesgroep:READ:INSTANCE(3543707887108)",
"type": "lesgroep.RLesgroep",
"operations": [
"READ"
],
"instances": [
"INSTANCE(3543707887108)"
]
}
],
"additionalObjects": {},
"UUID": "d4afb5b8-fbf6-4bbd-ac73-cb50cc883392",
"naam": "vwo5.schka",
"schooljaar": {
"$type": "onderwijsinrichting.RSchooljaar",
"links": [
{
"id": 40851957,
"rel": "self",
"type": "onderwijsinrichting.RSchooljaar",
"href": "https://api.somtoday.nl/rest/v1/schooljaren/40851957"
}
],
"permissions": [
{
"full": "onderwijsinrichting.RSchooljaar:READ:INSTANCE(40851957)",
"type": "onderwijsinrichting.RSchooljaar",
"operations": [
"READ"
],
"instances": [
"INSTANCE(40851957)"
]
}
],
"additionalObjects": {},
"naam": "2021/2022",
"vanafDatum": "2021-08-01",
"totDatum": "2022-07-31",
"isHuidig": true
},
"vak": {
"links": [
{
"id": 9505018979,
"rel": "self",
"type": "onderwijsinrichting.RVak",
"href": "https://api.somtoday.nl/rest/v1/vakken/9505018979"
}
],
"permissions": [
{
"full": "onderwijsinrichting.RVak:READ:INSTANCE(9505018979)",
"type": "onderwijsinrichting.RVak",
"operations": [
"READ"
],
"instances": [
"INSTANCE(9505018979)"
]
}
],
"additionalObjects": {},
"afkorting": "schk",
"naam": "Scheikunde"
},
"heeftStamgroep": false,
"examendossierOndersteund": true,
"vestiging": {
"links": [
{
"id": 9496567717,
"rel": "self",
"type": "instelling.RVestiging",
"href": "https://api.somtoday.nl/rest/v1/vestigingen/9496567717"
}
],
"permissions": [
{
"full": "instelling.RVestiging:READ:INSTANCE(9496567717)",
"type": "instelling.RVestiging",
"operations": [
"READ"
],
"instances": [
"INSTANCE(9496567717)"
]
}
],
"additionalObjects": {},
"naam": "Stella Maris College Meerssen"
}
}
}
...
]
}
Click to open
Fetches the subjects for the user
Name | Type | Value |
---|---|---|
Authorization | Header | Bearer [access_token] |
{
"items": [
{
"$type": "onderwijsinrichting.RVak",
"links": [
{
"id": 123456789,
"rel": "self",
"type": "onderwijsinrichting.RVak",
"href": "https://api.somtoday.nl/rest/v1/vakken/123456789"
}
],
"permissions": [
{
"full": "onderwijsinrichting.RVak:READ:INSTANCE(123456789)",
"type": "onderwijsinrichting.RVak",
"operations": [
"READ"
],
"instances": [
"INSTANCE(123456789)"
]
}
],
"additionalObjects": {},
"afkorting": "<abbreviation>",
"naam": "<subject>"
}
...
]
}
Click to open
Fetches information about the account that is connected with the Somtoday access token
Name | Type | Value |
---|---|---|
id | URL | [user-id] |
Authorization | Header | Bearer [access_token] |
additional | Parameter | restricties |
{
"items": [
{
"$type": "auth.RAccount",
"links": [
{
"id": 1234567890,
"rel": "self",
"type": "auth.RAccount",
"href": "https://api.somtoday.nl/rest/v1/account/1234567890"
}
],
"permissions": [
{
"full": "auth.RAccount:READ:INSTANCE(1234567890)",
"type": "auth.RAccount",
"operations": [
"READ"
],
"instances": [
"INSTANCE(1234567890)"
]
}
],
"additionalObjects": {
"restricties": {
"$type": "LinkableWrapper",
"items": [
{
"$type": "restricties.REloRestricties",
"links": [],
"permissions": [],
"additionalObjects": {},
"vestigingsId": REDACTED,
"leerlingId": REDACTED,
"mobieleAppAan": true,
"studiewijzerAan": true,
"berichtenVerzendenAan": false,
"leermiddelenAan": true,
"adviezenTokenAan": true,
"opmerkingRapportCijferTonenAan": true,
"periodeGemiddeldeTonenResultaatAan": true,
"rapportGemiddeldeTonenResultaatAan": true,
"rapportCijferTonenResultaatAan": true,
"toetssoortgemiddeldenAan": true,
"seResultaatAan": true,
"stamgroepLeerjaarAan": true,
"emailWijzigenAan": false,
"mobielWijzigenAan": false,
"wachtwoordWijzigenAan": true,
"absentiesBekijkenAan": true,
"absentieConstateringBekijkenAan": true,
"absentieMaatregelBekijkenAan": true,
"absentieMeldingBekijkenAan": true,
"berichtenBekijkenAan": true,
"cijfersBekijkenAan": true,
"huiswerkBekijkenAan": true,
"nieuwsBekijkenAan": true,
"pasfotoLeerlingTonenAan": true,
"pasfotoMedewerkerTonenAan": false,
"profielBekijkenAan": true,
"roosterBekijkenAan": true,
"roosterBeschikbaarIcalAan": true,
"vakkenBekijkenAan": true,
"lesurenVerbergenSettingAan": false
}
]
}
},
"gebruikersnaam": "[REDACTED]",
"accountPermissions": [],
"persoon": {
"$type": "leerling.RLeerlingPrimer",
"links": [
{
"id": "0123456789",
"rel": "self",
"type": "leerling.RLeerlingPrimer",
"href": "https://api.somtoday.nl/rest/v1/leerlingen/0123456789"
}
],
"permissions": [
{
"full": "leerling.RLeerlingPrimer:READ:INSTANCE(1409824200)",
"type": "leerling.RLeerlingPrimer",
"operations": [
"READ"
],
"instances": [
"INSTANCE(0123456789)"
]
}
],
"additionalObjects": {},
"UUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"leerlingnummer": 100000,
"roepnaam": "Name",
"voorvoegsel": "Name",
"achternaam": "Name"
}
}
]
}
Click to open
Fetches information about a school year
Name | Type | Value |
---|---|---|
id | URL | [id] |
id | URL | huidig |
Authorization | Header | Bearer [access_token] |
When you want info about the current school year add /huidig to the url
{
"items": [
{
"$type": "onderwijsinrichting.RSchooljaar",
"links": [
{
"id": 40851958, //this id is for everyone the same (in this case for year 2022/2023)
"rel": "self",
"type": "onderwijsinrichting.RSchooljaar",
"href": "https://api.somtoday.nl/rest/v1/schooljaren/40851958"
}
],
"permissions": [
{
"full": "onderwijsinrichting.RSchooljaar:READ:INSTANCE(40851958)",
"type": "onderwijsinrichting.RSchooljaar",
"operations": [
"READ"
],
"instances": [
"INSTANCE(40851958)"
]
}
],
"additionalObjects": {},
"naam": "2022/2023",
"vanafDatum": "2022-08-01",
"totDatum": "2023-07-31",
"isHuidig": true
},
...
]
}
Click to open
Fetches all the subjects you are currently enrolled in.
Name | Type | Value |
---|---|---|
Authorization | Header | Bearer [access_token] |
additional | Parameter | vaknormering |
additional | Parameter | actiefOpPeildatum |
{
"items": [
{
"$type": "onderwijsinrichting.RVakkeuze",
"links": [
{
"id": xxxxxxxxxx,
"rel": "self",
"type": "onderwijsinrichting.RVakkeuze",
"href": "https://api.somtoday.nl/rest/v1/vakkeuzes/xxxxxxxxxx"
}
],
"permissions": [
{
"full": "onderwijsinrichting.RVakkeuze:READ:INSTANCE(xxxxxxxxxx)",
"type": "onderwijsinrichting.RVakkeuze",
"operations": [
"READ"
],
"instances": [
"INSTANCE(xxxxxxxxxx)"
]
}
],
"additionalObjects": {
"vaknormering": {
"$type": "onderwijsinrichting.RVakNormering",
"vakId": yyyyyyyyyy,
"toetsnormering1": "Standaard",
"toetsnormering2": "Alternatief"
}
},
"vak": {
"links": [
{
"id": yyyyyyyyyy,
"rel": "self",
"type": "onderwijsinrichting.RVak",
"href": "https://api.somtoday.nl/rest/v1/vakken/yyyyyyyyyy"
}
],
"permissions": [
{
"full": "onderwijsinrichting.RVak:READ:INSTANCE(yyyyyyyyyy)",
"type": "onderwijsinrichting.RVak",
"operations": [
"READ"
],
"instances": [
"INSTANCE(yyyyyyyyyy)"
]
}
],
"additionalObjects": {},
"afkorting": "ne",
"naam": "Nederlandse taal"
}
},
...
]
}
Click to open
Fetches all the waarnemingen currently tied to your account, filter them by date, isGeoorloofd and/or waarnemingSoort.
Name | Type | Value |
---|---|---|
Authorization | Header | Bearer [access_token] |
waarnemingSoort (optional) | Parameter | Afwezig/aanwezig |
isGeoorloofd (optional) | Parameter | true/false |
You can, if you want, provide dates to filter the results. If you don't provide any dates, it will return all the results. You can either provide a date range or a single date. If you provide a single date, it will return all the results from that date. If you provide a date range, it will return all the results inbetween those dates.
Date types | Type | Value |
---|---|---|
begintNaOfOp | Parameter | yyyy-MM-dd |
OR | ||
beginDatumTijd | Parameter | yyyy-MM-dd |
eindDatumTijd | Parameter | yyyy-MM-dd |
{
"items": [
{
"$type": "participatie.RWaarneming",
"links": [
{
"id": 1234567891234,
"rel": "self",
"type": "participatie.RWaarneming",
"href": "https://api.somtoday.nl/rest/v1/waarnemingen/1234567891234"
}
],
"permissions": [
{
"full": "participatie.RWaarneming:READ:INSTANCE(1234567891234)",
"type": "participatie.RWaarneming",
"operations": [
"READ"
],
"instances": [
"INSTANCE(1234567891234)"
]
}
],
"additionalObjects": {},
"beginDatumTijd": "2023-01-09T11:05:00.000+01:00",
"eindDatumTijd": "2023-01-09T11:55:00.000+01:00",
"beginLesuur": 4,
"eindLesuur": 4,
"waarnemingSoort": "Aanwezig",
"leerling": {
"links": [
{
"id": 1234567890,
"rel": "self",
"type": "leerling.RLeerlingPrimer",
"href": "https://api.somtoday.nl/rest/v1/leerlingen/1234567890"
}
],
"permissions": [
{
"full": "leerling.RLeerlingPrimer:READ:INSTANCE(1234567890)",
"type": "leerling.RLeerlingPrimer",
"operations": [
"READ"
],
"instances": [
"INSTANCE(1234567890)"
]
}
],
"additionalObjects": {},
"UUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"leerlingnummer": 100000,
"roepnaam": "Name",
"voorvoegsel": "Name",
"achternaam": "Name"
},
"afspraak": {
"links": [
{
"id": 12345678901345,
"rel": "self",
"type": "participatie.RAfspraakPrimer",
"href": "https://api.somtoday.nl/rest/v1/afspraken/12345678901345"
}
],
"permissions": [
{
"full": "participatie.RAfspraak:READ:INSTANCE(12345678901345)",
"type": "participatie.RAfspraak",
"operations": [
"READ"
],
"instances": [
"INSTANCE(12345678901345)"
]
}
],
"additionalObjects": {},
"afspraakType": {
"links": [
{
"id": 1234567890,
"rel": "self",
"type": "participatie.RAfspraakType",
"href": "https://api.somtoday.nl/rest/v1/afspraaktype/1234567890"
}
],
"permissions": [
{
"full": "participatie.RAfspraakType:READ:INSTANCE(1234567890)",
"type": "participatie.RAfspraakType",
"operations": [
"READ"
],
"instances": [
"INSTANCE(1234567890)"
]
}
],
"additionalObjects": {},
"naam": "LES",
"omschrijving": "LES",
"standaardKleur": -16448251,
"categorie": "Rooster",
"activiteit": "Verplicht",
"percentageIIVO": 100,
"presentieRegistratieDefault": true,
"actief": true,
"vestiging": {
"$type": "instelling.RVestiging",
"links": [
{
"id": 1234567890,
"rel": "self",
"type": "instelling.RVestiging",
"href": "https://api.somtoday.nl/rest/v1/vestigingen/1234567890"
}
],
"permissions": [
{
"full": "instelling.RVestiging:READ:INSTANCE(1234567890)",
"type": "instelling.RVestiging",
"operations": [
"READ"
],
"instances": [
"INSTANCE(1234567890)"
]
}
],
"additionalObjects": {},
"naam": "De super coole school",
}
},
"locatie": "lokaal naam",
"beginDatumTijd": "2023-01-09T11:05:00.000+01:00",
"eindDatumTijd": "2023-01-09T11:55:00.000+01:00",
"beginLesuur": 4,
"eindLesuur": 4,
"titel": "titel"
},
"afgehandeld": true,
"invoerDatum": "2023-01-09T11:09:08.000+01:00",
"laatstGewijzigdDatum": "2023-01-09T11:09:08.000+01:00",
"herkomst": "Medewerker",
"ingevoerdDoor": {
"links": [
{
"id": 1234567890123,
"rel": "self",
"type": "medewerker.RMedewerkerPrimer",
"href": "https://api.somtoday.nl/rest/v1/medewerkers/1234567890123"
}
],
"permissions": [],
"additionalObjects": {},
"UUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"nummer": 12345678,
"afkorting": "afkorting",
"achternaam": "name",
"geslacht": "VROUW/MAN",
"voorletters": "voorletter(s)",
"roepnaam": "roepnaam"
},
"laatstGewijzigdDoor": {
"links": [
{
"id": 1234567890123,
"rel": "self",
"type": "medewerker.RMedewerkerPrimer",
"href": "https://api.somtoday.nl/rest/v1/medewerkers/1234567890123"
}
],
"permissions": [],
"additionalObjects": {},
"UUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"nummer": 12345678,
"afkorting": "afkorting",
"achternaam": "name",
"geslacht": "VROUW/MAN",
"voorletters": "voorletter(s)",
"roepnaam": "roepnaam"
}
},
...
]
}
Click to open
Fetches info about the school, including your mentor.
Name | Type | Value |
---|---|---|
id | URL | [user id] |
Authorization | Header | Bearer [access_token] |
{
"$type": "leerling.RLeerlingSchoolgegevens",
"instellingsnaam": "REDACTED",
"vestigingsnaam": "REDACTED",
"plaats": "REDACTED",
"straat": "REDACTED",
"postcode": "REDACTED",
"telefoonnummer": "REDACTED",
"email": "REDACTED",
"leerjaar": 99,
"mentoren": [
"REDACTED"
]
}
Click to open
Fetches info about the school, including your mentor.
Name | Type | Value |
---|---|---|
id | URL | [user id] |
Authorization | Header | Bearer [access_token] |
{
"items": [
{
"$type": "participatie.RVakantie",
"links": [
{
"id": 123456789,
"rel": "self",
"type": "participatie.RVakantie",
"href": "https://api.somtoday.nl/rest/v1/vakanties/123456789"
}
],
"permissions": [
{
"full": "participatie.RVakantie:READ:INSTANCE(123456789)",
"type": "participatie.RVakantie",
"operations": [
"READ"
],
"instances": [
"INSTANCE(123456789)"
]
}
],
"additionalObjects": {},
"naam": "Herfstvakantie",
"beginDatum": "2023-10-16T00:00:00.000+02:00",
"eindDatum": "2023-10-20T00:00:00.000+02:00"
},
...
]
}
Studiemateriaal: GET /rest/v1/vakken/studiemateriaal/[id]
& GET rest/v1/vakken/studiemateriaal/[id]/vak/[uuid]
& /rest/v1/studiemateriaal/algemeen/[id]
Click to open
Fetches all studiemateriaal. (I.E. Annual supplements, online textbooks, etc.)
First, make a request to GET /rest/v1/vakken/studiemateriaal/[id]
. And then to /rest/v1/vakken/studiemateriaal/[id]/vak/[uuid]
with the UUID of subject which studiemateriaal you want to fetch.
Name | Type | Value |
---|---|---|
id | URL | [user id] |
Authorization | Header | Bearer [access_token] |
GET /rest/v1/vakken/studiemateriaal/[id]
returns:
{
"items": [
{
"$type": "onderwijsinrichting.RVak",
"links": [
{
"id": 123456789,
"rel": "self",
"type": "onderwijsinrichting.RVak",
"href": "https://api.somtoday.nl/rest/v1/vakken/123456789"
}
],
"permissions": [
{
"full": "onderwijsinrichting.RVak:READ:INSTANCE(123456789)",
"type": "onderwijsinrichting.RVak",
"operations": [
"READ"
],
"instances": [
"INSTANCE(123456789)"
]
}
],
"additionalObjects": {},
"afkorting": "ne",
"naam": "Nederlandse taal",
"UUID": "REDACTED"
},
...
]
}
GET /rest/v1/vakken/studiemateriaal/[id]/vak/[uuid]
returns:
{
"$type": "studiewijzer.RStudieMateriaal",
"studiewijzer": {
"links": [
{
"id": 123456789,
"rel": "self",
"type": "studiewijzer.RStudiewijzer",
"href": "https://api.somtoday.nl/rest/v1/studiewijzers/123456789"
}
],
"permissions": [
{
"full": "studiewijzer.RStudiewijzer:READ:INSTANCE(123456789)",
"type": "studiewijzer.RStudiewijzer",
"operations": [
"READ"
],
"instances": [
"INSTANCE(123456789)"
]
}
],
"additionalObjects": {},
"uuid": "Redacted",
"naam": "Nederland",
"vestiging": {
"links": [
{
"id": 123456789,
"rel": "self",
"type": "instelling.RVestiging",
"href": "https://api.somtoday.nl/rest/v1/vestigingen/123456789"
}
],
"permissions": [
{
"full": "instelling.RVestiging:READ:INSTANCE(123456789)",
"type": "instelling.RVestiging",
"operations": [
"READ"
],
"instances": [
"INSTANCE(123456789)"
]
}
],
"additionalObjects": {},
"naam": "REDACTED",
"uuid": "REDACTED"
},
"lesgroep": {
"links": [
{
"id": 123456789,
"rel": "self",
"type": "lesgroep.RLesgroep",
"href": "https://api.somtoday.nl/rest/v1/lesgroepen/123456789"
}
],
"permissions": [
{
"full": "lesgroep.RLesgroep:READ:INSTANCE(123456789)",
"type": "lesgroep.RLesgroep",
"operations": [
"READ"
],
"instances": [
"INSTANCE(123456789)"
]
}
],
"additionalObjects": {},
"UUID": "REDACTED",
"naam": "REDACTED",
"omschrijving": "REDACTED",
"schooljaar": {
"$type": "onderwijsinrichting.RSchooljaar",
"links": [
{
"id": 12345689,
"rel": "self",
"type": "onderwijsinrichting.RSchooljaar",
"href": "https://api.somtoday.nl/rest/v1/schooljaren/12345689"
}
],
"permissions": [
{
"full": "onderwijsinrichting.RSchooljaar:READ:INSTANCE(12345689)",
"type": "onderwijsinrichting.RSchooljaar",
"operations": [
"READ"
],
"instances": [
"INSTANCE(12345689)"
]
}
],
"additionalObjects": {},
"naam": "2023/2024",
"vanafDatum": "2023-08-01",
"totDatum": "2024-07-31",
"isHuidig": true
},
"vak": {
"links": [
{
"id": 12345689,
"rel": "self",
"type": "onderwijsinrichting.RVak",
"href": "https://api.somtoday.nl/rest/v1/vakken/12345689"
}
],
"permissions": [
{
"full": "onderwijsinrichting.RVak:READ:INSTANCE(12345689)",
"type": "onderwijsinrichting.RVak",
"operations": [
"READ"
],
"instances": [
"INSTANCE(12345689)"
]
}
],
"additionalObjects": {},
"afkorting": "ne",
"naam": "Nederlandse taal",
"UUID": "REDACTED"
},
"heeftStamgroep": false,
"examendossierOndersteund": false,
"vestiging": {
"links": [
{
"id": 12345689,
"rel": "self",
"type": "instelling.RVestiging",
"href": "https://api.somtoday.nl/rest/v1/vestigingen/12345689"
}
],
"permissions": [
{
"full": "instelling.RVestiging:READ:INSTANCE(12345689)",
"type": "instelling.RVestiging",
"operations": [
"READ"
],
"instances": [
"INSTANCE(12345689)"
]
}
],
"additionalObjects": {},
"naam": "REDACTED",
"uuid": "REDACTED"
}
}
},
...
}
GET /rest/v1/studiemateriaal/algemeen/[id]
returns:
{
"items": [
{
"$type": "leermiddel.REduRoutePortalUserProduct",
"links": [
{
"id": 123456789,
"rel": "self",
"type": "leermiddel.REduRoutePortalUserProduct",
"href": "https://api.somtoday.nl/rest/v1/edurouteportaluserproduct/123456789"
}
],
"permissions": [
{
"full": "leermiddel.REduRoutePortalUserProduct:READ:INSTANCE(123456789)",
"type": "leermiddel.REduRoutePortalUserProduct",
"operations": ["READ"],
"instances": ["INSTANCE(123456789)"]
}
],
"additionalObjects": {},
"leerling": {
"$type": "leerling.RLeerlingPrimer",
"links": [
{
"id": 9496745174,
"rel": "self",
"type": "leerling.RLeerlingPrimer",
"href": "https://api.somtoday.nl/rest/v1/leerlingen/9496745174"
}
],
"permissions": [
{
"full": "leerling.RLeerlingPrimer:READ:INSTANCE(9496745174)",
"type": "leerling.RLeerlingPrimer",
"operations": ["READ"],
"instances": ["INSTANCE(9496745174)"]
}
],
"additionalObjects": {},
"UUID": "f8cf6f6c-c213-4526-8ba1-6a306cf724a4",
"leerlingnummer": 123456,
"roepnaam": "{{first_name}}",
"achternaam": "{{last_name}}"
},
"product": {
"$type": "leermiddel.REduRoutePortalProduct",
"links": [
{
"id": 1234567890123,
"rel": "self",
"type": "leermiddel.REduRoutePortalProduct",
"href": "https://api.somtoday.nl/rest/v1/edurouteportalproduct/1234567890123"
}
],
"permissions": [
{
"full": "leermiddel.REduRoutePortalProduct:READ:INSTANCE(1234567890123)",
"type": "leermiddel.REduRoutePortalProduct",
"operations": ["READ"],
"instances": ["INSTANCE(1234567890123)"]
}
],
"additionalObjects": {},
"title": "Chemie Overal ed 5.0 vwo 5 FLEX boek + online",
"url": "https://toegang.noordhoff.nl/1234567890123",
"UUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"methodeInformatie": {
"$type": "leermiddel.RMethodeInformatie",
"links": [
{
"id": 1234567890123,
"rel": "self",
"type": "leermiddel.RMethodeInformatie",
"href": "https://api.somtoday.nl/rest/v1/methodeinformatie/1234567890123"
}
],
"permissions": [
{
"full": "leermiddel.RMethodeInformatie:READ:INSTANCE(1234567890123)",
"type": "leermiddel.RMethodeInformatie",
"operations": ["READ"],
"instances": ["INSTANCE(1234567890123)"]
}
],
"additionalObjects": {},
"UUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"dashboardMethodeNaam": "Chemie overal",
"methode": "Chemie overal",
"uitgever": "Noordhoff"
}
},
"UUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
...
]
}
Click to open
Fetches the url to the icalendar stream.
Name | Type | Value |
---|---|---|
Authorization | Header | Bearer [access_token] |
{
"links": [],
"permissions": [],
"additionalObjects": {},
"leerlingICalendarLink": "https://api.somtoday.nl/rest/v1/icalendar/stream/REDACTED"
}
Click to open
Deletes the currently active icalendar stream
Name | Type | Value |
---|---|---|
Authorization | Header | Bearer [access_token] |
NONE
GET /rest/v1/medewerkers/ontvangers
GET /rest/v1/maatregeltoekenningen
GET /rest/v1/leerlingadresseringen
GET /rest/v1/verzorgers/
GET /rest/v1/onderwijsopafstandperiodes/
GET /rest/v1/edurouteportaluserproduct/[id]
GET /rest/v1/methodeinformatie/[id]