🚀 Heads up: Our API Docs Have Moved!
We have relocated to Instructure Developer Documentation Portal. 🎉 Please update your bookmarks. This page will automatically redirect after July 1, 2026.
We have relocated to Instructure Developer Documentation Portal. 🎉 Please update your bookmarks. This page will automatically redirect after July 1, 2026.
User Observees API
API for managing linked observers and observees
A PairingCode object looks like:
// A code used for linking a user to a student to observe them.
{
// The ID of the user.
"user_id": 2,
// The actual code to be sent to other APIs
"code": "abc123",
// When the code expires
"expires_at": "2012-05-30T17:45:25Z",
// The current status of the code
"workflow_state": "active"
}
List linked observees UserObserveesController#index
GET /api/v1/users/:user_id/observees
Scope:
A paginated list of users that the given user is observing. This endpoint returns
users linked to the observer at the account level (such that the observer is automatically
enrolled in observees' courses); it doesn't return one-off observer enrollments from
individual courses.
*Note:* all users are allowed to list their own observees. Administrators can list
other users' observees.
The returned observees will include an attribute "observation_link_root_account_ids", a list
of ids for the root accounts the observer and observee are linked on. The observer will only be able to
observe in courses associated with these root accounts.
url:GET|/api/v1/users/:user_id/observees
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| include[] | string |
- "avatar_url": Optionally include avatar_url.
Allowed values: |
Example Request:
curl https://<canvas>/api/v1/users/<user_id>/observees \
-X GET \
-H 'Authorization: Bearer <token>'
List linked observers UserObserveesController#observers
GET /api/v1/users/:user_id/observers
Scope:
A paginated list of observers linked to a given user.
*Note:* all users are allowed to list their own observers. Administrators can list
other users' observers.
The returned observers will include an attribute "observation_link_root_account_ids", a list
of ids for the root accounts the observer and observee are linked on. The observer will only be able to
observe in courses associated with these root accounts.
url:GET|/api/v1/users/:user_id/observers
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| include[] | string |
- "avatar_url": Optionally include avatar_url.
Allowed values: |
Example Request:
curl https://<canvas>/api/v1/users/<user_id>/observers \
-X GET \
-H 'Authorization: Bearer <token>'
Add an observee with credentials UserObserveesController#create
POST /api/v1/users/:user_id/observees
Scope:
Register the given user to observe another user, given the observee's credentials.
*Note:* all users are allowed to add their own observees, given the observee's
credentials or access token are provided. Administrators can add observees given credentials, access token or
the observee's id.
url:POST|/api/v1/users/:user_id/observees
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| observee[unique_id] | string | The login id for the user to observe. Required if access_token is omitted. | |
| observee[password] | string | The password for the user to observe. Required if access_token is omitted. | |
| access_token | string | The access token for the user to observe. Required if <tt>observee[unique_id]</tt> or <tt>observee[password]</tt> are omitted. | |
| pairing_code | string | A generated pairing code for the user to observe. Required if the Observer pairing code feature flag is enabled | |
| root_account_id | integer | The ID for the root account to associate with the observation link. Defaults to the current domain account. If 'all' is specified, a link will be created for each root account associated to both the observer and observee. |
Example Request:
curl https://<canvas>/api/v1/users/<user_id>/observees \
-X POST \
-H 'Authorization: Bearer <token>' \
-F 'observee[unique_id]=UNIQUE_ID' \
-F 'observee[password]=PASSWORD'
Show an observee UserObserveesController#show
GET /api/v1/users/:user_id/observees/:observee_id
Scope:
Gets information about an observed user.
*Note:* all users are allowed to view their own observees.
url:GET|/api/v1/users/:user_id/observees/:observee_id
Example Request:
curl https://<canvas>/api/v1/users/<user_id>/observees/<observee_id> \
-X GET \
-H 'Authorization: Bearer <token>'
Show an observer UserObserveesController#show_observer
GET /api/v1/users/:user_id/observers/:observer_id
Scope:
Gets information about an observer.
*Note:* all users are allowed to view their own observers.
url:GET|/api/v1/users/:user_id/observers/:observer_id
Example Request:
curl https://<canvas>/api/v1/users/<user_id>/observers/<observer_id> \
-X GET \
-H 'Authorization: Bearer <token>'
Add an observee UserObserveesController#update
PUT /api/v1/users/:user_id/observees/:observee_id
Scope:
Registers a user as being observed by the given user.
url:PUT|/api/v1/users/:user_id/observees/:observee_id
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| root_account_id | integer | The ID for the root account to associate with the observation link. If not specified, a link will be created for each root account associated to both the observer and observee. |
Example Request:
curl https://<canvas>/api/v1/users/<user_id>/observees/<observee_id> \
-X PUT \
-H 'Authorization: Bearer <token>'
Remove an observee UserObserveesController#destroy
DELETE /api/v1/users/:user_id/observees/:observee_id
Scope:
Unregisters a user as being observed by the given user.
url:DELETE|/api/v1/users/:user_id/observees/:observee_id
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| root_account_id | integer | If specified, only removes the link for the given root account |
Example Request:
curl https://<canvas>/api/v1/users/<user_id>/observees/<observee_id> \
-X DELETE \
-H 'Authorization: Bearer <token>'
Create observer pairing code ObserverPairingCodesApiController#create
POST /api/v1/users/:user_id/observer_pairing_codes
Scope:
If the user is a student, will generate a code to be used with self registration
or observees APIs to link another user to this student.
Returns a
PairingCode
object
url:POST|/api/v1/users/:user_id/observer_pairing_codes