Skip to Content
API ReferenceProjects & Issues

Projects & Issues

Projects group agents, chats, tasks, and issues under a shared context. Agents assigned to a project receive the project’s repository tree and task state as part of their context.

Projects

List projects

GET /api/projects Authorization: Bearer nxr_...

Create project

POST /api/projects Authorization: Bearer nxr_... Content-Type: application/json { "name": "Backend API", "description": "Main API service", "repo_url": "https://github.com/org/repo", "repo_type": "github", "provider_chain_id": "uuid-optional" }

Get project

GET /api/projects/{project_id} Authorization: Bearer nxr_...

Update project

PATCH /api/projects/{project_id} Authorization: Bearer nxr_... Content-Type: application/json { "name": "Backend API v2" }

Delete project

DELETE /api/projects/{project_id} Authorization: Bearer nxr_...

List project agents

GET /api/projects/{project_id}/agents Authorization: Bearer nxr_...

List project tasks

GET /api/projects/{project_id}/tasks Authorization: Bearer nxr_...

List project activity

GET /api/projects/{project_id}/logs Authorization: Bearer nxr_...

Issues

Issues track work items within a project. Agents can read, create, and update issues.

List issues

GET /api/issues?project_id={project_id} Authorization: Bearer nxr_...

Create issue

POST /api/issues Authorization: Bearer nxr_... Content-Type: application/json { "project_id": "uuid", "title": "Fix auth race condition", "description": "Token refresh and logout can race under high load", "priority": "high", "labels": ["bug"], "assigned_agent_id": "uuid-optional" }

project_id and title are required. Status is set via the update endpoint (a new issue starts in its default backlog status).

Get issue

GET /api/issues/{issue_id} Authorization: Bearer nxr_...

Update issue

PATCH /api/issues/{issue_id} Authorization: Bearer nxr_... Content-Type: application/json { "status": "in_progress", "assigned_agent_id": "uuid" }

Delete issue

DELETE /api/issues/{issue_id} Authorization: Bearer nxr_...

Sync remote issues

Pull issues from a connected GitHub or GitLab repository into the project:

POST /api/projects/{project_id}/sync-issues Authorization: Bearer nxr_...

Issue comments

List comments

GET /api/issues/{issue_id}/comments Authorization: Bearer nxr_...

Add comment

POST /api/issues/{issue_id}/comments Authorization: Bearer nxr_... Content-Type: application/json { "content": "Reproduced on v2.3.1" }

Delete comment

DELETE /api/issues/{issue_id}/comments/{comment_id} Authorization: Bearer nxr_...

Tasks

Tasks are units of work dispatched to agents during orchestration. They can also be created directly.

List tasks

GET /api/tasks?chat_id={chat_id} Authorization: Bearer nxr_...

Create task

POST /api/tasks Authorization: Bearer nxr_... Content-Type: application/json { "chat_id": "uuid", "title": "Review PR #42", "description": "Check for security issues", "assigned_agent_id": "uuid-optional", "priority": "medium" }

chat_id and title are required — a task is always attached to a chat.

Update task

PATCH /api/tasks/{task_id} Authorization: Bearer nxr_... Content-Type: application/json { "status": "completed" }

Interrupt task

Stop a running task:

POST /api/tasks/{task_id}/interrupt Authorization: Bearer nxr_...

Delete task

DELETE /api/tasks/{task_id} Authorization: Bearer nxr_...

Kanban board

Get all project tasks grouped by status for kanban display:

GET /api/board?project_id={project_id} Authorization: Bearer nxr_...

Issues synced from GitHub/GitLab are kept in sync when the integration webhook fires. Manual sync is available via the sync-issues endpoint.