Skip to content
TasksMate Developers

0.x — pre-release, no compatibility promise yet.What this means

The ordered sections of one scope, with their task counts.

  • Your personal scope (scope_type=user) starts with Assigned, Doing and Later, created on first read.
  • A team scope starts empty. The team owner or an org admin manages it; everyone who can read the team can read it.

Several scopes at once: pass scope_ids (instead of scope_id) — scopes of one scope_type, answered as {"data": [...], "scopes": [...]}, each row carrying its own scope_type / scope_id.

  • scope_type=user is refused (400): personal scopes are private to their owner.
  • A scope you cannot read is omitted, not an error. Missing from scopes means not yours; present with no rows means no sections.
  • Nothing is created on this path.
org_id
required
Org Id

Organization the scope belongs to.

string

Organization the scope belongs to.

scope_type
required
SectionScopeEnum

project, user or team.

string
Allowed values: project team user

project, user or team.

scope_id
Any of:
string

Project_id for project; your own username for user (anyone else’s → 403); team_id for team. Exactly one of scope_id / scope_ids.

scope_ids
Any of:
Array<string>

Several scopes of scope_type in one read — repeatable and/or comma-separated (scope_ids=P1&scope_ids=P2,P3). Only for project and team; user is a 400.

limit
Limit

Page size; default 1000, capped at 1000.

integer
default: 1000 >= 1

Page size; default 1000, capped at 1000.

cursor
Any of:
string

The previous page’s next_cursor, echoed back verbatim

sort_by
Any of:
string

One of: position, name, created_at. Default: the list’s natural order.

sort_order
Sort Order

asc or desc

string
default: asc

asc or desc

If-None-Match
string

An ETag you hold; unchanged → 304 with no body.

Successful Response

Media typeapplication/json
Any of:
SectionsForScopes

What GET /v1/sections?scope_ids=… returns.

  • data: every requested scope’s sections in one list; each row carries its own scope_type / scope_id.
  • scopes: the scopes this response answered for, in the order asked.
  • A scope you cannot read is omitted from both: missing from scopes means not yours; in scopes with no rows means no sections.
  • The single-scope form (scope_id=) returns the plain {data, next_cursor} list, without scopes.
object
data
required
Data
Array<object>
SectionOut

Returned by sections.create, sections.reorder and sections.update.

object
section_id
required
Section Id
string
org_id
required
Org Id
string
scope_type
required
SectionScopeEnum

One of project, team, user. Used by ScopeRef and 5 more.

string
Allowed values: project team user
scope_id
required
Scope Id
string
name
required
Name
string
position
required
Position
number
task_count
Task Count
integer
0
created_by
Any of:
string
updated_by
Any of:
string
created_at
Any of:
string format: date-time
updated_at
Any of:
string format: date-time
next_cursor
Any of:
string
scopes
required
Scopes
Array<object>
ScopeRef

One (scope_type, scope_id) pair — a multi-scope read answers for a list of these.

object
scope_type
required
SectionScopeEnum

One of project, team, user. Used by ScopeRef and 5 more.

string
Allowed values: project team user
scope_id
required
Scope Id
string

Example

{
"data": [
{
"section_id": "string",
"org_id": "string",
"scope_type": "project",
"scope_id": "string",
"name": "string",
"position": 0,
"task_count": 0,
"created_by": "string",
"updated_by": "string",
"created_at": "2026-09-25T12:00:00Z",
"updated_at": "2026-09-25T12:00:00Z"
}
],
"next_cursor": "string",
"scopes": [
{
"scope_type": "project",
"scope_id": "string"
}
]
}

Not Modified — If-None-Match matched the current ETag (no body)

Bad request — a query parameter outside what the operation accepts (invalid-parameter)

Media typeapplication/problem+json
Problem

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
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
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

Media typeapplication/problem+json
Problem

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
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
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

Media typeapplication/problem+json
Problem

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
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
object

Example

{
"type": "about:blank",
"title": "Authenticated, but not allowed",
"status": 403,
"detail": "…",
"instance": "/v1/…",
"request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"
}

Not found

Media typeapplication/problem+json
Problem

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
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
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)

Media typeapplication/problem+json
Problem

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
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
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

Media typeapplication/problem+json
Problem

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
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
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

Media typeapplication/problem+json
Problem

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
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
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)

Media typeapplication/problem+json
Problem

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
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
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

Media typeapplication/problem+json
Problem

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
type
required

about:blank or a urn:tasksmate:problem:* identifier

string
Allowed values: about:blank urn:tasksmate:problem:validation urn:tasksmate:problem:invalid-parameter urn:tasksmate:problem:precondition-failed urn:tasksmate:problem:idempotency-key-reused urn:tasksmate:problem:idempotency-key-in-flight urn:tasksmate:problem:idempotency-key-invalid urn:tasksmate:problem:rate-limit urn:tasksmate:problem:internal urn:tasksmate:problem:token-invalid urn:tasksmate:problem:token-expired urn:tasksmate:problem:token-revoked urn:tasksmate:problem:insufficient-scope urn:tasksmate:problem:test-token-read-only urn:tasksmate:problem:token-policy urn:tasksmate:problem:url-refused
title
required
string
status
required
integer
detail
required

Human-readable explanation (a string; for a 422, the list of validation errors)

instance
required
string
request_id
required
string
errors

Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Array<object>
object

Example

{
"type": "about:blank",
"title": "Unexpected server error",
"status": 500,
"detail": "…",
"instance": "/v1/…",
"request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"
}