How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Canvas External Tools API

The External Tools API from Canvas — 11 operation(s) for external tools.

Canvas External Tools API is one of 145 APIs that Canvas publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include External Tools. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, authentication docs, a GitHub repository, an API reference, and rate-limit docs.

This API exposes 19 operations across 11 paths, and defines 2 schemas. It is described by OpenAPI 3.2.0, at version v1.

Requests are made against 2 base URLs: https://canvas.instructure.com/api, https://{canvas_host}/api.

19 operations 11 paths 2 schemas 4 DELETE9 GET4 POST2 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
v1
Base URL
https://canvas.instructure.com/api/v1
Authentication
HTTP Bearer, OAuth 2.0
License
Resource Areas
1

Authentication & Security 2

Canvas External Tools API declares 2 security schemes for authenticating requests. It accepts HTTP bearer tokens (bearerAuth). It supports OAuth 2.0 (oauth2) using the authorizationCode flow. By default, every request must be authenticated.

  • bearerAuth — Canvas OAuth2 access token sent as "Authorization: Bearer ". See https://canvas.instructure.com/doc/api/file.oauth.html
  • oauth2 — Canvas OAuth2. See https://canvas.instructure.com/doc/api/file.oauth.html and https://canvas.instructure.com/doc/api/file.oauthendpoints.html

Paths & Operations 19

Across 11 paths, the API surfaces 19 operations — 4 DELETE, 9 GET, 4 POST, 2 PUT. Each is listed below with its method, path, parameters, and response codes.

External Tools 19
GET
/v1/courses/{course_id}/external_tools
List external tools
list_external_tools_courses 5 params → 200
POST
/v1/courses/{course_id}/external_tools
Create an external tool
create_external_tool_courses 1 param body → 200
GET
/v1/accounts/{account_id}/external_tools
List external tools
list_external_tools_accounts 5 params → 200
POST
/v1/accounts/{account_id}/external_tools
Create an external tool
create_external_tool_accounts 1 param body → 200
GET
/v1/groups/{group_id}/external_tools
List external tools
list_external_tools_groups 5 params → 200
GET
/v1/courses/{course_id}/external_tools/sessionless_launch
Get a sessionless launch url for an external tool
get_sessionless_launch_url_for_external_tool_courses 7 params → 200
GET
/v1/accounts/{account_id}/external_tools/sessionless_launch
Get a sessionless launch url for an external tool
get_sessionless_launch_url_for_external_tool_accounts 7 params → 200
GET
/v1/courses/{course_id}/external_tools/{external_tool_id}
Get a single external tool
get_single_external_tool_courses 2 params → 200
PUT
/v1/courses/{course_id}/external_tools/{external_tool_id}
Edit an external tool
edit_external_tool_courses 2 params → 200
DELETE
/v1/courses/{course_id}/external_tools/{external_tool_id}
Delete an external tool
delete_external_tool_courses 2 params → 200
GET
/v1/accounts/{account_id}/external_tools/{external_tool_id}
Get a single external tool
get_single_external_tool_accounts 2 params → 200
PUT
/v1/accounts/{account_id}/external_tools/{external_tool_id}
Edit an external tool
edit_external_tool_accounts 2 params → 200
DELETE
/v1/accounts/{account_id}/external_tools/{external_tool_id}
Delete an external tool
delete_external_tool_accounts 2 params → 200
POST
/v1/accounts/{account_id}/external_tools/rce_favorites/{id}
Mark tool as RCE Favorite
mark_tool_as_rce_favorite 2 params → 200
DELETE
/v1/accounts/{account_id}/external_tools/rce_favorites/{id}
Unmark tool as RCE Favorite
unmark_tool_as_rce_favorite 2 params → 200
POST
/v1/accounts/{account_id}/external_tools/top_nav_favorites/{id}
Add tool to Top Navigation Favorites
add_tool_to_top_navigation_favorites 2 params → 200
DELETE
/v1/accounts/{account_id}/external_tools/top_nav_favorites/{id}
Remove tool from Top Navigation Favorites
remove_tool_from_top_navigation_favorites 2 params → 200
GET
/v1/external_tools/visible_course_nav_tools
Get visible course navigation tools
get_visible_course_navigation_tools 1 param → 200
GET
/v1/courses/{course_id}/external_tools/visible_course_nav_tools
Get visible course navigation tools for a single course
get_visible_course_navigation_tools_for_single_course 1 param → 200

Schemas 2

The contract defines 2 schemas that model the data the API accepts and returns. The most detailed are ContextExternalTool (70 properties), ContextExternalToolMessageSettings (4 properties). Each schema is shown below with its type and property counts.

ContextExternalToolMessageSettings
object
Configuration for a placementless message type (message type that doesn't belong to a specific placement)
4 properties
ContextExternalTool
object
An external tool configured for a specific context
70 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

canvas-external-tools-api-openapi.yml Raw ↑

Other APIs Canvas publishes across the network.

Canvas LMS GraphQL API
Canvas LTI Integrations
Canvas Courses API
Canvas Access Tokens API
Canvas Accessibility Course Scans API
Canvas Accessibility Course Statistics API
Canvas Account Calendars API
Canvas Account Domain Lookups API
Canvas Account Notifications API
Canvas Account Reports API
Canvas Accounts API
Canvas Accounts (Lti) API
Where this information came from

This is an independent, third-party profile of Canvas External Tools API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.