Browse Kanban Board documentation
API reference

Endpoint reference

Every GVenta Kanban Board REST endpoint — 81 in 14 groups — with method, path, authentication and what each call does.

Documented from GVenta Kanban Board version 2.1.15.

Conventions

All endpoints are relative to your own instance, for example https://your-instance.example/api/v1. Every request carries a personal access token in the Authorization header as a bearer token. Tokens carry read, write and admin abilities, and access control mirrors the signed-in user exactly: every list, search and work-queue call is filtered to the projects the token owner can see. New to the API? Read API getting started first, then try the worked examples.

Identity and tokens

Tokens carry an ability list (read permits retrieval, write permits mutation, admin grants everything), have a name, an optional expiry and a last-used timestamp, and stop working the moment their owner is deactivated.

Method Path Auth What it does
GET /api/v1/me Bearer

Return the current identity: user ID, name, email, role and token abilities.

GET /api/v1/tokens Bearer

List your tokens.

Token values are truncated to their first eight characters; the full value is shown only once, at creation.

POST /api/v1/tokens Bearer

Create a token.

Body: name, optional abilities, optional expires_at. The full token value is returned exactly once.

DELETE /api/v1/tokens/{id} Bearer

Revoke a token.

Projects

Method Path Auth What it does
GET /api/v1/projects Bearer

List the projects accessible to the caller.

POST /api/v1/projects Bearer

Create a project.

Automatically enrolls the caller as owner and provisions the four default lanes.

GET /api/v1/projects/{slugOrId} Bearer

Fetch a project by slug or numeric ID.

PUT /api/v1/projects/{slug} Bearer

Update a project's name, description and repository.

DELETE /api/v1/projects/{slug} Bearer

Archive a project (soft delete).

GET /api/v1/projects/{slug}/board Bearer

Return the full Kanban board, grouped by lane.

POST /api/v1/projects/{slug}/favorite Bearer

Toggle the project as a favorite for the calling user.

GET /api/v1/projects/{slug}/activity Bearer

Return the project activity log.

Swim lanes

Method Path Auth What it does
GET /api/v1/projects/{slug}/lanes Bearer

List a project's lanes in display order.

POST /api/v1/projects/{slug}/lanes Bearer

Create a lane.

Body: name, color, status type.

PATCH /api/v1/projects/{slug}/lanes/{laneId} Bearer

Update a lane's name, color, status type or visibility.

DELETE /api/v1/projects/{slug}/lanes/{laneId} Bearer

Delete a lane.

Returns 409 if the lane still contains stories.

POST /api/v1/projects/{slug}/lanes/reorder Bearer

Reorder lanes by passing an array of lane IDs.

Stories

Method Path Auth What it does
GET /api/v1/stories Bearer

List stories across accessible projects.

Filter by project, project_id, status, priority, assigned_to, type, search. Paginate with limit (max 500) and offset.

GET /api/v1/stories/search Bearer

Deep search across titles, descriptions, comments, attachment filenames and task text.

Filter by project, status, priority, type and assignee. Paginate with page and per_page.

POST /api/v1/stories Bearer

Create a story.

Requires project or project_id plus title. Accepts description, type, status, priority, story points, due date, assignee, epic ID and epic flag.

GET /api/v1/stories/{id} Bearer

Fetch one story with its comments and comment count.

PUTPATCH /api/v1/stories/{id} Bearer

Update any field of a story.

Computes a field-level change set, writes it to the activity log, auto-syncs the lane on status change, and fires assignment and update notifications.

DELETE /api/v1/stories/{id} Bearer

Delete a story.

POST /api/v1/stories/{id}/move Bearer

Move a story to a different status or position.

PUT /api/v1/stories/{id}/project Bearer

Move a story to a different project.

When the subject is an epic, all child stories move with it.

PATCH /api/v1/stories/{id}/assign Bearer

Assign or unassign a story inline.

POST /api/v1/stories/bulk Bearer

Create many stories in one call.

Returns per-item results plus a created/failed summary. Responds 207 Multi-Status when some items succeeded and others failed.

POST /api/v1/stories/bulk-move Bearer

Move many stories to one status in a single call.

Each move is logged individually.

Epics

Method Path Auth What it does
GET /api/v1/projects/{slug}/epics Bearer

List a project's epics.

POST /api/v1/projects/{slug}/epics Bearer

Create an epic in a project.

GET /api/v1/epics/{id} Bearer

Fetch an epic with its child stories.

POST /api/v1/epics/{id}/children Bearer

Attach stories to an epic.

DELETE /api/v1/epics/{epicId}/children/{storyId} Bearer

Detach a story from an epic.

Dependencies

Method Path Auth What it does
GET /api/v1/stories/{id}/dependencies Bearer

Return what a story depends on and what it blocks.

POST /api/v1/stories/{id}/dependencies Bearer

Add a dependency.

Rejected if it would create a cycle.

PUT /api/v1/stories/{id}/dependencies Bearer

Replace a story's whole dependency set.

DELETE /api/v1/stories/{storyId}/dependencies/{dependsOnId} Bearer

Remove one dependency.

Tasks

Method Path Auth What it does
GET /api/v1/stories/{id}/tasks Bearer

List the tasks on a story's checklist.

POST /api/v1/stories/{id}/tasks Bearer

Add a task to a story.

PUT /api/v1/tasks/{id} Bearer

Update a task.

PATCH /api/v1/tasks/{id}/complete Bearer

