Canvas Poll Sessions API

The Poll Sessions API from Canvas — 6 operation(s) for poll sessions.

Operations 9

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /v1/polls/{poll_id}/poll_sessions List sessions of a poll · List poll sessions for a poll #
Ask an LLM
“How many times has this poll been run in class?”
“Which sessions exist for one of my polls?”
Tell an agent
List the sessions for poll {poll_id}.
Show every time poll {poll_id} has been run.
POST /v1/polls/{poll_id}/poll_sessions Start a new session of a poll for a course · Create a single poll session #
Ask an LLM
“How do I run a poll for a specific course or section?”
“Can I make the poll results public to students when I create a session?”
Tell an agent
Create a session of poll {poll_id} for course {course_id}.
Run poll {poll_id} with public results set to {has_public_results} for students in course {course_id}.
GET /v1/polls/{poll_id}/poll_sessions/{id} Get results of a poll session · Get the results for a single poll session #
Ask an LLM
“What did students answer in a particular poll session?”
“Can I see the results for one session of my poll?”
Tell an agent
Get the results of session {id} for poll {poll_id}.
Show how students responded in poll {poll_id} session {id}.
PUT /v1/polls/{poll_id}/poll_sessions/{id} Update a poll session · Update a single poll session #
Ask an LLM
“How do I change which section a poll session is for?”
“Can I turn public results on or off for an existing poll session?”
Tell an agent
Set public results on poll {poll_id} session {id} to {has_public_results}.
Move poll {poll_id} session {id} to section {course_section_id}.
DELETE /v1/polls/{poll_id}/poll_sessions/{id} Delete a poll session · Delete a poll session #
Ask an LLM
“How do I delete a poll session I ran by mistake?”
“Can I remove one session from a poll without deleting the poll?”
Tell an agent destructive · confirm first
Delete session {id} of poll {poll_id}.
Remove poll {poll_id} session {id}.
GET /v1/polls/{poll_id}/poll_sessions/{id}/open Open a poll session for responses · Open a poll session #
Ask an LLM
“How do I start accepting answers in a poll session?”
“Can I open a poll session so students can vote now?”
Tell an agent
Open session {id} of poll {poll_id}.
Start collecting votes on poll {poll_id} session {id}.
GET /v1/polls/{poll_id}/poll_sessions/{id}/close Close an open poll session · Close an opened poll session #
Ask an LLM
“How do I stop students from answering a poll that's still open?”
“Can I close voting on a poll session?”
Tell an agent
Close session {id} of poll {poll_id}.
Stop accepting votes on poll {poll_id} session {id}.
GET /v1/poll_sessions/opened List poll sessions that are open · List opened poll sessions #
Ask an LLM
“Which polls are open for me to answer right now?”
“What poll sessions are currently accepting responses?”
Tell an agent
List the open poll sessions available to me.
Show polls I can vote in right now.
GET /v1/poll_sessions/closed List poll sessions that are closed · List closed poll sessions #
Ask an LLM
“Which poll sessions have already closed?”
“Can I review the polls that are no longer accepting answers?”
Tell an agent
List the closed poll sessions available to me.
Show polls that have finished voting.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/canvas:canvas-poll-sessions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

canvas-poll-sessions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canvas LMS REST Poll Sessions API
  version: v1
  summary: The complete Canvas LMS REST API, converted from the Swagger 1.2 documents Instructure publishes under https://canvas.instructure.com/doc/api/.
  description: The Canvas LMS REST API covers courses, assignments, quizzes, grades, users, enrollments, accounts, files, modules, rubrics, submissions, SIS imports, LTI, analytics and account administration.
  contact:
    name: Instructure Canvas
    url: https://canvas.instructure.com/doc/api/
  license:
    name: AGPL-3.0
    url: https://github.com/instructure/canvas-lms/blob/master/LICENSE
servers:
- url: https://canvas.instructure.com/api
  description: Instructure-hosted Canvas (canvas.instructure.com)
- url: https://{canvas_host}/api
  description: Any Canvas instance; Canvas is multi-tenant and self-hostable, so the host is the institution's Canvas domain.
  variables:
    canvas_host:
      default: canvas.instructure.com
      description: Your institution's Canvas hostname, e.g. school.instructure.com
security:
- bearerAuth: []
- oauth2: []
tags:
- name: Poll Sessions
  x-resource: poll_sessions
  externalDocs:
    url: https://canvas.instructure.com/doc/api/poll_sessions.html
