list_course_submission_files
Retrieve every file attachment submitted by students across a course's assignments. Enables bulk archiving of student work before course expiration or account closure.
Instructions
List every file attachment submitted by students across all assignments in a course. Returns a manifest — one entry per file — including the original filename, a file_id for re-fetching via download_file, content type, and size. Useful for bulk-archiving student work before a course expires or a Free-For-Teacher account is concluded. Outputs are bounded by max_files (default 500); when the limit is hit, truncated is true and truncation_note explains how to retrieve the rest. Download URLs are time-limited (typically 1 hour) — use the returned file_id with download_file to get a fresh URL at download time. When CANVAS_PSEUDONYMIZE_STUDENTS is enabled, user_name is a stable per-course pseudonym (e.g. "Student 1"); user_id (the raw numeric Canvas ID) is always returned and works as a stable per-student folder key.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | Yes | Canvas course ID. | |
| max_files | No | Maximum number of file entries to return (1–2000). Default 500. When the limit is hit, truncated is set to true. | |
| student_ids | No | Restrict to these student user IDs. Omit to include all students. When CANVAS_PSEUDONYMIZE_STUDENTS is enabled, pass the real Canvas user_id after resolving the pseudonym via resolve_pseudonym. | |
| assignment_ids | No | Restrict to these assignment IDs. Omit to scan all assignments. | |
| workflow_state | No | Only include submissions in this workflow state. Omit to include all states. | |
| attachments_only | No | When true (default), skip submissions that have no file attachments. When false, still only emit file entries but process every submission. |