Skip to main content

API

The issue-tracker is the user-facing Tasq API. It owns project, issue, artifact, comment, change-request, attachment, workflow, and summary data.

Response Envelope

Success responses use:

{ "data": {}, "meta": {} }

Error responses use:

{ "error": { "code": "invalid_request", "message": "..." }, "meta": {} }

Issue-Tracker Endpoints

MethodPathPurpose
GET/api/v1/healthHealth check.
GET/api/v1/summaryBoard and project summary.
GET/api/v1/projectsList projects.
POST/api/v1/projectsCreate a project.
GET/api/v1/projects/{id}Read a project.
PATCH/api/v1/projects/{id}Update a project.
DELETE/api/v1/projects/{id}Delete a project, issue-tracker descendants, and orchestrator runtime descendants unless a target run is running.
GET/api/v1/projects/{id}/workflowRead stored workflow override.
PUT/api/v1/projects/{id}/workflowStore workflow override.
DELETE/api/v1/projects/{id}/workflowRemove workflow override.
POST/api/v1/projects/{id}/checkValidate project setup.
GET/api/v1/issuesList issues.
POST/api/v1/issuesCreate an issue.
POST/api/v1/issues/statesRead issue states in bulk.
GET/api/v1/queueList issues that are eligible for agent execution, including dependency-derived queue status.
GET/api/v1/issues/{id}Read an issue.
PATCH/api/v1/issues/{id}Update an issue.
PUT/api/v1/issues/{issueId}/artifacts/{type}Create or update an artifact.
DELETE/api/v1/issues/{issueId}/artifacts/{type}Delete an artifact.
GET/api/v1/issues/{issueId}/commentsList comments.
POST/api/v1/issues/{issueId}/commentsAdd a comment.
PATCH/api/v1/comments/{id}Update a comment.
GET/api/v1/issues/{issueId}/change-requestsList change requests for an issue.
POST/api/v1/issues/{issueId}/change-requestsCreate an open change request.
GET/api/v1/change-requests/{id}Read a change request.
PATCH/api/v1/change-requests/{id}Edit the body while open, or perform an allowed status transition.
POST/api/v1/change-requests/{id}/cancelCancel an open or in-progress change request.
GET/api/v1/attachmentsList attachments.
POST/api/v1/attachmentsUpload an attachment.
GET/api/v1/attachments/{id}/contentDownload attachment bytes.
DELETE/api/v1/attachments/{id}Delete an attachment.

Issue listing supports filters for states, project_id, project_ids, priorities, assignee, and search. Sorting supports sort_by values id, priority, created_at, and updated_at with sort_direction asc or desc. Pagination uses limit and offset; limit is capped at 50.

Comment listing supports cursor and limit. Attachment listing supports entity_type and entity_id.

Change-request listing supports an optional status filter and limit from 1 to 100, defaulting to 50.

Issue responses always include an artifacts array, sorted by type, including [] when no artifacts exist. The initial pull_request artifact accepts only data_value on PUT; the server returns type, data_type, and data_value. DELETE returns an empty 204. Invalid types or URLs return 400; a missing issue or artifact returns 404.

Change requests capture additional work for a later agent run. Creation sets the status to open. Allowed transitions are open to in_progress or canceled, and in_progress to resolved or canceled. Resolved and canceled requests are immutable. Cancellation is a state transition; there is no physical delete endpoint.

Contract Sources

The issue-tracker OpenAPI document and orchestrator OpenAPI document define request parameters, bodies, responses, and error status codes. This page is the concise endpoint and behavior reference.

Attachments

Attachment uploads use multipart form data with entity_type, entity_id, and file. Supported image types are PNG, JPEG, GIF, and WebP up to 5 MiB.

Attachment bytes live under $TQ_HOME/system/data/attachments. SQLite stores metadata and relative paths so TQ_HOME can move without rewriting rows.

Orchestrator API

The orchestrator exposes loopback HTTP APIs for runtime inspection. It is not the user-facing issue mutation API.

MethodPathPurpose
GET/api/v1/stateInspect running and retrying runs plus aggregated runtime metadata.
POST/api/v1/refreshRequest an orchestrator refresh when a refresher is configured.
GET/api/v1/{issue_identifier}Inspect runtime state, runs, workspace path, and recent events for one issue.
GET/api/v1/{issue_identifier}/runs/{run_id}/conversationsRead conversation events for a run.

issue_identifier accepts the orchestrator issue identifier form such as issue-12.