Base URL: http://localhost:8056
All requests require authentication via one of:
JWT Cookie : markus_token (set automatically on login)
Header : Authorization: Bearer <token>
Method
Path
Description
POST
/api/auth/login
Login, returns JWT Cookie
POST
/api/auth/logout
Logout
GET
/api/auth/me
Get current user info
POST
/api/auth/change-password
Change password
Method
Path
Description
GET
/api/agents
List all agents
POST
/api/agents
Hire a new agent { name, role, description }
GET
/api/agents/:id
Get agent details
DELETE
/api/agents/:id
Fire agent
POST
/api/agents/:id/start
Start agent
POST
/api/agents/:id/stop
Stop agent
GET
/api/agents/:id/profile
Get agent full profile (memory, tools, etc.)
Method
Path
Description
POST
/api/agents/:id/message
Send message to agent (SSE streaming)
GET
/api/sessions
List conversation sessions
GET
/api/sessions/:id/messages
Get session message history
GET
/api/channels/:channel/messages
Get channel history
POST
/api/channels/:channel/messages
Send channel message (supports SSE streaming)
Method
Path
Description
GET
/api/tasks
List tasks (supports ?status=, ?assignedAgentId= filters)
POST
/api/tasks
Create task
GET
/api/taskboard
Get Kanban board data
PATCH
/api/tasks/:id
Update task (status, notes, etc.)
POST
/api/tasks/:id/approve
Approve a pending task
POST
/api/tasks/:id/reject
Reject a pending task
POST
/api/tasks/:id/cancel
Cancel a task (body: { cascade?: boolean })
POST
/api/tasks/:id/schedule/pause
Pause a scheduled task's recurring schedule
POST
/api/tasks/:id/schedule/resume
Resume a paused scheduled task
POST
/api/tasks/:id/schedule/run-now
Trigger an immediate run of a scheduled task
PUT
/api/tasks/:id/schedule
Update schedule configuration { every?, cron?, maxRuns?, timezone? }
GET
/api/tasks/:id/dependent-count
Count tasks blocked by this task
POST
/api/tasks/:id/comments
Post a comment on a task. Body: { content, mentions?, authorId?, authorType?, replyTo? }. replyTo is a comment ID for structural reply linking.
POST
/api/requirements/:id/comments
Post a comment on a requirement. Body: { content, mentions?, authorId?, authorType?, replyTo? }. replyTo is a comment ID for structural reply linking.
Method
Path
Description
GET
/api/teams
List teams
POST
/api/teams
Create team
GET
/api/teams/:id
Get team details
PUT
/api/teams/:id
Update team
DELETE
/api/teams/:id
Delete team
Governance & System Control
Method
Path
Description
GET
/api/system/status
Global status (paused/emergency mode)
POST
/api/system/pause-all
Pause all agents
POST
/api/system/resume-all
Resume all agents
POST
/api/system/emergency-stop
Emergency stop
GET
/api/system/announcements
Get system announcements
POST
/api/system/announcements
Create system announcement
GET
/api/governance/policy
View governance policy
PUT
/api/governance/policy
Update governance policy
Method
Path
Description
GET
/api/projects
List projects
POST
/api/projects
Create project
GET
/api/projects/:id
Get project
PUT
/api/projects/:id
Update project
DELETE
/api/projects/:id
Delete project
Method
Path
Description
POST
/api/tasks/:id/accept
Accept task delivery
POST
/api/tasks/:id/revision
Request revision
POST
/api/tasks/:id/archive
Archive task
Method
Path
Description
GET
/api/reports
List reports
POST
/api/reports/generate
Trigger report generation
GET
/api/reports/:id
Report details
POST
/api/reports/:id/plan/approve
Approve plan
POST
/api/reports/:id/plan/reject
Reject plan
GET
/api/reports/:id/feedback
Get report feedback
POST
/api/reports/:id/feedback
Create report feedback
POST
/api/knowledge
Contribute knowledge
GET
/api/knowledge/search
Search knowledge base
Method
Path
Description
GET
/api/users
List human users (includes hasJoined flag)
POST
/api/users
Create human user { name, email, role } — returns invite token
PATCH
/api/users/:id
Update user (name, role, email)
POST
/api/users/:id/reset-password
Admin password reset
DELETE
/api/users/:id
Delete user
Method
Path
Description
GET
/api/auth/invite/:token
Validate invite token — returns user info (name, email)
POST
/api/auth/invite/:token/setup
Complete registration { password, name?, email? }
Method
Path
Description
GET
/api/group-chats
List group chats for current user
POST
/api/group-chats
Create custom group chat { name, memberIds: [{id, type}] }
GET
/api/group-chats/:id
Get group chat details (includes members)
PATCH
/api/group-chats/:id
Update group chat (name, add/remove members)
DELETE
/api/group-chats/:id
Delete group chat
POST
/api/group-chats/:id/members
Add member { userId, userType, userName }
DELETE
/api/group-chats/:id/members/:userId
Remove member
Method
Path
Description
GET
/api/notifications
List notifications for current user (supports ?unreadOnly=true&limit=N&offset=N&type=T)
GET
/api/notifications/count
Get unread notification count
POST
/api/notifications/:id/read
Mark a single notification as read
POST
/api/notifications/read-all
Mark all notifications as read
Method
Path
Description
GET
/api/roles
List available role templates
GET
/api/roles/:name
Get role template details
Method
Path
Description
GET
/api/health
Health check (returns { status, version, agents })
Connection : ws://localhost:8056
Event
Direction
Description
agent:update
Server → Client
Agent status change
agent:mailbox
Server → Client
New item in agent mailbox
agent:decision
Server → Client
Agent attention decision
agent:focus
Server → Client
Agent switches focus
task:update
Server → Client
Task status update
task:create
Server → Client
New task created
requirement:created
Server → Client
New requirement proposed
chat
Server → Client
Agent message in channel
task:comment
Server → Client
New task comment (includes replyTo, replyToAuthor, replyToContent for reply-linked comments)
requirement:comment
Server → Client
New requirement comment (includes replyTo, replyToAuthor, replyToContent)
chat:message
Server → Client
Channel/DM/group message (targeted to members; includes replyToId, replyToSender, replyToText for reply-linked messages)
chat:proactive_message
Server → Client
Agent activity log or proactive message
chat:group_created
Server → Client
Group chat created
chat:group_updated
Server → Client
Group chat membership changed
chat:group_deleted
Server → Client
Group chat deleted
notification
Server → Client (targeted)
User notification (targeted by userId)
system:announcement
Server → Client
System announcement broadcast
system:pause-all
Server → Client
Global pause event
system:resume-all
Server → Client
Global resume event
system:emergency-stop
Server → Client
Emergency stop event