Oak Curriculum API

API endpoints

Quiz questions

Every lesson has a starter quiz, which tests pupils on the prior knowledge they will need for the lesson, and an exit quiz, which tests pupils' understanding of the lesson content. Each quiz has six questions. Quiz questions can be multiple-choice, ordering, or matching.

4.1 Quiz questions by lesson

GET /lessons/{lesson}/quiz

The endpoint returns the quiz questions and answers for a given lesson. The answers data indicates which answers are correct, and which are distractors.

Inputs (path)

Name
Type
Description
Example

lesson

string

The lesson slug identifier

imagining-you-are-the-characters-the-three-billy-goats-gruff

Output (response)

Name
Type
Description

starterQuiz

array[object]

The starter quiz questions - which test prior knowledge

question

string

The question text

questionType

string, string, string, string

The type of quiz question which could be one of the following:

  • multiple-choice
  • order
  • match
  • explanatory-text
  • short-answer

text

string

Supplementary text for the image, if any

distractor

boolean

Whether the multiple choice question response is the correct answer (false) or is a distractor (true)

type

string

The format of the quiz answer Note: currently, we are only returning text-based quiz answers. In the future, we will also have image-based questions available.

content

string

Quiz question answer

matchOption

object

Matching options (LHS)

correctChoice

object

Matching options (RHS), indicating the correct choice

order

number

Indicates the correct ordering of the response

exitQuiz

array[object]

The exit quiz questions - which test on the knowledge learned in the lesson

Sample response

{
  "starterQuiz": [
    {
      "question": "Tick the sentence with the correct punctuation.",
      "questionType": "multiple-choice",
      "answers": [
        {
          "distractor": true,
          "type": "text",
          "content": "the baby cried"
        },
        {
          "distractor": true,
          "type": "text",
          "content": "The baby cried"
        },
        {
          "distractor": false,
          "type": "text",
          "content": "The baby cried."
        },
        {
          "distractor": true,
          "type": "text",
          "content": "the baby cried."
        }
      ]
    }
  ],
  "exitQuiz": [
    {
      "question": "Which word is a verb?",
      "questionType": "multiple-choice",
      "answers": [
        {
          "distractor": true,
          "type": "text",
          "content": "shops"
        },
        {
          "distractor": true,
          "type": "text",
          "content": "Jun"
        },
        {
          "distractor": true,
          "type": "text",
          "content": "I"
        },
        {
          "distractor": false,
          "type": "text",
          "content": "shout"
        }
      ]
    }
  ]
}

4.2 Questions within a sequence

GET /sequences/{sequence}/questions

This endpoint returns all quiz questions for a given sequence. The assets are separated into starter quiz and entry quiz arrays, grouped by lesson.

Inputs (path, query)

Name
Type
Description
Example

sequence

string

The sequence slug identifier, including the key stage 4 option where relevant.

english-primary

year [optional]

number

The year group to filter by. For the physical-education-primary sequence, a value of all-years can also be used.

3

offset [optional]

number

If limiting results returned, this allows you to return the next set of results, starting at the given offset point

50

limit [optional]

number

Limit the number of lessons, e.g. return a maximum of 100 lessons

10

Output (response)

Name
Type
Description

lessonSlug

string

The lesson slug identifier

lessonTitle

string

The title of the lesson

starterQuiz

array[object]

The starter quiz questions - which test prior knowledge

question

string

The question text

questionType

string, string, string, string

The type of quiz question which could be one of the following:

  • multiple-choice
  • order
  • match
  • explanatory-text
  • short-answer

text

string

Supplementary text for the image, if any

distractor

boolean

Whether the multiple choice question response is the correct answer (false) or is a distractor (true)

type

string

The format of the quiz answer Note: currently, we are only returning text-based quiz answers. In the future, we will also have image-based questions available.

content

string

Quiz question answer

matchOption

object

Matching options (LHS)

correctChoice

object

Matching options (RHS), indicating the correct choice

order

number

Indicates the correct ordering of the response

exitQuiz

array[object]

The exit quiz questions - which test on the knowledge learned in the lesson

Sample response

