Instructure Developer Documentation Portal
Community
  • Introduction
  • Services
    • Elevate Standards Alignment - AB Connect API
      • Introduction
        • Authentication
        • Addressing Object Properties
        • Requesting Additional Properties in the Response
        • Filtering Using ODATA Like Statements
        • Sorting
        • Facets
        • Paging Data
        • Call Throttling
        • Working with Related Object
        • Error Responses
        • Character Set Support
        • How To Articles, Recommendations and Suggestions
        • Examples
        • Using AB Connect's Embeddable Widgets
      • Reference
        • Standards
        • Standard Collections
        • Events
        • Topics
        • Concepts
        • Assets
        • Asset Definitions
        • Asset Collections
        • Managing and Predicting Relationships
        • Providers
    • Canvas LMS
      • Basics
        • GraphQL
        • API Change Log
        • SIS IDs
        • Pagination
        • Throttling
        • Compound Documents
        • File Uploads
        • API Endpoint Attributes
        • Masquerading
      • OAuth2
        • OAuth2 Overview
        • OAuth2 Endpoints
        • Developer Keys
      • Resources
        • Access Tokens
        • Account Calendars
        • Account Domain Lookups
        • Account Notifications
        • Account Reports
        • Accounts
        • Accounts (LTI)
        • Admins
        • Analytics
        • Announcement External Feeds
        • Announcements
        • API Token Scopes
        • Appointment Groups
        • Assignment Extensions
        • Assignment Groups
        • Assignments
        • Authentication Providers
        • Authentications Log
        • Blackout Dates
        • BlockEditorTemplate
        • Blueprint Courses
        • Bookmarks
        • Brand Configs
        • Calendar Events
        • Collaborations
        • CommMessages
        • Communication Channels
        • Conferences
        • Content Exports
        • Content Migrations
        • Content Security Policy Settings
        • Content Shares
        • Conversations
        • Course Audit log
        • Course Pace
        • Course Quiz Extensions
        • Course Reports
        • Courses
        • Custom Gradebook Columns
        • Developer Key Account Bindings
        • Developer Keys
        • Discussion Topics
        • Enrollment Terms
        • Enrollments
        • ePortfolios
        • ePub Exports
        • Error Reports
        • External Tools
        • Favorites
        • Feature Flags
        • Files
        • Grade Change Log
        • Gradebook History
        • Grading Period Sets
        • Grading Periods
        • Grading Standards
        • Group Categories
        • Groups
        • History
        • InstAccess tokens
        • JWTs
        • Late Policy
        • Learning Object Dates
        • Line Items
        • LiveAssessments
        • Logins
        • LTI Launch Definitions
        • LTI Registrations
        • LTI Resource Links
        • Media Objects
        • Moderated Grading
        • Modules
        • Names and Role
        • New Quiz Items
        • New Quizzes
        • New Quizzes Accommodations
        • New Quizzes Reports
        • Notification Preferences
        • Originality Reports
        • Outcome Groups
        • Outcome Imports
        • Outcome Results
        • Outcomes
        • Pages
        • Peer Reviews
        • Planner
        • Poll Sessions
        • PollChoices
        • Polls
        • PollSubmissions
        • Proficiency Ratings
        • Progress
        • Public JWK
        • Quiz Assignment Overrides
        • Quiz Extensions
        • Quiz IP Filters
        • Quiz Question Groups
        • Quiz Questions
        • Quiz Reports
        • Quiz Statistics
        • Quiz Submission Events
        • Quiz Submission Files
        • Quiz Submission Questions
        • Quiz Submission User List
        • Quiz Submissions
        • Quizzes
        • Result
        • Roles
        • Rubrics
        • Sandboxes
        • Score
        • Search
        • Sections
        • Services
        • Shared Brand Configs
        • SIS Import Errors
        • SIS Imports
        • SIS Integration
        • Smart Search
        • Submission Comments
        • Submissions
        • Tabs
        • Temporary Enrollment Pairings
        • User Observees
        • Users
        • What If Grades
      • Outcomes
        • Outcomes CSV Format
      • Group Categories
        • Group Categories CSV Format
      • SIS
        • SIS CSV Format
      • External Tools
        • LTI
          • Introduction
          • Registration
          • Launch Overview
          • Configuring
          • Variable Substitutions
          • Deep Linking
          • Grading
          • Provisioning
          • PostMessage
          • Platform Notification Service
          • Placements
            • Placements Overview
            • Navigation
            • Homework Submission
            • Editor Button
            • Migration Selection
            • Link Selection (Modules)
            • Assignment Selection
            • Collaborations
        • xAPI
        • Canvas Roles
        • Plagiarism Detection Platform
          • Overview
          • Plagiarism Detection Platform Assignments
          • Plagiarism Detection Platform Users
          • Plagiarism Detection Submissions
          • Webhooks Subscriptions for Plagiarism Platform
          • JWT Access Tokens
      • Data Services
        • Live Events
          • Overview
            • Introduction
            • Setup
            • Caliper
            • Metadata
          • Event Format
            • Canvas
              • Account
              • Asset
              • Assignment
              • Attachment
              • Content
              • Conversation
              • Course
              • Discussion
              • Enrollment
              • Grade
              • Group
              • Learning
              • Logged
              • Module
              • Outcome
              • Outcomes
              • Plagiarism
              • Quiz
              • Rubric
              • Sis
              • Submission
              • Syllabus
              • User
              • Wiki
            • Caliper IMS 1.1
              • Assessment
              • Basic
              • Forum
              • Grading
              • Navigation Events
              • Session
    • Catalog
      • APIs
        • Analytics
        • Bulk Enrollments
        • Catalogs
        • Certificates
        • Completed Certificates
        • Courses
        • Email Domain Set
        • Enrollments
        • Orders
        • Programs
        • Progresses
        • Tags
        • User Registrations
        • Users
        • Waitlist Applicants
    • Credentials
      • Getting Started
      • Authentication
        • Password-Based Authentication
        • Authorization Code-Based Authentication
      • Pagination
      • APIs
        • Assertions
        • Backpack
        • Badgeclasses
        • Issuers
        • Organizations
        • Users
      • Release Notes
    • Data Access Platform
      • Key Concepts
      • Data Formats
      • Rate Limits & Policies
      • Datasets
        • Namespaces
          • canvas
            • canvas types
          • canvas_logs
          • catalog
        • Additional Notes
        • Entity Relationship Diagram
      • Query API
        • Authentication
        • Reference
      • Command Line (DAP CLI)
        • Getting Started
        • Secure Connection
        • Reference
          • dap snapshot
          • dap incremental
          • dap list
          • dap schema
          • dap initdb
          • dap syncdb
          • dap dropdb
      • Client Library
        • Examples
        • Reference
      • Release Notes
      • Status
    • DataSync
      • Interop API
      • Interop Data API
      • Grades Exchange API
      • OneRoster API
      • Platform API
    • Instructure Media
      • Studio API
    • Quizzes
      • Quiz API
