Manage tags

Tags help you organize your question banks – and they are the most reliable way to find a bank again programmatically, as you can filter the bank list by tag IDs.

Question bank tags and Riddle tags are the same set, not two separate ones: a tag you created for a Riddle can be applied to a bank as well, and it keeps the same id on both sides. The count returned here only counts question banks, though, so count: 0 means no bank uses the tag, not that the tag is unused overall: it may still be applied to Riddles.

List all tags

/question-bank/tag/list returns every tag that is applied to at least one question bank, together with how many banks carry it:

PropertyRequiredTypeDescription
projectinteger|nullThe project you want the tags of; pass an empty value to get your personal ones. If the parameter is omitted, the project of the API key is used
{
    "success": true,
    "code": 200,
    "data": [
        {"id": 123, "name": "history", "count": 4},
        {"id": 456, "name": "onboarding", "count": 1}
    ]
}

Add a tag to a bank

/question-bank/{questionBank}/tag (POST) applies a tag. Send either tagName or tagId:

PropertyRequiredTypeDescription
tagName(one of the two)stringCreates a new tag with this name and applies it to the bank
tagId(one of the two)integerApplies an already existing tag to the bank
{
    "tagName": "history"
}

Sending neither is answered with 400. The response contains the bank with its updated tags.

Remove a tag from a bank

/question-bank/{questionBank}/tag/{tagId} (DELETE) removes a tag from a bank, where tagId is the ID of the tag. The response contains the bank with its remaining tags.

The tag itself survives as long as it is still applied to another bank or a Riddle. Once nothing uses it any more it is deleted outright, so recreating a tag with the same name later gets a new id.