WiKi API
Bramble WiKi, the knowledge base: spaces, collections and articles with revisions, tags, comments, images and permissions. Works with an API key.
- Address
https://<your-org>.brambleit.cloud/api- Sign-in
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer). - Endpoints
- 59
- OpenAPI
- wiki.json
- Guides
- How Wiki works
Structure. A space holds collections, which hold articles. Permissions can be set on spaces and collections for people and groups.
Resources
Spaces
Top-level areas of the wiki.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/kb/spaces | Spaces (role-based visibility) GET all spaces (role-based visibility) |
| GET | /v1/app/kb/spaces/slug/:slug | By slug |
| GET | /v1/app/kb/spaces/:space_id | Space (checks ACL) |
| POST | /v1/app/kb/spaces | CREATE space - Shared spaces: global admin only - Personal spaces: any tenant user, limited to one per user |
| PUT | /v1/app/kb/spaces/:space_id | UPDATE space (need manage permission) |
| DELETE | /v1/app/kb/spaces/:space_id | Space (need manage permission) |
| GET | /v1/app/kb/spaces/:space_id/collections | Collections in a space (requires read on space) |
| POST | /v1/app/kb/spaces/:space_id/collections | CREATE collection in a space (need write/manage space) |
| POST | /v1/app/kb/spaces/:space_id/banner | Space banner |
| DELETE | /v1/app/kb/spaces/:space_id/banner | Remove a space's banner |
Collections
Groups of articles within a space.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/kb/collections/slug/:slug | By slug |
| GET | /v1/app/kb/collections/:collection_id | Collection (check ACL on collection) |
| PUT | /v1/app/kb/collections/:collection_id | UPDATE collection (need manage on collection or space) |
| DELETE | /v1/app/kb/collections/:collection_id | Collection |
| GET | /v1/app/kb/collections/:collection_id/articles | In a collection (read on space or collection) |
| POST | /v1/app/kb/collections/:collection_id/articles | CREATE article in a collection (write on collection/space) |
| POST | /v1/app/kb/collections/:collection_id/banner | Collection banner |
| DELETE | /v1/app/kb/collections/:collection_id/banner | Remove a collection's banner |
| POST | /v1/app/kb/collections/:collection_id/logo | Collection logo |
| DELETE | /v1/app/kb/collections/:collection_id/logo | Remove a collection's logo |
Articles
Articles, their revisions, comments and tags.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/kb/articles/slug/:slug | By slug |
| GET | /v1/app/kb/articles/:article_id | Article (ACL) |
| PUT | /v1/app/kb/articles/:article_id | UPDATE article metadata (write on article/collection/space) |
| DELETE | /v1/app/kb/articles/:article_id | Article |
| GET | /v1/app/kb/articles/:article_id/content | Content (same read checks as article) |
| GET | /v1/app/kb/articles/:article_id/versions | Versions (requires read) |
| GET | /v1/app/kb/articles/:article_id/versions/:version_id | Version (read) |
| POST | /v1/app/kb/articles/:article_id/versions | CREATE new version (write) |
| DELETE | /v1/app/kb/articles/:article_id/versions/:version_id | (write/manage) |
| GET | /v1/app/kb/tags | Tags for tenant (any authenticated user) |
| POST | /v1/app/kb/tags | Create tag (Global Admin) |
| PUT | /v1/app/kb/tags/:tag_id | Update tag (Global Admin) |
| DELETE | /v1/app/kb/tags/:tag_id | (Global Admin) |
| GET | /v1/app/kb/articles/:article_id/tags | For an article (requires read on article) |
| POST | /v1/app/kb/articles/:article_id/tags | Set tags for an article (overwrite) – requires write on article |
| GET | /v1/app/kb/articles/:article_id/comments | For article (requires read) |
| POST | /v1/app/kb/articles/:article_id/comments | Create comment (requires read on article, usually fine for Reader+) |
| PUT | /v1/app/kb/comments/:comment_id | Update comment (Global Admin or comment owner) |
| DELETE | /v1/app/kb/comments/:comment_id | (Global Admin or owner) |
| GET | /v1/app/kb/articles/trending | Most recently updated articles (as "trending") |
Permissions
Who can read or edit spaces and collections.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/kb/permissions | List permissions |
| POST | /v1/app/kb/permissions | Create / update a permission entry POST /permissions body: { object_type, object_id, subject_type, subject_id, can_read, can_write, can_manage, is_denied } |
| DELETE | /v1/app/kb/permissions/:perm_id | Remove a permission |
| GET | /v1/app/kb/subjects/users | Find people (for permission pickers) |
| GET | /v1/app/kb/subjects/groups | Find groups (for permission pickers) |
Search & stats
Searching the wiki and usage statistics.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/kb/me | Current user's identity + personal space status (used by frontend) |
| GET | /v1/app/kb/search | Search published articles |
| GET | /v1/app/kb/stats | WiKi statistics |
Images
Images used in articles, spaces and collections.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/kb/images/:id | Serve image by ID (no auth required so <img> tags work) |
| POST | /v1/app/kb/images | Upload an image (multipart/form-data, field name: "image") |
Admin
WiKi administration.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/kb/admin/collections | Collections across all spaces (admin only) |
| GET | /v1/app/kb/admin/articles | Articles across all spaces (admin only), filterable by status |
| GET | /v1/app/kb/admin/archived | Archived items for the tenant (global admin only) |
| POST | /v1/app/kb/admin/spaces/:space_id/restore | RESTORE archived space |
| DELETE | /v1/app/kb/admin/spaces/:space_id/purge | PERMANENTLY delete archived space |
| POST | /v1/app/kb/admin/collections/:collection_id/restore | RESTORE archived collection |
| DELETE | /v1/app/kb/admin/collections/:collection_id/purge | PERMANENTLY delete archived collection |
| POST | /v1/app/kb/admin/articles/:article_id/restore | RESTORE archived article |
| DELETE | /v1/app/kb/admin/articles/:article_id/purge | PERMANENTLY delete archived article |