0.x — pre-release, no compatibility promise yet.What this means
List an organization's projects you can read
The organization’s projects, paginated as {data, next_cursor}.
show_all=truereturns every project you can read: public projects, the projects you are a member of, and — for org owners and admins — all of them. Private projects you are not a member of never appear.show_all=falsereturns only the projects you are a member of.filter[status],filter[priority],filter[team](team ids) andfilter[project](project ids) narrow the list.filter[search]matches the name, description or id (case-insensitive substring).filter[start_after]/filter[start_before](YYYY-MM-DD, inclusive) bound the start date — the creation date when a project has none.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”Page size; default 1000, capped at 1000. Filters: filter[status], filter[priority], filter[team], filter[project], filter[search], filter[start_after], filter[start_before] (comma-separated values are OR-ed).
Page size; default 1000, capped at 1000. Filters: filter[status], filter[priority], filter[team], filter[project], filter[search], filter[start_after], filter[start_before] (comma-separated values are OR-ed).
asc or desc
asc or desc
Header Parameters
Section titled “Header Parameters”An ETag you hold; unchanged → 304 with no body.
Responses
Section titled “ Responses ”Successful Response
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": [ { "org_id": "a1b2c3d4-5678-1234-9abc-def012345678", "name": "Website Redesign", "description": "Redesign the company website.", "metadata": { "budget": 10000 }, "status": "not_started", "priority": "high", "start_date": "2024-07-01", "end_date": "2024-12-31", "created_by": "string", "updated_by": "string", "is_active": true, "delete_reason": "string", "owner": "string", "team_members": [ "string" ], "visibility": "public", "team_id": "string", "project_id": "P00001", "created_at": "2026-09-25T12:00:00Z", "updated_at": "2026-09-25T12:00:00Z", "tasks_total": 25, "tasks_completed": 15, "progress_percent": 60, "leads": [ { "user_id": "string", "username": "string", "assigned_by": "string", "assigned_at": "2026-09-25T12:00:00Z" } ], "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"}