The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December.
Read our blog post for more info about this change.
Found this content helpful? Log in or sign up to leave a like!
Hi,
is it possible to detect via the API enrollments response to check whether a enrollment was done via the API or manual via the GUI? We don't have a field designated for this so I am looking for a standard option.
Thanks,
Edwin
Solved! Go to Solution.
Hi @EdwinBrenters,
I believe you can look for the "sis_import_id" parameter in an API enrollment object. If you see that parameter populated, the enrollment came from an SIS import. If not, it was created some other way. Now the caveat to this is really how your sis integration with Canvas works. Many use the sis import process, so this method would work fine for those. On the other hand, some integrate by calling specific direct API functions, so this method might not work in that case. Also, as the API notes indicate, make sure the user who's running the api call has the "manage SIS information" permission, otherwise the field won't be included at all.
Hope this helps a bit!
-Chris
Hi @EdwinBrenters,
I believe you can look for the "sis_import_id" parameter in an API enrollment object. If you see that parameter populated, the enrollment came from an SIS import. If not, it was created some other way. Now the caveat to this is really how your sis integration with Canvas works. Many use the sis import process, so this method would work fine for those. On the other hand, some integrate by calling specific direct API functions, so this method might not work in that case. Also, as the API notes indicate, make sure the user who's running the api call has the "manage SIS information" permission, otherwise the field won't be included at all.
Hope this helps a bit!
-Chris
Hi Chris,
it might get set by an occasional CSV import, i don't know about that. But the interface using the API doesn't set the sis_import_id. At least not for memberships. The sis_id's do get set for users, courses and sections because we have unique identifiers in our source system we want to keep in Canvas.
I programmed the interface myself and am looking for a way to distinguish manual "overrides" in the GUI from what the interface has sent. Preferably without adjusting the interface and sending anew the about 500.000 membership we have already.
When I compare a manually added student I don't see an obvious difference with a membership added via the interface in the "api/v1/sections/sis_section_id:<section_id>/enrollments" - response.
Maybe you have another suggestion? That would be appreciated.
Kind regards,
Edwin
Hi @EdwinBrenters,
If your school/institution does not use the SIS Import functionality to create official enrollments, I don't think you're going to have an easy way to distinguish what was done by your systems vs being done by a person in the UI. In many cases (not sure about this one), things done un the Canvas UI actually use the APIs to do all of the work behind the scenes.
I wish I had better news, but it's possible someone else will come along that knows something enither one of us have found yet.
-Chris
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in