Create Question

This API is used to create Questions on the Sunbird-inQuiry Platform.

This API is used to create Question on the Sunbird-inQuiry Platform.

POST /question/v2/create

• It points to inquiry-api-service (assessment service) - /question/v5/create • It is mandatory to provide values for parameters marked with *. • Mandatory fields cannot be null or empty. • The API supports QuML 1.1 version onwards. For Detailed Question schema, Please check here • Appropriate fields need to be passed to work questions functionally well.

Headers

NameTypeDescription

Content-Type*

String

The Content-Type entity is the media type of the resource. It should beApplication/json

Authorization*

String

You require authorization to make use of the API. Raise a request to the administrator for the use of the API. You will receive the authorization key. Specify the key received, here. Set Bearer {{api_key}}

x-channel-id

String

Unique identification number associated with a root organization.

Request Body

NameTypeDescription

request*

object

request is the representation of the resource object for creating questions, which is an object of parameters that describes the question

{
    "id": "api.question.create",
    "ver": "5.0",
    "ts": "2023-06-29T03:20:53ZZ",
    "params": {
        "resmsgid": "5b4a288b-0875-4fc0-ab8d-b50a973f5ebd",
        "msgid": null,
        "err": null,
        "status": "successful",
        "errmsg": null
    },
    "responseCode": "OK",
    "result": {
        "identifier": "do_2138281685237841921513",
        "versionKey": "1688008853076"
    }
}

Sample Request

{
    "request": {
        "question": {
            "name": "string",
            "code": "string",
            "mimeType": "string",
            "primaryCategory": "string"
        }
    }

Request Schema

AttributeTypeDescriptionRequired

name

String

Represents the name of the question

Yes

code

String

Represents the unique code for the question

Yes

mimeType

String

Question mime type

Yes

primaryCategory

String

PrimaryCategory agains which question schema will be validated

Yes

Success Result Schema

AttributeTypeDescription

identifier

String

Unique Question Identifier

versionKey

String

Unique version key of Question

cURL:

curl --location -g --request POST '{{host}}/question/v2/create' \
--header 'Content-Type: application/json' \
--header 'X-Channel-Id: {{channel_id}}' \
--header 'Authorization: Bearer {{api_key}}' \
--data-raw '{
    "request": {
        "question": {
            "name": "Question 1",
            "code": "question.code",
            "mimeType": "application/vnd.sunbird.question",
            "primaryCategory": "Multiple Choice Question"
        }
    }
}'

Full Request Example

Following is the complete request example of creating Multiple Choice Questions (MCQ).

This includes all the required fields to create a question object, as well as to work this question functionally some other fields were also added such as editorState, responseDeclaration, qType etc.

{
  "question": {
    "copyright": "NIT123",
    "code": "ad6f06e4-1a36-47c2-964a-91c249191e4b",
    "subject": [
      "Math"
    ],
    "qumlVersion": 1.1,
    "channel": "01309282781705830427",
    "responseDeclaration": {
      "response1": {
        "cardinality": "single",
        "type": "integer",
        "correctResponse": {
          "value": 0
        },
        "mapping": [
          {
            "value": 0,
            "score": 1
          }
        ]
      }
    },
    "language": [
      "English"
    ],
    "medium": [
      "English"
    ],
    "mimeType": "application/vnd.sunbird.question",
    "showHints": false,
    "media": [],
    "body": "<div class='question-body' tabindex='-1'><div class='mcq-title' tabindex='0'><p>2+2=?</p></div><div data-choice-interaction='response1' class='mcq-vertical'></div></div>",
    "editorState": {
      "options": [
        {
          "answer": true,
          "value": {
            "body": "<p>4</p>",
            "value": 0
          }
        },
        {
          "answer": false,
          "value": {
            "body": "<p>8</p>",
            "value": 1
          }
        }
      ],
      "question": "<p>2+2=?</p>"
    },
    "templateId": "mcq-vertical",
    "createdOn": "2023-06-29T03:45:06.917+0000",
    "objectType": "Question",
    "interactions": {
      "response1": {
        "type": "choice",
        "options": [
          {
            "label": "<p>4</p>",
            "value": 0
          },
          {
            "label": "<p>8</p>",
            "value": 1
          }
        ],
        "validation": {
          "required": "Yes"
        }
      }
    },
    "gradeLevel": [
      "Class 1"
    ],
    "primaryCategory": "Multiple Choice Question",
    "contentDisposition": "inline",
    "lastUpdatedOn": "2023-06-29T03:45:07.002+0000",
    "contentEncoding": "gzip",
    "showSolutions": false,
    "allowAnonymousAccess": "Yes",
    "identifier": "do_2138281804342640641518",
    "lastStatusChangedOn": "2023-06-29T03:45:06.917+0000",
    "audience": [
      "Student"
    ],
    "schemaVersion": "1.1",
    "visibility": "Parent",
    "showTimer": false,
    "author": "Creator1",
    "solutions": {},
    "outcomeDeclaration": {
      "maxScore": {
        "cardinality": "single",
        "type": "integer",
        "defaultValue": 1
      }
    },
    "qType": "MCQ",
    "maxScore": 1,
    "languageCode": [
      "en"
    ],
    "versionKey": "1688010307002",
    "showFeedback": false,
    "license": "CC BY 4.0",
    "complexityLevel": [
      "evaluate"
    ],
    "interactionTypes": [
      "choice"
    ],
    "framework": "inquiry_k-12",
    "answer": "<div class='anwser-container'><div class='anwser-body'><p>4</p></div></div>",
    "createdBy": "5a587cc1-e018-4859-a0a8-e842650b9d64",
    "compatibilityLevel": 5,
    "name": "MCQ-1",
    "board": "CBSE",
    "status": "Draft"
  }
}

Last updated