MYSTERY: GET Marking Periods for School

We now have the list of assignments and assignment status for each student in our app, but the next logical question I get from schools is.. "Can we see the grades too??"

This endpoint gets us the information we need:

Academics graded assignments for student

However it requires a marking_period_id

It was not clear what that was, it's not a terms, so I went hunting, but could not find it in the API docs or other endpoint responses.

Is there any endpoint that can GET a list of marking periods?

Since I couldn't find one, I went to one of the schools that has give us portal access and inspected the HTTP requests of several of them in the browser and was able to find a marking period and section combination that worked with a parent token.

If there isn't an endpoint I missed, some suggestions:

Maybe add an array of marking periods under the Core Terms reponse:

GET /v1/terms

{ "count": 1, "value": [ { "id": 123, "begin_date": "2018-08-30T12:00:00Z", "description": "Term 1", "end_date": "2019-11-24T12:00:00Z", "level_description": "The first term", "level_id": 1, "offering_type": 1, "school_year_label": "2018-2019", "marking_periods": [ { "id": 456, "description": "Marking Period 1" ...whatever else is relevant } ] } ] }

Would that make sense?

Also, in the API docs, please define what a "Marking Period Id" so the next person doesn't have to go on this quest!

Thanks. -R

@Todd DeSchuiteneer @Stephen Boyle

Answers

  • After thoroughly searching the OpenAPI definition I found that this endpoint returns a marking period value along with the sections listed: Academics sections for student

    I suppose I could get that value and then reverse engineer the marking period list over time as different users from different school levels login to our app.

    This seems like a pretty hacky solution, but maybe at least possible to automate for now (and less hacky than getting on Zoom calls and getting school admins to copy/paste marking periods from their browser dev tools!).

    Please let me know if you can think of any other alternatives.