List site categories
const url = 'https://example.com/wp-json/wp2/site-manager/v1/categories';const options = {method: 'GET', headers: {'X-WP-Nonce': '<X-WP-Nonce>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/wp-json/wp2/site-manager/v1/categories \ --header 'X-WP-Nonce: <X-WP-Nonce>'Site Manager category taxonomy catalog (hide_empty=false), not post categories. Requires manage_network or manage_options.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Array of CategoryDto (id, name, slug, parent).
object
Site category term_id (Site Manager taxonomy, not post categories).
Term display name. In the list PHP may rewrite default labels via translate_default_term_label.
Category term slug (sanitize_title on write).
Parent term_id (WP_Term->parent); 0 — root. PHP omits this field in SiteDto.categories.
Example
[ { "id": 3, "name": "Training projects", "slug": "training", "parent": 0 }]Not authenticated. DualRest: rest_forbidden (status 401) when there is no cookie session. Cookie + X-WP-Nonce or Application Password.
object
Machine-readable error or event code.
Message text (log, PIN, or password reset).
Extra WP_Error or license payload.
object
Examplegenerated
{ "code": "example", "message": "example", "data": {}}Missing manage_network/manage_options or invalid REST nonce.
object
Machine-readable error or event code.
Message text (log, PIN, or password reset).
Extra WP_Error or license payload.
object
Examplegenerated
{ "code": "example", "message": "example", "data": {}}