SOMtoday REST API docs
Discord
Table of contents
Some miscellaneous stuff
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:
```bash
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](https://developers.google.com/web/updates/2015/03/introduction-to-fetch)
NodeJS: [node-fetch](https://github.com/bitinn/node-fetch), [HTTP from stdlib](https://nodejs.org/api/http.html), [Request](https://github.com/request/request), [Axios](https://github.com/axios/axios)
Go: [net/http](https://golang.org/pkg/net/http/)
Ruby: [Faraday](https://github.com/lostisland/faraday), [HTTParty](https://github.com/jnunemaker/httparty)
Python: [requests](http://docs.python-requests.org/en/master/)
Please add more if you know more.
Fetching information
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.
Current student(s): GET /rest/v1/leerlingen
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).
#### Parameters
| Name | Type | Value |
|---------------|-----------|-----------------------|
| Authorization | Header | Bearer [access_token] |
| additional | Parameter | pasfoto |
The additional parameter is an optional GET parameter.
#### Returns
Depending on the additional parameters, some of the items in the result may not be present. Assuming `pasfoto` is set:
```json
{
"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": ""
}
},
"leerlingnummer": 450000,
"roepnaam": "Eli",
"achternaam": "Saado",
"email": "450000@live.bc-enschede.nl",
"mobielNummer": "06-00000000",
"geboortedatum": "2000-00-00",
"geslacht": "Man"
}
]
}
```
#### Example
```bash
token='' school_url=https://bonhoeffer-api.somtoday.nl
curl "$school_url/rest/v1/leerlingen" -H "Authorization: Bearer $token" -H "Accept: application/json"
```
---
### Student by ID: `GET /rest/v1/leerlingen/[id]`
#### Parameters
| Name | Type | Value |
|---------------|--------|-----------------------|
| id | URL | [user id] |
| Authorization | Header | Bearer [access_token] |
#### Returns
```json
{
"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": "450000@live.bc-enschede.nl",
"mobielNummer": "06-00000000",
"geboortedatum": "2000-00-00",
"geslacht": "Man"
}
```
#### Example
```bash
token='' school_url=https://bonhoeffer-api.somtoday.nl id=1234
curl "$school_url/rest/v1/leerlingen/$id" -H "Authorization: Bearer $token" -H "Accept: application/json"
```
Grades: GET /rest/v1/resultaten/huidigVoorLeerling/[id]
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').
#### Parameters
| 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:
1. Request 0-99
2. Request 100-199
3. Request 200-299
4. Request .00-.99
5. Continue until the response contains less than 99 records
6. Profit!
#### Returns
```js
{
"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()",
"type": "resultaten.RResultaat",
"operations": [
"READ"
],
"instances": [
"INSTANCE()"
]
}
],
"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()",
"type": "onderwijsinrichting.RVak",
"operations": [
"READ"
],
"instances": [
"INSTANCE()"
]
}
],
"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()",
"type": "leerling.RLeerlingPrimer",
"operations": [
"READ"
],
"instances": [
"INSTANCE()"
]
}
],
"additionalObjects": {},
"UUID": "070dabd4-3449-4af3-8c38-788faac283a3",
"leerlingnummer": 1234,
"roepnaam": "",
"voorvoegsel": "",
"achternaam": ""
}
},
...
}
```
Schedule: GET /rest/v1/afspraken
Click to open
Fetch the appointments from the schedule of the student.
#### Parameters
| 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 |
#### Returns
```json
{
"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"
}
}
]
}
```
#### Example
```bash
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"
```
Absence Reports: GET /rest/v1/absentiemeldingen
Click to open
Fetches the absence reports of the user
#### Parameters
| Name | Type | Value |
|----------------|-----------|-----------------------|
| Authorization | Header | Bearer [access_token] |
| begindatumtijd | Parameter | yyyy-MM-dd |
| einddatumtijd | Parameter | yyyy-MM-dd |
#### Returns
Array of absance reports
```json
{
"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"
}
}
]
}
```
Study Guides: GET /rest/v1/studiewijzers
Click to open
Fetches the study guides for the user
#### Parameters
| 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.
#### Returns
Depending on the additional parameters, some of the items in the result may not be present. Assuming all 4 are set:
```json
{
"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"
}
}
}
...
]
}
```
Subjects: GET /rest/v1/vakken
Click to open
Fetches the subjects for the user
#### Parameters
| Name | Type | Value |
|---------------|--------|-----------------------|
| Authorization | Header | Bearer [access_token] |
#### Returns
```json
{
"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": "",
"naam": ""
}
...
]
}
```
Account: GET /rest/v1/account/
/ GET /rest/v1/account/[id]
/ GET /rest/v1/account/me
Click to open
Fetches information about the account that is connected with the Somtoday access token
#### Parameters
| Name | Type | Value |
|---------------|-----------|-----------------------|
| id | URL | [user-id] |
| Authorization | Header | Bearer [access_token] |
| additional | Parameter | restricties |
#### Returns
```json
{
"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"
}
}
]
}
```
Schooljaren: GET /rest/v1/schooljaren
/ GET /rest/v1/schooljaren/[id]
Click to open
Fetches information about a school year
#### Parameters
| 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
#### Returns
```json
{
"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
},
...
]
}
```
Vakkeuzes: GET /rest/v1/vakkeuzes
Click to open
Fetches all the subjects you are currently enrolled in.
#### Parameters
| Name | Type | Value |
|---------------|-----------|-----------------------|
| Authorization | Header | Bearer [access_token] |
| additional | Parameter | vaknormering |
| additional | Parameter | actiefOpPeildatum |
#### Returns
```json
{
"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"
}
},
...
]
}
```
Waarnemingen: GET /rest/v1/waarnemingen
Click to open
Fetches all the waarnemingen currently tied to your account, filter them by date, isGeoorloofd and/or waarnemingSoort.
#### Parameters
| 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 |
#### Returns
```json
{
"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"
}
},
...
]
}
```
Schoolgegevens: GET /rest/v1/[id]/schoolgegevens
Click to open
Fetches info about the school, including your mentor.
#### Parameters
| Name | Type | Value |
|---------------|--------|-----------------------|
| id | URL | [user id] |
| Authorization | Header | Bearer [access_token] |
#### Returns
```json
{
"$type": "leerling.RLeerlingSchoolgegevens",
"instellingsnaam": "REDACTED",
"vestigingsnaam": "REDACTED",
"plaats": "REDACTED",
"straat": "REDACTED",
"postcode": "REDACTED",
"telefoonnummer": "REDACTED",
"email": "REDACTED",
"leerjaar": 99,
"mentoren": [
"REDACTED"
]
}
```
Vakanties: GET /rest/v1/vakanties/leerling/[id]
Click to open
Fetches info about the school, including your mentor.
#### Parameters
| Name | Type | Value |
|---------------|--------|-----------------------|
| id | URL | [user id] |
| Authorization | Header | Bearer [access_token] |
#### Returns
```json
{
"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.
#### Parameters
| Name | Type | Value |
|---------------|--------|-----------------------|
| id | URL | [user id] |
| Authorization | Header | Bearer [access_token] |
#### Returns
`GET /rest/v1/vakken/studiemateriaal/[id]` returns:
```json
{
"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:
```json
{
"$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:
```json
{
"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"
},
...
]
}
```
ICalendar: GET /rest/v1/icalendar
Click to open
Fetches the url to the icalendar stream.
#### Parameters
| Name | Type | Value |
|---------------|-----------|-----------------------|
| Authorization | Header | Bearer [access_token] |
#### Returns
```json
{
"links": [],
"permissions": [],
"additionalObjects": {},
"leerlingICalendarLink": "https://api.somtoday.nl/rest/v1/icalendar/stream/REDACTED"
}
```
ICalendar: DELETE /rest/v1/icalendar
Click to open
Deletes the currently active icalendar stream
#### Parameters
| Name | Type | Value |
|---------------|-----------|-----------------------|
| Authorization | Header | Bearer [access_token] |
#### Returns
NONE
Undocumented:
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]