Именно так я поступаю в своём сообществе настольных игр: всякий раз, когда в мою базу данных добавляется (или переименовывается) настольная игра, создаётся или обновляется тег и два пользовательских топика.
Насколько я помню, когда я работал над этим, не было специального эндпоинта для создания одного тега (хотя при создании топика можно добавить новый), но мне удалось использовать пакетную загрузку тегов для решения этой задачи.
Что-то вроде этого:
const formData = new FormData();
formData.append("file", Buffer.from("the-tag-name,an-optional-tag-group"), {
contentType: "text/csv",
filename: "tags.csv",
});
const { data } = await axios.post(`${process.env.DISCOURSE_URL}/tags/upload.json`, formData, {
headers: {
...formData.getHeaders(),
"Api-Key": process.env.API_KEY,
},
});