Multiple choice mcq

Multiple choice (mcq)

The multiple choice Question is referenced by its Question type in the code, which is mcq. This type of Question allows the student to select one or more correct answers from a number of potential answers.


  • is_math boolean

    Set to true to have LaTeX or MathML contents to be rendered with mathjax.

    Default: false

  • metadata object

    Object containing additional information about the question.

  • metadata.distractor_rationale string

    Used to display individual response feedback/rationale to the student.

  • metadata.rubric_reference string

    A unique identifier for the rubric to be used with the question - defaults to course rubric if assigned in activity

  • metadata.sample_answer string

    A sample answer to be displayed on the Learnosity Reports API. HTML is supported.

  • metadata.acknowledgements string

    References for any text passages, documents, images etc. used in the question.

  • metadata.distractor_rationale_response_level array

    Used to display individual response feedback/rationale to the student.

  • metadata.response_shuffle_seed string

    A seed to use to randomise the order of response options. If set, the responses will be shuffled according to this seed, and all students will see the same randomised order.

  • stimulus string

    The question stimulus. This can include text, tables, images, resources and LaTeX entered via the Math Editor.

  • stimulus_review string

    HTML/Text content displayed only in review state rendered above the response area. Supports embedded Feature <span> tags. Will override stimulus in review state.

  • instructor_stimulus string

    HTML/Text content displayed when showInstructorStimulus is set to true on the activity. Supports embedded Feature <span> tags.

  • type string

    Type of question being asked, e.g. 'association'

    Default: "mcq"

  • ui_style object

    Object used to control different aspects of the UI

  • ui_style.fontsize string

    Controls the size of base font for this question. Options are among 'small', 'normal', 'large', 'xlarge' and 'xxlarge'.

    Default: "normal"

  • ui_style.validation_stem_numeration string

    Numeration character to be displayed to the left of the validation label.

    Default: "number"

  • ui_style.type string

    Formatting styles available for the question. Possible values:

    • "horizontal"

      Standard radio buttons beside response options

    • "block"

      No radio buttons, each response option becomes a large clickable element

    • "horizontal-input-bottom"

      Response text appears above radio buttons, vertically aligned and centered

    Default: "horizontal"

  • ui_style.choice_label string

    Numeration character to be displayed to the left of the label content when using the "block" style. Possible values:

  • "number"

    Numbered starting from "1"

  • "upper-alpha"

    Uppercase letters starting from "A"

  • "lower-alpha"

    Lowercase letters starting from "a"

  • Default: ""

  • ui_style.columns number

    The number of columns

    Default: 1

  • ui_style.orientation string

    Sorts the order of the responses vertically or horizontally. Possible values:

    • "horizontal"
    • "vertical"

    Default: "vertical"

  • feedback_attempts number

    If instant_feedback is true, this field determines how many times the user can click on the 'Check Answer' button. 0 means unlimited.

    Default: 0

  • instant_feedback boolean

    Flag to determine whether to display a 'Check Answer' button to provide instant feedback to the user.

    Default: false

  • validation object

    In this section, configure the correct answer(s) for the question.

  • validation.allow_negative_scores boolean

    Negative scores will be normalised to zero by default. Allowing negative scores, on the other hand, means that the score can drop below zero when penalties are applied.

    Default: false

  • validation.penalty number

    Value indicating the marks deducted for an incorrect response.

    Default: 0

  • validation.min_score_if_attempted number

    Positive value indicating the minimum score if a student attempted the question.

    Default: 0

  • validation.scoring_type string

    Defines the scoring approach used. Possible options:
    'exactMatch': Exact Match - Entire response must match exactly
    'partialMatchV2': Partial Match - A relative part of the score will be given for each correct response area
    'partialMatch': Partial Match per response - Cumulative Score value will be given for each correct response area

    Default: "exactMatch"

  • validation.unscored boolean

    When enabled, this option will remove all scoring from the question. This is useful for creating practice questions.

    Default: false

  • validation.valid_response object

    An object containing the valid response score and value.

  • validation.valid_response.score number

    Score awarded for the correct response(s).

    Default: 1

  • validation.valid_response.value array

    Default: []

  • validation.automarkable boolean

    Defines whether the question will be marked automatically, or must be marked manually.

    Default: true

  • validation.alt_responses array

    Add an alternate response if there is more than one correct overall solution to a question.

  • validation.alt_responses[ ].score number

    Score if the alternative response is correct.

    Default: 1

  • validation.alt_responses[ ].value array

    Default: []

  • validation.alt_responses[ ][ ].score number

    Score if the alternative response is correct.

    Default: 1

  • validation.alt_responses[ ][ ].value array

    Default: []

  • description string

    Deprecated See stimulus_review.
    Description of the question and its context to be displayed. It supports HTML entities.

  • options array [option Object]

    Array of option Objects that represent the possible options for this question. At least 2 options are required.

  • options[ ].value editorMcqOptionValue

    Value for this option that would be stored as the response if selected.

  • options[ ].label editor

    Label to be displayed for this option - plain string with HTML allowed for formatting or mathjax syntax.

  • options[ ].assistive_label object

  • options[ ].assistive_label.label string

    A plain text description for accessibility users that is accessible by screen readers and assistive technologies when navigating to the response.

    Default: ""

  • options[ ].assistive_label.exposed_visible_label boolean

    If this option is checked, then the visible text can be navigated and spoken by screen readers. If the option is not checked and the custom aria-label is empty, the content is flattened and will be read out as one piece of information to the learner.

    Default: false

  • multiple_responses boolean

    If multiple_responses is true the user will be able to select multiple responses using a checkbox for each response. Also author can set min_selection and max_selection to control the allowed minimum and maximum responses.

    Default: false

  • shuffle_options boolean

    Use this to shuffle Multiple Choice Question options order.

    Default: false

Response format

The data returned in the response format for this Question is the answer options a student has selected in order to answer the Question.

Note: the number of returned strings in the value array will depend on whether the Question variation chosen in the Question Editor interface accepts one or multiple answers per Question.

Response format examples

    "value": [
    "type": "array",
    "apiVersion": "v2.173.0",
    "revision": 1,
    "feedbackAttemptsCount": 1

Response attributes

  • value array

    The answer choice(s) selected by the student.

  • type string

    Informs the scoring engine about what kind of data to expect in the values entered by the student. For this Question type, you must always supply a string for this attribute with the value "array".

  • apiVersion string

    The version of the Questions API that returned this response.

  • revision numeric

    Keeps track of the number of Question attempt submissions, i.e. how many times the student answered the Question and submitted it.

  • feedbackAttemptsCount numeric

    Keeps track of the number of feedback attempts.

Was this article helpful?

Did you arrive here by accident? If so, learn more about Learnosity.