Overview
The Canvas Agent enables seamless, conversational access to your Canvas Learning Management System through natural language queries. Instead of navigating through multiple web pages and menus, users can simply ask questions and receive immediate, accurate responses powered by Canvas REST APIs.Benefits and Use Cases
For Students
The Canvas Agent transforms how students interact with their coursework by providing instant access to critical information:- Quick Assignment Lookups: Ask “When is my biology assignment due?” or “What assignments do I have this week?” to get immediate answers
- Grade Tracking: Query “What’s my current grade in calculus?” or “Show me my quiz scores” without navigating through multiple pages
- Discussion Management: Find out “What discussions do I need to respond to this week?” to stay on top of participation requirements
- Deadline Management: Eliminate the stress of clicking through Canvas menus during busy study periods
For Educators
Teachers and instructors gain powerful administrative and pedagogical capabilities:- Student Progress Monitoring: Instantly identify “Which students haven’t submitted their midterm papers?” or “Show me all students who scored below 70% on the last three quizzes”
- Data-Driven Instruction: Access participation data, engagement metrics, and performance analytics for early intervention strategies
- Administrative Efficiency: Check enrollment numbers, retrieve discussion participation data, and manage course logistics through simple conversations
- Content Management: Create discussion posts, manage assignments, and update course materials using natural language commands
Advanced Capabilities
The agent handles sophisticated queries that would typically require multiple manual steps:- Complex filtering and sorting of student data
- Bulk operations on assignments and enrollments
- Cross-referencing multiple data sources (grades, submissions, participation)
- Automated reporting and analytics generation
How It Works
Architecture
Behind the scenes, the Canvas Agent operates through a sophisticated translation layer:- Natural Language Processing: Converts user questions into structured API requests
- Authentication Handling: Automatically manages OAuth tokens and session credentials
- API Translation: Maps conversational queries to precise Canvas REST API endpoints
- Data Formatting: Transforms API responses into human-readable, contextual answers
- Error Handling: Gracefully manages API limitations and provides helpful feedback
Example Workflows
Student Query Flow:Role-Based Access Control
The Canvas Agent implements intelligent, automatic role-based access control that adapts to each user’s Canvas permissions:Automatic Role Detection
The system determines user roles through:- SSO (Single Sign-On) authentication data
- OAuth token permissions and scopes
- Canvas enrollment and membership information
Permission Levels
Students
Read-Only Access
- View assignments and submissions
- Check grades and feedback
- Access course content
- Participate in discussions
Instructors
Teaching Functions
- Grade assignments
- Manage course content
- Create discussions and assignments
- View student analytics
- Post announcements
Administrators
Full Access
- Account management
- User enrollment operations
- System-wide analytics
- Course creation and deletion
- Institution-level settings
Security Model
The agent operates conservatively by default, restricting access to only those operations explicitly permitted by the user’s Canvas role. This ensures compliance with institutional policies and prevents unauthorized access to sensitive data.
- Automatic permission verification before each API call
- Scope-based access control aligned with Canvas permissions
- Session-based authentication with automatic token refresh
- Audit logging of all API interactions
- Graceful denial of unauthorized requests with clear messaging
Getting Started
Prerequisites
Before configuring the Canvas Agent, ensure you have:- Administrative access to your Canvas instance
- Permissions to create Developer Keys in Canvas
- Access to your Praxis Digital Twin configuration panel
Setup Overview
Create Developer Key
Generate API credentials in Canvas to enable communication between Praxis and Canvas
The Developer Key you create for API access is separate and distinct from any LTI (Learning Tools Interoperability) keys used for embedding Pria as an LTI activity within Canvas.
Multi-Instance Management
For Accounts Managing Multiple Digital Twins: Organizations with multiple Digital Twin instances can streamline configuration by storing Canvas API credentials at the account level:- Centralized Configuration: Set Canvas Client ID and Secret once at the parent account level
- Automatic Inheritance: All child Digital Twin instances automatically inherit these credentials
- Simplified Maintenance: Update credentials in one place to affect all instances
- Focus on Customization: Teachers can concentrate on behavior and content personalization rather than technical setup
Create Developer Keys
Developer Keys provide the authentication credentials necessary for your Digital Twin to communicate with Canvas through REST APIs.Only one Developer Key is needed per institution and can be shared across multiple Praxis instances.
Step-by-Step Configuration
Navigate to Admin Panel
Click Admin in the left navigation menu, then select your institution’s account (e.g., “Praxis AI”).

