Custom routes under prc-publish-workflows/v1 for Workspaces and self-watch. Workflow-status terms also use core /wp/v2/workflow-status. Post types that support prc-publish-workflows expose custom REST fields watchers (hydrated user list) and watchChildPosts (boolean; report packages only).
Base path: /wp-json/prc-publish-workflows/v1/
Auth summary
| Access | Routes |
|---|---|
edit_posts (can_use_workspaces) | List/create workspaces, resolve URL, search tracker projects |
| Author, watcher, or admin | Single workspace read/update, watchers, items, tracker link / items |
Owner or manage_options | Delete workspace |
edit_post on target | POST /posts/{id}/watch-self |
Workspaces
| Method | Path | Description |
|---|---|---|
GET | /workspaces | Paginated list scoped to author or watcher (X-WP-Total) |
POST | /workspaces | Create (title required, description optional) |
GET | /workspaces/{id} | Hydrated detail |
PATCH | /workspaces/{id} | Update title/description |
DELETE | /workspaces/{id} | Delete (owner/admin) |
PATCH | /workspaces/{id}/watchers | Replace watcher user ID list |
POST | /workspaces/{id}/items | Add item (type, optional objectId / url / label) |
DELETE | /workspaces/{id}/items/{itemId} | Remove item |
POST | /workspaces/resolve-url | Resolve permalink / edit / pattern / template-part URL to { postId, postType, title, status } |
GET | /workspaces/trackers/{provider}/projects | Search Linear or Asana projects (search) |
PATCH | /workspaces/{id}/trackers/{provider} | Link a project (projectId) or unlink (null / empty) |
GET | /workspaces/{id}/trackers/{provider}/items | Live issues or tasks for the linked project (max 50) |
provider is linear or asana. Unknown providers return 400. Missing tokens return 503 prc_tracker_not_configured. Items without a linked project return 400 prc_tracker_not_linked.
GET /workspaces/{id} includes trackers.linear and trackers.asana as { configured, project } only. It does not embed item lists.
Add item body
-
typeenum required -
Item kind.
-
objectIdnumber -
Post or attachment ID when type is post or attachment.
-
urlurl -
URL for link items or resolution helpers.
-
labelstring -
Display label.
No fields match this filter.
Link tracker project body
-
projectIdstring -
Provider project id. Empty or null unlinks the project.
No fields match this filter.
GET /workspaces?search= matches workspace title and excerpt only. MCP agents that need to find a file inside a workspace should use Abilities instead.
Responses hydrate titles, statuses, edit/view links, thumbnails, and mime labels server-side. Tracker items are { id, title, url, assignees, dueDate, complete }.
Post REST fields
Registered on each post type with prc-publish-workflows support (alongside core /wp/v2/{type}/{id}):
| Field | Type | Description |
|---|---|---|
watchers | object[] | Hydrated watcher list (id, name, email, slack_user_id, avatar_url). Writable; single server-side writer. |
watchChildPosts | boolean | When true on a multi-section report, the current user's watcher state mirrors to chapter posts in multiSectionReport. Default false. |
Watch self
POST /posts/{id}/watch-self
Adds the current user to the post's watcher list so the post shows up in their working-on lists. Permission: can edit the post.