Powered by GitBook

Copyright © 2008-2024 Instructure, Inc. All rights reserved. Various trademarks held by their respective owners.

On this page
  • Show front page
  • Duplicate page
  • Update/create front page
  • List pages
  • Create page
  • Show page
  • Update/create page
  • Delete page
  • List revisions
  • Show revision
  • Revert to revision

Was this helpful?

  1. Services
  2. Canvas LMS
  3. Resources

Pages

Pages are rich content associated with Courses and Groups in Canvas. The Pages API allows you to create, retrieve, update, and delete pages.

Note on page identifiers

Most Pages API endpoints accept identification of the Page as either a URL or an ID. In ambiguous cases, the URL takes precedence.

For example, if you have a page whose ID is 7 and another whose ID is 8 and whose URL is "7", the endpoint /api/v1/courses/:course_id/pages/7 will refer to the latter (ID 8). To explicitly request by ID, you can use the form /api/v1/courses/:course_id/pages/page_id:7.

A Page object looks like:

{
  // the ID of the page
  "page_id": 1,
  // the unique locator for the page
  "url": "my-page-title",
  // the title of the page
  "title": "My Page Title",
  // the creation date for the page
  "created_at": "2012-08-06T16:46:33-06:00",
  // the date the page was last updated
  "updated_at": "2012-08-08T14:25:20-06:00",
  // (DEPRECATED) whether this page is hidden from students (note: this is always
  // reflected as the inverse of the published value)
  "hide_from_students": false,
  // roles allowed to edit the page; comma-separated list comprising a combination
  // of 'teachers', 'students', 'members', and/or 'public' if not supplied, course
  // defaults are used
  "editing_roles": "teachers,students",
  // the User who last edited the page (this may not be present if the page was
  // imported from another system)
  "last_edited_by": null,
  // the page content, in HTML (present when requesting a single page; optionally
  // included when listing pages)
  "body": "<p>Page Content</p>",
  // whether the page is published (true) or draft state (false).
  "published": true,
  // scheduled publication date for this page
  "publish_at": "2022-09-01T00:00:00",
  // whether this page is the front page for the wiki
  "front_page": false,
  // Whether or not this is locked for the user.
  "locked_for_user": false,
  // (Optional) Information for the user about the lock. Present when
  // locked_for_user is true.
  "lock_info": null,
  // (Optional) An explanation of why this is locked for the user. Present when
  // locked_for_user is true.
  "lock_explanation": "This page is locked until September 1 at 12:00am",
  // The editor used to create and edit this page. May be one of 'rce' or
  // 'block_editor'.
  "editor": "rce",
  // The block editor attributes for this page. (optionally included, and only if
  // this is a block editor created page)
  "block_editor_attributes": {"id":278,"version":"0.2","blocks":"{...block json here...}"}
}

