The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December.
Read our blog post for more info about this change.
Found this content helpful? Log in or sign up to leave a like!
Hello Friends,
Sounds like a simple request... How many Fall 2024 courses have cross-listed sections?
By referencing the https://canvas.instructure.com/doc/api/all_resources.html list, I thought the sections table could provide the raw data. Before writing my own script, I used the provisioning report included in the Admin Reports and choose the section and Fall parameters, but that data only showed 4 cross listed sections which doesn't seem accurate at all. Has anyone already sorted out how to find how many courses have cross listed sections for a term?
Greatly appreciated.
Linda
Hi @LindaWilin1,
This is going to somewhat depend on how your courses are created (especially if you're using an SIS integration) and what you'd consider a crosslisted course vs what Canvas would consider one. Canvas does have its crosslist function, and that's what you'd see with something like the provisioning report. Your SIS integration may utilize the Canvas crosslist function, but it may just also place multiple sections in a single course shell, which Canvas doesn't count as crosslisting itself. You may be looking for courses with more than one section, which you could deduce with a section provisioning report too, but you may be looking for something totally different. If you can give any more info about how your systems work (if you happen to know), and what exactly you're looking for since crosslisting is not a very exact word, someone may be able to offer some more precise guidance.
I look forward to hearing back from you!
-Chris
Hi @LindaWilin1 ,
I have a couple of queries that will return sections for a course, with the second one only returning cross-listed sections in a course. These are for courses that are cross-listed in Canvas. You will, of course, need to modify the query for your CD2 instance.
This query will return all courses for a specific term along with the sections for each course in Canvas:
SELECT c.id AS "course_id", c.sis_source_id, c.course_code, c.name, c.workflow_state, c.account_id, c.enrollment_term_id,
s.id AS "section_id", s.workflow_state, s.sis_source_id, s.name, s.nonxlist_course_id
FROM courses c
INNER JOIN course_sections s ON (c.id = s.course_id)
WHERE c.enrollment_term_id = <term_id_here>;
This query will return courses for a specific term along with only cross-listed sections for each course in Canvas:
SELECT c.id AS "course_id", c.sis_source_id, c.course_code, c.name, c.workflow_state, c.account_id, c.enrollment_term_id,
s.id AS "section_id", s.workflow_state, s.sis_source_id, s.name, s.default_section, s.nonxlist_course_id
FROM courses c
INNER JOIN course_sections s ON (c.id = s.course_id)
WHERE c.enrollment_term_id = <term_id_here>
AND s.nonxlist_course_id is not null;
@chriscas @agschmid Thank you both for responding so quickly. I did check about Chris's idea and we do have two ways courses are cross-listed (via the manual method with Canvas and also within our CIM/PIM system which is SIS integrated). Thanks agschmid for your script examples. I'll work with this information more and let you know how it goes. Greatly appreciated!
I recently wrote a script to do this task and it ended up being a bit more difficult than one would originally imagine. Not sure if this is being asked from a coding side but if it is, the way I did it was by creating a list of all active courses in a year, from there you can get the ID's of each course and use the "{base_URL}/api/v1/courses/{id}/sections". This will return a json response which if it has a length or size greater than 1 (meaning it is a parent course + some cross-listed course) you can extract the course_id s from those and use those ID's to create a list of all the parent courses + their associated cross-listed courses. Hope this helps!
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in