Skip to content

Reading Data

This page covers how to read Runnit data: projects, users, tasks, clients, briefs, jobs, schedules, costs, and more.

Connect over the MCP server with a user-scoped token, then call the read tools. Every tool is:

  • Organisation-scoped to the connected user: results reflect that user’s permissions. A forbidden or empty result is expected when the user lacks access; it is not an error to retry.
  • Read-only and returns safe fields only: never passwords, tokens, embeddings, or rate-card internals.

Authentication follows the two modes in MCP Tools: bearer-header clients omit apiKey; payload-based workflows pass the user-scoped token as apiKey on every call.

{
"tool": "list_projects",
"arguments": { "status": "active", "limit": 50 }
}
ToolPurposeKey arguments
list_projectsList projects in the organisation.status, includeArchived, limit (default 100, max 500)
get_projectGet one project by id.id
list_project_membersMembers assigned to a project.projectId, limit (default 200, max 500)
list_milestonesProject milestones.projectId, limit (default 200, max 1000)
list_project_historyA project’s activity/changelog feed.projectId, taskId, categories[], eventTypes[], limit (default 100, max 200)
ToolPurposeKey arguments
list_master_projectsList master projects.status, clientOrganizationId, limit (default 100, max 500)
get_master_projectGet one master project by id.id
ToolPurposeKey arguments
list_tasksList project tasks.projectId, assigneeId, status, openOnly, completedSince, dueOn, limit (default 200, max 1000)
get_taskGet one task by id.id
list_task_countsPer-project task totals in one call (avoids per-project loops).projectIds[]
list_task_commentsComments for a task, or every comment across a project.one of taskId / projectId, limit (default 100, max 500)
ToolPurposeKey arguments
list_usersOrganisation members (team).role, isActive, limit (default 200, max 1000)
get_userGet one user by id.userId
list_clientsClient organisations you have a relationship with.relationshipStatus, limit (default 200, max 1000)
get_clientGet one client organisation.clientOrganizationId
ToolPurposeKey arguments
list_briefsBrief builder sessions.isComplete, isArchived (default false), clientOrganizationId, masterProjectId, limit (default 100, max 500)
get_briefGet one brief (includes its current brief markdown).id
list_jobsBackground/agent jobs.status, jobType, userId, projectId, since, until, limit (default 100, max 500)
ToolPurposeKey arguments
list_schedule_entriesPlanned task time slots (calendar/Gantt/utilisation).taskId, userId, projectId, since, until, limit (default 500, max 5000)
list_time_entriesLogged time: the source for hours completed/timesheets.projectId, taskId, userId, since, until, billableOnly, status, limit (default 500, max 5000)
get_project_costAccurate cost rollup for one project (totals + by user/role/month).projectId, since, until
list_project_costsPer-project cost summary across the organisation.since, until, clientOrganizationId, status, limit (default 200, max 1000)
ToolPurposeKey arguments
list_agentsAI agent definitions available to the organisation.isActive, interactionMode, limit (default 200, max 500)
get_agentGet one agent definition by id.id
list_files / read_file / search_assetsRead files and assets. See MCP Tools.varies

If you’d rather call HTTP endpoints directly, the public REST API at /api/v1 covers projects, tasks, master projects, organisations, clients, users, reports, schedules, collections, assets, permissions, and search, authenticated with the same rnk_ API keys that work here.

A few specialised capabilities also have their own documented endpoints: