Teachable Quizzes API

Quiz and quiz response endpoints

Business capability
Assessment & Examinations Management BC-4740

Operations 3

GET /courses/{course_id}/lectures/{lecture_id}/quizzes List quizzes #
GET /courses/{course_id}/lectures/{lecture_id}/quizzes/{quiz_id} Get a quiz #
GET /courses/{course_id}/lectures/{lecture_id}/quizzes/{quiz_id}/responses Get quiz responses #

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/teachable-quizzes-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

teachable-quizzes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Teachable Admin Quizzes API
  description: REST API for managing Teachable school data including courses, users, enrollments, quiz responses, pricing plans, transactions, and webhooks. Authenticated via API key header and available on Growth plan and above.
  version: '1'
  contact:
    name: Teachable Support
    url: https://support.teachable.com
    email: support@teachable.com
  termsOfService: https://teachable.com/terms-of-use
servers:
- url: https://developers.teachable.com/v1
  description: Teachable Admin API
security:
- ApiKeyAuth: []
tags:
- name: Quizzes
  description: Quiz and quiz response endpoints
paths:
  /courses/{course_id}/lectures/{lecture_id}/quizzes:
    get:
      operationId: listQuizzes
      summary: List quizzes
      description: Return all quiz IDs in a specific lecture.
      tags:
      - Quizzes
      parameters:
      - name: course_id
        in: path
        required: true
        description: Return results by unique course ID that contains the lecture.
        schema:
          type: integer
          format: int32
          minimum: 1
      - name: lecture_id
        in: path
        required: true
        description: Return results by unique lecture ID.
        schema:
          type: integer
          format: int32
          minimum: 1
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuizListResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /courses/{course_id}/lectures/{lecture_id}/quizzes/{quiz_id}:
    get:
      operationId: getQuiz
      summary: Get a quiz
      description: Return details of a specific quiz attachment.
      tags:
      - Quizzes
      parameters:
      - name: course_id
        in: path
        required: true
        description: Return results by unique course ID that contains the lecture.
        schema:
          type: integer
          format: int32
          minimum: 1
      - name: lecture_id
        in: path
        required: true
        description: Return results by unique lecture ID.
        schema:
          type: integer
          format: int32
          minimum: 1
      - name: quiz_id
        in: path
        required: true
        description: Return results by unique quiz attachment ID.
        schema:
          type: integer
          format: int32
          minimum: 1
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuizDetailResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /courses/{course_id}/lectures/{lecture_id}/quizzes/{quiz_id}/responses:
    get:
      operationId: getQuizResponses
      summary: Get quiz responses
      description: Return all student responses for a specific quiz.
      tags:
      - Quizzes
      parameters:
      - name: course_id
        in: path
        required: true
        description: Return results by unique course ID that contains the lecture.
        schema:
          type: integer
          format: int32
          minimum: 1
      - name: lecture_id
        in: path
        required: true
        description: Return results by unique lecture ID.
        schema:
          type: integer
          format: int32
          minimum: 1
      - name: quiz_id
        in: path
        required: true
        description: Return results by unique quiz attachment ID.
        schema:
          type: integer
          format: int32
          minimum: 1
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuizResponsesResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    QuizListResponse:
      type: object
      properties:
        quiz_ids:
          type: array
          items:
            type: integer
          description: List of unique IDs of quizzes in a lecture.
    QuizQuestion:
      type: object
      properties:
        question:
          type: string
        question_type:
          type: string
        answers:
          type: array
          items:
            type: string
        correct_answers:
          type: array
          items:
            type: string
        graded:
          type: boolean
    QuizStudentResponse:
      type: object
      properties:
        student_id:
          type: integer
          description: The unique ID of the student.
        student_name:
          type: string
          description: The name of the student.
        student_email:
          type: string
          description: The email of the student.
        submitted_at:
          type: string
          format: date-time
          description: Datetime when the student submitted the quiz.
        percent_correct:
          type: integer
          description: Percentage of correct answers.
    QuizDetailResponse:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Quiz attachment identifier.
        name:
          type: string
          description: Quiz display name.
        kind:
          type: string
          enum:
          - quiz
        url:
          type:
          - string
          - 'null'
        text:
          type:
          - string
          - 'null'
        position:
          type: integer
          format: int32
        quiz:
          $ref: '#/components/schemas/QuizInformation'
    QuizInformation:
      type: object
      properties:
        id:
          type: integer
          format: int32
        type:
          type: string
          enum:
          - Quiz
        questions:
          type: array
          items:
            $ref: '#/components/schemas/QuizQuestion'
    QuizResponsesResponse:
      type: object
      properties:
        course_id:
          type: integer
          description: The unique ID of the course.
        course_name:
          type: string
          description: The name of the course.
        lecture_id:
          type: integer
          description: The unique ID of the lecture.
        lecture_name:
          type: string
          description: The name of the lecture.
        graded:
          type: boolean
          description: Indicates if the quiz is graded.
        responses:
          type: array
          items:
            $ref: '#/components/schemas/QuizStudentResponse'
    ErrorResponse:
      type: object
      properties:
        message:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
          description: Error message or array of error messages.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: apiKey
      description: API key for Admin API authentication. Available on Growth plan and above.