Api Endpoint

agent.halowerk.com

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.

Open interactive test console

Offering

Provider
agent.halowerk.com
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
Data
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://agent.halowerk.com/v1/oss-openolat-question-bank-answer-fixture-review
MIME type
Not provided
First seen
2026-10-16T03:02:07.735Z
Last seen
Tags
None supplied

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.005 USDC
Atomic price: 5000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "5000",
    "payTo": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"
  }
]

Observed health

Status
Healthy
Latest latency
8209 ms
Average latency
2299 ms
HTTP status
204
Last checked
Reachability
100% over 8 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "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ÜßE"
                ]
              }
            ]
          },
          {
            "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üße"
                ]
              }
            ]
          },
          {
            "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üße</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üße</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"
}

Output schema

{
  "$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,
                              "minItems": 0,
                              "type": "array",
                              "uniqueItems": true
                            }
                          },
                          "required": [
                            "item_id",
                            "score",
                            "attempts",
                            "response_valid",
                            "unbound_response_ids",
                            "invalid_response_ids"
                          ],
                          "type": "object"
                        },
                        "maxItems": 16,
                        "minItems": 1,
                        "type": "array"
                      },
                      "passed": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      },
                      "test_score": {
                        "anyOf": [
                          {
                            "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,9})?$",
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "test_score",
                      "passed",
                      "items"
                    ],
                    "type": "object"
                  },
                  "fixture_id": {
                    "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$",
                    "type": "string"
                  }
                },
                "required": [
                  "fixture_id",
                  "events",
                  "expected"
                ],
                "type": "object"
              },
              "maxItems": 16,
              "minItems": 1,
              "type": "array"
            },
            "items": {
              "items": {
                "additionalProperties": false,
                "properties": {
                  "item_id": {
                    "pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$",
                    "type": "string"
                  },
                  "xml": {
                    "maxLength": 131072,
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "item_id",
                  "xml"
                ],
                "type": "object"
              },
              "maxItems": 16,
              "minItems": 1,
              "type": "array"
            },
            "maximum_score": {
              "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,9})?$",
              "type": "string"
            },
            "score_tolerance": {
              "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,9})?$",
              "type": "string"
            }
          },
          "required": [
            "bank_id",
            "maximum_score",
            "cut_value",
            "score_tolerance",
            "items",
            "assets",
            "fixtures"
          ],
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}