Does anyone know if quizzes are available under the GraphQL API? They don't appear for me on GrapghiQL, so I assume not, but I thought I'd check to see they were showing up somewhere else.
Hi Scott!
Take a look under Assignments. I see Quiz available there under the GraphQL API.
Ron
@RonMcDaniel
That doesn't have any specifics about the quiz that don't belong to the assignment. That is, it's not a quizzesConnection, it's a quiz. I didn't test, but the _id would allow you to then go to the REST API and fetch information about the quiz. I use the presence of the quiz object as a Boolean to tell whether the assignment is a quiz or not.
@ScottMowry
GraphQL doesn't support Classic Quizzes and Canvas has that they are phasing Classic Quizzes out, so don't look for it to magically appear despite the "if you find something missing let us know" statement.
Canvas is pushing people towards the graphql portal for new GraphQL development. I had problems getting the list of available endpoints there until I went to the beta or test instance. Then I was able to use those in production. There was some stuff for New Quizzes there, but not a lot. I haven't looked in several months.
@James I was able to get specific information regarding the quiz, but to your point, I had to have the assignmentID.
My point wasn't that you had to have the ID to get information about the quiz through GraphQL, it was that you cannot get quiz-specific information through the GraphQL API other than what the quiz ID is and whether an assignment is a quiz. By that I mean anything beyond what a regular assignment would have available. The quiz ID is part of the assignments object.
What module something is in isn't specific to quizzes. The "Elementary Student" in your last screenshot isn't information about the quiz, it's the name of the module. Note that modules is an array in case you have an assignment in multiple modules. But to Canvas, you're not fetching the modules the quizzes are in, you're fetching the modules the assignment, which just happens to be a quiz, is in. You need the assignment ID to fetch it, not the quiz ID.
Things specific to quizzes are things like the number of questions, the actual questions, the question groups, and the quiz settings. For those, you need to use the Quiz xxx APIs from the REST API. When you look on the left side of the API documentation, you see Quiz Assignment Overrides, Quiz Extensions, Quiz IP Filters, Quiz Question Groups, ..., Quizzes. That's what I'm talking about when I say the information about quizzes isn't available through the GraphQL interface.
@James Very helpful information and clarification. I am just beginning to dig in to Instructure's GraphQL implementation and am learning what's currently available. I do hope to see more and more data becoming available through GraphQL since it is much easier than hitting multiple REST APIs. Thank you for sharing your knowledge of the two, GraphQL and REST, in Canvas! Great stuff 🙂
Rendering bug here: Canvas - Instructure Community Seems to only appear in Edge; fine in Chrome and Firefox https://us.v-cdn.net/6038536/uploads/W3BKB9LY5FCV/recording-2026-04-08-144351.mp4
I have a developer key in our Test instance: How would I use this in a local program to make a REST API call? Looking at https://developerdocs.instructure.com/services/canvas/oauth2/file.developer_keys: Developer keys are OAuth2 client ID and secret pairs stored in Canvas that allow third-party applications to request…
I'm building a tool for my institution that imports grades from another LTI tool into Canvas so instructors can automate late assignment policies not otherwise supported by Canvas. I'm trying to use the LTIv1.3 ID which is readily available on the LTI-side as a link to the student record on Canvas, but I can't find the ID…
How can one track Canvas Media use without having the reports available from Canvas Studio? Checking API endpoints and the Data 2 schema, there do not seem to be dedicated Canvas Media endpoints. Am I missing some? A method I've considered is using the body field of the wiki_pages table, as this contains the html code of…
Hello, I'm trying to utilize an API call to pull completed certificates and was hoping to download and store the certs as a backup. I can successfully run the API call but it will not allow me to view the certificate unless I access the URL while signed into an account where it's "my" cert. Is there a permissions setting…