changedInput schema / properties / ai / description
Previous value: -"Flag to mark question as AI generated.\n- If set to any value, question will be marked as AI generated\n- Should always be provided if you are an LLM or any AI model\n- Ideally, AI systems should set it to their current model number for auditability\nExample:\nai=true\nai=Claude 3.7 Sonnet"New value: +"Flag to mark question as AI generated. If set to any value, question will be marked as AI generated. Should always be provided if you are an LLM or any AI model. Ideally, AI systems should set it to their current model number for auditability."
changedInput schema / properties / answer / description
Previous value: -"The correct answer(s) for the question.\n- For multiple answers, separate with triple-and operator (\"&&&\")\n- The solution and the corresponding label can also be specified together using the triple arrow (\">>>\") operator\n- Parameters can be used in curly braces {param_name}\n- LaTeX Support (requires QUESTION_FORMAT=LATEX):\n - Inline: $$...$$\n - Block: $$$$...$$$$\n - IMPORTANT: When using LaTeX in answer, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math.\n - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work!\n- Usage by question type:\n - CHOICE: The correct option\n - MULTIPLE-CHOICE: All correct options\n - TEXT/NUMERICAL/EXPRESSION: Expected response(s)\n - ORDER: Items in correct sequence\n - TRUE/FALSE: True statements (false statements go in OPTIONS)\n - MATRIX types: Use format [a;b|c;d] for matrices\n - SET types: Unordered collection of elements\nExample:\nanswer=Paris\nanswer=sin(x)^2+cos(x)^2 # with type = EXPRESSION\nanswer=$$sin^2(x)+cos^2(x)$$ # with type = CHOICE so it renders correctly"New value: +"The correct answer(s) for the question. For multiple answers, separate with triple-and operator (\"&&&\"). The solution and the corresponding label can also be specified together using the triple arrow (\">>>\") operator"
changedInput schema / properties / answer_format / description
Previous value: -"Defines how to display the answer on the results page.\n- Only applicable for FREE-TEXT questions\n- Format: type or type:value\n- Available types:\n - normal: standard text (default)\n - code: with syntax highlighting (specify language after colon)\nExample:\nanswer_format=code:python\nanswer_format=code:sql\nExample API call:\nid=sql_basics\ntype=free-text\ncontent=Write a SQL query to select all columns from the \"users\" table where the age is greater than 18.\nanswer=SELECT * FROM users WHERE age > 18\nanswer_format=code:sql"New value: +"Defines how to display the answer on the results page. Only applicable for FREE-TEXT questions."
changedInput schema / properties / answer_hide / description
Previous value: -"Controls whether correct answers are hidden on the results page.\n- Plus sign (+) to indicate YES\n- Blank field or minus sign (-) indicates NO (default)\n- Useful for test security and preventing answer sharing\n- Critical for reusable questions and practice tests\nExample:\nanswer_hide=+\nExample API call:\nid=uk_countries\ntype=text\ncontent=Name any of the countries within the United Kingdom!\nanswer=England &&& Northern Ireland &&& Scotland &&& Wales\nanswer_require=1\nanswer_hide=+"New value: +"Controls whether correct answers are hidden on the results page."
addedInput schema / properties / answer_hide / enum
Added value: +[
+ "+",
+ "-"
+]
changedInput schema / properties / answer_indefinite / description
Previous value: -"Allows users to add any number of input fields using + and - buttons.\n- Plus sign (+) to indicate YES\n- Blank field or minus sign (-) indicates NO (default)\n- Answer labels will not appear when this is enabled\n- Ideal for brainstorming exercises or questions with variable number of answers\nExample:\nanswer_indefinite=+\nExample API call:\nid=name_countries\ntype=text\ncontent=Name as many European countries as you can think of.\nanswer=France &&& Germany &&& Italy &&& Spain &&& United Kingdom &&& ...\nanswer_indefinite=+"New value: +"Allows users to add any number of input fields using + and - buttons."
addedInput schema / properties / answer_indefinite / enum
Added value: +[
+ "+",
+ "-"
+]
changedInput schema / properties / answer_label / description
Previous value: -"Text displayed in/above the input field during the test.\n- Separate multiple labels with triple-and operators (\"&&&\")\n- Automatically activates the answer_order function\n- Perfect for multi-part questions where each part needs clear labeling\n- Useful for creating pairing/matching questions, provide elements in this field!\nExample:\nanswer_label=a) Distance (km) &&& b) Time (hours) &&& c) Speed (km/h)\nExample API call:\nid=basic_math\ntype=numerical\ncontent=Given the number 16:\\n\\na) What is double this number?\\n\\nb) What is half of this number?\\n\\nc) What is this number plus 10?\nanswer=32 &&& 8 &&& 26\nanswer_label=a) Double &&& b) Half &&& c) Plus 10\npoints=3"New value: +"Text displayed in/above the input field during the test. Separate multiple labels with triple-and operators (\"&&&\"). Automatically activates the answer_order function."
changedInput schema / properties / answer_order / description
Previous value: -"Controls whether the sequence of multiple answers matters.\n- Plus sign (+) to indicate YES\n- Blank field or minus sign (-) indicates NO (default)\n- When using answer_label, this is automatically activated\n- Essential for questions where sequence is important (e.g., steps in a process)\nExample:\nanswer_order=+\nExample API call:\nid=europe_cities_population\ntype=text\ncontent=List the following European cities in descending order by population (largest first)\nanswer=London &&& Madrid &&& Paris\nanswer_order=+"New value: +"Controls whether the sequence of multiple answers matters."
addedInput schema / properties / answer_order / enum
Added value: +[
+ "+",
+ "-"
+]
changedInput schema / properties / answer_require / description
Previous value: -"Number of answers required for maximum score.\n- Not applicable for CHOICE and FREE-TEXT questions\n- Perfect for questions with multiple valid answers where only a subset needs to be provided\n- Useful when asking students to provide any X examples from a larger set\nExample:\nanswer_require=3\nExample API call:\nid=uk_countries\ntype=text\ncontent=Name any one of the countries within the United Kingdom!\nanswer=England &&& Northern Ireland &&& Scotland &&& Wales\nanswer_require=1"New value: +"Number of answers required for maximum score. Only applicable for questions with multiple valid answers where only a subset needs to be provided."
changedInput schema / properties / attachment / description
Previous value: -"Attach a file to the question.\nFormat: filename=data, where data is either a base64-encoded file (whole data string) or a URL"New value: +"Attach a file to the question. Format: filename=data, where data is either a base64-encoded file (whole data string) or a URL."
changedInput schema / properties / constraints / description
Previous value: -"Define rules that parameter combinations must satisfy.\n- Mathematical expressions that must evaluate to true\n- Parameters must be in curly braces {param}\n- Allowed relations: <, <=, =, >=, >, <>\n- Multiple constraints separated by triple-and operators (\"&&&\")\nExamples:\nconstraints={b}^2-4*{a}*{c}>0\nconstraints={a}+{b}>{c} &&& {b}+{c}>{a} &&& {c}+{a}>{b}\nconstraints={x}+{y}<10 &&& {x}<4"New value: +"Define rules that parameter combinations must satisfy."
changedInput schema / properties / content / description
Previous value: -"The main question text that will be displayed to the test taker.\nSupports rich formatting options:\n- LaTeX Support (requires QUESTION_FORMAT=LATEX):\n - Inline: $$...$$\n - Block: $$$$...$$$$\n - IMPORTANT: When using LaTeX in questions, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math.\n - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work!\n- Parameters: Use curly braces {parameter_name} (defined in PARAMETERS field)\n- Quick expressions: Use ~~~expression~~~ for simple parameter calculations, e.g., area of a circle is ~~~{r}*{r}*pi~~~\n- Style formatting with EduTags:\n - Bold: [[B]]...[[/B]]\n - Italic: [[I]]...[[/I]]\n - Underline: [[U]]...[[/U]]\n - Subscript: [[SUB]]...[[/SUB]], Superscript: [[SUP]]...[[/SUP]]\n - Code: [[CODE]]...[[/CODE]], [[CODEBLOCK]]...[[/CODEBLOCK]]\n - Colors: [[COLOR:{color}]]...[[/COLOR]], [[BACKGROUND:{color}]]...[[/BACKGROUND]]\n- Tables: Use [[..]] format with semicolons for columns, vertical bars for rows, e.g., [[Header 1; Header 2 | Data 1; Data 2]]\n- Answer placeholders: [[___]] (3 underscores), for fill-in-the-gaps\nExample:\ncontent=Calculate the area of a circle with radius {r} using $$A = \\pi r^2$$"New value: +"The main question text that will be displayed to the test taker. Supports rich formatting options, including LaTeX, parameters, quick expressions, and EduTags for styling. This is documented as `question` in the Developer Documentation, but named `content` in the API for better clarity."
changedInput schema / properties / datetime_precision / description
Previous value: -"Date/time precision.\n- Applicable only for DATE/TIME questions\n- Accepted values: YEAR / MONTH / DAY (default)\n- Defines granularity of date validation\nExample:\ndatetime_precision=MONTH"New value: +"Date/time precision. Applicable only for DATE/TIME questions. Accepted values: YEAR / MONTH / DAY. Default: DAY."
changedInput schema / properties / datetime_range / description
Previous value: -"Date/time range (interval) question.\n- Applicable only for DATE/TIME questions\n- Plus sign (+) to indicate YES, while blank field or minus sign (-) indicates NO (default)\n- Enables date range responses with the format {from}-{to}\nExample:\ndatetime_range=+"New value: +"Date/time range (interval) question. Applicable only for DATE/TIME questions."
addedInput schema / properties / datetime_range / enum
Added value: +[
+ "+",
+ "-"
+]
changedInput schema / properties / decimals / description
Previous value: -"Decimal precision (default: 2).\n- Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions\n- The expected decimal precision of the final answer\n- Examples: Finance (decimals=2), Chemistry (decimals=4)\nExample:\ndecimals=3"New value: +"Decimal precision. Default: 2. Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions."
changedInput schema / properties / explanation / description
Previous value: -"Text displayed underneath the answer on the results page.\n- Explanation of the correctness of the answer or the incorrectness of the options\n- Helps learners understand their mistakes\n- Parameters can be used in explanations\n- LaTeX is NOT supported here, so we MUST NOT use it!\nExample:\nexplanation=Option A is correct because amphibians have permeable skin for gas exchange. Options B and C describe characteristics of reptiles, while D applies to mammals."New value: +"Text displayed underneath the answer on the results page."
changedInput schema / properties / expression_check / description
Previous value: -"Define how expressions should be validated (RANDOM, EXPLICIT, COMPARE) (default: RANDOM).\n- RANDOM: Evaluates expressions at randomly generated points\n- EXPLICIT: Checks expressions at predefined values against target values\n- COMPARE: Direct comparison of expressions without variables\nExample:\nexpression_check=RANDOM"New value: +"Define how expressions should be validated (RANDOM, EXPLICIT, COMPARE). Default: RANDOM."
addedInput schema / properties / expression_check / enum
Added value: +[
+ "RANDOM",
+ "EXPLICIT",
+ "COMPARE"
+]
changedInput schema / properties / expression_decimals / description
Previous value: -"Sets precision for decimal calculations (default: 2).\n- Inherited from decimals field if not specified\n- Critical for controlling accurate validation of expressions\nExample:\nexpression_decimals=4 # For high-precision calculations"New value: +"Sets precision for decimal calculations. Default: 2."
changedInput schema / properties / expression_explicit_goal / description
Previous value: -"Define exact value pairs (format: [x;f(x)]).\n- Format for multiple variables: [x;y;z;...;f(x,y,z,...)]\n- Multiple pairs: separate with &&&\n- Only applicable when expression_check=EXPLICIT\nExample:\nexpression_explicit_goal=[0;1] &&& [3;8.89] &&& [9;16]"New value: +"Define exact value pairs (format: [x;f(x)]). Format for multiple variables: [x;y;z;...;f(x,y,z,...)]. Multiple pairs: separate with triple-and operators (\"&&&\"). Only applicable when expression_check=EXPLICIT."
changedInput schema / properties / expression_extended / description
Previous value: -"Enable additional mathematical functions (+ to enable, - to disable).\n- Activates support for custom base logarithms (e.g., log2(4))\n- Enables factorial operations (e.g., 5!, 1!+2!+3!)\nExample:\nexpression_extended=+"New value: +"Enable additional mathematical functions. Activates support for custom base logarithms (e.g., log2(4)). Enables factorial operations (e.g., 5!, 1!+2!+3!)."
addedInput schema / properties / expression_extended / enum
Added value: +[
+ "+",
+ "-"
+]
changedInput schema / properties / expression_functions / description
Previous value: -"Controls whether functions can be used in user inputs (+ for yes, - for no) (default: +).\n- Enabled by default with + sign\n- Disable with - sign when students should use alternative forms\n- Affects available input options for test takers\n- Supported functions include:\n * Basic: sqrt, abs, round, floor, ceil\n * Logarithmic: ln, log, log10\n * Trigonometric: sin, cos, tan, csc, sec, arcsin/asin, arccos/acos, arctan/atan\n * Hyperbolic: sinh, cosh, tanh, arcsinh/asinh, arccosh/acosh, arctanh/atanh\n * Conversions: degree2radian, radian2degree, number2binary, number2hexadecimal, roman2number, etc.\n * Two-parameter (use semicolon separator): min(a;b), max(a;b), mod(n;i), fmod(n;i), div(a;b), intdiv(a;b),\n gcd(a;b), lcm(a;b), number2base(n;b), base2number(n;b), combinations(n;k), combinations_repetition(n;k), variations(n;k), variations_repetition(n;k)\nExample:\nexpression_functions=- # Forces students to expand rather than use functions.\n# When asked for the value of sin(pi), the user can't input sin(pi) because functions cannot be used."New value: +"Controls whether functions can be used in user inputs. Default: +."
addedInput schema / properties / expression_functions / enum
Added value: +[
+ "+",
+ "-"
+]
changedInput schema / properties / expression_random_inside / description
Previous value: -"Require values within specific intervals (format: [start-end]).\n- Multiple intervals: separate with ||| (OR relationship)\n- Specify per variable with &&&\n- Only applicable when expression_check=RANDOM\nExample:\nexpression_random_inside=[4-8] ||| [12-16] &&& [2-3]"New value: +"Require values within specific intervals (format: [start-end]). Multiple intervals: separate with triple-or operators (\"|||\"). Specify per variable with triple-and operators (\"&&&\"). Only applicable when expression_check=RANDOM."
changedInput schema / properties / expression_random_outside / description
Previous value: -"Exclude values from specific intervals (format: [start-end]).\n- Multiple intervals: separate with ||| (AND relationship)\n- Specify per variable with &&&\n- Only applicable when expression_check=RANDOM\nExample:\nexpression_random_outside=[0-1] ||| [10-20] &&& [8-11]"New value: +"Exclude values from specific intervals (format: [start-end]). Multiple intervals: separate with triple-or operators (\"|||\"). Specify per variable with triple-and operators (\"&&&\"). Only applicable when expression_check=RANDOM."
changedInput schema / properties / expression_random_range / description
Previous value: -"Define value generation ranges (format: [min-max]).\n- Specify per variable with &&&\n- Only applicable when expression_check=RANDOM\nExample:\nexpression_random_range=[8-16] &&& [4-6] # Different ranges for different variables"New value: +"Define value generation ranges (format: [min-max]). Specify per variable with triple-and operators (\"&&&\"). Only applicable when expression_check=RANDOM."
changedInput schema / properties / expression_random_tries / description
Previous value: -"Number of validation points (default: 5).\n- Only applicable when expression_check=RANDOM\n- Higher values increase validation reliability but impact performance\nExample:\nexpression_random_tries=8"New value: +"Number of validation points. Default: 5. Only applicable when expression_check=RANDOM."
changedInput schema / properties / expression_random_type / description
Previous value: -"Type of generated test values (INTEGER, FLOAT).\n- Specify per variable with &&&\n- Only applicable when expression_check=RANDOM\nExample:\nexpression_random_type=INTEGER &&& FLOAT # For mixed type validation"New value: +"Type of generated test values (INTEGER, FLOAT). Specify per variable with triple-and operators (\"&&&\"). Only applicable when expression_check=RANDOM."
changedInput schema / properties / expression_variable / description
Previous value: -"Specifies variable names used in expressions (separate multiple variables with &&&) (default: x).\n- Multiple variables can be used for multivariable expressions\n- Variable names must be used consistently in answer and validation\nExamples:\nexpression_variable=t &&& v # For distance formula using time and velocity"New value: +"Specifies variable names used in expressions (separate multiple variables with &&&). Default: x."
changedInput schema / properties / file_count / description
Previous value: -"Limit the number of files that can be uploaded.\n- Applicable only for FILE questions\n- Integer between 1-25\nExample:\nfile_count=1"New value: +"Limit the number of files that can be uploaded. Applicable only for FILE questions. Integer between 1-25."
changedInput schema / properties / file_types / description
Previous value: -"Limit the filetypes that can be uploaded.\n- Applicable only for FILE questions\n- File extensions separated by triple-and operators (&&&)\nExample:\nfile_types=zip &&& rar"New value: +"Limit the filetypes that can be uploaded. Applicable only for FILE questions. File extensions separated by triple-and operators (\"&&&\")."
changedInput schema / properties / freetext_characters / description
Previous value: -"Limit the number of characters that can be entered.\n- Applicable only for FREE-TEXT questions\n- Format: minimum-maximum, but you can specify only a minimum or maximum as well\n- Integer(s) between 0-4000\nExample:\nfreetext_characters=100-1000\nfreetext_characters=10- # Minimum 10 characters"New value: +"Limit the number of characters that can be entered. Applicable only for FREE-TEXT questions. Format: minimum-maximum, but you can specify only a minimum or maximum as well. Integers between 0-4000."
changedInput schema / properties / freetext_rules / description
Previous value: -"Automatic evaluation of free text questions.\n- Applicable only for FREE-TEXT questions\n- Notation: {type; keywords}\n- Type:\n - 1: if keywords are included within input, answer is correct (maximum points)\n - 2: if keywords are included within input, answer is wrong (0 points)\n - 3: if no keywords are included within input, answer is good (maximum points)\n - 4: if keywords are not included within input, answer is wrong (0 points)\n- Keywords: comma-separated list (must not contain semicolons!)\nExample:\nfreetext_rules={1; mitochondria, ATP, cellular respiration}"New value: +"Automatic evaluation of free text questions. Applicable only for FREE-TEXT questions."
changedInput schema / properties / freetext_words / description
Previous value: -"Limit the number of words that can be entered.\n- Applicable only for FREE-TEXT questions\n- Format: minimum-maximum, but you can specify only a minimum or maximum as well\n- Integer(s) between 0-4000\nExample:\nfreetext_words=-50 # Max. 50 words"New value: +"Limit the number of words that can be entered. Applicable only for FREE-TEXT questions. Format: minimum-maximum, but you can specify only a minimum or maximum as well. Integers between 0-4000."
changedInput schema / properties / group / description
Previous value: -"Add a question to a question group in a Quiz set.\n- If the group doesn't exist, it will be created automatically as a complex task with default settings\n- Only applicable when uploading DIRECTLY to a Quiz set\n- Existing group settings will not be changed when adding more questions\nExample:\ngroup=Basic_Arithmetic"New value: +"Add a question to a question group in a Quiz set. If the group doesn't exist, it will be created automatically as a complex task with default settings. Only applicable when uploading DIRECTLY to a Quiz set. Existing group settings will not be changed when adding more questions."
changedInput schema / properties / hint / description
Previous value: -"Questions to help (not solution steps, just guiding questions/notes).\n- LaTeX code can be used (as described in QUESTION)\n - IMPORTANT: When using LaTeX in hints, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math.\n - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work!\n- Specify multiple hints separated by triple-and operators (\"&&&\")\n- Not available for test takers in exam mode\n- Displayed only when explicitly requested, one by one\n- Can be penalized using HINT_PENALTY\nExample:\nhint=Think about the relationship between radius and area &&& Remember the formula for circle area involves $\\pi$ &&& Square the radius and multiply by $\\pi$"New value: +"Questions to help (not solution steps, just guiding questions/notes)."
changedInput schema / properties / hint_penalty / description
Previous value: -"Point deduction for using hints/solutions/videos during a test.\n- Format: type or type:value\n- Types:\n - NONE: No penalty (default)\n - ONCE:N%: Single deduction regardless of number used\n - PER-HELP:N%: Deduction for each hint (only for HINT_PENALTY)\nExamples:\nhint_penalty=ONCE:20% or hint_penalty=ONCE:0.2\nhint_penalty=PER-HELP:10%\nsolution_penalty=ONCE:50%\nvideo_penalty=ONCE:15%\nExample API call with comprehensive penalty system:\nid=area_circle_parametric\ntype=expression\ncontent=Find an expression for the area of a circle with radius {r}.\nanswer=pi*{r}^2\nparameters={r; INTEGER; 2; 10}\npoints=10\nsubject=Mathematics\ncategory=Geometry\nhint=Think about the formula for circle area &&& Remember that area involves squaring the radius\nsolution=The formula for circle area is $$\\pi r^2$$\npenalty_scoring=PER_ANSWER\npenalty_points=3\nhint_penalty=PER-HELP:10%\nsolution_penalty=ONCE:50%\n# Each hint used reduces score by 10%, viewing solution reduces score by 50%"New value: +"Point deduction for using hints/solutions/videos during a test."
changedInput schema / properties / hotspot_image / description
Previous value: -"The image on which the points must be marked.\nSupported formats: PNG, JPEG, WebP\nFormat: filename=data, where data is either a base64-encoded image (whole data string) or a URL"New value: +"The image on which the points must be marked. Applicable only for HOTSPOT questions. Supported formats: PNG, JPEG, WebP. Format: filename=data, where data is either a base64-encoded image (whole data string) or a URL."
changedInput schema / properties / hotspot_zones / description
Previous value: -"Zones accepted as answers.\n- Applicable only for HOTSPOT questions\n- All numerical values must be entered as percentages!\n- In case of coordinates, (0; 0) is the upper left corner of the image, while (100; 100) is the lower right corner\n- Zones separated by triple-and operators (&&&)\nAccepted values:\n- Circular zone:\n - Notation: {circle; X; Y; R}\n - X: X (horizontal) coordinate of the center of the circle\n - Y: Y (vertical) coordinate of the center of the circle\n - R: radius of the circle (proportional to the width of the image)\n - Example: {circle; 50; 50; 10}\n- Rectangular zone:\n - Notation: {rectangle; X1; Y1; X2; Y2}\n - X1: X (horizontal) coordinate of the upper left corner of the rectangle\n - Y1: Y (vertical) coordinate of the upper left corner of the rectangle\n - X2: X (horizontal) coordinate of the lower right corner of the rectangle\n - Y2: Y (vertical) coordinate of the lower right corner of the rectangle\n - Example: {rectangle; 25; 25; 50; 50}"New value: +"Zones accepted as answers. Applicable only for HOTSPOT questions."
changedInput schema / properties / id / description
Previous value: -"External unique question identifier for question management.\nShould be maximum 64 characters long!\nOn repeated uploads, the questions are updated (rather then added) based on this value, which can be an arbitrary text.\nIf the question already exists at upload time with the same external identifier (in the given folder or Quiz set), the existing question will be updated instead of being added as a new one.\n- Use cases:\n - Integration with external systems\n - Version control\n - Batch updates\n - Content synchronization\n- Best practices:\n - Use consistent naming conventions\n - Include version, source or date information\n - Consider hierarchical IDs for related content\nExample:\n- id=MATHEMATICS_ARITHMETIC_BASIC_ADDITION_STATIC_001\n- type=numerical\n- content=What is 2+2?\n- answer=4"New value: +"External unique question identifier for question management."
addedInput schema / properties / id / maxLength
Added value: +64
changedInput schema / properties / image / description
Previous value: -"Attach an image to the question.\nSupported formats: PNG, JPEG, WebP\nFormat: filename=data, where data is either a base64-encoded image (whole data string) or a URL"New value: +"Attach an image to the question. Supported formats: PNG, JPEG, WebP. Format: filename=data, where data is either a base64-encoded image (whole data string) or a URL."
changedInput schema / properties / labels / description
Previous value: -"Categorize questions with instance-level labels.\n- Pre-defined values specific to each EduBase instance\n- Values controlled by instance administrators (cannot be created by users)\n- Consistent across all users in an instance\n- Specify multiple labels separated by triple-and operators (\"&&&\")\n- Use cases include:\n - System-wide flags (e.g., \"needs_review\", \"featured\")\n - Quality indicators (e.g., \"verified\", \"deprecated\")\n - Processing status (e.g., \"ai_generated\", \"manually_checked\")\nExample:\nlabel=verified &&& featured"New value: +"Categorize questions with instance-level labels. Pre-defined values specific to each EduBase instance."
changedInput schema / properties / language / description
Previous value: -"The language of the question.\n- Alpha-2 code according to ISO 639-1\nExample:\nlanguage=hu # Hungarian"New value: +"The language of the question, in Alpha-2 code format (according to ISO 639-1)."
changedInput schema / properties / main_category / description
Previous value: -"The name of the category (for which CATEGORY will be a subcategory).\n- Empty by default, e.g. CATEGORY will be treated as the main category\n- Specify multiple levels (up to 2!) by using the triple-per operator (///) with highest main category on the left\nExample:\nmain_category=Analytic Geometry /// Vectors"New value: +"The name of the category (for which CATEGORY will be a subcategory)."
changedInput schema / properties / manual_scoring / description
Previous value: -"Controls when to enable manual scoring.\n- Not applicable for READING and FREE-TEXT questions\n- Available values:\n - NO: Never use manual scoring (default)\n - NOT_CORRECT: Only manually score incorrect answers\n - ALWAYS: Always require manual scoring\nExample:\nmanual_scoring=NOT_CORRECT"New value: +"Controls when to enable manual scoring. Not applicable for READING and FREE-TEXT questions."
addedInput schema / properties / manual_scoring / enum
Added value: +[
+ "NO",
+ "NOT_CORRECT",
+ "ALWAYS"
+]
changedInput schema / properties / media_audio / description
Previous value: -"Attach an audio file to the question.\nSupported formats: MP3, AAC, M4A\nFormat: filename=data, where data is either a base64-encoded audio file (whole data string) or a URL"New value: +"Attach an audio file to the question. Supported formats: MP3, AAC, M4A. Format: filename=data, where data is either a base64-encoded audio file (whole data string) or a URL."
changedInput schema / properties / note / description
Previous value: -"The text that appears right below the question.\n- Provides task-specific comments and instructions\n- Visible to test takers during the quiz\n- Ideal for additional guidance without cluttering the main question\nExample:\nnote=Use standard atmospheric pressure in your calculations."New value: +"The text that appears right below the question."
changedInput schema / properties / numerical_range / description
Previous value: -"Number range (interval) question.\n- Only applicable for NUMERIC questions\n- Plus sign (+) to indicate YES, while blank field or minus sign (-) indicates NO (default)\n- Enables interval responses with the format {from}-{to}\nExample:\nnumerical_range=+"New value: +"Number range (interval) question. Only applicable for NUMERIC questions."
addedInput schema / properties / numerical_range / enum
Added value: +[
+ "+",
+ "-"
+]
changedInput schema / properties / options / description
Previous value: -"Incorrect options or false statements for choice-based question types.\n- Required for CHOICE, MULTIPLE-CHOICE question types\n- For TRUE/FALSE, these are the false statements (ANSWER contains true statements)\n- Separate multiple options with triple-and operators (\"&&&\")\n- Parameters can be used in curly braces {param_name}\n- LaTeX Support (requires QUESTION_FORMAT=LATEX):\n - Inline: $$...$$\n - Block: $$$$...$$$$\n - IMPORTANT: When using LaTeX in questions, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math.\n - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work!\nExample:\noptions=London &&& Berlin &&& Madrid\nExample API call:\nid=capital_france\ntype=choice\ncontent=What is the capital of France?\nanswer=Paris\noptions=London &&& Berlin &&& Madrid"New value: +"Incorrect options or false statements for choice-based question types. Only applicable for CHOICE, MULTIPLE-CHOICE, and TRUE/FALSE questions. Separate multiple options with triple-and operators (\"&&&\")."
changedInput schema / properties / options_fix / description
Previous value: -"Controls the arrangement of answers and options.\n- Available values:\n - all: Answers appear first, followed by options\n - abc: Sort all items (answers and options) alphabetically\n - first:N: Place first N options at the end\n - last:N: Place last N options at the end\n - answers: Place all answers at the end\n- Useful for maintaining consistent presentation or for specific pedagogical purposes\nFor alphabetical ordering:\n- When migrating content from textbooks or past exams, can maintain original lettering system (a, b, c...) for:\n - Reference consistency with printed materials\n - Alignment with answer keys\n - Compatibility with existing grading systems\n - Cross-referencing with study guides\n- Particularly valuable when:\n - Test takers need to refer to both digital and printed materials\n - Questions are part of a larger standardized test system\n - Maintaining consistency with existing worksheets or textbooks\n - Digitizing legacy assessment materials\nExample:\noptions_fix=abc\nExample API call:\nid=fruit_types\ntype=multiple-choice\ncontent=Which of these are citrus fruits?\nanswer=Lemon &&& Orange\noptions=Apple &&& Banana &&& Grape\noptions_fix=abc\nExample API call:\nid=vocab_synonyms\ntype=multiple-choice\ncontent=Select all words that mean \"happy\":\nanswer=b) Joyful &&& d) Merry\noptions=a) Angry &&& c) Sleepy &&& e) Tired\noptions_fix=abc"New value: +"Controls the arrangement of answers and options."
changedInput schema / properties / options_order / description
Previous value: -"Define exact presentation order of answers and options.\n- Format: ANSWER:N or OPTION:N items separated by \"&&&\"\n- ANSWER:N references the Nth provided answer\n- OPTION:N references the Nth provided option\n- OPTION_NONE:N references the Nth third option (for TRUE/FALSE questions)\n- All answers and options must be specified exactly once\nExample:\noptions_order=OPTION:0 &&& ANSWER:0 &&& OPTION:1 &&& ANSWER:1\nExample API call to create a chronologically ordered timeline\nid=historical_chronology\ntype=multiple-choice\ncontent=Which of these events occurred during the Industrial Revolution (1760-1840)?\nanswer=Invention of the Steam Engine &&& First Steam Locomotive &&& First Commercial Railway\noptions=Printing Press Invented &&& First Electric Light Bulb &&& First Powered Flight\noptions_order=OPTION:0 &&& ANSWER:0 &&& ANSWER:1 &&& ANSWER:2 &&& OPTION:1 &&& OPTION:2"New value: +"Define exact presentation order of answers and options."
changedInput schema / properties / parameters / description
Previous value: -"Parameter definitions for dynamic question generation.\nOne of EduBase's most powerful features, allowing creation of dynamic questions where each user gets a unique variant of the same question.\n- Separate multiple parameters with triple-and operators (\"&&&\")\n- Up to 128 parameters can be defined\nParameter Types:\n1. FIX (Fixed Value):\n - Format: {name; FIX; value}\n - Sets a predefined constant value (integer or fraction)\n - Example: {pi; FIX; 3.1415}\n2. INTEGER (Whole Numbers):\n - Simple: {name; INTEGER}\n - Extended: {name; INTEGER; min; max}\n - Full: {name; INTEGER; min; max; inside; outside}\n - Generate random integers within specified ranges\n - Use '-' for omitting min/max values\n - Examples:\n * {p; INTEGER} - any integer\n * {p; INTEGER; 10; 20} - integer between 10 and 20 (inclusive)\n * {p; INTEGER; -; -; [10-20]; [12-14] ||| [16-18]} - integer between 10-20, excluding 12-14 and 16-18\n3. FLOAT (Decimal Numbers):\n - Simple: {name; FLOAT; precision}\n - Extended: {name; FLOAT; precision; min; max}\n - Full: {name; FLOAT; precision; min; max; inside; outside}\n - Generate random decimal numbers\n - Specify precision (decimal places)\n - Examples:\n * {p; FLOAT; 2} - float with 2 decimal places\n * {p; FLOAT; 5; 0; 1} - float between 0 and 1 with 5 decimals\n * {p; FLOAT; 1; 0; 10; -; [0-1]} - float between 0-10 excluding 0-1, with 1 decimal\n4. FORMULA (Expressions):\n - Simple: {name; FORMULA; formula}\n - Full: {name; FORMULA; formula; precision}\n - Define parameters based on other parameters\n - Examples:\n * {d; FORMULA; {b}^2-4*{a}*{c}} - quadratic formula discriminant\n * {p; FORMULA; 2*{q}+1} - linear expression\n5. LIST (Random Selection):\n - Format: {name; LIST; value1; value2; value3; ...}\n - Randomly select from predefined values\n - Up to 64 elements\n - Examples:\n * {primes; LIST; 2; 3; 5; 7; 11}\n * {animals; LIST; dog; cat; snake; camel}\n6. PERMUTATION:\n - Format: {name; PERMUTATION; value1; value2; value3; ...}\n - Creates permutated parameters accessible as {name_1}, {name_2}, etc.\n - Example: {p; PERMUTATION; A; B; C; D}\n * So {p_1} will be a different letter than {p_2}\n - Example: {primes; PERMUTATION; 2; 3; 5; 7}\n * So both {primes_1} and {primes_2} will be different single digit primes\n7. FORMAT:\n - Format: {name; FORMAT; parameter; type; ...}\n - Format parameters based on other parameters\n - Supported types: NUMBER, NUMERTEXT, ROMAN\n - Optional extra parameters based on type\n * NUMBER\n * precision: number of decimal places\n - Examples:\n * {pp; FORMAT; p; NUMBER; 1} - format as number rounded to 1 decimal\n * {pp; FORMAT; p; NUMBERTEXT} - format number as text\n * {pp; FORMAT; p; ROMAN} - format number as Roman numeral\nBest Practices:\n - Order parameters so dependent ones come later\n - Use simple notation when possible\n - Avoid unnecessary parameters\n - Use CONSTRAINTS field to ensure valid combinations\nExamples:\nparameters={pi; FIX; 3.14159} &&& {r; INTEGER; 1; 10}\nparameters={a; INTEGER; 1; 5} &&& {b; INTEGER; -10; 10} &&& {c; INTEGER; -10; 10} &&& {d; FORMULA; {b}^2-4*{a}*{c}}\nparameters={country; LIST; France; Germany; Italy} &&& {capital; LIST; Paris; Berlin; Rome}\nparameters_sync=+ # Ensures each country is paired with its correct capital"New value: +"Parameter definitions for dynamic question generation. Separate multiple parameters with triple-and operators (\"&&&\"). Up to 128 parameters can be defined!"
changedInput schema / properties / parameters_sync / description
Previous value: -"Controls synchronization of LIST parameter selections.\n- Plus sign (+) to indicate YES\n- Blank field or minus sign (-) indicates NO (default)\n- When enabled, the Nth value from each LIST is selected together\n- Critical for paired data like countries and capitals\nExample:\nparameters_sync=+\nExample API call:\nid=capital_city\ntype=text\ncontent=What is the capital city of {country}?\nanswer={capital}\nparameters={country; LIST; France; Germany; Italy} &&& {capital; LIST; Paris; Berlin; Rome}\nparameters_sync=+"New value: +"Controls synchronization of LIST parameter selections."
addedInput schema / properties / parameters_sync / enum
Added value: +[
+ "+",
+ "-"
+]
changedInput schema / properties / path / description
Previous value: -"Path where question will be stored in personal QuestionBase.\n- Default: /API\n- Supports hierarchical structure with forward slashes\n- Always start with a forward slash!\nExample:\npath=/Mathematics/Calculus/Derivatives"New value: +"Path where question will be stored in personal QuestionBase."
changedInput schema / properties / penalty_points / description
Previous value: -"Points deducted for completely incorrect answers.\n- No penalty applied if answer is partially correct\n- No penalty for empty/unanswered questions\n- Use positive values (recommended)\nExample:\npenalty_points=2\nExample API call with penalties:\nid=physics_multiple_choice\ntype=multiple-choice\ncontent=Which of the following are forms of energy? Select all that apply.\nanswer=Kinetic &&& Potential &&& Thermal\noptions=Velocity &&& Acceleration\npoints=3\npenalty_scoring=PER_QUESTION\npenalty_points=1"New value: +"Points deducted for completely incorrect answers."
changedInput schema / properties / penalty_scoring / description
Previous value: -"Controls how penalty points should be applied.\n- Available values:\n - DEFAULT: Standard penalty application, which might vary by question type (default)\n - PER_ANSWER: Apply penalties for each incorrect answer\n - PER_QUESTION: Apply penalties once per question\nExample:\npenalty_scoring=PER_ANSWER"New value: +"Controls how penalty points should be applied."
addedInput schema / properties / penalty_scoring / enum
Added value: +[
+ "DEFAULT",
+ "PER_ANSWER",
+ "PER_QUESTION"
+]
changedInput schema / properties / points / description
Previous value: -"Maximum points for a fully correct answer.\n- Default: 1 point\n- For questions with multiple answers, partial credit is possible based on SUBSCORING method\nExample:\npoints=10"New value: +"Maximum points for a fully correct answer. Default: 1 point."
changedInput schema / properties / private_note / description
Previous value: -"Private notes (not shown to test takers).\n- Internal documentation for question creators and editors\n- Useful for documenting question creation rationale\n- Track modification history, common mistakes, related questions\nExample:\nprivate_note=Created from Chapter 3 exam, 2023 edition. Students often forget to convert units."New value: +"Private notes (not shown to test takers)."
changedInput schema / properties / question_format / description
Previous value: -"Controls question text rendering.\n- NORMAL: Default text formatting with standard font size, recommended for most tasks\n- LATEX: Enables LaTeX for mathematical, scientific notations (using KaTeX)\n- LONG: Smaller font with automatic paragraph breaks (ideal for lengthy text)\nExample:\nquestion_format=LATEX"New value: +"Controls question text rendering."
addedInput schema / properties / question_format / enum
Added value: +[
+ "NORMAL",
+ "LATEX",
+ "LONG"
+]
changedInput schema / properties / solution / description
Previous value: -"Step-by-step solution.\n- LaTeX code can be used (as described in QUESTION)\n - IMPORTANT: When using LaTeX in solution, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math.\n - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work!\n- Specify multiple solution steps separated by triple-and operators (\"&&&\")\n- Each step is displayed one at a time\n- Can be penalized using SOLUTION_PENALTY\n- Not available in exam mode\nExample:\nsolution=Using the power rule, we differentiate each term: &&& For $x^2$: $\\frac{d}{dx}(x^2) = 2x$ &&& For $x$: $\\frac{d}{dx}(x) = 1$ &&& The constant term disappears: $\\frac{d}{dx}(5) = 0$ &&& Therefore, $\\frac{d}{dx}(x^2 + x + 5) = 2x + 1$"New value: +"Step-by-step solution."
changedInput schema / properties / solution_image / description
Previous value: -"Attach an image to the solution steps.\nSupported formats: PNG, JPEG, WebP\nFormat: filename=data, where data is either a base64-encoded image (whole data string) or a URL"New value: +"Attach an image to the solution steps. Supported formats: PNG, JPEG, WebP. Format: filename=data, where data is either a base64-encoded image (whole data string) or a URL."
changedInput schema / properties / solution_penalty / description
Previous value: -"Similar to HINT_PENALTY\nPoint deduction for viewing steps of the solution (NONE, ONCE:N%) (default: NONE)"New value: +"Point deduction for viewing steps of the solution (NONE, ONCE:N%). Default: NONE."
changedInput schema / properties / source / description
Previous value: -"Specify source of question content (not shown to test takers).\n- Use cases include training material sources, documentation references, content attribution\n- Important for tracking question origins and copyright compliance\nExample:\nsource=Mathematics Textbook Chapter 5, Page 123\nsource=Company Safety Manual 2023, Section 3.4.2"New value: +"Specify source of question content (not shown to test takers)."
changedInput schema / properties / subject / description
Previous value: -"Subject classification for organizing questions.\n- Provides primary categorization for content organization\n- Use the question editor in the EduBase UI for an up-to-date list of possible values\nExample:\nsubject=Mathematics\ncategory=Algebra"New value: +"Subject classification for organizing questions."
changedInput schema / properties / subpoints / description
Previous value: -"Define specific point values for each answer in percentages.\n- Only used when subscoring=CUSTOM\n- Specify percentage values separated by triple-and operators (\"&&&\")\n- Not applicable for CHOICE, READING and FREE-TEXT questions\n- Values should sum to 100 (for percentage)\nExample:\nsubpoints=50 &&& 25 &&& 25\nExample meaning: For a 10-point question with three answers:\n- First answer: 5 points (50%)\n- Second answer: 2.5 points (25%)\n- Third answer: 2.5 points (25%)"New value: +"Define specific point values for each answer in percentages. Only used when subscoring=CUSTOM. Specify percentage values separated by triple-and operators (\"&&&\"). Not applicable for CHOICE, READING and FREE-TEXT questions. Values should sum to 100 (for percentage)."
changedInput schema / properties / subscoring / description
Previous value: -"Method for calculating partial credit for partially correct answers.\n- Not applicable for CHOICE, READING and FREE-TEXT questions\n- Available values:\n - PROPORTIONAL: Points awarded proportionally to correct answers (default)\n - LINEAR_SUBSTRACTED:N: Linear scoring with N points subtracted for each error\n - CUSTOM: Use custom point distribution defined in SUBPOINTS field\n - NONE: No partial credit, all-or-nothing scoring\nExample:\nsubscoring=LINEAR_SUBSTRACTED:2\nExample API call:\nid=math_problem\ntype=numerical\ncontent=What is the sum and product of {a} and {b}?\nanswer={a}+{b} &&& {a}*{b}\nparameters={a; INTEGER; 1; 100} &&& {b; INTEGER; 1; 100}\npoints=4\nsubscoring=CUSTOM\nsubpoints=25 &&& 75"New value: +"Method for calculating partial credit for partially correct answers. Not applicable for CHOICE, READING and FREE-TEXT questions."
changedInput schema / properties / tags / description
Previous value: -"Tag questions with custom user-defined tags.\n- Use ID or code of pre-registered tags\n- Only previously registered tags can be used (must be pre-registered in EduBase UI)\n- Specify multiple tags separated by triple-and operators (\"&&&\")\n- User-controlled categorization that can be created at user or organization level\n- Use cases include:\n - Personal content organization (e.g., \"My Calculus Questions\", \"Spring 2024\")\n - Department-level categorization (e.g., \"IT Department\", \"CS101\")\n - Custom taxonomies for specialized content organization\n- Tags are flexible, customizable, and searchable in the UI\nExample:\ntags=Algebra &&& High School &&& Exam Prep"New value: +"Tag questions with custom user-defined tags. Use ID or code of pre-registered tags."
changedInput schema / properties / tolerance / description
Previous value: -"Evaluation tolerance method.\n- Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions\n- Notation: type or type:value\n- Types:\n - ABSOLUTE: maximum difference between answer and user input\n * Example: ABSOLUTE:0.1\n - RELATIVE: maximum difference in percentage (symmetric mean absolute percentage error, SMAP value is used)\n * Example: RELATIVE:5% or RELATIVE:0.05\n - QUOTIENT: integer multiple / QUOTIENT2: scalar multiple\n * Example: QUOTIENT or QUOTIENT2:SYNCED\nExample:\ntolerance=ABSOLUTE:0.01"New value: +"Evaluation tolerance method. Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions."
changedInput schema / properties / truefalse_third_options / description
Previous value: -"Activate the third option for TRUE/FALSE questions.\n- Plus sign (+) to display the third option OR\n- Specify options separated by triple-and operators (\"&&&\") to automatically enable the feature\n- Parameters can be used in curly braces {param_name}\nExample:\ntruefalse_third_options=Cannot be determined from the information given &&&Not applicable"New value: +"Activate the third option for TRUE/FALSE questions. Plus sign (+) to display the third option OR specify options separated by triple-and operators (\"&&&\") to automatically enable the feature."
changedInput schema / properties / truefalse_third_options_label / description
Previous value: -"Label of the third option for TRUE/FALSE questions.\n- If blank, the text \"none\" is displayed (default)\n- Only applicable when TRUEFALSE_THIRD_OPTIONS is enabled\nExample:\ntruefalse_third_options_label=Not enough information"New value: +"Label of the third option for TRUE/FALSE questions. If blank, the text \"none\" is displayed (default). Only applicable when TRUEFALSE_THIRD_OPTIONS is enabled."
changedInput schema / properties / type / description
Previous value: -"Type of the question.\nEduBase supports various question types to accommodate different assessment needs:\n- Basic Types:\n - GENERIC: Strict matching including spaces and punctuation\n - TEXT: Basic text input with flexible matching (ignores spaces and punctuation)\n - FREE-TEXT: Extended text response with semi-automatic grading\n - READING: Non-assessed text display for complex question groups\n- Choice-Based Types:\n - CHOICE: Single correct answer selection\n - MULTIPLE-CHOICE: Multiple correct answers\n - ORDER: Sequence arrangement (arrange items in correct order)\n - TRUE/FALSE: Statement evaluation (true statements in ANSWER, false in OPTIONS)\n- Grouping Types:\n - GROUPING: Assigning elements to predefined groups\n - PAIRING: Matching elements to their pairs\n- Numerical Types:\n - NUMERIC: Numerical value validation with fractions, constants, intervals\n - DATE/TIME: Calendar date validation with adjustable precision\n - EXPRESSION: Mathematical expression evaluation\n- Advanced Types:\n - MATRIX/MATRIX:EXPRESSION: Matrix evaluation (format: [a;b|c;d] for 2x2)\n - SET/SET:TEXT: Unordered collection validation\n - HOTSPOT: Marking specific areas on an image\n - FILE: File submission evaluation\nExample:\ntype=numerical"New value: +"Type of the question."
addedInput schema / properties / type / enum
Added value: +[
+ "GENERIC",
+ "TEXT",
+ "FREE-TEXT",
+ "READING",
+ "CHOICE",
+ "MULTIPLE-CHOICE",
+ "ORDER",
+ "TRUE/FALSE",
+ "GROUPING",
+ "PAIRING",
+ "NUMERIC",
+ "DATE/TIME",
+ "EXPRESSION",
+ "MATRIX",
+ "MATRIX:EXPRESSION",
+ "SET",
+ "SET:TEXT",
+ "HOTSPOT",
+ "FILE"
+]
changedInput schema / properties / video_penalty / description
Previous value: -"Similar to HINT_PENALTY\nPoint deduction for video assistance used (NONE, ONCE:N%) (default: NONE)"New value: +"Point deduction for video assistance used (NONE, ONCE:N%). Default: NONE."