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.