canvas-lms/doc/api
Ethan Knapp 4857022ef0 update OutcomeImports csv format documentation
flag=none
refs PFS-19448, PFS-18643

Change-Id: Iac60f8174610f4dd61c1b65dd2a014df0b4929ef
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285565
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2022-02-18 23:12:38 +00:00
..
appendix/html RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
data_services Change list format to match rest of docs 2022-02-02 15:39:22 +00:00
docstring/html RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
fulldoc/html Stop using google fonts on user-facing pages 2022-02-07 20:55:16 +00:00
layout/html RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
method_details/html RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
tags RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
topic/html RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
README.md Update Canvas API TOS link 2021-11-22 16:38:56 +00:00
api_routes.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
assignment_external_tools.md add assignment_view lti launch placement 2018-09-13 14:33:58 +00:00
assignment_selection_placement.md Update community urls to reflect platform move 2020-08-12 20:17:02 +00:00
assignment_tools.md docs: clarify that AGS is throttled 2022-02-09 23:09:04 +00:00
changelog.md Update community urls to reflect platform move 2020-08-12 20:17:02 +00:00
collaborations_placement.md clarify how to include groups in collaborations 2021-06-21 18:19:11 +00:00
compound_documents.md improve api documentation syntax highlighting 2016-01-15 23:25:27 +00:00
content_item.md document new deep linking line items features 2021-12-22 19:50:51 +00:00
developer_keys.md Removed old docs about global developer keys 2020-05-07 17:52:45 +00:00
editor_button_placement.md Update community urls to reflect platform move 2020-08-12 20:17:02 +00:00
editor_button_tools.md Overhaul External Tools API Docs 2019-10-29 18:13:24 +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 first pass at exposing API Gateway docs to canvas users 2021-10-04 19:06:12 +00:00
group_category_csv.md don't include group info when none exist 2020-11-05 17:35:29 +00:00
homework_submission_placement.md Update community urls to reflect platform move 2020-08-12 20:17:02 +00:00
homework_submission_tools.md fixes improperly formatted external tool documentation 2013-10-31 20:43:09 +00:00
jwt_access_tokens.md Remove wording about removed feature flag 2020-08-17 18:26:33 +00:00
link_selection_placement.md Update community urls to reflect platform move 2020-08-12 20:17:02 +00:00
link_selection_tools.md Clarify "rich editor" and "link selection" api docs 2016-11-09 20:59:58 +00:00
lti_dev_key_config.md update API docs to reflect LTI placement enabled 2021-10-06 20:36:07 +00:00
lti_window_post_message.md messages: rename messageType to subject everywhere 2022-02-18 20:07:03 +00:00
masquerading.md improve api documentation syntax highlighting 2016-01-15 23:25:27 +00:00
migration_selection_placement.md Overhaul External Tools API Docs 2019-10-29 18:13:24 +00:00
navigation_tools.md Better module progression for New Quizzes 2021-06-23 22:24:17 +00:00
oauth.md send state in oauth step 1 error redirect 2022-01-20 18:06:17 +00:00
oauth_endpoints.md add passive (`prompt=none`) option for oauth 2021-02-10 21:31:48 +00:00
object_ids.md allow api_find to use lti 1.3 id 2021-08-05 16:51:39 +00:00
originality_report_appendix.md Add originality report documentation 2017-06-12 13:22:13 +00:00
outcomes_csv.md update OutcomeImports csv format documentation 2022-02-18 23:12:38 +00:00
pagination.md change api pagination to include the current page link 2013-08-16 19:13:25 +00:00
plagiarism_platform.md docs: clarify Webhooks are for Plagiarism Platform 2021-08-04 20:07:41 +00:00
provisioning.md Update community urls to reflect platform move 2020-08-12 20:17:02 +00:00
sis_csv.md Add possibility to import course with friendly_name 2022-02-09 14:02:33 +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 Update community urls to reflect platform move 2020-08-12 20:17:02 +00:00
tools_variable_substitutions.head.md Update community urls to reflect platform move 2020-08-12 20:17:02 +00:00
tools_variable_substitutions.md Create root account flag for B&I 2022-02-09 18:28:53 +00:00
tools_xml.md Update community urls to reflect platform move 2020-08-12 20:17:02 +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

For API resources, such as the API Change Log for additions, changes, deprecations, and removals, view the Canvas API page in the Canvas Community.

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