publ betaReference (MCP guide)
Open publ console

publ Reference

content_taxonomy_get

Read complete free-board or article categories, or one category and its labels/subcategories.

Read the shared content contract for authorization, app identity, result interpretation and recovery.

Inputs and results

Require channelCode and the exact free-board or article pAppCode (A00003/B00001 or its supported installed alias). Omit categoryId to list categories; provide an observed positive categoryId for category metadata and labels. Article support uses the separate v2 source contract described below.

CONTENT_BOARD_TAXONOMY returns either categories or category plus labels, with revision and writesPerformed:false. The list must contain all declared categories within 100; a category's label inventory is bounded to 100. Duplicate IDs, inconsistent totals, malformed identities and incomplete snapshots are refused rather than returned as a complete inventory. There is no caller pagination option.

Use the list revision for content_taxonomy_apply create_category and the category revision for all other taxonomy actions. Free-board IDs also supply category/label selection for content_post_apply; this article taxonomy extension adds no post-category assignment. A taxonomy revision is not a post revision. The returned parent console destination opens board categories; select the appropriate category/settings there.

Input example

This is an input illustration, not a recorded call. Replace the channel, app, observed IDs and all-zero revision with values from the matching authorized read. A dry run does not save changes.

{
  "channelCode": "selected-channel",
  "pAppCode": "A00003",
  "categoryId": 1
}

Article categories

Keep the actual alias, installed ID and consumer; do not substitute B00001 for an installed alias. Article uses v2 board-categories while free-board remains v1. The complete first page is capped at 100; selected detail must belong to that inventory, and its revision also binds sibling categories. Metadata includes description, coverImageSrc, isPublished and a known or null totalPosts. Null is not zero.

Article labels are subcategories. Up to 100 are read completely, with distinct saved order values, and returned in that order. The returned destination is the categories-list parent; select settings, cover or subcategories there. It is not an exact detail URL. New categories are unpublished and this workflow exposes no publication editor.

Illustrative article detail read:

{
  "channelCode": "selected-channel",
  "pAppCode": "B00001",
  "categoryId": 1
}

Article GENERAL label inventory

Supply only channelCode, pAppCode and this view; categoryId is rejected in this alternative. GENERAL labels are separate from the category sublabels described above. Existing category reads and taxonomy mutation inputs/defaults remain unchanged.

CONTENT_GENERAL_LABELS returns labels, revision, taxonomyFamily:article-general-labels and writesPerformed:false. Each label includes id, name, type:GENERAL, order, insertedAt, totalPosts and totalSerieses; labels are returned by ID, not as a requested display order. The unpaged source read must report page one containing the complete inventory with consistent totals/limit and unique IDs for the same instance. Missing metadata, foreign consumers, other label types, incomplete responses or more than 1,000 labels are refused. The 1,000 bound is a defensive read limit, not a source label-creation limit. No type/page/limit query or truncated inventory is invented.

Use this revision as action.expectedLabelsRevision for set_article_labels, together with the separate post-detail revision. It is not a category, post or series revision. This view is read-only. GENERAL create/rename/delete uses this revision as expectedRevision; GENERAL ordering remains unavailable. The validated destination is this article instance's original labels screen; reads create no task and do not prove an atomic snapshot or console behavior.

The unpaged GET uses only inserted_at/DESC sorting and the exact installed-instance consumer; current grant, installation and authorization checks, redirect rejection and response bounds remain in force. HTTP failures including404 remain errors and the complete-inventory parser stays strict. Older hosts without the hook still return CONTENT_GENERAL_LABEL_TRANSPORT_REQUIRED without changing posts or labels.

Illustrative input for a supported article instance, not a recorded call:

{
  "channelCode": "selected-channel",
  "pAppCode": "B00001",
  "view": "general_labels"
}