ToolAssay

Executes a question-bank assessment against answer fixtures you supply — an answ

Executes a question-bank assessment against answer fixtures you supply — an answer plus the score it should produce — using the native OpenOLAT QTI engine rather than a reimplementation of the scoring rules. Each fixture comes back with expected and actual score, and the discrepancy count says at a glance whether the bank behaves as its author believed. This is the regression test for a question bank before it goes in front of learners, where a mis-scoring item is expensive and hard to undo.

Answeringour last check, 2026-10-24
1 of 1checks answered this week
1262 msmedian answer time
$0.005listed price per call
$0.005price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://agent.halowerk.com/v1/oss-openolat-question-bank-answer-fixture-review

CategoryEverything else
Provider hostagent.halowerk.com
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days1 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-24 valid payment request 402$0.005 1262 ms

Example input (from the provider)

{
  "body": {
    "assets": [
      {
        "content_base64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4//8/AAX+Av4N70a4AAAAAElFTkSuQmCC",
        "media_type": "image/png",
        "name": "media/diagram.png"
      }
    ],
    "bank_id": "supplied_bank",
    "cut_value": "6",
    "fixtures": [
      {
        "events": [
          {
            "item_id": "single",
            "persist_and_reopen": false,
            "responses": [
              {
                "response_id": "RESPONSE",
                "values": [
                  "A"
                ]
              }
            ]
          },
          {
            "item_id": "multiple",
            "persist_and_reopen": true,
            "responses": [
              {
                "response_id": "RESPONSE",
                "values": [
                  "A",
                  "B"
                ]
              }
            ]
          },
          {
            "item_id": "numeric",
            "persist_and_reopen": false,
            "responses": [
              {
                "response_id": "RESPONSE",
                "values": [
                  "42.0"
                ]
              }
            ]
          },
          {
            "item_id": "text",
            "persist_and_reopen": false,
            "responses": [
              {
                "response_id": "RESPONSE",
                "values": [
                  "GR\u00dc\u00dfE"
                ]
              }
            ]
          },
          {
            "item_id": "ordered",
            "persist_and_reopen": false,
            "responses": [
              {
                "response_id": "RESPONSE",
                "values": [
                  "A",
                  "B",
                  "C"
                ]
              }
            ]
          }
        ],
        "expected": {
          "items": [
            {
              "attempts": 1,
              "invalid_response_ids": [],
              "item_id": "single",
              "response_valid": true,
              "score": "1",
              "unbound_response_ids": []
            },
            {
              "attempts": 1,
              "invalid_response_ids": [],
              "item_id": "multiple",
              "response_valid": true,
              "score": "3",
              "unbound_response_ids": []
            },
            {
              "attempts": 1,
              "invalid_response_ids": [],
              "item_id": "numeric",
              "response_valid": true,
              "score": "1",
              "unbound_response_ids": []
            },
            {
              "attempts": 1,
              "invalid_response_ids": [],
              "item_id": "text",
              "response_valid": true,
              "score": "2",
              "unbound_response_ids": []
            },
            {
              "attempts": 1,
              "invalid_response_ids": [],
              "item_id": "ordered",
              "response_valid": true,
              "score": "1",
              "unbound_response_ids": []
            }
          ],
          "passed": true,
          "test_score": "8"
        },
        "fixture_id": "correct"
      },
      {
        "events": [
          {
            "item_id": "single",
            "persist_and_reopen": false,
            "responses": [
              {
                "response_id": "RESPONSE",
                "values": [
                  "A"
                ]
              }
            ]
          },
          {
            "item_id": "multiple",
            "persist_and_reopen": true,
            "responses": [
              {
                "response_id": "RESPONSE",
                "values": [
                  "A",
                  "C"
                ]
              }
            ]
          },
          {
            "item_id": "numeric",
            "persist_and_reopen": false,
            "responses": [
              {
                "response_id": "RESPONSE",
                "values": [
                  "41"
                ]
              }
            ]
          },
          {
            "item_id": "text",
            "persist_and_reopen": false,
            "responses": [
              {
                "response_id": "RESPONSE",
                "values": [
                  "gr\u00fc\u00dfe"
                ]
              }
            ]
          },
          {
            "item_id": "ordered",
            "persist_and_reopen": false,
            "responses": [
              {
                "response_id": "RESPONSE",
                "values": [
                  "C",
                  "B",
                  "A"
                ]
              }
            ]
          }
        ],
        "expected": {
          "items": [
            {
              "attempts": 1,
              "invalid_response_ids": [],
              "item_id": "single",
              "response_valid": true,
              "score": "1",
              "unbound_response_ids": []
            },
            {
              "attempts": 1,
              "invalid_response_ids": [],
              "item_id": "multiple",
              "response_valid": true,
              "score": "1",
              "unbound_response_ids": []
            },
            {
              "attempts": 1,
              "invalid_response_ids": [],
              "item_id": "numeric",
              "response_valid": true,
              "score": "1",
              "unbound_response_ids": []
            },
            {
              "attempts": 1,
              "invalid_response_ids": [],
              "item_id": "text",
              "response_valid": true,
              "score": "2",
              "unbound_response_ids": []
            },
            {
              "attempts": 1,
              "invalid_response_ids": [],
              "item_id": "ordered",
              "response_valid": true,
              "score": "0",
              "unbound_response_ids": []
            }
          ],
          "passed": true,
          "test_score": "5"
        },
        "fixture_id": "expected_discrepancies"
      }
    ],
    "items": [
      {
        "item_id": "single",
        "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><assessmentItem xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\" identifier=\"single\" title=\"single\" adaptive=\"false\" timeDependent=\"false\"><responseDeclaration identifier=\"RESPONSE\" cardinality=\"single\" baseType=\"identifier\"><correctResponse><value>A</value></correctResponse></responseDeclaration><outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"><defaultValue><value>0</value></defaultValue></outcomeDeclaration><itemBody><p><img src=\"media/diagram.png\" alt=\"Synthetic one-pixel fixture\"/></p><choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"false\" maxChoices=\"1\"><simpleChoice identifier=\"A\">Alpha</simpleChoice><simpleChoice identifier=\"B\">Beta</simpleChoice><simpleChoice identifier=\"C\">Gamma</simpleChoice></choiceInteraction></itemBody><responseProcessing template=\"http://www.imsglobal.org/question/qti_v2p1/rptemplates/match_correct\"/></assessmentItem>"
      },
      {
        "item_id": "multiple",
        "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><assessmentItem xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\" identifier=\"multiple\" title=\"multiple\" adaptive=\"false\" timeDependent=\"false\"><responseDeclaration identifier=\"RESPONSE\" cardinality=\"multiple\" baseType=\"identifier\"><correctResponse><value>A</value><value>B</value></correctResponse><mapping defaultValue=\"-2\" lowerBound=\"0\" upperBound=\"3\"><mapEntry mapKey=\"A\" mappedValue=\"2\"/><mapEntry mapKey=\"B\" mappedValue=\"1\"/><mapEntry mapKey=\"C\" mappedValue=\"-1\"/></mapping></responseDeclaration><outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"><defaultValue><value>0</value></defaultValue></outcomeDeclaration><itemBody><choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"false\" maxChoices=\"3\"><simpleChoice identifier=\"A\">Alpha</simpleChoice><simpleChoice identifier=\"B\">Beta</simpleChoice><simpleChoice identifier=\"C\">Gamma</simpleChoice></choiceInteraction></itemBody><responseProcessing template=\"http://www.imsglobal.org/question/qti_v2p1/rptemplates/map_response\"/></assessmentItem>"
      },
      {
        "item_id": "numeric",
        "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><assessmentItem xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\" identifier=\"numeric\" title=\"numeric\" adaptive=\"false\" timeDependent=\"false\"><responseDeclaration identifier=\"RESPONSE\" cardinality=\"single\" baseType=\"float\"><correctResponse><value>42</value></correctResponse></responseDeclaration><outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"><defaultValue><value>0</value></defaultValue></outcomeDeclaration><itemBody><p>Answer: <textEntryInteraction responseIdentifier=\"RESPONSE\"/></p></itemBody><responseProcessing template=\"http://www.imsglobal.org/question/qti_v2p1/rptemplates/match_correct\"/></assessmentItem>"
      },
      {
        "item_id": "text",
        "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><assessmentItem xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\" identifier=\"text\" title=\"text\" adaptive=\"false\" timeDependent=\"false\"><responseDeclaration identifier=\"RESPONSE\" cardinality=\"single\" baseType=\"string\"><correctResponse><value>Gr\u00fc\u00dfe</value></correctResponse></responseDeclaration><outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"><defaultValue><value>0</value></defaultValue></outcomeDeclaration><itemBody><p>Answer: <textEntryInteraction responseIdentifier=\"RESPONSE\"/></p></itemBody><responseProcessing><responseCondition><responseIf><stringMatch caseSensitive=\"false\" substring=\"false\"><variable identifier=\"RESPONSE\"/><baseValue baseType=\"string\">Gr\u00fc\u00dfe</baseValue></stringMatch><setOutcomeValue identifier=\"SCORE\"><baseValue baseType=\"float\">2</baseValue></setOutcomeValue></responseIf><responseElse><setOutcomeValue identifier=\"SCORE\"><baseValue baseType=\"float\">0</baseValue></setOutcomeValue></responseElse></responseCondition></responseProcessing></assessmentItem>"
      },
      {
        "item_id": "ordered",
        "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><assessmentItem xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\" identifier=\"ordered\" title=\"ordered\" adaptive=\"false\" timeDependent=\"false\"><responseDeclaration identifier=\"RESPONSE\" cardinality=\"ordered\" baseType=\"identifier\"><correctResponse><value>A</value><value>B</value><value>C</value></correctResponse></responseDeclaration><outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"><defaultValue><value>0</value></defaultValue></outcomeDeclaration><itemBody><orderInteraction responseIdentifier=\"RESPONSE\" shuffle=\"false\"><simpleChoice identifier=\"A\">Alpha</simpleChoice><simpleChoice identifier=\"B\">Beta</simpleChoice><simpleChoice identifier=\"C\">Gamma</simpleChoice></orderInteraction></itemBody><responseProcessing template=\"http://www.imsglobal.org/question/qti_v2p1/rptemplates/match_correct\"/></assessmentItem>"
      }
    ],
    "maximum_score": "8",
    "score_tolerance": "0"
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "additionalProperties": false,
          "properties": {
            "assets": {
              "items": {
                "additionalProperties": false,
                "properties": {
                  "content_base64": {
                    "maxLength": 174764,
                    "minLength": 4,
                    "type": "string"
                  },
                  "media_type": {
                    "enum": [
                      "image/png",
                      "image/jpeg",
                      "image/gif",
                      "image/webp"
                    ]
                  },
                  "name": {
                    "pattern": "^[A-Za-z0-9][A-Za-z0-9_./-]{0,127}$",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "media_type",
                  "content_base64"
                ],
                "type": "object"
              },
              "maxItems": 32,
              "minItems": 0,
              "type": "array"
            },
            "bank_id": {
              "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$",
              "type": "string"
            },
            "cut_value": {
              "anyOf": [
                {
                  "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,9})?$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "fixtures": {
              "items": {
                "additionalProperties": false,
                "properties": {
                  "events": {
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "item_id": {
                          "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$",
                          "type": "string"
                        },
                        "persist_and_reopen": {
                          "type": "boolean"
                        },
                        "responses": {
                          "items": {
                            "additionalProperties": false,
                            "properties": {
                              "response_id": {
                                "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$",
                                "type": "string"
                              },
                              "values": {
                                "items": {
                                  "maxLength": 4096,
                                  "minLength": 0,
                                  "type": "string"
                                },
                                "maxItems": 64,
                                "minItems": 0,
                                "type": "array"
                              }
                            },
                            "required": [
                              "response_id",
                              "values"
                            ],
                            "type": "object"
                          },
                          "maxItems": 32,
                          "minItems": 0,
                          "type": "array"
                        }
                      },
                      "required": [
                        "item_id",
                        "responses",
                        "persist_and_reopen"
                      ],
                      "type": "object"
                    },
                    "maxItems": 64,
                    "minItems": 0,
                    "type": "array"
                  },
                  "expected": {
                    "additionalProperties": false,
                    "properties": {
                      "items": {
                        "items": {
                          "additionalProperties": false,
                          "properties": {
                            "attempts": {
                              "maximum": 64,
                              "minimum": 0,
                              "type": "integer"
                            },
                            "invalid_response_ids": {
                              "items": {
                                "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$",
                                "type": "string"
                              },
                              "maxItems": 32,
                              "minItems": 0,
                              "type": "array",
                              "uniqueItems": true
                            },
                            "item_id": {
                              "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$",
                              "type": "string"
                            },
                            "response_valid": {
                              "type": "boolean"
                            },
                            "score": {
                              "anyOf": [
                                {
                                  "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,9})?$",
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "unbound_response_ids": {
                              "items": {
                                "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$",
                                "type": "string"
                              },
                              "maxItems": 32,
                              "m

This page as JSON