0.x — pre-release, no compatibility promise yet.What this means
The rows a saved view shows: tasks or projects, per its resource
The rows a saved view shows, as {data, next_cursor}: tasks for a task view, projects for a project view.
- The view’s stored
queryruns like its list (GET /v1/tasksorGET /v1/projects/{org_id}), with your visibility: a team view opened by a guest returns the guest’s rows. - Only
limit,cursorandinclude_inaccessibleare accepted; anyfilter[...],sort_by,group_by,section_scopeorshow_allhere is a 400.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”Page size, default 100; clamped to 1000.
Page size, default 100; clamped to 1000.
Keep restricted rows with has_access=false (the list’s flag).
Keep restricted rows with has_access=false (the list’s flag).
Header Parameters
Section titled “Header Parameters”An ETag you hold; unchanged → 304 with no body.
Responses
Section titled “ Responses ”Successful Response
A page of GET /v1/tasks. next_cursor is opaque: send it back as cursor; null means the last page. data may be empty while next_cursor is set (every task on that page was restricted) — keep following the cursor.
object
Part of TaskListPage.
object
Task title
A task’s status. backlog comes first wherever statuses are ordered (filters, grouping and the status sort); otherwise it is an ordinary status, accepted everywhere.
Priority enum for projects and tasks
The kind of task: task, bug or agent, in sort order (sort_by=task_type).
- A label, never a permission.
- A goal is not a task type but a container of a project’s tasks (
goal_id):task_type=goalis refused on write (422) and infilter[task_type](400).
object
Returned by projects.list and views.rows.
object
Simplified project representation for dashboard cards.
object
Organization ID (UUID)
Project name
Project status enum
Priority enum for projects and tasks
Who can see a project: public — every member of the organization; private — the project’s members and org admins. Also the organization’s default for new projects.
Project ID
Total number of tasks in the project
Number of completed tasks
Project completion percentage, 0–100.
The project’s leads; optional, usually empty.
One lead of a project: who, who set them, and when. A lead is distinct from the owner — the owner administers the project, a lead is accountable for delivering it.
The project’s place in the organization’s manual order. Lists sort by position, then name.
Example
{ "data": [ { "project_id": "project-1234", "org_id": "org-1234", "sub_tasks": [ "task-5678" ], "dependencies": [ "task-4321" ], "title": "Implement Login", "description": "Implement OAuth2 login flow.", "status": "not_started", "assignee": "", "start_date": "2024-07-31", "due_date": "2024-08-01", "priority": "high", "task_type": "task", "tags": [ "backend", "auth" ], "type_data": {}, "metadata": [ { "field": "status", "new": "in_progress", "old": "not_started" } ], "created_by": "string", "updated_by": "string", "is_subtask": false, "bug_id": "B1234", "tracker_id": "TR1234", "restricted_to": [], "team_id": "string", "sprint_id": "SP12345", "milestone_id": "MS12345", "goal_id": "G12345", "task_id": "string", "created_at": "2026-09-25T12:00:00Z", "updated_at": "2026-09-25T12:00:00Z", "restricted_to_user_ids": [ "string" ], "comments": 0, "has_access": true, "has_edit_access": false, "section_id": "string", "section_position": 0 } ], "next_cursor": "string"}Not Modified — If-None-Match matched the current ETag (no body)
Bad request — a query parameter outside what the operation accepts (invalid-parameter)
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "Bad request", "status": 400, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}Missing or invalid bearer token
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "Missing or invalid bearer token", "status": 401, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}Authenticated, but not allowed
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "Authenticated, but not allowed", "status": 403, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}Not found
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "Not found", "status": 404, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}Conflict (a duplicate, or an Idempotency-Key still in flight)
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "Conflict (a duplicate, or an `Idempotency-Key` still in flight)", "status": 409, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}If-Match does not match the current ETag
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "`If-Match` does not match the current `ETag`", "status": 412, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}The body or query did not validate (validation), or an Idempotency-Key was reused
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "The body or query did not validate (`validation`), or an `Idempotency-Key` was reused", "status": 422, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}An access token over its per-minute limit (rate-limit; see Retry-After)
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "An access token over its per-minute limit (`rate-limit`; see `Retry-After`)", "status": 429, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}Unexpected server error — quote request_id
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "Unexpected server error", "status": 500, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}