Create New API Key
a. Click the + Developer Key button in the top-right corner
b. Select + API Key from the dropdown menu

Configure Key Settings
Fill in the following required fields:
Leave all other fields empty.
| Field | Value | Purpose |
|---|---|---|
| Key Name | Pria Smart Search | Displayed in OAuth consent form |
| Owner Email | Your institution’s admin email | Contact for key management |
| Redirect URI | https://pria.praxislxp.com/api/auth/token_complete | OAuth callback endpoint |
| Icon URL | https://pria.praxislxp.com/logo192.png | Displayed in consent form |

Configure API Scopes
a. Development Mode: While developing and testing, you may choose to disable scope enforcement to allow unrestricted API access. During this phase, monitor the Agent Details in your dialog history to identify which endpoints your queries use. Document these for production scope configuration.b. Use the search box to find specific API functions (e.g., type “smart” to locate Smart Search)c. Check the boxes for each API function you want to authorize
d. Click Save in the bottom-right cornere. Enable the Developer Key by toggling the State button to “ON”

Repeat this process to authorize additional API functions as needed. See the Canvas Scopes section for detailed scope information.

Remember: One Developer Key can serve multiple Praxis instances. You’ll use these credentials when configuring each Digital Twin that needs Canvas access.
Understanding Scope Enforcement
When you enable scopes for Pria’s API integration, you establish precise security boundaries:- Explicit Permissions: Define exactly which Canvas operations Pria can perform on behalf of users
- Principle of Least Privilege: Grant only the minimum access necessary for required functionality
- Data Protection: Ensure Pria accesses only the data it needs to function
- Audit Trail: Track which API functions are authorized and used
Digital Twin Configuration
After creating your Developer Key in Canvas, you need to configure your Digital Twin instance with the API credentials.Configuration Steps
Access Admin Panel
Click the Admin (⌂) icon at the top of your Praxis interface and select Instances
Locate Your Instance
Find your Digital Twin instance in the list and click the green Edit pencil icon on the left.

Add API Credentials
In the Edit Instance panel:a. Scroll down to the Configuration and Integration sectionb. Locate the Canvas Client ID and Canvas Client Secret fields in the Canvas sectionc. Paste the credentials you copied from the Canvas Developer Key in the Client ID and secret fields

API Scopes
Add any scopes that your instance plans to use—by default, each scope follows a well-defined syntax such as url:GET|/api/v1/courses/:course_id/smartsearch and takes the form 
url:<HTTP Verb>|<Canvas API Endpoint Path> (for example, the scope for the GET /api/v1/courses/:course_id/rubrics API endpoint would be url:GET|/api/v1/courses/:course_id/rubrics).Each Canvas API endpoint has an associated scope, and Canvas developer key scopes can only be enabled or disabled by a root account administrator or an Instructure employee. More info: Canvas REST APIs Scopes
Authenticate on SDK Login
Enable the Authenticate with Canvas on SDK login toggle to require students to authenticate in Canvas and generate an authorization token before accessing the digital twin, adding an extra security layer to your integration.

Authorized Public URLs
The Canvas agents use the first URL in the public URLs list to authenticate and execute requests against your institution’s Canvas REST APIs—ensure this URL is correct.
As an example, the first URL in the list is Praxis AI’s Instructure URL: https://praxis-ai.instructure.com.

