How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Canvas Users API

The Users API from Canvas — 38 operation(s) for users.

Canvas Users API is one of 145 APIs that Canvas publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include User. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, authentication docs, a GitHub repository, an API reference, and rate-limit docs.

This API exposes 48 operations across 38 paths, and defines 7 schemas. It is described by OpenAPI 3.2.0, at version v1.

Requests are made against 2 base URLs: https://canvas.instructure.com/api, https://{canvas_host}/api.

48 operations 38 paths 7 schemas 8 DELETE24 GET7 POST9 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
v1
Base URL
https://canvas.instructure.com/api/v1
Authentication
HTTP Bearer, OAuth 2.0
License
Resource Areas
1

Authentication & Security 2

Canvas Users API declares 2 security schemes for authenticating requests. It accepts HTTP bearer tokens (bearerAuth). It supports OAuth 2.0 (oauth2) using the authorizationCode flow. By default, every request must be authenticated.

  • bearerAuth — Canvas OAuth2 access token sent as "Authorization: Bearer ". See https://canvas.instructure.com/doc/api/file.oauth.html
  • oauth2 — Canvas OAuth2. See https://canvas.instructure.com/doc/api/file.oauth.html and https://canvas.instructure.com/doc/api/file.oauthendpoints.html

Paths & Operations 48

Across 38 paths, the API surfaces 48 operations — 8 DELETE, 24 GET, 7 POST, 9 PUT. Each is listed below with its method, path, parameters, and response codes.

