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!
In the API documentation - the search_term for users is defined as follows:
The partial name or full ID of the users to match and return in the results list. Must be at least 3 characters.
Note that the API will prefer matching on canonical user ID if the ID has a numeric form. It will only search against other fields if non-numeric in form, or if the numeric value doesn't yield any matches. Queries by administrative users will search on SIS ID, name, or email address; non- administrative queries will only be compared against name.
I am an administrative user for our account but the API does not return users based on a search on SIS ID, name, or email address. What am I missing or is this a bug? Is Account Admin sufficient privilege for this? Or do I need to be a different "type" of admin in Canvas
** Updated **
I believe that the my admin account is fine and that I am searching by e-mail address. We have some students and teachers that use e-mail addresses and have multiple accounts in canvas. This is done by creating e-mail addresses like someuser+psych@univ.edu, someuser+calc@univ.edu. When searching for the users - the search ignores the + or even ignoring the e-mail address altogether and only sorting by name.
Example (I'm leaving out short name and sortable name):
id: 1
name: Trek Bicycle
e-mail: bob.fix+trek@univ.edu
id: 2
name: Bob Fix
e-mail: bob.fix@univ.edu
id: 3
name: Duckies McGee
email: bob.fix+Duckies@univ.edu
GET Users API call:
search_term = bob.fix
results: id: 2
expected: 1, 2, 3
search_term = +trek
results: none
expected: 1
search_term = trek
results: id 1
expected: 1
I don't know if on the back end search that + is an illegal character or causes the results to fail?
I am able to find a user by SIS ID using this API call:
Users - Canvas LMS REST API Documentation - List users in an account
Syntax:
https://mydomain.instructure.com/api/v1/accounts/1/users?search_term=<student_sis_id>
Result:
[
{
"id": 123456,
"name": "First Last",
"sortable_name": "Last, First",
"short_name": "First Last",
"sis_user_id": "<student_sis_id>",
"integration_id": null,
"sis_login_id": "student@institution.edu",
"sis_import_id": 123456,
"login_id": "student@institution.edu"
}
]
Is this what you are trying to do?
The Object IDs, SIS IDs, and special IDs page of the API documentation says "You can also reference objects by SIS ID, by prepending the SIS ID with the name of the SIS field, like sis_course_id:." I've successfully returned a user with https://mydomain.instructure.com/api/v1/users/sis_user_id:<student_sis_id>.
My response was based on your statement "API does not return users based on a search on SIS ID, name, or email address". Leading me to believe you were trying to return user info.
What is it you're looking for?
I had the problem where I need to search for SIS ID, but when I searched using the USERS API with search_term, instead of getting a unique record I was getting more than 10. This because the string (or SIS ID) I was looking for, besides being a unique SIS ID, was also part of names of several users.
Daniel Grobani api call helped me getting a unique record.
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