cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Surveyor

How can I find the enrollment dates of students in a course?

Is there any way i can download a report of the list of students enrolled in a course with the dates of enrollment?

3 Replies
Highlighted
Community Coach
Community Coach

Hello there, ssweta@wiley.com...

If Canvas is connected to your school's SIS (Student Information System) in that the SIS sends enrollments to Canvas, then you might be able to get this information from someone at your school's IT department, local Canvas administrator, or your school's Online Learning/eLearning department.  Beyond that, I'm not sure if that kind of information can be pulled from Canvas or not.  I'm going to share your question with the Canvas Developers‌ and Canvas Admins‌ groups here in the Community in hopes that your question will get some additional exposure.  If you are not yet following either of these groups, click on each link, and you'll find two buttons at the top right of your screen: "Follow" and "Actions" >> "Join group".  I hope this will be of help to you.  Take care, and be well.

0 Kudos
Highlighted
Community Advocate
Community Advocate

Hi Somya Sweta,

The only way I know how to do this unless your school's sis‌ system keeps a record on exactly what date and time they sent the enrollment information into Canvas is to use canvas data‌. They have the exact date and time of the enrollment into each particular course for each student. 

Highlighted
Navigator

ssweta@wiley.com 

The information is available, but not as a report. You would need to fetch it from the API where there is a created_at timestamp on the enrollment.

For example, the List enrollments endpoint of the Enrollments API

   GET /api/v1/courses/1234/enrollments

will return enrollments for all types of users in course with the course ID 1234. You can add stuff to that, like ?type[]=StudentEnrollment to limit it to just students or a state[] to limit what type of users to deliver. You can also add per_page=100 to the end to get up to 100 enrollments at a time (the default is 10, which may not be enough to get the answer without pagination).

You can also use the interactive graphQL interface. Add /graphiql to the end of your Canvas hostname. Then paste this code in there and change the 1234 to your course ID.

query MyQuery {
course(id: "1234") {
enrollmentsConnection {
nodes {
createdAt
user {
sortableName
}
}
}
}
}

It returns just the student name and when that enrollment was created rather than all of the stuff returned through the enrollments API. You can add other options.

I often use the graphiql and copy/paste it into an online JSON to CSV converter and then download it as Excel.

Either way (enrollments API or graphQL), you will need to run the report for each class.

You can get the information for all courses, but you will definitely need to handle pagination as it is most likely too big of a report to run and will time out or get cut off. That's what my "first: 10" is about in the following code.

For kicks, I threw in the Canvas ID and name of the course, when the enrollment was created, when there was last activity on that enrollment, and the user's Canvas ID and name.

query MyQuery {
allCourses {
_id
name
enrollmentsConnection(first: 10) {
nodes {
createdAt
lastActivityAt
user {
_id
sortableName
}
}
}
}
}


This query returns output like this:

346706_pastedImage_2.png

For our Canvas Instructor Training course, the first user enrollment was added at 2016-08-31 and was last active in that course on 2020-04-02. The second user was enrolled on 206-08-03 and last had activity in the course on 2020-03-27.

There is also an updatedAt field on the enrollment. That might reflect changes in enrollment, like if a student was dropped and readded, then it would have the timestamp of the last event. The createdAt should be when they were originally enrolled.

There is extra processing involved with this if you want it human-friendly.

The Student Information System, if you use one, is definitely the quickest way to get this information. However, if you're tracking down an issue of when someone actually got added to Canvas for a dispute, or if you're at an institution that holds data close to heart and won't share with others, then hopefully this information will help.

Top Kudoed Authors
Labels