Deskhero Developer Hub
Back to deskhero.com
Faqs

Set category batch

Moves multiple FAQs into a knowledge base category (category_id 0 = uncategorized). Moved items are appended at the end of the target category's manual public FAQ order. Pass cluster_label_id to also move that topic's uncategorized items in the same call (items that already have a category are left untouched). Returns all updated FAQs.

POST /api/{tenant:minlength(2)}/v{version:apiVersion}/faqs/set_category_batch
Authorisation
Minimum role: USER

Request arguments

Name Type Source
inputDTO_faq_set_category_batchBody
Request body example

Response

Status
200 (OK)
Type
DTO_faq[]
Wrapper
DTO_response_wrap
Other statuses
400 (BadRequest), 401 (Unauthorized), 403 (Forbidden), 429 (TooManyRequests)
Response body example
DTO_faq_set_category_batch
NameTypeReadOnlyDescription
idsInt32[]Ids
category_idInt32Category id
cluster_label_idInt32Optional: also move the cluster label's (topic's) UNCATEGORIZED items into the category, merged with ids. Items that already have a category are left untouched. 0/omitted = ids only.
DTO_faq
NameTypeReadOnlyDescription
clusterDTO_referenceCluster
cluster_labelDTO_referenceCluster label
categoryDTO_referenceCategory
conflicting_faq_idsInt32[]Conflicting faq ids
conflicting_faqsDTO_faq[]Conflicting faqs
sys_attachmentsDTO_reference_attachment[]ReadOnlyFiles (inline images + attachments) referenced by sys_content_rich, with download URLs
idInt32Id
statusENUM faq_statusStatus
questionStringQuestion
answerStringThe answer as plain text - always populated. When the answer has rich formatting this is the server-extracted text variant (what search, embeddings and the AI consume)
sys_content_richDTO_rich_textThe answer as rich text (tiptap). Null while the answer is plain text only
embeddings_status_enum_idInt32Embeddings status enum id
votes_upInt32ReadOnlyPortal feedback votes on the item, maintained server-side
votes_downInt32ReadOnlyVotes down
view_countInt64ReadOnlyViews of the item's public portal page (deduplicated per visitor)
updated_atDateTime (nullable)Updated at
chat_bot_onlyBooleanKept for the AI chat-bot corpus only: hidden from the public FAQ portal's navigation, search and sitemap
sys_translation_statusDictionary`2ReadOnlyPer-language state of the stored portal translations, keyed by lowercase language code: true = up to date, false = outdated (retranslated after the next sweep). A configured portal language missing from the map has no stored translation yet. Null when the item has no stored translations.
DTO_reference
NameTypeReadOnlyDescription
idInt32The id of the reference
labelObjectReadOnlyName/Label from referenced object.
DTO_faq
NameTypeReadOnlyDescription
clusterDTO_referenceCluster
cluster_labelDTO_referenceCluster label
categoryDTO_referenceCategory
conflicting_faq_idsInt32[]Conflicting faq ids
conflicting_faqsDTO_faq[]Conflicting faqs
sys_attachmentsDTO_reference_attachment[]ReadOnlyFiles (inline images + attachments) referenced by sys_content_rich, with download URLs
idInt32Id
statusENUM faq_statusStatus
questionStringQuestion
answerStringThe answer as plain text - always populated. When the answer has rich formatting this is the server-extracted text variant (what search, embeddings and the AI consume)
sys_content_richDTO_rich_textThe answer as rich text (tiptap). Null while the answer is plain text only
embeddings_status_enum_idInt32Embeddings status enum id
votes_upInt32ReadOnlyPortal feedback votes on the item, maintained server-side
votes_downInt32ReadOnlyVotes down
view_countInt64ReadOnlyViews of the item's public portal page (deduplicated per visitor)
updated_atDateTime (nullable)Updated at
chat_bot_onlyBooleanKept for the AI chat-bot corpus only: hidden from the public FAQ portal's navigation, search and sitemap
sys_translation_statusDictionary`2ReadOnlyPer-language state of the stored portal translations, keyed by lowercase language code: true = up to date, false = outdated (retranslated after the next sweep). A configured portal language missing from the map has no stored translation yet. Null when the item has no stored translations.
DTO_reference_attachment
NameTypeReadOnlyDescription
size_kbInt32ReadOnlySize kb
statusENUM attachment_statusReadOnlyStatus
status_messageStringReadOnlyStatus message
download_urlStringReadOnlyDownload url
idInt32Id
labelObjectReadOnlyLabel
DTO_rich_text
NameTypeReadOnlyDescription
plain_previewStringReadOnlyPlain preview
htmlStringHtml
editorjsDTO_editorjsEditorjs
tiptapDTO_tiptapTiptap
read_minutesInt32Read minutes
DTO_editorjs
NameTypeReadOnlyDescription
timeInt64Time
versionStringVersion
blocksDTO_editorjs_block[]Blocks
DTO_editorjs_block
NameTypeReadOnlyDescription
idStringId
typeStringType
dataObjectData
DTO_tiptap
NameTypeReadOnlyDescription
typeStringType
contentDTO_tiptap_node[]Content
DTO_tiptap_node
NameTypeReadOnlyDescription
typeStringType
attrsDTO_tiptap_attrsAttrs
contentDTO_tiptap_node[]Content
textStringText
marksDTO_tiptap_mark[]Marks
DTO_tiptap_attrs
NameTypeReadOnlyDescription
textAlignStringTextalign
levelInt32 (nullable)Level
checkedBoolean (nullable)Checked
idInt32 (nullable)Id
altStringAlt
titleStringTitle
widthStringWidth
wrapperStyleStringWrapperstyle
containerStyleStringContainerstyle
filesDTO_tiptap_file_ref[]Files
hrefStringHref
targetStringTarget
colspanInt32 (nullable)Colspan
rowspanInt32 (nullable)Rowspan
colorStringColor
textStringText
nameStringFor emoji
nativeStringFor emoji
DTO_tiptap_file_ref
NameTypeReadOnlyDescription
idInt32Id
labelStringLabel
DTO_tiptap_mark
NameTypeReadOnlyDescription
typeStringType
attrsDTO_tiptap_attrsAttrs
ENUM faq_status
ValueNameDescription
0UNKNOWNUNKNOWN
1SUGGESTEDSUGGESTED
11MANUALLY_CREATEDMANUALLY_CREATED
21APPROVED_AS_ISAPPROVED_AS_IS
22APPROVED_WITH_EDITSAPPROVED_WITH_EDITS
31DECLINEDDECLINED
32DUPLICATED_IGNOREDUPLICATED_IGNORE
41REMOVEDREMOVED
ENUM attachment_status
ValueNameDescription
0UNKNOWNUNKNOWN
1UNAVAILABLEUNAVAILABLE, processing in progress
2OKOK
3WARNINGWARNING
4ERRORERROR

Generated Aug 22, 2026 09:36