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
- View assignments and submissions
- Check grades and feedback
- Access course content
- Participate in discussions
Instructors
- Grade assignments
- Manage course content
- Create discussions and assignments
- View student analytics
- Post announcements
Administrators
- Account management
- User enrollment operations
- System-wide analytics
- Course creation and deletion
- Institution-level settings
Security Model
- 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
Configure Scopes
Configure Digital Twin
Test Integration
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.Step-by-Step Configuration
Sign in to Canvas

Navigate to Admin Panel

Access Developer Keys

Create New API Key

Configure Key Settings
| 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


Copy Credentials
- Copy the Client ID (the numeric identifier, e.g., XXX217)
- Click Show Key and copy the Client Secret
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
Locate Your Instance

Add API Credentials

API Scopes
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

Authorized Public URLs

Save Configuration
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
Ask a Canvas Question
Authorize Access
-
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

Agent Details
call_canvas agent is available in the Agent Details section of each response, allowing you to review successful execution status and identify the specific API functions that were called during the interaction.
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
Verify Domain Priority
school.instructure.com (production)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
/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
Generate New Token
- Log out of Praxis
- Log back in
- Re-authorize Canvas access when prompted
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:Go to Profile

Remove Token

Issue New 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
: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
Discussions
Discussions
Grades & Submissions
Grades & Submissions
Quizzes
Quizzes
Announcements
Announcements
Modules & Content
Modules & Content
Users & Enrollments
Users & Enrollments
Files & Documents
Files & Documents
Groups
Groups
Rubrics
Rubrics
Assignment Groups
Assignment Groups
Analytics
Analytics
Smart Search
Smart Search
Calendar
Calendar
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
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
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