These credentials enable your Digital Twin to authenticate with Canvas on behalf of users. The actual user permissions are determined by their Canvas role and the OAuth authorization they grant.
Testing Your Canvas Integration
Once configuration is complete, verify that your Digital Twin can successfully connect to Canvas. This is the authorization screen students and instructors will see when first connecting to Canvas:
Initial Connection Test
Authorize Access
On first connection (or when your token expires), you’ll be prompted to authorize your Digital Twin to access Canvas:
-
Click the authorization link provided

-
Review the permissions requested

- Click Authorize in the Canvas OAuth consent screen
-
You’ll be redirected back to Praxis automatically

Verify Response
Your Digital Twin should return relevant information from your Canvas course, confirming successful integration.

Token Management: Access tokens are valid for 60 minutes and are automatically refreshed in the background to maintain seamless access. You typically only need to authorize once per session or when tokens expire.
What to Test
Verify different types of queries based on your role: Students:Troubleshooting
Standalone accounts
Instance not properly configured: Your account is stand alone and is not integrated with Canvas. It must be associated to an instance properly configured by your Teacher or Administrator.Invalid or missing API URL
Symptom: Authentication fails or redirects to the wrong Canvas instance Instance not properly configured: Access to Canvas LMS requires a valid Authorized Public URL property for your instance! This value can be configured using the Administration UI. For missing or incorrect API Url Cause: The system cannot determine your institution’s Canvas domain, or there’s a mismatch in the authorized URLs configuration. Solution:Check Authorized URLs
In your Digital Twin configuration, ensure the first line of your Public Authorized URLs contains your institution’s primary Canvas domain:
Invalid or missing Client ID or Secret
Symptom: Error message about Client ID or Secret missing Instance not properly configured: Access to Canvas LMS requires a valid Client Id for your instance! This value can be configured using the Administration UI. Instance not properly configured: Access to Canvas LMS requires a valid client secret for your instance! This value can be configured using the Administration UI. Solution:- Verify that you’ve copied the correct Client ID and Secret from Canvas
- Ensure the Developer Key is enabled in Canvas
- Check that the Redirect URI in Canvas matches:
https://pria.praxislxp.com/api/auth/token_complete - Update your Digital Twin instance with the correct credentials
Invalid or missing Course information
Integration user issue: Access to Canvas LMS requires a valid course Id. Please launch from a valid course page in your Canvas instance!Insufficient Scopes Error
Error Message:Identify Required Scope
From the error message, note the endpoint path (e.g.,
/api/v1/courses/:course_id/assignments)Add Scope in Canvas
- Return to Canvas Developer Keys
- Edit your Pria API key
- Search for and enable the required scope
- Save changes
Token Expiration Issues
Symptom: Frequent re-authorization requests or “token expired” messages Cause: Access tokens expire after 60 minutes of inactivity Solution: This is normal behavior. The system automatically refreshes tokens in the background. If you’re prompted to re-authorize:- Click the authorization link
- Approve the request in Canvas
- Continue your session
Removing Token
When scopes have changed and require a new token, or to simply re-issue a new authorization token:Canvas Scopes
Understanding Scopes
Canvas API scopes are granular permission controls that define exactly which actions an application can perform when accessing Canvas data through the REST API. Key Concepts:- Principle of Least Privilege: Applications should only have access to what they absolutely need
- Endpoint-Specific: Each scope corresponds to specific API endpoints and HTTP methods
- Security Layer: Scopes work in conjunction with user roles to enforce access control
Scope Anatomy
Each scope is a pipe-delimited string with three components:- Literal prefix: Always starts with
url: - HTTP Method:
GET,POST,PUT, orDELETE - Endpoint Path: The API path without the domain
- Method: GET (read-only)
- Resource: Course enrollments
- Context: Within a specific course
Path Variables: URL parameters are written with colon notation (e.g.,
:user_id, :course_id, :assignment_id). When defining scopes, ensure variable names match exactly—scope comparison is token-based and case-sensitive.Official Documentation
For the complete, authoritative list of all available Canvas API scopes and endpoints, consult: Canvas REST API DocumentationCommon Scopes by Category
Assignments
Assignments
List Assignments:Get Single Assignment:Update Submission (grading, comments):List Submissions:
Discussions
Discussions
List Discussion Topics:Create Discussion:Get Discussion Entries:
Grades & Submissions
Grades & Submissions
List All Submissions:Get User Grades:
Quizzes
Quizzes
List Quizzes:Get Quiz Submissions:
Announcements
Announcements
List Announcements:Create Announcement:(Announcements are special discussion topics)
Modules & Content
Modules & Content
List Modules:List Module Items:List Pages:Get Page Content:
Users & Enrollments
Users & Enrollments
List Course Users:List Enrollments:
Files & Documents
Files & Documents
List Course Files:Get File Details:
Groups
Groups
List Course Groups:
Rubrics
Rubrics
List Rubrics:
Assignment Groups
Assignment Groups
List Assignment Groups:
Analytics
Analytics
Course Activity:Assignment Analytics:Student Summaries:Individual Student Activity:
Smart Search
Smart Search
Smart Search (recommended fallback):
Calendar
Calendar
User Calendar Events:
Choosing Scopes for Your Use Case
Select scopes based on the specific functionality your Digital Twin needs to provide: Example: Auto-Grader AssistantBest Practices for Scope Management
Starter Scope Configuration
Use this starter JSON as a foundation for your scope configuration. This includes commonly used endpoints for typical Digital Twin functionality:Suggested Scopes
Here is a list of scopes suggested by Pria, Here’s the enhanced list with the most common Canvas API operations for students and teachers:Key Additions by User Type:
Students:- POST submissions (submit assignments)
- POST discussion entries (participate in discussions)
- GET own submissions
- Mark module items as complete
- Take quizzes
- Send messages
- View their own profile
- Create/update/delete assignments, pages, modules
- Grade submissions and add comments
- Bulk grading operations
- Create announcements and discussions
- Manage enrollments and groups
- Create quizzes and rubrics
- Access analytics
- Update course settings
- Manage course files and folders
Latest Version: The most current version of this starter configuration is maintained in the Praxis AI Community Repository - please contribute:Canvas Scopes Configuration
Scope Troubleshooting
Insufficient Scopes Error:- Identify the missing scope from the error message endpoint
- Add the scope to your Canvas Developer Key
- Ensure the scope is also listed in your Digital Twin configuration
- Have users re-authorize to receive updated tokens
Smart Search
Canvas Smart Search provides an intelligent fallback mechanism when specific API endpoints are unavailable or return insufficient data due to scope restrictions.What is Smart Search?
Smart Search is Canvas’s AI-powered search capability that allows natural language queries across course content, returning relevant results from:- Assignments and submissions
- Discussion topics and posts
- Pages and modules
- Files and documents
- Announcements
- Quiz content
How the Canvas Agent Uses Smart Search
The Canvas Agent automatically falls back to Smart Search when:- Specific API endpoints lack required scopes
- Direct API queries return no results
- Complex cross-resource queries are needed
- Natural language search provides better context
Official Documentation
For detailed information about Smart Search capabilities and parameters: Canvas Smart Search API DocumentationAvailability and Requirements
Environment Availability: According to Canvas deployment notes, Smart Search is available only for Beta and Production releases. It may not be available in test or development Canvas instances.If you experience issues with Smart Search even after proper configuration, contact Instructure Support to verify that your Canvas instance has Smart Search enabled.
Best Practices
Additional Resources
Documentation Links
Support
For assistance with Canvas Agent configuration or troubleshooting:- Search for help on the Canvas Community
- Contact Praxis AI Support for Digital Twin configuration issues
- Contact Instructure Support for Canvas-specific API or Smart Search availability questions





