Pages API
Pages are rich content associated with Courses and Groups in Canvas. The Pages API allows you to create, retrieve, update, and delete ages.
A Page object looks like:
{
// 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",
// whether this page is hidden from students
// (note: students will never see this true; pages hidden from them will be omitted from results)
hide_from_students: false,
// roles allowed to edit the page; comma-separated list comprising a combination of
// 'teachers', 'students', 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: {
id: 133,
display_name: "Rey del Pueblo",
avatar_image_url: "https://canvas.example.com/images/thumbnails/bm90aGluZyBoZXJl",
html_url: "https://canvas.example.com/courses/789/users/133"
},
// the page content, in HTML
// (present when requesting a single page; omitted when listing pages)
body: "<p>Page Content</p>",
// whether the page is published
published: true,
// 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: {
// Asset string for the object causing the lock
asset_string: "wiki_page_1",
// (Optional) Context module causing the lock.
context_module: { ... }
},
// (Optional) An explanation of why this is locked for the user. Present when locked_for_user is true.
lock_explanation: "This discussion is locked until September 1 at 12:00am"
}
List pages WikiPagesApiController#index
GET /api/v1/courses/:course_id/pages
GET /api/v1/groups/:group_id/pages
List the wiki pages associated with a course or group
Request Parameters:
-
sort
- optional
-
Sort results by this field: one of 'title', 'created_at', or 'updated_at'
-
order
- optional
-
The sorting order: 'asc' (default) or 'desc'
-
search_term
(optional) The partial title of the pages to match and return.
Example Request:
curl -H 'Authorization: Bearer <token>' \
https://<canvas>/api/v1/courses/123/pages?sort=title&order=asc
Show page WikiPagesApiController#show
GET /api/v1/courses/:course_id/pages/:url
GET /api/v1/groups/:group_id/pages/:url
GET /api/v1/courses/:course_id/front_page
GET /api/v1/groups/:group_id/front_page
Retrieve the content of a wiki page
Request Parameters:
-
url
the unique identifier for a page.
Example Request:
curl -H 'Authorization: Bearer <token>' \
https://<canvas>/api/v1/courses/123/pages/my-page-url
curl -H 'Authorization: Bearer <token>' \
https://<canvas>/api/v1/courses/123/front_page
Create page WikiPagesApiController#create
POST /api/v1/courses/:course_id/pages
POST /api/v1/groups/:group_id/pages
Create a new wiki page
Request Parameters:
-
wiki_page[title]
the title for the new page.
-
wiki_page[body]
the content for the new page.
-
wiki_page[hide_from_students]
- boolean
-
whether the page should be hidden from students.
-
wiki_page[notify_of_update]
- boolean
-
whether participants should be notified when this page changes.
-
wiki_page[published]
- optional
- boolean
-
whether the page is published (true) or draft state (false).
-
wiki_page[front_page]
- optional
- boolean
-
set an unhidden page as the front page (if true)
Example Request:
curl -X POST -H 'Authorization: Bearer <token>' \ https://<canvas>/api/v1/courses/123/pages?wiki_page[title]=New+page&wiki_page[body]=New+body+text
Update page WikiPagesApiController#update
PUT /api/v1/courses/:course_id/pages/:url
PUT /api/v1/groups/:group_id/pages/:url
PUT /api/v1/courses/:course_id/front_page
PUT /api/v1/groups/:group_id/front_page
Update the title or contents of a wiki page
Request Parameters:
-
url
the unique identifier for a page.
-
wiki_page[title]
- optional
-
the new title for the page.
NOTE: changing a page's title will change its url. The updated url will be returned in the result.
-
wiki_page[body]
- optional
-
the new content for the page.
-
wiki_page[hide_from_students]
- optional
-
boolean; whether the page should be hidden from students.
-
wiki_page[notify_of_update]
- optional
- boolean
-
notify participants that the wiki page has been changed.
-
wiki_page[published]
- optional
- boolean
-
whether the page is published (true) or draft state (false)
-
wiki_page[front_page]
- optional
- boolean
-
set an unhidden page as the front page (if true), or un-set it (if false)
Example Request:
curl -X PUT -H 'Authorization: Bearer <token>' \ https://<canvas>/api/v1/courses/123/pages/the-page-url?wiki_page[body]=Updated+body+text
curl -X PUT -H 'Authorization: Bearer <token>' \ https://<canvas>/api/v1/courses/123/front_page?wiki_page[body]=Updated+body+text
Delete page WikiPagesApiController#destroy
DELETE /api/v1/courses/:course_id/pages/:url
DELETE /api/v1/groups/:group_id/pages/:url
DELETE /api/v1/courses/:course_id/front_page
DELETE /api/v1/groups/:group_id/front_page
Delete a wiki page
Request Parameters:
-
url
the unique identifier for a page.
Example Request:
curl -X DELETE -H 'Authorization: Bearer <token>' \ https://<canvas>/api/v1/courses/123/pages/the-page-url
curl -X DELETE -H 'Authorization: Bearer <token>' \ https://<canvas>/api/v1/courses/123/front_page