[
  {
    "lessonTitle": "3D shapes can be composed from 2D nets",
    "lessonSlug": "3d-shapes-can-be-composed-from-2d-nets",
    "starterQuiz": [
      {
        "question": "Select all of the names of shapes that are polygons.",
        "questionType": "multiple-choice",
        "answers": [
          {
            "type": "text",
            "content": "Cube ",
            "distractor": true
          },
          {
            "type": "text",
            "content": " Square",
            "distractor": false
          },
          {
            "type": "text",
            "content": "Triangle",
            "distractor": false
          },
          {
            "type": "text",
            "content": "Semi-circle",
            "distractor": true
          }
        ]
      }
    ],
    "exitQuiz": [
      {
        "question": "What is a net?",
        "questionType": "multiple-choice",
        "answers": [
          {
            "type": "text",
            "content": "A 3D shape made of 2D shapes folded together. ",
            "distractor": false
          },
          {
            "type": "text",
            "content": "A 2D shape made of 3D shapes folded togehther.",
            "distractor": true
          },
          {
            "type": "text",
            "content": "A type of cube.",
            "distractor": true
          }
        ]
      }
    ]
  }
]

4.3 Quiz questions by subject and key stage

GET /key-stages/{keyStage}/subject/{subject}/questions

This endpoint returns quiz questions and answers for each lesson within a requested subject and key stage.

Inputs (path, query)

Name
Type
Description
Example

keyStage

string

Key stage slug to filter by, e.g. 'ks2' - note that casing is important here, and should be lowercase

ks1

subject

string

Subject slug to search by, e.g. 'science' - note that casing is important here

art

offset [optional]

number

If limiting results returned, this allows you to return the next set of results, starting at the given offset point

50

limit [optional]

number

Limit the number of lessons, e.g. return a maximum of 100 lessons

10

Output (response)

Name
Type
Description

lessonSlug

string

The lesson slug identifier

lessonTitle

string

The title of the lesson

starterQuiz

array[object]

The starter quiz questions - which test prior knowledge

question

string

The question text

questionType

string, string, string, string

The type of quiz question which could be one of the following:

  • multiple-choice
  • order
  • match
  • explanatory-text
  • short-answer

text

string

Supplementary text for the image, if any

distractor

boolean

Whether the multiple choice question response is the correct answer (false) or is a distractor (true)

type

string

The format of the quiz answer Note: currently, we are only returning text-based quiz answers. In the future, we will also have image-based questions available.

content

string

Quiz question answer

matchOption

object

Matching options (LHS)

correctChoice

object

Matching options (RHS), indicating the correct choice

order

number

Indicates the correct ordering of the response

exitQuiz

array[object]

The exit quiz questions - which test on the knowledge learned in the lesson

Sample response

[
  {
    "lessonSlug": "predicting-the-size-of-a-product",
    "lessonTitle": "Predicting the size of a product",
    "starterQuiz": [
      {
        "question": "Match the number to its written representation.",
        "questionType": "match",
        "answers": [
          {
            "matchOption": {
              "type": "text",
              "content": "seven tenths"
            },
            "correctChoice": {
              "type": "text",
              "content": "0.7"
            }
          },
          {
            "matchOption": {
              "type": "text",
              "content": "nine tenths"
            },
            "correctChoice": {
              "type": "text",
              "content": "0.9"
            }
          },
          {
            "matchOption": {
              "type": "text",
              "content": "seven ones"
            },
            "correctChoice": {
              "type": "text",
              "content": "7"
            }
          },
          {
            "matchOption": {
              "type": "text",
              "content": "seven hundredths"
            },
            "correctChoice": {
              "type": "text",
              "content": "0.07"
            }
          },
          {
            "matchOption": {
              "type": "text",
              "content": "nine hundredths"
            },
            "correctChoice": {
              "type": "text",
              "content": "0.09"
            }
          }
        ]
      }
    ],
    "exitQuiz": [
      {
        "question": "Use the fact that 9 × 8 = 72, to match the expressions to their product.",
        "questionType": "match",
        "answers": [
          {
            "matchOption": {
              "type": "text",
              "content": "9 × 80"
            },
            "correctChoice": {
              "type": "text",
              "content": "720"
            }
          },
          {
            "matchOption": {
              "type": "text",
              "content": "9 × 800 "
            },
            "correctChoice": {
              "type": "text",
              "content": "7,200"
            }
          },
          {
            "matchOption": {
              "type": "text",
              "content": "9 × 0.8"
            },
            "correctChoice": {
              "type": "text",
              "content": "7.2"
            }
          },
          {
            "matchOption": {
              "type": "text",
              "content": "9 × 0"
            },
            "correctChoice": {
              "type": "text",
              "content": "0"
            }
          },
          {
            "matchOption": {
              "type": "text",
              "content": "9 × 0.08"
            },
            "correctChoice": {
              "type": "text",
              "content": "0.72"
            }
          }
        ]
      }
    ]
  }
]