canvas-lms/doc/api
Simon Williams d4a3346cea bump yard to 0.9.20
https://github.com/lsegal/yard/blob/master/CHANGELOG.md

yard 0.9.6 added functionality which parses code blocks and tries to
auto link constants to their respective yard documentation. this means
that code blocks with invalid constants cause issues, which is why we
need to properly quote strings in our code blocks.

Change-Id: I0814ebb2658935f8bd3d528515acfdb5041d1e0f
Reviewed-on: https://gerrit.instructure.com/212925
Tested-by: Jenkins
Reviewed-by: Cameron Matheson <cameron@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2019-10-14 15:12:49 +00:00
..
appendix/html Add copyright message to remaining .rb files 2018-03-19 13:38:50 +00:00
docstring/html rename doc/templates/rest to doc/api 2011-12-30 09:00:27 -07:00
fulldoc/html fix lti variable substitution doc generation 2019-02-25 16:30:51 +00:00
layout/html add api documentation for graphql 2019-06-24 18:44:50 +00:00
method_details/html api docs: add deprecation functionality + documentation 2018-08-16 18:27:55 +00:00
tags api docs: add deprecation functionality + documentation 2018-08-16 18:27:55 +00:00
topic/html api docs: add deprecation functionality + documentation 2018-08-16 18:27:55 +00:00
README.md update link for API terms of service 2019-02-15 18:15:58 +00:00
api_routes.rb api docs: add deprecation functionality + documentation 2018-08-16 18:27:55 +00:00
assignment_external_tools.md add assignment_view lti launch placement 2018-09-13 14:33:58 +00:00
assignment_tools.md Add submittedAt details to Basic Outcomes 2018-04-23 17:06:49 +00:00
breaking.md update API Change log for 2019-07-13 release 2019-06-26 14:37:52 +00:00
caliper_live_events.md live events to caliper documentation 2018-08-14 16:29:54 +00:00
changelog.md Update API Change Log for 2019-09-21 2019-08-22 19:34:55 +00:00
changelog_archive.md Update API Change Log for 2019-09-21 2019-08-22 19:34:55 +00:00
compound_documents.md improve api documentation syntax highlighting 2016-01-15 23:25:27 +00:00
content_item.md Add content item to API docs and add deprecation resource select 2016-10-28 19:53:36 +00:00
developer_keys.md update links in developer keys documentation 2018-12-03 19:01:07 +00:00
editor_button_tools.md Clarify "rich editor" and "link selection" api docs 2016-11-09 20:59:58 +00:00
endpoint_attributes.md improve api documentation syntax highlighting 2016-01-15 23:25:27 +00:00
file_uploads.md update files API for uploading via url 2019-08-05 20:16:19 +00:00
graphql.md add api documentation for graphql 2019-06-24 18:44:50 +00:00
homework_submission_tools.md fixes improperly formatted external tool documentation 2013-10-31 20:43:09 +00:00
jwt_access_tokens.md Add plagiarism detection platform docs 2017-06-08 18:32:03 +00:00
link_selection_tools.md Clarify "rich editor" and "link selection" api docs 2016-11-09 20:59:58 +00:00
live_events.md Add new LiveEvent for Submission Comment Created 2019-07-03 19:50:55 +00:00
masquerading.md improve api documentation syntax highlighting 2016-01-15 23:25:27 +00:00
navigation_tools.md update navigation_tools.md to remove links 2018-11-20 22:04:15 +00:00
oauth.md Update OAuth2 docs to include LTI Advantage. 2019-07-02 19:18:04 +00:00
oauth_endpoints.md Update OAuth2 docs to include LTI Advantage. 2019-07-02 19:18:04 +00:00
object_ids.md allow group_categories to be looked up by sis_id 2018-01-16 18:29:50 +00:00
originality_report_appendix.md Add originality report documentation 2017-06-12 13:22:13 +00:00
outcomes_csv.md clarify reserved prefixes in outcomes import 2018-06-27 19:31:37 +00:00
pagination.md change api pagination to include the current page link 2013-08-16 19:13:25 +00:00
plagiarism_platform.md Add plagiarism platform group assignment docs 2018-06-11 16:10:03 +00:00
sis_csv.md allow for creating logins through sis importer 2019-07-02 23:22:09 +00:00
subscriptions_appendix.md Change references to grade_changed event to grade_change event 2017-10-19 14:28:17 +00:00
throttling.md add headers to inform the client where they stand for throttling 2015-04-09 15:52:22 +00:00
tools_intro.md Add content item to API docs and add deprecation resource select 2016-10-28 19:53:36 +00:00
tools_variable_substitutions.head.md canvas.docker is a development only hostname 2018-05-10 21:56:07 +00:00
tools_variable_substitutions.md bump yard to 0.9.20 2019-10-14 15:12:49 +00:00
tools_xml.md add assignment_view lti launch placement 2018-09-13 14:33:58 +00:00
xapi.md Update xAPI links 2019-03-27 15:15:57 +00:00

README.md

Welcome to the Canvas LMS API Documentation

Canvas LMS includes a REST API for accessing and modifying data externally from the main application, in your own programs and scripts. This documentation describes the resources that make up the API.

To get started, you'll want to review the general basics, including the information below and the page on Authentication using OAuth2.

API Changes

To follow notable API changes, view the API Change Log.

For a summary of all deprecations, view the breaking changes API page.

API Terms of Service

Please carefully review The Canvas Cloud API Terms of Service before using the API.

Schema

All API access is over HTTPS, against your normal Canvas domain.

All API responses are in JSON format.

All integer ids in Canvas are 64 bit integers. String ids are also used in Canvas.

To force all ids to strings add the request header Accept: application/json+canvas-string-ids This will cause Canvas to return even integer IDs as strings, preventing problems with languages (particularly JavaScript) that can't properly process large integers.

All boolean parameters can be passed as true/false, t/f, yes/no, y/n, on/off, or 1/0. When using JSON format, a literal true/false is preferred, rather than as a string.

For POST and PUT requests, parameters are sent using standard HTML form encoding (the application/x-www-form-urlencoded content type).

POST and PUT requests may also optionally be sent in JSON format format. The content-type of the request must be set to application/json in this case. There is currently no way to upload a file as part of a JSON POST, the multipart form type must be used.

As an example, this HTML form request:

name=test+name&file_ids[]=1&file_ids[]=2&sub[name]=foo&sub[message]=bar&flag=y

would translate into this JSON request:

{ "name": "test name", "file_ids": [1,2], "sub": { "name": "foo", "message": "bar" }, "flag": true }

With either encoding, all timestamps are sent and returned in ISO 8601 format (UTC time zone):

YYYY-MM-DDTHH:MM:SSZ

Authentication

API authentication is done with OAuth2. If possible, using the HTTP Authorization header is recommended. Sending the access token in the query string or POST parameters is also supported.

OAuth2 Token sent in header:

curl -H "Authorization: Bearer <ACCESS-TOKEN>" "https://canvas.instructure.com/api/v1/courses"

OAuth2 Token sent in query string:

curl "https://canvas.instructure.com/api/v1/courses?access_token=<ACCESS-TOKEN>"

Read more about OAuth2 and how to get access tokens.

SSL

Note that if you make an API call using HTTP instead of HTTPS, you will be redirected to HTTPS. However, at that point, the credentials have already been sent in clear over the internet. Please make sure that you are using HTTPS.

About this Documentation

This documentation is generated directly from the Canvas LMS code. You can generate this documentation yourself if you've set up a local Canvas environment following the instructions on Github. Run the following command from your Canvas directory:

bundle exec rake doc:api