paths:
  /v1/polls/{poll_id}/poll_sessions:
    get:
      tags:
      - Poll Sessions
      operationId: list_poll_sessions_for_poll
      summary: List poll sessions for a poll
      description: Returns the paginated list of PollSessions in this poll.
      parameters:
      - name: poll_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      responses:
        '200':
          description: Success, no content returned
      externalDocs:
        url: https://canvas.instructure.com/doc/api/poll_sessions.html
    post:
      tags:
      - Poll Sessions
      operationId: create_single_poll_session
      summary: Create a single poll session
      description: Create a new poll session for this poll
      parameters:
      - name: poll_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                poll_sessions[course_id]:
                  type: array
                  items:
                    type: integer
                  description: The id of the course this session is associated with.
                poll_sessions[course_section_id]:
                  type: array
                  items:
                    type: integer
                  description: The id of the course section this session is associated with.
                poll_sessions[has_public_results]:
                  type: array
                  items:
                    type: boolean
                  description: Whether or not results are viewable by students.
              required:
              - poll_sessions[course_id]
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                poll_sessions[course_id]:
                  type: array
                  items:
                    type: integer
                  description: The id of the course this session is associated with.
                poll_sessions[course_section_id]:
                  type: array
                  items:
                    type: integer
                  description: The id of the course section this session is associated with.
                poll_sessions[has_public_results]:
                  type: array
                  items:
                    type: boolean
                  description: Whether or not results are viewable by students.
              required:
              - poll_sessions[course_id]
      responses:
        '200':
          description: Success, no content returned
      externalDocs:
        url: https://canvas.instructure.com/doc/api/poll_sessions.html
  /v1/polls/{poll_id}/poll_sessions/{id}:
    get:
      tags:
      - Poll Sessions
      operationId: get_results_for_single_poll_session
      summary: Get the results for a single poll session
      description: Returns the poll session with the given id
      parameters:
      - name: poll_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: id
        in: path
        schema:
          type: string
        required: true
        description: ID
      responses:
        '200':
          description: Success, no content returned
      externalDocs:
        url: https://canvas.instructure.com/doc/api/poll_sessions.html
    put:
      tags:
      - Poll Sessions
      operationId: update_single_poll_session
      summary: Update a single poll session
      description: Update an existing poll session for this poll
      parameters:
      - name: poll_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: id
        in: path
        schema:
          type: string
        required: true
        description: ID
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                poll_sessions[course_id]:
                  type: array
                  items:
                    type: integer
                  description: The id of the course this session is associated with.
                poll_sessions[course_section_id]:
                  type: array
                  items:
                    type: integer
                  description: The id of the course section this session is associated with.
                poll_sessions[has_public_results]:
                  type: array
                  items:
                    type: boolean
                  description: Whether or not results are viewable by students.
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                poll_sessions[course_id]:
                  type: array
                  items:
                    type: integer
                  description: The id of the course this session is associated with.
                poll_sessions[course_section_id]:
                  type: array
                  items:
                    type: integer
                  description: The id of the course section this session is associated with.
                poll_sessions[has_public_results]:
                  type: array
                  items:
                    type: boolean
                  description: Whether or not results are viewable by students.
      responses:
        '200':
          description: Success, no content returned
      externalDocs:
        url: https://canvas.instructure.com/doc/api/poll_sessions.html
    delete:
      tags:
      - Poll Sessions
      operationId: delete_poll_session
      summary: Delete a poll session
      description: 204 No Content response code is returned if the deletion was successful.
      parameters:
      - name: poll_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: id
        in: path
        schema:
          type: string
        required: true
        description: ID
      responses:
        '200':
          description: Success, no content returned
      externalDocs:
        url: https://canvas.instructure.com/doc/api/poll_sessions.html
  /v1/polls/{poll_id}/poll_sessions/{id}/open:
    get:
      tags:
      - Poll Sessions
      operationId: open_poll_session
      summary: Open a poll session
      parameters:
      - name: poll_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: id
        in: path
        schema:
          type: string
        required: true
        description: ID
      responses:
        '200':
          description: Success, no content returned
      externalDocs:
        url: https://canvas.instructure.com/doc/api/poll_sessions.html
  /v1/polls/{poll_id}/poll_sessions/{id}/close:
    get:
      tags:
      - Poll Sessions
      operationId: close_opened_poll_session
      summary: Close an opened poll session
      parameters:
      - name: poll_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: id
        in: path
        schema:
          type: string
        required: true
        description: ID
      responses:
        '200':
          description: Success, no content returned
      externalDocs:
        url: https://canvas.instructure.com/doc/api/poll_sessions.html
  /v1/poll_sessions/opened:
    get:
      tags:
      - Poll Sessions
      operationId: list_opened_poll_sessions
      summary: List opened poll sessions
      description: A paginated list of all opened poll sessions available to the current user.
      responses:
        '200':
          description: Success, no content returned
      externalDocs:
        url: https://canvas.instructure.com/doc/api/poll_sessions.html
  /v1/poll_sessions/closed:
    get:
      tags:
      - Poll Sessions
      operationId: list_closed_poll_sessions
      summary: List closed poll sessions
      description: A paginated list of all closed poll sessions available to the current user.
      responses:
        '200':
          description: Success, no content returned
      externalDocs:
        url: https://canvas.instructure.com/doc/api/poll_sessions.html
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Canvas OAuth2 access token sent as "Authorization: Bearer <token>". See https://canvas.instructure.com/doc/api/file.oauth.html'
    oauth2:
      type: oauth2
      description: Canvas OAuth2. See https://canvas.instructure.com/doc/api/file.oauth.html and https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
      flows:
        authorizationCode:
          authorizationUrl: https://canvas.instructure.com/login/oauth2/auth
          tokenUrl: https://canvas.instructure.com/login/oauth2/token
          refreshUrl: https://canvas.instructure.com/login/oauth2/token
          scopes: {}
externalDocs:
  description: Canvas LMS REST API Documentation
  url: https://canvas.instructure.com/doc/api/
x-generated-from: https://canvas.instructure.com/doc/api/api-docs.json
x-provenance:
  method: derived
  derived_by: API Evangelist enrichment pipeline (Swagger 1.2 -> OpenAPI 3.1 conversion)
  source: openapi/_original/swagger-1.2/*.json (144 verbatim first-party Swagger 1.2 documents)
  source_url: https://canvas.instructure.com/doc/api/api-docs.json
  fetched: '2026-09-05'
  http_status: 200