Skip to main content
All paths are under the base URL (/api/v1) and require authentication. Reads are workspace-member; writes require the work:write scope over OAuth. Renaming and deleting an area or tag are owner/admin curation acts.

Comments

A comment points at a topic, record, card, or page and resolves into an edit. See Comments.
MethodPathPermPurpose
POST/workspaces/:slug/commentsmember (work:write)Add a comment
GET/workspaces/:slug/commentsmemberList comments (?target_kind, target_id, target_ref, status)
GET/workspaces/:slug/comments/:idmemberComment detail
PATCH/workspaces/:slug/comments/:idmember (work:write)Update body or status
Create body (CreateCommentDto): target_kind (required, one of topic, page, record, card), target_id (uuid) or target_ref (topic slug), field_key, body (required, up to 10000 chars), author_id. Status is open, resolved, or wont_fix.

Areas

MethodPathPermPurpose
GET/workspaces/:slug/areasmemberList areas
POST/workspaces/:slug/areasmember (work:write)Create an area
PATCH/workspaces/:slug/areas/:idowner/adminRename or describe
DELETE/workspaces/:slug/areas/:idowner/adminDelete (unfiles its topics)
Body (CreateAreaDto / UpdateAreaDto): name (required, up to 64 chars), description (up to 500 chars).

Tags

MethodPathPermPurpose
GET/workspaces/:slug/tagsmemberList the registry (?limit, offset)
POST/workspaces/:slug/tagsmember (work:write)Pre-create a tag
PATCH/workspaces/:slug/tags/:namerename owner/adminRename or describe
DELETE/workspaces/:slug/tags/:nameowner/adminDelete and detach everywhere
curl -X POST https://api.driftless.icu/api/v1/workspaces/acme/comments \
  -H "x-api-key: drift_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"target_kind":"topic","target_ref":"billing-flow","body":"This decision is stale."}'

Errors

An unknown target_kind or status, or an over-length body, returns 400 VALIDATION_FAILED. A member attempting an owner/admin curation act (area/tag rename or delete) receives 403 INSUFFICIENT_ROLE. See errors for the envelope.