A PageRevision object looks like:

{
  // an identifier for this revision of the page
  "revision_id": 7,
  // the time when this revision was saved
  "updated_at": "2012-08-07T11:23:58-06:00",
  // whether this is the latest revision or not
  "latest": true,
  // the User who saved this revision, if applicable (this may not be present if
  // the page was imported from another system)
  "edited_by": null,
  // the following fields are not included in the index action and may be omitted
  // from the show action via summary=1 the historic url of the page
  "url": "old-page-title",
  // the historic page title
  "title": "Old Page Title",
  // the historic page contents
  "body": "<p>Old Page Content</p>"
}

GET /api/v1/courses/:course_id/front_page

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

GET /api/v1/groups/:group_id/front_page

Scope: url:GET|/api/v1/groups/:group_id/front_page

Retrieve the content of the front page

Example Request:

curl -H 'Authorization: Bearer <token>' \
     https://<canvas>/api/v1/courses/123/front_page

POST /api/v1/courses/:course_id/pages/:url_or_id/duplicate

Scope: url:POST|/api/v1/courses/:course_id/pages/:url_or_id/duplicate

Duplicate a wiki page

Example Request:

curl -X POST -H 'Authorization: Bearer <token>' \
https://<canvas>/api/v1/courses/123/pages/14/duplicate

PUT /api/v1/courses/:course_id/front_page

Scope: url:PUT|/api/v1/courses/:course_id/front_page

PUT /api/v1/groups/:group_id/front_page

Scope: url:PUT|/api/v1/groups/:group_id/front_page

Update the title or contents of the front page

Request Parameters:

Parameter
Type
Description

wiki_page[title]

string

The title for the new page. NOTE: changing a page’s title will change its url. The updated url will be returned in the result.

wiki_page[body]

string

The content for the new page.

wiki_page[editing_roles]

string

Which user roles are allowed to edit this page. Any combination of these roles is allowed (separated by commas).

  • “teachers”

    Allows editing by teachers in the course.

  • “students”

    Allows editing by students in the course.

  • “members”

    For group wikis, allows editing by members of the group.

  • “public”

    Allows editing by any user.

Allowed values: teachers, students, members, public

wiki_page[notify_of_update]

boolean

Whether participants should be notified when this page changes.

wiki_page[published]

boolean

Whether the page is published (true) or draft state (false).

Example Request:

curl -X PUT -H 'Authorization: Bearer <token>' \
https://<canvas>/api/v1/courses/123/front_page \
-d wiki_page[body]=Updated+body+text

GET /api/v1/courses/:course_id/pages

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

GET /api/v1/groups/:group_id/pages

Scope: url:GET|/api/v1/groups/:group_id/pages

A paginated list of the wiki pages associated with a course or group

Request Parameters:

Parameter
Type
Description