Users 48
GET
/v1/accounts/{account_id}/users
List users in account
list_users_in_account 7 params → 200
POST
/v1/accounts/{account_id}/users
Create a user
create_user 1 param body → 200
POST
/v1/users/{user_id}/files
Upload a file
upload_file_users 1 param → 200
GET
/v1/users/self/activity_stream
List the activity stream
list_activity_stream_self 1 param → 200
DELETE
/v1/users/self/activity_stream
Hide all stream items
hide_all_stream_items → 200
GET
/v1/users/activity_stream
List the activity stream
list_activity_stream_activity_stream 1 param → 200
GET
/v1/users/self/activity_stream/summary
Activity stream summary
activity_stream_summary 1 param → 200
GET
/v1/users/self/todo
List the TODO items
list_todo_items 3 params → 200
GET
/v1/users/self/todo_item_count
List counts for todo items
list_counts_for_todo_items 1 param → 200
GET
/v1/users/self/upcoming_events
List upcoming assignments, calendar events
list_upcoming_assignments_calendar_events → 200
GET
/v1/users/{user_id}/missing_submissions
List Missing Submissions
list_missing_submissions 5 params → 200
DELETE
/v1/users/self/activity_stream/{id}
Hide a stream item
hide_stream_item 1 param → 200
GET
/v1/users/{id}
Show user details
show_user_details 2 params → 200
PUT
/v1/users/{id}
Edit a user
edit_user 1 param body → 200
POST
/v1/accounts/{account_id}/self_registration
[DEPRECATED] Self register a user
deprecated_self_register_user 1 param body → 200
GET
/v1/users/{id}/settings
Update user settings
update_user_settings 10 params → 200
GET
/v1/users/{id}/colors
Get custom colors
get_custom_colors 1 param → 200
GET
/v1/users/{id}/colors/{asset_string}
Get custom color
get_custom_color 2 params → 200
PUT
/v1/users/{id}/colors/{asset_string}
Update custom color
update_custom_color 2 params body → 200
PUT
/v1/users/{id}/text_editor_preference
Update text editor preference
update_text_editor_preference 1 param body → 200
PUT
/v1/users/{id}/files_ui_version_preference
Update files UI version preference
update_files_ui_version_preference 1 param body → 200
GET
/v1/users/{id}/dashboard_positions
Get dashboard positions
get_dashboard_positions 1 param → 200
PUT
/v1/users/{id}/dashboard_positions
Update dashboard positions
update_dashboard_positions 1 param → 200
DELETE
/v1/users/{id}/sessions
Terminate all user sessions
terminate_all_user_sessions 1 param → 200
DELETE
/v1/users/mobile_sessions
Log users out of all mobile apps
log_users_out_of_all_mobile_apps_mobile_sessions 1 param → 200
DELETE
/v1/users/{id}/mobile_sessions
Log users out of all mobile apps
log_users_out_of_all_mobile_apps_id 2 params → 200
PUT
/v1/users/{id}/merge_into/{destination_user_id}
Merge user into another user
merge_user_into_another_user_destination_user_id 2 params → 200
PUT
/v1/users/{id}/merge_into/accounts/{destination_account_id}/users/{destination_user_id}
Merge user into another user
merge_user_into_another_user_accounts 3 params → 200
POST
/v1/users/{id}/split
Split merged users into separate users
split_merged_users_into_separate_users 1 param → 200
POST
/v1/users/self/pandata_events_token
Get a Pandata Events jwt token and its expiration date
get_pandata_events_jwt_token_and_its_expiration_date body → 200
GET
/v1/users/{id}/graded_submissions
Get a users most recently graded submissions
get_users_most_recently_graded_submissions 4 params → 200
GET
/v1/users/{user_id}/profile
Get user profile
get_user_profile 2 params → 200
GET
/v1/users/{user_id}/avatars
List avatar options
list_avatar_options 1 param → 200
GET
/v1/users/{user_id}/page_views
List user page views
list_user_page_views 3 params → 200
POST
/v1/users/{user_id}/page_views/query
BETA - Initiate page views query
beta_initiate_page_views_query 1 param body → 200
GET
/v1/users/{user_id}/page_views/query/{query_id}
BETA - Poll query status
beta_poll_query_status 2 params → 200
GET
/v1/users/{user_id}/page_views/query/{query_id}/results
BETA - Get query results
beta_get_query_results 2 params → 200
POST
/v1/users/page_views/query
BETA - Initiate batch page views query
beta_initiate_batch_page_views_query body → 200
GET
/v1/users/page_views/query/{query_id}
BETA - Poll batch query status
beta_poll_batch_query_status 1 param → 200
GET
/v1/users/page_views/query/{query_id}/results
BETA - Get batch query results
beta_get_batch_query_results 1 param → 200
PUT
/v1/users/{user_id}/custom_data
Store custom data
store_custom_data 1 param body → 200
GET
/v1/users/{user_id}/custom_data
Load custom data
load_custom_data 2 params → 200
DELETE
/v1/users/{user_id}/custom_data
Delete custom data
delete_custom_data 2 params → 200
GET
/v1/users/self/course_nicknames
List course nicknames
list_course_nicknames → 200
DELETE
/v1/users/self/course_nicknames
Clear course nicknames
clear_course_nicknames → 200
GET
/v1/users/self/course_nicknames/{course_id}
Get course nickname
get_course_nickname 1 param → 200
PUT
/v1/users/self/course_nicknames/{course_id}
Set course nickname
set_course_nickname 1 param body → 200
DELETE
/v1/users/self/course_nicknames/{course_id}
Remove course nickname
remove_course_nickname 1 param → 200

Schemas 7

The contract defines 7 schemas that model the data the API accepts and returns. The most detailed are PageView (20 properties), User (19 properties), Profile (17 properties), Avatar (8 properties). Each schema is shown below with its type and property counts.

CourseNickname
object
3 properties
Profile
object
Profile details for a Canvas user.
17 properties
AsyncQueryStatusResponse
object
Response containing the current status of a page views query
5 properties 3 required
Avatar
object
Possible avatar for a user.
8 properties 4 required
AsyncQueryResponse
object
Response returned when successfully initiating a page views query
1 property 1 required
User
object
A Canvas user, e.g. a student, teacher, administrator, observer, etc.
19 properties 1 required
PageView
object
The record of a user page view access in Canvas
20 properties 1 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

canvas-users-api-openapi.yml Raw ↑

Other APIs Canvas publishes across the network.

Canvas LMS GraphQL API
Canvas LTI Integrations
Canvas Courses API
Canvas Access Tokens API
Canvas Accessibility Course Scans API
Canvas Accessibility Course Statistics API
Canvas Account Calendars API
Canvas Account Domain Lookups API
Canvas Account Notifications API
Canvas Account Reports API
Canvas Accounts API
Canvas Accounts (Lti) API
Where this information came from

This is an independent, third-party profile of Canvas Users API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.