🚀 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.

Smart Search API

BETA: This API resource is not finalized, and there could be breaking changes before its final release.

API for AI-powered course content search. NOTE: This feature has limited availability at present.

A SearchResult object looks like:

// Reference to an object that matches a smart search
{
  // The ID of the matching object.
  "content_id": 2,
  // The type of the matching object.
  "content_type": "WikiPage",
  // The title of the matching object.
  "title": "Nicolaus Copernicus",
  // The body of the matching object.
  "body": "Nicolaus Copernicus was a Renaissance-era mathematician and astronomer who...",
  // The Canvas URL of the matching object.
  "html_url": "https://canvas.example.com/courses/123/pages/nicolaus-copernicus",
  // The distance between the search query and the result. Smaller numbers
  // indicate closer matches.
  "distance": 0.212
}

Search course content SmartSearchController#search

BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.

GET /api/v1/courses/:course_id/smartsearch

Scope: url:GET|/api/v1/courses/:course_id/smartsearch

GET /courses/:course_id/files/:file_id/download

Scope: url:GET|/courses/:course_id/files/:file_id/download

GET /courses/:course_id/files/:file_id/download.:type

Scope: url:GET|/courses/:course_id/files/:file_id/download

GET /courses/:course_id/files/:file_id/preview

Scope: url:GET|/courses/:course_id/files/:file_id/preview

GET /quiz_statistics/:quiz_statistics_id/files/:file_id/download

Scope: url:GET|/quiz_statistics/:quiz_statistics_id/files/:file_id/download

GET /assessment_questions/:assessment_question_id/files/:file_id/download

Scope: url:GET|/assessment_questions/:assessment_question_id/files/:file_id/download

GET /assessment_questions/:assessment_question_id/files/:file_id/download.:type

Scope: url:GET|/assessment_questions/:assessment_question_id/files/:file_id/download

GET /assessment_questions/:assessment_question_id/files/:file_id/preview

Scope: url:GET|/assessment_questions/:assessment_question_id/files/:file_id/preview

GET /groups/:group_id/files/:file_id/download

Scope: url:GET|/groups/:group_id/files/:file_id/download

GET /groups/:group_id/files/:file_id/download.:type

Scope: url:GET|/groups/:group_id/files/:file_id/download

GET /groups/:group_id/files/:file_id/preview

Scope: url:GET|/groups/:group_id/files/:file_id/preview

GET /accounts/:account_id/files/:file_id/download

Scope: url:GET|/accounts/:account_id/files/:file_id/download

GET /accounts/:account_id/files/:file_id/download.:type

Scope: url:GET|/accounts/:account_id/files/:file_id/download

GET /accounts/:account_id/files/:file_id/preview

Scope: url:GET|/accounts/:account_id/files/:file_id/preview

GET /users/:user_id/files/:file_id/download

Scope: url:GET|/users/:user_id/files/:file_id/download

GET /users/:user_id/files/:file_id/download.:type

Scope: url:GET|/users/:user_id/files/:file_id/download

GET /users/:user_id/files/:file_id/preview

Scope: url:GET|/users/:user_id/files/:file_id/preview

GET /assignments/:assignment_id/files/:id/download

Scope: url:GET|/assignments/:assignment_id/files/:id/download

GET /files/:file_id/download

Scope: url:GET|/files/:file_id/download

GET /quizzes/quiz_submissions/:quiz_submission_id/files/:file_id/download

Scope: url:GET|/quizzes/quiz_submissions/:quiz_submission_id/files/:file_id/download

GET /quizzes/quiz_submissions/:quiz_submission_id/files/:file_id/download.:type

Scope: url:GET|/quizzes/quiz_submissions/:quiz_submission_id/files/:file_id/download

GET /quizzes/quiz_submissions/:quiz_submission_id/files/:file_id/preview

Scope: url:GET|/quizzes/quiz_submissions/:quiz_submission_id/files/:file_id/preview

Find course content using a meaning-based search

Request Parameters:

Parameter Type Description
q Required string

The search query

filter[] string

Types of objects to search. By default, all supported types are searched. Supported types include pages, assignments, announcements, and discussion_topics.

include[] string

Optional information to include with each search result:

modules

An array of module objects that the search result belongs to.

status

The published status for all results and the due_date for all assignments.

Allowed values: status, modules

Returns a list of SearchResult objects