sort

string

Sort results by this field.

Allowed values: title, created_at, updated_at

order

string

The sorting order. Defaults to ‘asc’.

Allowed values: asc, desc

search_term

string

The partial title of the pages to match and return.

published

boolean

If true, include only published paqes. If false, exclude published pages. If not present, do not filter on published status.

include[]

string

  • “enrollments”: Optionally include the page body with each Page.

If this is a block_editor page, returns the block_editor_attributes.

Allowed values: body

Example Request:

curl -H 'Authorization: Bearer <token>' \
     https://<canvas>/api/v1/courses/123/pages?sort=title&order=asc

POST /api/v1/courses/:course_id/pages

Scope: url:POST|/api/v1/courses/:course_id/pages

POST /api/v1/groups/:group_id/pages

Scope: url:POST|/api/v1/groups/:group_id/pages

Create a new wiki page

Request Parameters:

Parameter
Type
Description

wiki_page[title]

Required string

The title for the new page.

wiki_page[body]

string

The content for the new page.

wiki_page[editing_roles]

string

Which user roles are allowed to edit this page. Any combination of these roles is allowed (separated by commas).

  • “teachers”

    Allows editing by teachers in the course.

  • “students”

    Allows editing by students in the course.

  • “members”

    For group wikis, allows editing by members of the group.

  • “public”

    Allows editing by any user.

Allowed values: teachers, students, members, public

wiki_page[notify_of_update]

boolean

Whether participants should be notified when this page changes.

wiki_page[published]

boolean

Whether the page is published (true) or draft state (false).

wiki_page[front_page]

boolean

Set an unhidden page as the front page (if true)

wiki_page[publish_at]

DateTime

Example Request:

curl -X POST -H 'Authorization: Bearer <token>' \
https://<canvas>/api/v1/courses/123/pages \
-d wiki_page[title]=New+page
-d wiki_page[body]=New+body+text

GET /api/v1/courses/:course_id/pages/:url_or_id

Scope: url:GET|/api/v1/courses/:course_id/pages/:url_or_id

GET /api/v1/groups/:group_id/pages/:url_or_id

Scope: url:GET|/api/v1/groups/:group_id/pages/:url_or_id

Retrieve the content of a wiki page

Example Request:

curl -H 'Authorization: Bearer <token>' \
     https://<canvas>/api/v1/courses/123/pages/the-page-identifier

PUT /api/v1/courses/:course_id/pages/:url_or_id

Scope: url:PUT|/api/v1/courses/:course_id/pages/:url_or_id

PUT /api/v1/groups/:group_id/pages/:url_or_id

Scope: url:PUT|/api/v1/groups/:group_id/pages/:url_or_id

Update the title or contents of a wiki page

NOTE: You cannot specify the ID when creating a page. If you pass a numeric value as the page identifier and that does not represent a page ID that already exists, it will be interpreted as a URL.

Request Parameters:

Parameter
Type
Description

wiki_page[title]

string

The title for the new page. NOTE: changing a page’s title will change its url. The updated url will be returned in the result.

wiki_page[body]

string

The content for the new page.

wiki_page[editing_roles]

string

Which user roles are allowed to edit this page. Any combination of these roles is allowed (separated by commas).

  • “teachers”

    Allows editing by teachers in the course.

  • “students”

    Allows editing by students in the course.

  • “members”

    For group wikis, allows editing by members of the group.

  • “public”

    Allows editing by any user.

Allowed values: teachers, students, members, public

wiki_page[notify_of_update]

boolean

Whether participants should be notified when this page changes.

wiki_page[published]

boolean

Whether the page is published (true) or draft state (false).

wiki_page[publish_at]

DateTime

Schedule a future date/time to publish the page. This will have no effect unless the “Scheduled Page Publication” feature is enabled in the account. If a future date is set and the page is already published, it will be unpublished.

wiki_page[front_page]

boolean

Set an unhidden page as the front page (if true)

Example Request:

curl -X PUT -H 'Authorization: Bearer <token>' \
https://<canvas>/api/v1/courses/123/pages/the-page-identifier \
-d 'wiki_page[body]=Updated+body+text'

DELETE /api/v1/courses/:course_id/pages/:url_or_id

