0.x — pre-release, no compatibility promise yet.What this means
Save a view of the task list or the projects list (resource)
Save a view.
resourcepicks the list:task(default) storesGET /v1/tasksparameters;projectstoresGET /v1/projects/{org_id}parameters,show_allincluded. It cannot change later.queryis checked by that list’s own rules: an unknown key or value is the same 400 the list gives.- Scopes:
user(anyone in the organization),team(team owners and org admins),project(project owners and editors; task views only). - A name is unique among a scope’s views of the same resource (409 otherwise).
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”The request body of views.create.
object
One of user, team, project. Used by PinOut and 3 more.
Which list the view queries: task (default; GET /v1/tasks) or project (GET /v1/projects/{org_id}). Fixed at create. A project view cannot be project-scoped.
Unique among the scope’s active views of the same resource (case-insensitive) — 409 otherwise
The resource’s list parameters, exactly as its list route accepts them (GET /v1/tasks for task; GET /v1/projects/{org_id}, with show_all, for project); unknown key or bad value → the parser’s own 400.
object
Presentation only: columns, columnOrder, columnSizing, layout, boardOrder, collapsed.
object
Example
{ "org_id": "string", "scope_type": "user", "scope_id": "string", "resource": "task", "name": "string", "query": {}, "display": {}}Responses
Section titled “ Responses ”Successful Response
Returned by views.create, views.duplicate, views.read and views.update.
object
One of user, team, project. Used by PinOut and 3 more.
The list the view queries (task | project); rows returns that list’s cards
object
object
You may edit and delete this view (the scope’s write rule).
The caller has this view pinned (pins are personal)
Example
{ "view_id": "string", "org_id": "string", "scope_type": "user", "scope_id": "string", "resource": "task", "name": "string", "query": {}, "display": {}, "created_by": "string", "updated_by": "string", "created_at": "2026-09-25T12:00:00Z", "updated_at": "2026-09-25T12:00:00Z", "is_active": true, "can_edit": false, "pinned": false}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"}