Multiple Choice
Multiple choice questions are fundamental survey questions which provide respondents with multiple answer options. Primarily, multiple choice questions can have single select or multi select answer options. These are the most fundamental questions of a survey or questionnaire where the respondents are expected to select one or more than one option from the multiple answer options.
Whenever we think of conducting surveys, we think of two things: the kind of questions to ask and data collected from the answers to those questions. Essentially, the most important aspect of surveys is to formulate relevant questions that will help us extract clean data.
Managing Multiple Choices
The Multiple Choice API enables you to form the basis of any survey or questionnaire by providing a set of answer options that users can select. These are the perfect way to understand people's preferences and collect valuable results. This type of question not only brings balance to the survey, but also makes it easier, more enjoyable and faster to answer.
This API is used for creating, playing and obtaining questions, answers and player's scores.
Developers can integrate this API to launch their projects faster and will appreciate the seamless integration of trivia or multiple choice question APIs into their websites and applications. Even they can save time in building question-and-answer functionality into their webs
The steps to create and play a multiple choice questions are the following:
-
Create Multiple Choice
-
Create Questions
-
Play Multiple Choice
Creating Multiple Choice
Multiple-choice questions consist of two essential parts: the question and the answer options.
Multiple choice questions can be used in any setting when there is more than one possible answer.
The first step is to create and configure the multiple choice before defining the questions which the user will play.
At this point, you need to define the number of questions that a round has, for example, the cycles are 10 questions, so if the user answers 8 questions correctly, he will win a prize depending on the interactive campaign you want to include in your project, for example, a Trivia game. You also need to define the expiration time for each question, configure a final message once the user finishes his round of questions and establish an order according to each question created (setup cycle). The Question List currently supports two types of ordering:
-
Random : Each question will be randomly displayed once the user has started the game.
-
Order : Each question will be displayed according to the order in which they were created.
NOTE
In Multiple Choice there are no right or wrong answers, but each answer will have a certain effect.
When you create a Multiple Choice, the request body contains the following data:
HTTP Request : POST /v1/mchoice
{
"name": "Game A",
"cycleSetup": "random",
"cycleRound": 4,
"resetQuestions": true,
"expirationTime": 10000,
"endMChoiceRoundMessage": "thank you for playing"
}
The parameters presented in the request body example when creating the multiple choice are the following:
Parameter | Description |
---|---|
name | Game Name |
cycleSetup | There are currently two cycle setups : - random : the questions will be random.- order : the questions will be ordered. |
cycleRound | Total number of questions a round has. |
resetQuestion | true : reset question history when there are no more questions to play.false : does not reset question history when there are no more questions to play. |
expirationTime | Question expiration time (milliseconds). |
endMChoiceRoundMessage | Final round message (optional). |
When you have created the multiple choice, the response body contains the following data :
{
"meta": {
"timestamp": 1620696712042,
"transactionId": "14dcb92b-be1a-4e99-b6ab-e342feb0537f"
},
"data": {
"id": 234,
"name": "Game A",
"owner": "root",
"operator": null,
"cycleSetup": "random",
"cycleRound": 4,
"maxRounds": null,
"resetQuestions": true,
"expirationTime": 10000,
"endMChoiceRoundMessage": "thank you for playing"
}
}
We only describe the additional parameters that are generated when making the request.
To consult each description parameter (not additional parameters) displayed in the response body example, go to the parameters presented in the request body example when creating the multiple choice.
The additional parameters presented in the response body example when creating the multiple choice are the following:
Parameter | Description |
---|---|
data | Data contains the multiple choice information. |
id | Multiple Choice Id |
owner | Multiple choice owner |
Getting Multiple Choice
When the Multiple Choice is previously created, you proceed to get the specific data from a single multiple choice.
HTTP Request : GET /v1/mchoice/{id}
To get a multiple choice, you need to provide the unique identifier of the multiple choice you want to retrieve the information.
Required Parameter | Description |
---|---|
id | Multiple Choice Id |
Creating Questions
Create multiple choice questions in JSON format.
The primary bifurcation of these questions is based on the number of answer options the respondents can select while responding to the survey. So, single choice questions and multiple choice (multiple answer) questions are the two available main question types:
- Single Select Multiple Choice Question : single select questions are the questions where a respondent is asked to pick only one correct answer, from a predetermined set of responses of at least two or more options.
- Multi select Multiple Choice Questions : multi select multiple choice questions are similar to Multiple Choice questions. There is a slight difference in this question type, that these types of questions can have more than one correct answer. You can create as many choices as necessary.
Questions might be added one by one or in bulk by sending their basic information (Question / answers).
Creating single questions
You have the option to create one by one question and define the score for each correct question. That is, if the user gets a question right, increase their score by the point value of the question. Even this API allows you to differentiate the (textual) options that the user can play. For example, I set the number 1(keyword value) in the most viable option for the user to answer.
HTTP Request : POST /v1/mchoice/{mchoiceid}/question
When you create a single question, the request body contains the following data:
{
"text": "What are the programming languages created in the 80s?",
"answers": [
{
"text": "Python",
"keywords": [
"1"
],
"action": "NEXT"
},
{
"text": "C++",
"keywords": [
"2"
],
"action": "NEXT",
"actionParams": {
"correct": true,
"reward": 20
}
},
{
"text": "Java",
"keywords": [
"3"
],
"action": "NEXT"
},
{
"text": "Perl",
"keywords": [
"4"
],
"action": "NEXT",
"actionParams": {
"correct": true,
"reward": 20
}
}
]
}
To create a single question, you need to provide the unique identifier of the multiple choice.
Required Parameter | Description |
---|---|
mchoiceid | Multiple Choice ID |
Creating multiple questions
There are two options to create multiple questions:
-
Create bulk questions by JSON
-
Create bulk questions by CSV
When you create multiple subscribers and define the score for each correct question or differentiate the (textual) options that the user can play, you have the option to overwrite (query parameter) the questions. That is, questions that were created earlier will be inactive (they won't repeat and disable all previous stored questions), except for the question that is about to be played. Once the user answers the question, it will remain inactive and each new question created in bulk will be displayed.
HTTP Request : POST /v1/mchoice/{mchoiceid}/question/batch
NOTE
The points (score) that the user accumulated will not be lost if the questions are overwritten.
WARNING
There is a query parameter called “Purge” to purge the questions. We recommend using this parameter in case the trivia or multiple choice has not started yet because the questions and the user's score will be erased.
When you create bulk questions at once by JSON, the request body contains the following data:
{
"questions": [
{
"text": "What are the programming languages created in the 80s?",
"answers": [
{
"text": "Python",
"keywords": [
"1"
],
"action": "NEXT"
},
{
"text": "C++",
"keywords": [
"2"
],
"action": "NEXT",
"actionParams": {
"correct": true,
"reward": 20
}
},
{
"text": "Java",
"keywords": [
"3"
],
"action": "NEXT"
},
{
"text": "Perl",
"keywords": [
"4"
],
"action": "NEXT",
"actionParams": {
"correct": true,
"reward": 20
}
}
]
},
{
"text": "What is the capital of Japan?",
"answers": [
{
"text": "Tokushima",
"keywords": [
"1"
],
"action": "NEXT"
},
{
"text": "Toyama",
"keywords": [
"2"
],
"action": "NEXT"
},
{
"text": "Tokyo",
"keywords": [
"3"
],
"action": "NEXT",
"actionParams": {
"correct": true,
"reward": 20
}
},
{
"text": "Tottori",
"keywords": [
"4"
],
"action": "NEXT"
}
]
}
]
}
To create bulk questions, you need to provide the unique identifier of the multiple choice.
Required Parameter | Description |
---|---|
mchoiceid | Multiple Choice Id |
The parameters presented in the request body example when creating single or multiple questions are the following:
Parameter | Description |
---|---|
questions | Collection of questions. |
text | Interrogative expression used to test knowledge (Question). |
answers | Collection of answers. |
answers.text | Response (option) to a specific question. |
keywords | Differentiate each option to answer the question. (Value option) |
action | When answering the question, continue with the next question. |
actionParams | Action parameters. |
correct | true : correct answer.false : wrong answer. |
reward | Response score (points). |
When you created a single question, the response body contains the following data:
{
"meta": {
"timestamp": 1620697375502,
"transactionId": "616689ee-00c2-4416-a878-c71fd4cbfd66"
},
"data": {
"id": 1236,
"text": "What are the programming languages created in the 80s",
"mChoice": 234,
"answers": [
{
"text": "Python",
"keywords": [
"1"
],
"question": null,
"action": "NEXT",
"actionParams": null
},
{
"text": "C++",
"keywords": [
"2"
],
"question": null,
"action": "NEXT",
"actionParams": {
"correct": "true",
"reward": "20"
}
},
{
"text": "Java",
"keywords": [
"3"
],
"question": null,
"action": "NEXT",
"actionParams": null
},
{
"text": "Perl",
"keywords": [
"4"
],
"question": null,
"action": "NEXT",
"actionParams": {
"correct": "true",
"reward": "20"
}
}
]
}
}
We only describe the additional parameters that are generated when making the request.
To consult each description parameter (not additional parameters) displayed in the response body example, go to the parameters presented in the request body example when creating the questions.
The additional parameters presented in the response body example when creating a single question are the following:
Parameter | Description |
---|---|
data | Data contains the questions information |
id | Question Id |
mChoice | Multiple Choice Id |
When you created bulk questions by JSON, the response body contains the following data:
{
"meta": {
"timestamp": 1620702217872,
"transactionId": "fbfde39b-d60a-4b8f-b476-54e70817a735"
},
"data": {
"count": 2
}
}
In case you created bulk questions by JSON or CSV, the response body contains the the following data:
Parameter | Description |
---|---|
data | Data contains the questions information. |
count | Total number of questions created. |
To verify and get the questions for a Multiple Choice you have created, go to
- HTTP Request* : GET /v1/mchoice/{mchoiceid}/question
Play Multiple Choice
Play Multiple Choice is a form of quiz game, in which you can attempt to answer the quiz questions correctly. It is a quiz game to test the user knowledge about certain subjects and win points.
Before the user plays, you need to provide the unique identifier of the user who will play the multiple choice in the request body.
Once the game is started, the input parameter allows the player to answer the question by entering the option (answer) that he considers correct for each question.
HTTP Request : POST /v1/play/{mchoiceid}
{
"playerId": "elizabeth78",
"input": "1"
}
When the user has started the game, the statistics of each round played by the user will be displayed in the response body :
-
Round number the player is currently in.
-
New question the player is going to answer.
-
Total number of questions which the round has.
-
Total number of correct questions the player has answered.
For example, in the following response body, the player is currently in round 1
. Each round has 4
questions. The player has answered 1
question correctly and the unique identifier of the question to answer 656
. The question id helps you to check the question number the player is currently on.
{
"meta": {
"timestamp": 1619913703733,
"transactionId": "ab875d88-041d-4480-9147-5bb9f6650b04"
},
"data": {
"params": {
"reward": 20,
"input": true,
"correct": true
},
"playerId": "elizabeth78",
"text": "What is the capital of Japan?",
"choices": [
{
"text": "Tokushima",
"keywords": [
"1"
]
},
{
"text": "Toyama",
"keywords": [
"2"
]
},
{
"text": "Tokyo",
"keywords": [
"3"
]
},
{
"text": "Tottori",
"keywords": [
"4"
]
}
],
"stats": {
"1": {
"total": 4,
"correct": 1,
"questionSet": [
659,
654,
656
]
}
},
"currentRound": 1
}
}
The parameters presented in the response body example when the player has sted to play the multiple choice are the following:
Parameter | Description |
---|---|
data | Data contains the Game information. |
params | Parameters |
reward | Add up the points (score) obtained for each question answered correctly. |
input | true : response value (option) was entered.null : response value (option) was not entered. |
correct | true : correct answerfalse : wrong answer |
playerId | Unique identifier of the player. |
text | Interrogative expression used to test knowledge (Question). |
choices | Set of options available to answer the question. |
choices.text | Response (option) to a specific question. |
keywords | Differentiate each option to answer the question. (Value option) |
stats | Contains information for each round played. |
total | Total number of questions a round has. |
stats.correct | Total number of questions that have been answered correctly. |
questionSet | Collection of questions with their respective Id. |
currentRound | The current round the player is in. |
To play the multiple choice, you need to provide the unique identifier of the multiple choice.
Required Parameter | Description |
---|---|
mchoiceid | Multiple Choice Id |
Player Record
You can get the record of points made by the player.
HTTP Request : GET /v1/play/{mchoiceid}/score/{playerId}
To get the player's score, you need to provide the unique identifier of the multiple choice and the player Id. If you want to get the player's score for a specific round, provide the round number.
Required Parameter | Description |
---|---|
mchoiceid | Multiple Choice Id |
playerId | Player Id |
round | Round number |
Updated about 2 years ago