Skip to content

elisaado/somtoday-api-docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

SOMtoday REST API docs

Discord

Discord Chat

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:

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.

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:

{
  "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": "450000@live.bc-enschede.nl",
      "mobielNummer": "06-00000000",
      "geboortedatum": "2000-00-00",
      "geslacht": "Man"
    }
  ]
}

Example

token='<REDACTED>' 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

{
  "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

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"

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

{
"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>"
        }
    },
    ...
}

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

{
  "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

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

{
  "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:

{
    "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

{
  "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>"
    }
	...
  ]
}

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

{
  "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

{
  "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

{
  "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

{
  "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

{
    "$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

{
    "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:

{
    "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"
    },
    ...
  ]
}

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

{
    "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]