Mark a task complete.

PATCH /api/v1/tasks/{id}/reopen Bearer

Reopen a completed task.

DELETE /api/v1/tasks/{id} Bearer

Delete a task.

Comments, mentions and reactions

Method Path Auth What it does
GET /api/v1/stories/{id}/comments Bearer

List a story's comments with reactions inline and an unread count in meta.

Optional flat=true, unread_only=true, include_attachments=true.

POST /api/v1/stories/{id}/comments Bearer

Post a comment on a story.

Supports an urgent flag. Parses mentions, auto-marks read, auto-subscribes the author and notifies watchers.

PUT /api/v1/comments/{id} Bearer

Edit a comment.

Stamps an edit time.

DELETE /api/v1/comments/{id} Bearer

Soft-delete a comment, preserving the thread.

Admins may pass ?soft=false to hard-delete the comment, its descendants and their attachments.

POST /api/v1/comments/{id}/reply Bearer

Post a threaded reply to a comment.

POST /api/v1/comments/{id}/mark_read Bearer

Mark one comment read.

POST /api/v1/stories/{id}/comments/mark_all_read Bearer

Mark every comment on a story read.

POST /api/v1/comments/{id}/react Bearer

Add an emoji reaction to a comment.

One of 👍 👎 ❤️ 😂 🎉 🚀 👀.

DELETE /api/v1/comments/{id}/react/{emoji} Bearer

Remove your reaction from a comment.

GET /api/v1/comments/recent Bearer

List recent comments across all stories.

GET /api/v1/comments/search Bearer

Full-text search of comments in natural-language mode with relevance ranking, highlighted snippets and rendered HTML.

Filter by project, user, story and date range.

POST /api/v1/comments/{id}/attachments Bearer

Upload a file to a comment.

Maximum of 5 attachments per comment at this endpoint.

GET /api/v1/comments/{id}/attachments Bearer

List a comment's attachments with same-domain download URLs.

DELETE /api/v1/comments/{id}/attachments/{attachmentId} Bearer

Delete a comment attachment.

Permitted to the uploader, the comment author or an admin.

GET /api/v1/mentions/mine Bearer

List your mentions.

POSTPUTPATCH /api/v1/mentions/{id}/mark_read Bearer

Mark one mention read.

POSTPUTPATCH /api/v1/mentions/{id}/read Bearer

Mark one mention read.

Alias of /api/v1/mentions/{id}/mark_read.

POST /api/v1/mentions/mark_all_read Bearer

Mark all your mentions read.

Watchers

Method Path Auth What it does
POST /api/v1/stories/{id}/watch Bearer

Watch a story so you are notified of comments and changes.

DELETE /api/v1/stories/{id}/watch Bearer

Stop watching a story.

GET /api/v1/stories/{id}/watchers Bearer

List the users watching a story.

Attachments

Method Path Auth What it does
POST /api/v1/stories/{id}/attachments Bearer

Upload a file to a story as multipart/form-data.

Fully validated by the attachment pipeline (file type, size and content checks).

GET /api/v1/stories/{id}/attachments Bearer

List a story's attachments.

GET /api/v1/stories/{storyId}/attachments/{attachmentId}/download Bearer

Download an attachment scoped to its story.

Verifies the attachment actually belongs to that story.

GET /api/v1/attachments/{id} Bearer

Return attachment metadata.

GET /api/v1/attachments/{id}/download Bearer

Stream the file through the application domain.

DELETE /api/v1/attachments/{id} Bearer

Delete an attachment.

Users

The activity leaderboard scores each user over a rolling seven-day window as (completions × 10) + (comments × 3), returning avatar URLs, initials, generated avatar colors and the AI-agent flag so humans and agents can be ranked side by side; email addresses are stripped from the response.

Method Path Auth What it does
GET /api/v1/users Bearer

List users.

GET /api/v1/users/{id} Bearer

Return one user.

GET /api/v1/users/activity Bearer

Return a leaderboard of the most active users.

Per user over the last seven days: stories assigned, stories in progress, stories completed, comments posted, last-activity timestamp and composite activity score.

Work queues — built for agents

These four endpoints exist specifically so automation can decide what to do next.

Method Path Auth What it does
GET /api/v1/work/next Bearer

Return the highest-priority unassigned backlog stories — the "give me something to work on" call.

Ordered Critical → High → Medium → Low, then oldest first. Optionally scoped to one project. Default 5, max 20.

GET /api/v1/work/overdue Bearer

Return overdue stories within the caller's accessible projects.

GET /api/v1/work/upcoming Bearer

Return stories due within the next N days.

Default 7 days, max 30.

GET /api/v1/work/mine Bearer

Return work assigned to the caller, ordered by priority then due date.

Excludes completed items unless a status is specified.

Search and activity

Method Path Auth What it does
GET /api/v1/search Bearer

Quick story search.

Minimum two characters.

GET /api/v1/activity Bearer

Return recent activity across all projects with JSON detail payloads decoded.

Up to 200 entries.

Pulse

Pulse is the run log for automation: agents post a record of each run and anyone can query the resulting feed.

Method Path Auth What it does
POST /api/v1/pulse Bearer

Log an agent run.

Requires agent and activity; status must be success, warning or error; optional story_ids array and duration_seconds. Returns the stored entry with 201.

GET /api/v1/pulse Bearer

Return a paginated, filtered feed of runs.

Filter by agent, status, date range and free text.