Adding SIS ID to existing student by API call

Jump to solution
michael5
Community Contributor

Hi developers

At the school I work for, we're currently transitioning from using student e-mail addresses as their unique identifying parameter to using SIS IDs instead. It's no issue adding new students by SIS import, but the existing students have a SIS ID in our SIS that needs to be assigned to their (already existing) Canvas accounts. I've read through a lot of documentation but I can't seem to find a way of doing this - it's as if the API is simply not designed to be able to assign SIS IDs after the creation of an account.

Still, it's doable by manually editing each student's account and inserting the SIS ID in their log-in information. This appears to set the SIS ID for the account as well as the log-in which appear to be two different data parameters. But this is not really a solution as it would take way too long.

What I'm essentially looking for is a way to do it, using the API, for just one student. I can program the rest from there. Does anyone know of a way? Or if not, maybe someone could confirm that it's impossible?

Thanks in advance. 🙂

Labels (2)
0 Likes
1 Solution

Hi @michael5,

That's definitely strange.  The only time I've experienced something like that is when info in the CSV file doesn't match what's in Canvas (or is excluded form the CSV).  For example, if your current logins are tied to a specific authentication provider and you don't have the provider id in the CSV file, a new user will be created because there isn't an exact match to existing info Canvas can find.

I suppose in this case it may be easier to go the Logins API route than try to figure ths CSV thing out, unless there's an incredibly obvious difference you can notice with the CSVs.  I often run an sis_export report from our root account when working on stuff like this so I know I have the exact data Canvas has, then modify from there and re-upload.

-Chris

View solution in original post

0 Likes