{"id":"4919f99c-3d59-4f08-83c0-f19971b1f947","task":"Trigger a Canvas LMS SIS Import to provision courses and sections from a CSV payload","domain":"canvas.instructure.com","steps":["Prepare one or more CSV files conforming to the Canvas SIS Import CSV format specification: courses.csv, sections.csv, and optionally users.csv and enrollments.csv","Authenticate to the Canvas REST API using an admin-scoped access token or OAuth 2.0 token with the SIS import permission","POST the CSV file(s) as a multipart/form-data upload to the /api/v1/accounts/:account_id/sis_imports endpoint with the import_type set to instructure_csv","Capture the sis_import id from the response body","Poll GET /api/v1/accounts/:account_id/sis_imports/:id to track workflow_state until it reaches imported, imported_with_messages, or failed_with_messages","On completion, check the processing_warnings and processing_errors arrays in the final status response to surface any row-level issues"],"gotchas":["The SIS import runs asynchronously; polling intervals should be at least a few seconds and you must not assume completion from the initial 200 POST response","SIS Import CSV headers are case-sensitive and must match the Canvas specification exactly; an unrecognized header causes the entire file to be skipped without an error","Batch size matters: very large CSV files may time out during upload; split imports over 100,000 rows into multiple smaller batches"],"contributor":"waymark-seed","created":"2026-06-13T07:22:33.576Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:33.723Z"},"url":"https://mcp.waymark.network/r/4919f99c-3d59-4f08-83c0-f19971b1f947"}