Scope: url:DELETE|/api/v1/courses/:course_id/pages/:url_or_id

DELETE /api/v1/groups/:group_id/pages/:url_or_id

Scope: url:DELETE|/api/v1/groups/:group_id/pages/:url_or_id

Delete a wiki page

Example Request:

curl -X DELETE -H 'Authorization: Bearer <token>' \
https://<canvas>/api/v1/courses/123/pages/the-page-identifier

GET /api/v1/courses/:course_id/pages/:url_or_id/revisions

Scope: url:GET|/api/v1/courses/:course_id/pages/:url_or_id/revisions

GET /api/v1/groups/:group_id/pages/:url_or_id/revisions

Scope: url:GET|/api/v1/groups/:group_id/pages/:url_or_id/revisions

A paginated list of the revisions of a page. Callers must have update rights on the page in order to see page history.

Example Request:

curl -H 'Authorization: Bearer <token>' \
https://<canvas>/api/v1/courses/123/pages/the-page-identifier/revisions

GET /api/v1/courses/:course_id/pages/:url_or_id/revisions/latest

Scope: url:GET|/api/v1/courses/:course_id/pages/:url_or_id/revisions/latest

GET /api/v1/groups/:group_id/pages/:url_or_id/revisions/latest

Scope: url:GET|/api/v1/groups/:group_id/pages/:url_or_id/revisions/latest

GET /api/v1/courses/:course_id/pages/:url_or_id/revisions/:revision_id

Scope: url:GET|/api/v1/courses/:course_id/pages/:url_or_id/revisions/:revision_id

GET /api/v1/groups/:group_id/pages/:url_or_id/revisions/:revision_id

Scope: url:GET|/api/v1/groups/:group_id/pages/:url_or_id/revisions/:revision_id

Retrieve the metadata and optionally content of a revision of the page. Note that retrieving historic versions of pages requires edit rights.

Request Parameters:

Parameter
Type
Description

summary

boolean

If set, exclude page content from results

Example Request:

curl -H 'Authorization: Bearer <token>' \
https://<canvas>/api/v1/courses/123/pages/the-page-identifier/revisions/latest
curl -H 'Authorization: Bearer <token>' \
https://<canvas>/api/v1/courses/123/pages/the-page-identifier/revisions/4

POST /api/v1/courses/:course_id/pages/:url_or_id/revisions/:revision_id

Scope: url:POST|/api/v1/courses/:course_id/pages/:url_or_id/revisions/:revision_id

POST /api/v1/groups/:group_id/pages/:url_or_id/revisions/:revision_id

Scope: url:POST|/api/v1/groups/:group_id/pages/:url_or_id/revisions/:revision_id

Revert a page to a prior revision.

Request Parameters:

Parameter
Type
Description

revision_id

Required integer

Example Request:

curl -X POST -H 'Authorization: Bearer <token>' \
https://<canvas>/api/v1/courses/123/pages/the-page-identifier/revisions/6

PreviousOutcomesNextPeer Reviews

Last updated 1 month ago

Was this helpful?

Returns a object.

Returns a object.

Returns a object.

Returns a list of objects.

Schedule a future date/time to publish the page. This will have no effect unless the “Scheduled Page Publication” feature is enabled in the account. If a future date is supplied, the page will be unpublished and will be ignored.

Returns a object.

Returns a object.

Returns a object.

Returns a object.

Returns a list of objects.

Returns a object.

The revision to revert to (use the to see available revisions)

Returns a object.

This documentation is generated directly from the Canvas LMS source code, available .

WikiPagesApiController#show_front_page
WikiPagesApiController#duplicate
WikiPagesApiController#update_front_page
WikiPagesApiController#index
WikiPagesApiController#create
WikiPagesApiController#show
WikiPagesApiController#update
WikiPagesApiController#destroy
WikiPagesApiController#revisions
WikiPagesApiController#show_revision
WikiPagesApiController#revert
on Github
Show front page
Page
Duplicate page
Page
Update/create front page
Page
List pages
Page
Create page
Page
Show page
Page
Update/create page
Page
Delete page
Page
List revisions
PageRevision
Show revision
PageRevision
Revert to revision
PageRevision
wiki_page
List Revisions API