# Overview

## TasksMate API 2026-09-25

The TasksMate public API: JSON over HTTPS, under `/v1`.

-   **Authentication:** a TasksMate access token (`TasksMateToken` — one organization, scopes you choose, optionally limited to some projects; `admin` implies every scope) or a Supabase session JWT.
-   **Errors:** always `application/problem+json` with `type`, `title`, `status`, `detail`, `instance` and `request_id`. The types are listed below.
-   **Lists:** `{data, next_cursor}`. Page with `limit` and `cursor`; order with `sort_by` and `sort_order`.
-   **Conditional requests:** single reads return an `ETag`. Send it as `If-None-Match` for a 304, or as `If-Match` on a write — a stale one is a 412.
-   **Safe retries:** creates honour an `Idempotency-Key` for 24 h.
-   **Search:** `GET /v1/tasks?filter[search]=…`.

**Problem types**

| `type` | Meaning |
| --- | --- |
| `about:blank` | A plain HTTP error; the status and `detail` say everything. |
| `urn:tasksmate:problem:validation` | The request body or query did not validate. `errors` lists each failure (`loc`, `msg`, `type`). |
| `urn:tasksmate:problem:invalid-parameter` | A query parameter is outside what the operation accepts; `errors[].allowed` lists the valid values. |
| `urn:tasksmate:problem:precondition-failed` | `If-Match` did not match the resource’s current `ETag` — re-read it and retry. |
| `urn:tasksmate:problem:idempotency-key-reused` | This `Idempotency-Key` was first used for a different request (method, path or body). |
| `urn:tasksmate:problem:idempotency-key-in-flight` | The first request with this `Idempotency-Key` has not finished; retry shortly. |
| `urn:tasksmate:problem:idempotency-key-invalid` | `Idempotency-Key` must be 1–255 printable ASCII characters. |
| `urn:tasksmate:problem:rate-limit` | Too many requests with this access token; wait `Retry-After` seconds (`X-RateLimit-*` say where you stand). |
| `urn:tasksmate:problem:internal` | An unexpected server error. Quote `request_id` to support. |
| `urn:tasksmate:problem:token-invalid` | The access token is unknown or malformed (or its principal no longer exists). |
| `urn:tasksmate:problem:token-expired` | The access token is past its `expires_at`; mint a new one. |
| `urn:tasksmate:problem:token-revoked` | The access token was revoked (by its owner, an admin, a rotation, or its service account’s deactivation). |
| `urn:tasksmate:problem:insufficient-scope` | The access token does not carry the scope this operation needs (`errors[0].required`; null = not available to tokens). |
| `urn:tasksmate:problem:test-token-read-only` | A `tm_test_` token can authenticate and read, never write. |
| `urn:tasksmate:problem:token-policy` | The organization’s token policy refuses this token (personal tokens off, expiry required, or past the maximum lifetime). |
| `urn:tasksmate:problem:url-refused` | The webhook URL is refused: not https, carries credentials, or resolves to a private, loopback, link-local, metadata, multicast or reserved address (`errors[0].reason`). |

Information

-   OpenAPI version: `3.1.0`

## Operations

GET

[/v1/health](https://developers.tasksmate.indrasol.com/reference/operations/healthread/)

GET

[/v1/me](https://developers.tasksmate.indrasol.com/reference/operations/meread/)

GET

[/v1/organizations](https://developers.tasksmate.indrasol.com/reference/operations/organizationslist/)

GET

[/v1/organizations/{org\_id}](https://developers.tasksmate.indrasol.com/reference/operations/organizationsread/)

GET

[/v1/organizations/{org\_id}/settings](https://developers.tasksmate.indrasol.com/reference/operations/organizationssettings/)

PUT

[/v1/organizations/{org\_id}/settings](https://developers.tasksmate.indrasol.com/reference/operations/organizationsupdate_settings/)

GET

[/v1/organizations/{org\_id}/access-review](https://developers.tasksmate.indrasol.com/reference/operations/organizationsaccess_review/)

GET

[/v1/organization-members/{org\_id}](https://developers.tasksmate.indrasol.com/reference/operations/organization-memberslist/)

GET

[/v1/organization-members/{user\_id}/{org\_id}](https://developers.tasksmate.indrasol.com/reference/operations/organization-membersread/)

PUT

[/v1/organization-members/{user\_id}/{org\_id}](https://developers.tasksmate.indrasol.com/reference/operations/organization-membersreplace/)

DELETE

[/v1/organization-members/{user\_id}/{org\_id}](https://developers.tasksmate.indrasol.com/reference/operations/organization-membersdelete/)

PATCH

[/v1/organization-members/{user\_id}/{org\_id}](https://developers.tasksmate.indrasol.com/reference/operations/organization-membersupdate/)

POST

[/v1/organization-invites](https://developers.tasksmate.indrasol.com/reference/operations/organization-invitescreate/)

GET

[/v1/organization-invites/org/{org\_id}](https://developers.tasksmate.indrasol.com/reference/operations/organization-inviteslist/)

GET

[/v1/organization-invites/user](https://developers.tasksmate.indrasol.com/reference/operations/organization-invitesmine/)

PUT

[/v1/organization-invites/{invite\_id}](https://developers.tasksmate.indrasol.com/reference/operations/organization-invitesupdate/)

DELETE

[/v1/organization-invites/{invite\_id}](https://developers.tasksmate.indrasol.com/reference/operations/organization-invitesdelete/)

PUT

[/v1/organization-invites/{invite\_id}/accept](https://developers.tasksmate.indrasol.com/reference/operations/organization-invitesaccept/)

DELETE

[/v1/organization-invites/{invite\_id}/reject](https://developers.tasksmate.indrasol.com/reference/operations/organization-invitesreject/)

GET

[/v1/organizations/{org\_id}/service-accounts](https://developers.tasksmate.indrasol.com/reference/operations/service-accountslist/)

POST

[/v1/organizations/{org\_id}/service-accounts](https://developers.tasksmate.indrasol.com/reference/operations/service-accountscreate/)

DELETE

[/v1/organizations/{org\_id}/service-accounts/{user\_id}](https://developers.tasksmate.indrasol.com/reference/operations/service-accountsdelete/)

PATCH

[/v1/organizations/{org\_id}/service-accounts/{user\_id}](https://developers.tasksmate.indrasol.com/reference/operations/service-accountsupdate/)

GET

[/v1/tokens](https://developers.tasksmate.indrasol.com/reference/operations/tokenslist/)

POST

[/v1/tokens](https://developers.tasksmate.indrasol.com/reference/operations/tokenscreate/)

GET

[/v1/tokens/{token\_id}](https://developers.tasksmate.indrasol.com/reference/operations/tokensread/)

DELETE

[/v1/tokens/{token\_id}](https://developers.tasksmate.indrasol.com/reference/operations/tokensdelete/)

PATCH

[/v1/tokens/{token\_id}](https://developers.tasksmate.indrasol.com/reference/operations/tokensupdate/)

POST

[/v1/tokens/{token\_id}/rotate](https://developers.tasksmate.indrasol.com/reference/operations/tokensrotate/)

GET

[/v1/webhooks/events](https://developers.tasksmate.indrasol.com/reference/operations/webhooksevents/)

GET

[/v1/webhooks](https://developers.tasksmate.indrasol.com/reference/operations/webhookslist/)

POST

[/v1/webhooks](https://developers.tasksmate.indrasol.com/reference/operations/webhookscreate/)

GET

[/v1/webhooks/{subscription\_id}](https://developers.tasksmate.indrasol.com/reference/operations/webhooksread/)

DELETE

[/v1/webhooks/{subscription\_id}](https://developers.tasksmate.indrasol.com/reference/operations/webhooksdelete/)

PATCH

[/v1/webhooks/{subscription\_id}](https://developers.tasksmate.indrasol.com/reference/operations/webhooksupdate/)

POST

[/v1/webhooks/{subscription\_id}/rotate-secret](https://developers.tasksmate.indrasol.com/reference/operations/webhooksrotate_secret/)

POST

[/v1/webhooks/{subscription\_id}/test](https://developers.tasksmate.indrasol.com/reference/operations/webhookstest/)

GET

[/v1/webhooks/{subscription\_id}/deliveries](https://developers.tasksmate.indrasol.com/reference/operations/webhooksdeliveries/)

GET

[/v1/webhooks/{subscription\_id}/deliveries/{delivery\_id}](https://developers.tasksmate.indrasol.com/reference/operations/webhooksdelivery/)

POST

[/v1/webhooks/{subscription\_id}/deliveries/{delivery\_id}/replay](https://developers.tasksmate.indrasol.com/reference/operations/webhooksreplay/)

GET

[/v1/designations](https://developers.tasksmate.indrasol.com/reference/operations/designationslist/)

POST

[/v1/designations](https://developers.tasksmate.indrasol.com/reference/operations/designationscreate/)

GET

[/v1/designations/{designation\_id}](https://developers.tasksmate.indrasol.com/reference/operations/designationsread/)

PUT

[/v1/designations/{designation\_id}](https://developers.tasksmate.indrasol.com/reference/operations/designationsreplace/)

DELETE

[/v1/designations/{designation\_id}](https://developers.tasksmate.indrasol.com/reference/operations/designationsdelete/)

PATCH

[/v1/designations/{designation\_id}](https://developers.tasksmate.indrasol.com/reference/operations/designationsupdate/)

PUT

[/v1/designations/{designation\_id}/visibility](https://developers.tasksmate.indrasol.com/reference/operations/designationsset_visibility/)

POST

[/v1/projects](https://developers.tasksmate.indrasol.com/reference/operations/projectscreate/)

GET

[/v1/projects/{org\_id}](https://developers.tasksmate.indrasol.com/reference/operations/projectslist/)

GET

[/v1/projects/detail/{project\_id}](https://developers.tasksmate.indrasol.com/reference/operations/projectsread/)

PUT

[/v1/projects/{project\_id}](https://developers.tasksmate.indrasol.com/reference/operations/projectsreplace/)

DELETE

[/v1/projects/{project\_id}](https://developers.tasksmate.indrasol.com/reference/operations/projectsdelete/)

PATCH

[/v1/projects/{project\_id}](https://developers.tasksmate.indrasol.com/reference/operations/projectsupdate/)

POST

[/v1/projects/reorder](https://developers.tasksmate.indrasol.com/reference/operations/projectsreorder/)

GET

[/v1/project-members](https://developers.tasksmate.indrasol.com/reference/operations/project-memberslist/)

POST

[/v1/project-members](https://developers.tasksmate.indrasol.com/reference/operations/project-memberscreate/)

GET

[/v1/project-members/{user\_id}/{project\_id}](https://developers.tasksmate.indrasol.com/reference/operations/project-membersread/)

PUT

[/v1/project-members/{user\_id}/{project\_id}](https://developers.tasksmate.indrasol.com/reference/operations/project-membersreplace/)

DELETE

[/v1/project-members/{user\_id}/{project\_id}](https://developers.tasksmate.indrasol.com/reference/operations/project-membersdelete/)

PATCH

[/v1/project-members/{user\_id}/{project\_id}](https://developers.tasksmate.indrasol.com/reference/operations/project-membersupdate/)

GET

[/v1/project-resources](https://developers.tasksmate.indrasol.com/reference/operations/project-resourceslist/)

POST

[/v1/project-resources](https://developers.tasksmate.indrasol.com/reference/operations/project-resourcescreate/)

GET

[/v1/project-resources/{resource\_id}](https://developers.tasksmate.indrasol.com/reference/operations/project-resourcesread/)

PUT

[/v1/project-resources/{resource\_id}](https://developers.tasksmate.indrasol.com/reference/operations/project-resourcesupdate/)

DELETE

[/v1/project-resources/{resource\_id}](https://developers.tasksmate.indrasol.com/reference/operations/project-resourcesdelete/)

POST

[/v1/project-resources/upload](https://developers.tasksmate.indrasol.com/reference/operations/project-resourcesupload/)

GET

[/v1/project-stats/{project\_id}/stats](https://developers.tasksmate.indrasol.com/reference/operations/project-statsread/)

GET

[/v1/goals](https://developers.tasksmate.indrasol.com/reference/operations/goalsorg/)

GET

[/v1/projects/{project\_id}/goals](https://developers.tasksmate.indrasol.com/reference/operations/goalslist/)

POST

[/v1/projects/{project\_id}/goals](https://developers.tasksmate.indrasol.com/reference/operations/goalscreate/)

POST

[/v1/projects/{project\_id}/goals/reorder](https://developers.tasksmate.indrasol.com/reference/operations/goalsreorder/)

PUT

[/v1/projects/{project\_id}/goals/{goal\_id}](https://developers.tasksmate.indrasol.com/reference/operations/goalsreplace/)

DELETE

[/v1/projects/{project\_id}/goals/{goal\_id}](https://developers.tasksmate.indrasol.com/reference/operations/goalsdelete/)

PATCH

[/v1/projects/{project\_id}/goals/{goal\_id}](https://developers.tasksmate.indrasol.com/reference/operations/goalsupdate/)

POST

[/v1/projects/{project\_id}/goals/{goal\_id}/move](https://developers.tasksmate.indrasol.com/reference/operations/goalsmove/)

POST

[/v1/projects/{project\_id}/goals/{goal\_id}/tasks](https://developers.tasksmate.indrasol.com/reference/operations/goalsfile_tasks/)

DELETE

[/v1/projects/{project\_id}/goals/{goal\_id}/tasks/{task\_id}](https://developers.tasksmate.indrasol.com/reference/operations/goalsunfile_task/)

GET

[/v1/tasks](https://developers.tasksmate.indrasol.com/reference/operations/taskslist/)

POST

[/v1/tasks](https://developers.tasksmate.indrasol.com/reference/operations/taskscreate/)

GET

[/v1/tasks/{task\_id}](https://developers.tasksmate.indrasol.com/reference/operations/tasksread/)

PUT

[/v1/tasks/{task\_id}](https://developers.tasksmate.indrasol.com/reference/operations/tasksreplace/)

DELETE

[/v1/tasks/{task\_id}](https://developers.tasksmate.indrasol.com/reference/operations/tasksdelete/)

PATCH

[/v1/tasks/{task\_id}](https://developers.tasksmate.indrasol.com/reference/operations/tasksupdate/)

POST

[/v1/tasks/{task\_id}/project](https://developers.tasksmate.indrasol.com/reference/operations/tasksset_project/)

PUT

[/v1/tasks/{task\_id}/sprint](https://developers.tasksmate.indrasol.com/reference/operations/tasksset_sprint/)

PUT

[/v1/tasks/{task\_id}/milestone](https://developers.tasksmate.indrasol.com/reference/operations/tasksset_milestone/)

PUT

[/v1/tasks/{task\_id}/section](https://developers.tasksmate.indrasol.com/reference/operations/tasksset_section/)

POST

[/v1/tasks/{task\_id}/subtasks](https://developers.tasksmate.indrasol.com/reference/operations/tasksadd_subtask/)

DELETE

[/v1/tasks/{task\_id}/subtasks/{subtask\_id}](https://developers.tasksmate.indrasol.com/reference/operations/tasksremove_subtask/)

POST

[/v1/tasks/{task\_id}/dependencies](https://developers.tasksmate.indrasol.com/reference/operations/tasksadd_dependency/)

DELETE

[/v1/tasks/{task\_id}/dependencies/{dependency\_id}](https://developers.tasksmate.indrasol.com/reference/operations/tasksremove_dependency/)

GET

[/v1/task-comments](https://developers.tasksmate.indrasol.com/reference/operations/task-commentslist/)

POST

[/v1/task-comments](https://developers.tasksmate.indrasol.com/reference/operations/task-commentscreate/)

POST

[/v1/task-comments/reply](https://developers.tasksmate.indrasol.com/reference/operations/task-commentsreply/)

GET

[/v1/task-comments/{comment\_id}](https://developers.tasksmate.indrasol.com/reference/operations/task-commentsread/)

PUT

[/v1/task-comments/{comment\_id}](https://developers.tasksmate.indrasol.com/reference/operations/task-commentsupdate/)

DELETE

[/v1/task-comments/{comment\_id}](https://developers.tasksmate.indrasol.com/reference/operations/task-commentsdelete/)

GET

[/v1/task-attachments](https://developers.tasksmate.indrasol.com/reference/operations/task-attachmentslist/)

POST

[/v1/task-attachments](https://developers.tasksmate.indrasol.com/reference/operations/task-attachmentscreate/)

GET

[/v1/task-attachments/{attachment\_id}](https://developers.tasksmate.indrasol.com/reference/operations/task-attachmentsread/)

PUT

[/v1/task-attachments/{attachment\_id}](https://developers.tasksmate.indrasol.com/reference/operations/task-attachmentsupdate/)

DELETE

[/v1/task-attachments/{attachment\_id}](https://developers.tasksmate.indrasol.com/reference/operations/task-attachmentsdelete/)

GET

[/v1/task-history](https://developers.tasksmate.indrasol.com/reference/operations/task-historylist/)

GET

[/v1/task-history/{history\_id}](https://developers.tasksmate.indrasol.com/reference/operations/task-historyread/)

GET

[/v1/sections](https://developers.tasksmate.indrasol.com/reference/operations/sectionslist/)

POST

[/v1/sections](https://developers.tasksmate.indrasol.com/reference/operations/sectionscreate/)

POST

[/v1/sections/reorder](https://developers.tasksmate.indrasol.com/reference/operations/sectionsreorder/)

DELETE

[/v1/sections/{section\_id}](https://developers.tasksmate.indrasol.com/reference/operations/sectionsdelete/)

PATCH

[/v1/sections/{section\_id}](https://developers.tasksmate.indrasol.com/reference/operations/sectionsupdate/)

GET

[/v1/teams](https://developers.tasksmate.indrasol.com/reference/operations/teamslist/)

POST

[/v1/teams](https://developers.tasksmate.indrasol.com/reference/operations/teamscreate/)

GET

[/v1/teams/{team\_id}](https://developers.tasksmate.indrasol.com/reference/operations/teamsread/)

PUT

[/v1/teams/{team\_id}](https://developers.tasksmate.indrasol.com/reference/operations/teamsreplace/)

DELETE

[/v1/teams/{team\_id}](https://developers.tasksmate.indrasol.com/reference/operations/teamsdelete/)

PATCH

[/v1/teams/{team\_id}](https://developers.tasksmate.indrasol.com/reference/operations/teamsupdate/)

POST

[/v1/teams/{team\_id}/members](https://developers.tasksmate.indrasol.com/reference/operations/teamsadd_member/)

PUT

[/v1/teams/{team\_id}/members/{user\_id}](https://developers.tasksmate.indrasol.com/reference/operations/teamsreplace_member/)

DELETE

[/v1/teams/{team\_id}/members/{user\_id}](https://developers.tasksmate.indrasol.com/reference/operations/teamsremove_member/)

PATCH

[/v1/teams/{team\_id}/members/{user\_id}](https://developers.tasksmate.indrasol.com/reference/operations/teamsupdate_member/)

GET

[/v1/teams/{team\_id}/intake](https://developers.tasksmate.indrasol.com/reference/operations/teamslist_tasks/)

GET

[/v1/teams/{team\_id}/sprints](https://developers.tasksmate.indrasol.com/reference/operations/sprintslist/)

POST

[/v1/teams/{team\_id}/sprints](https://developers.tasksmate.indrasol.com/reference/operations/sprintscreate/)

PUT

[/v1/teams/{team\_id}/sprints/{sprint\_id}](https://developers.tasksmate.indrasol.com/reference/operations/sprintsupdate/)

DELETE

[/v1/teams/{team\_id}/sprints/{sprint\_id}](https://developers.tasksmate.indrasol.com/reference/operations/sprintsdelete/)

GET

[/v1/teams/{team\_id}/milestones](https://developers.tasksmate.indrasol.com/reference/operations/milestoneslist/)

POST

[/v1/teams/{team\_id}/milestones](https://developers.tasksmate.indrasol.com/reference/operations/milestonescreate/)

PUT

[/v1/teams/{team\_id}/milestones/{milestone\_id}](https://developers.tasksmate.indrasol.com/reference/operations/milestonesupdate/)

DELETE

[/v1/teams/{team\_id}/milestones/{milestone\_id}](https://developers.tasksmate.indrasol.com/reference/operations/milestonesdelete/)

GET

[/v1/teams/{team\_id}/availability](https://developers.tasksmate.indrasol.com/reference/operations/availabilityrange/)

POST

[/v1/teams/{team\_id}/availability](https://developers.tasksmate.indrasol.com/reference/operations/availabilitycreate/)

PUT

[/v1/teams/{team\_id}/availability/{entry\_id}](https://developers.tasksmate.indrasol.com/reference/operations/availabilityupdate/)

DELETE

[/v1/teams/{team\_id}/availability/{entry\_id}](https://developers.tasksmate.indrasol.com/reference/operations/availabilitydelete/)

GET

[/v1/roadmap](https://developers.tasksmate.indrasol.com/reference/operations/roadmaporg/)

GET

[/v1/projects/{project\_id}/roadmap](https://developers.tasksmate.indrasol.com/reference/operations/roadmapproject/)

GET

[/v1/teams/{team\_id}/roadmap](https://developers.tasksmate.indrasol.com/reference/operations/roadmapteam/)

GET

[/v1/tasks/{task\_id}/roadmap](https://developers.tasksmate.indrasol.com/reference/operations/roadmaptask_stops/)

GET

[/v1/views](https://developers.tasksmate.indrasol.com/reference/operations/viewslist/)

POST

[/v1/views](https://developers.tasksmate.indrasol.com/reference/operations/viewscreate/)

GET

[/v1/views/{view\_id}](https://developers.tasksmate.indrasol.com/reference/operations/viewsread/)

DELETE

[/v1/views/{view\_id}](https://developers.tasksmate.indrasol.com/reference/operations/viewsdelete/)

PATCH

[/v1/views/{view\_id}](https://developers.tasksmate.indrasol.com/reference/operations/viewsupdate/)

POST

[/v1/views/{view\_id}/duplicate](https://developers.tasksmate.indrasol.com/reference/operations/viewsduplicate/)

GET

[/v1/views/{view\_id}/rows](https://developers.tasksmate.indrasol.com/reference/operations/viewsrows/)

PUT

[/v1/views/{view\_id}/pin](https://developers.tasksmate.indrasol.com/reference/operations/view-pinspin_view/)

DELETE

[/v1/views/{view\_id}/pin](https://developers.tasksmate.indrasol.com/reference/operations/view-pinsunpin_view/)

GET

[/v1/view-pins](https://developers.tasksmate.indrasol.com/reference/operations/view-pinslist/)

PUT

[/v1/view-pins/projects/{project\_id}](https://developers.tasksmate.indrasol.com/reference/operations/view-pinspin_project/)

DELETE

[/v1/view-pins/projects/{project\_id}](https://developers.tasksmate.indrasol.com/reference/operations/view-pinsunpin_project/)

PUT

[/v1/view-pins/order](https://developers.tasksmate.indrasol.com/reference/operations/view-pinsreorder/)

GET

[/v1/audit](https://developers.tasksmate.indrasol.com/reference/operations/auditlist/)

GET

[/v1/audit.csv](https://developers.tasksmate.indrasol.com/reference/operations/auditexport/)

GET

[/v1/releases/whats-new](https://developers.tasksmate.indrasol.com/reference/operations/releaseswhats_new/)

GET

[/v1/oauth/clients](https://developers.tasksmate.indrasol.com/reference/operations/oauth-clientslist/)

POST

[/v1/oauth/clients](https://developers.tasksmate.indrasol.com/reference/operations/oauth-clientscreate/)

GET

[/v1/oauth/clients/{client\_id}](https://developers.tasksmate.indrasol.com/reference/operations/oauth-clientsread/)

DELETE

[/v1/oauth/clients/{client\_id}](https://developers.tasksmate.indrasol.com/reference/operations/oauth-clientsdelete/)

PATCH

[/v1/oauth/clients/{client\_id}](https://developers.tasksmate.indrasol.com/reference/operations/oauth-clientsupdate/)

POST

[/v1/oauth/clients/{client\_id}/rotate-secret](https://developers.tasksmate.indrasol.com/reference/operations/oauth-clientsrotate_secret/)

GET

[/v1/me/connected-apps](https://developers.tasksmate.indrasol.com/reference/operations/connected-appslist/)

DELETE

[/v1/me/connected-apps/{grant\_id}](https://developers.tasksmate.indrasol.com/reference/operations/connected-appsdelete/)

GET

[/.well-known/oauth-authorization-server](https://developers.tasksmate.indrasol.com/reference/operations/oauthserver_metadata/)

GET

[/.well-known/oauth-protected-resource](https://developers.tasksmate.indrasol.com/reference/operations/oauthresource_metadata/)

GET

[/oauth/authorize](https://developers.tasksmate.indrasol.com/reference/operations/oauthauthorize/)

POST

[/oauth/token](https://developers.tasksmate.indrasol.com/reference/operations/oauthtoken/)

POST

[/oauth/revoke](https://developers.tasksmate.indrasol.com/reference/operations/oauthrevoke/)

POST

[webhook.availability.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookavailabilitycreated/) WEBHOOK

POST

[webhook.availability.deleted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookavailabilitydeleted/) WEBHOOK

POST

[webhook.availability.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookavailabilityupdated/) WEBHOOK

POST

[webhook.designation.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookdesignationcreated/) WEBHOOK

POST

[webhook.designation.deactivated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookdesignationdeactivated/) WEBHOOK

POST

[webhook.designation.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookdesignationupdated/) WEBHOOK

POST

[webhook.designation.visibility\_changed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookdesignationvisibility_changed/) WEBHOOK

POST

[webhook.goal.closed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookgoalclosed/) WEBHOOK

POST

[webhook.goal.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookgoalcreated/) WEBHOOK

POST

[webhook.goal.deleted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookgoaldeleted/) WEBHOOK

POST

[webhook.goal.moved](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookgoalmoved/) WEBHOOK

POST

[webhook.goal.reopened](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookgoalreopened/) WEBHOOK

POST

[webhook.goal.reordered](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookgoalreordered/) WEBHOOK

POST

[webhook.goal.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookgoalupdated/) WEBHOOK

POST

[webhook.invite.accepted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookinviteaccepted/) WEBHOOK

POST

[webhook.invite.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookinvitecreated/) WEBHOOK

POST

[webhook.invite.external\_override](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookinviteexternal_override/) WEBHOOK

POST

[webhook.invite.rejected](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookinviterejected/) WEBHOOK

POST

[webhook.invite.revoked](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookinviterevoked/) WEBHOOK

POST

[webhook.invite.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookinviteupdated/) WEBHOOK

POST

[webhook.member.added](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookmemberadded/) WEBHOOK

POST

[webhook.member.auto\_joined](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookmemberauto_joined/) WEBHOOK

POST

[webhook.member.designation\_changed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookmemberdesignation_changed/) WEBHOOK

POST

[webhook.member.removed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookmemberremoved/) WEBHOOK

POST

[webhook.member.role\_changed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookmemberrole_changed/) WEBHOOK

POST

[webhook.milestone.closed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookmilestoneclosed/) WEBHOOK

POST

[webhook.milestone.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookmilestonecreated/) WEBHOOK

POST

[webhook.milestone.deleted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookmilestonedeleted/) WEBHOOK

POST

[webhook.milestone.reopened](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookmilestonereopened/) WEBHOOK

POST

[webhook.milestone.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookmilestoneupdated/) WEBHOOK

POST

[webhook.org.deleted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookorgdeleted/) WEBHOOK

POST

[webhook.org.domain\_added](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookorgdomain_added/) WEBHOOK

POST

[webhook.org.domain\_removed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookorgdomain_removed/) WEBHOOK

POST

[webhook.org.domain\_verified](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookorgdomain_verified/) WEBHOOK

POST

[webhook.org.join\_request\_decided](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookorgjoin_request_decided/) WEBHOOK

POST

[webhook.org.settings\_changed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookorgsettings_changed/) WEBHOOK

POST

[webhook.org.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookorgupdated/) WEBHOOK

POST

[webhook.project.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookprojectcreated/) WEBHOOK

POST

[webhook.project.delegation\_changed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookprojectdelegation_changed/) WEBHOOK

POST

[webhook.project.deleted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookprojectdeleted/) WEBHOOK

POST

[webhook.project.leads\_changed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookprojectleads_changed/) WEBHOOK

POST

[webhook.project.member\_added](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookprojectmember_added/) WEBHOOK

POST

[webhook.project.member\_removed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookprojectmember_removed/) WEBHOOK

POST

[webhook.project.member\_role\_changed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookprojectmember_role_changed/) WEBHOOK

POST

[webhook.project.member\_updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookprojectmember_updated/) WEBHOOK

POST

[webhook.project.owner\_transferred](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookprojectowner_transferred/) WEBHOOK

POST

[webhook.project.reordered](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookprojectreordered/) WEBHOOK

POST

[webhook.project.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookprojectupdated/) WEBHOOK

POST

[webhook.project.visibility\_changed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookprojectvisibility_changed/) WEBHOOK

POST

[webhook.roadmap\_journey.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookroadmap_journeycreated/) WEBHOOK

POST

[webhook.roadmap\_journey.deleted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookroadmap_journeydeleted/) WEBHOOK

POST

[webhook.roadmap\_journey.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookroadmap_journeyupdated/) WEBHOOK

POST

[webhook.roadmap\_stop.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookroadmap_stopcreated/) WEBHOOK

POST

[webhook.roadmap\_stop.deleted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookroadmap_stopdeleted/) WEBHOOK

POST

[webhook.roadmap\_stop.milestone\_pinned](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookroadmap_stopmilestone_pinned/) WEBHOOK

POST

[webhook.roadmap\_stop.milestone\_unpinned](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookroadmap_stopmilestone_unpinned/) WEBHOOK

POST

[webhook.roadmap\_stop.task\_attached](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookroadmap_stoptask_attached/) WEBHOOK

POST

[webhook.roadmap\_stop.task\_detached](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookroadmap_stoptask_detached/) WEBHOOK

POST

[webhook.roadmap\_stop.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookroadmap_stopupdated/) WEBHOOK

POST

[webhook.service\_account.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookservice_accountcreated/) WEBHOOK

POST

[webhook.service\_account.deactivated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookservice_accountdeactivated/) WEBHOOK

POST

[webhook.service\_account.renamed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookservice_accountrenamed/) WEBHOOK

POST

[webhook.sprint.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooksprintcreated/) WEBHOOK

POST

[webhook.sprint.deleted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooksprintdeleted/) WEBHOOK

POST

[webhook.sprint.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooksprintupdated/) WEBHOOK

POST

[webhook.task.attachment\_added](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktaskattachment_added/) WEBHOOK

POST

[webhook.task.attachment\_removed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktaskattachment_removed/) WEBHOOK

POST

[webhook.task.comment\_added](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktaskcomment_added/) WEBHOOK

POST

[webhook.task.comment\_removed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktaskcomment_removed/) WEBHOOK

POST

[webhook.task.comment\_updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktaskcomment_updated/) WEBHOOK

POST

[webhook.task.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktaskcreated/) WEBHOOK

POST

[webhook.task.deleted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktaskdeleted/) WEBHOOK

POST

[webhook.task.dependency\_added](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktaskdependency_added/) WEBHOOK

POST

[webhook.task.dependency\_removed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktaskdependency_removed/) WEBHOOK

POST

[webhook.task.moved](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktaskmoved/) WEBHOOK

POST

[webhook.task.restricted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktaskrestricted/) WEBHOOK

POST

[webhook.task.subtask\_added](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktasksubtask_added/) WEBHOOK

POST

[webhook.task.subtask\_removed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktasksubtask_removed/) WEBHOOK

POST

[webhook.task.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktaskupdated/) WEBHOOK

POST

[webhook.team.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookteamcreated/) WEBHOOK

POST

[webhook.team.deleted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookteamdeleted/) WEBHOOK

POST

[webhook.team.member\_added](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookteammember_added/) WEBHOOK

POST

[webhook.team.member\_removed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookteammember_removed/) WEBHOOK

POST

[webhook.team.member\_role\_changed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookteammember_role_changed/) WEBHOOK

POST

[webhook.team.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookteamupdated/) WEBHOOK

POST

[webhook.token.auth\_failed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktokenauth_failed/) WEBHOOK

POST

[webhook.token.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktokencreated/) WEBHOOK

POST

[webhook.token.renamed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktokenrenamed/) WEBHOOK

POST

[webhook.token.revoked](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktokenrevoked/) WEBHOOK

POST

[webhook.token.rotated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhooktokenrotated/) WEBHOOK

POST

[webhook.webhook.created](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookwebhookcreated/) WEBHOOK

POST

[webhook.webhook.deleted](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookwebhookdeleted/) WEBHOOK

POST

[webhook.webhook.delivery\_replayed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookwebhookdelivery_replayed/) WEBHOOK

POST

[webhook.webhook.disabled](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookwebhookdisabled/) WEBHOOK

POST

[webhook.webhook.paused](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookwebhookpaused/) WEBHOOK

POST

[webhook.webhook.resumed](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookwebhookresumed/) WEBHOOK

POST

[webhook.webhook.rotated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookwebhookrotated/) WEBHOOK

POST

[webhook.webhook.test](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookwebhooktest/) WEBHOOK

POST

[webhook.webhook.updated](https://developers.tasksmate.indrasol.com/reference/webhooks/webhookwebhookupdated/) WEBHOOK

## Authentication

### bearerAuth

A Supabase session token (`Authorization: Bearer <jwt>`) — what the TasksMate app sends. It holds every scope.

**Security scheme type:** http

**Bearer format:** JWT

### TasksMateToken

A TasksMate access token: `Authorization: Bearer tm_live_…`.

-   **Minting:** `POST /v1/tokens` (or Developers → Tokens in the app). The token is shown once.
-   **Reach:** one organization, optionally limited to some of its projects.
-   **Scopes:** each operation’s `x-scopes` names the one it needs. `admin` implies every scope; `<ns>:write` implies `<ns>:read`.
-   **Test tokens:** `tm_test_…` tokens authenticate and read, but never write.
-   **Rate limit:** 600 requests a minute per token (60 for a test token). Every response carries `X-RateLimit-*`; over the limit is a 429 with `Retry-After`.
-   **Internal operations** refuse every token (403 `insufficient-scope` with `required: null`).

| Scope | Grants |
| --- | --- |
| `tasks:read` | Read tasks, their comments, attachments, history, sections and saved views. |
| `tasks:write` | Create, update and delete tasks, comments, attachments, sections and saved views (implies tasks:read). |
| `projects:read` | Read projects, their members, resources, statistics, goals and roadmaps. |
| `projects:write` | Create, update and delete projects, their members, resources and goals (implies projects:read). |
| `teams:read` | Read teams, their members, sprints, milestones and availability. |
| `teams:write` | Create, update and delete teams, their members, sprints, milestones and availability (implies teams:read). |
| `org:read` | Read the organization, its settings, members, invites, designations, access tokens and access review. |
| `org:write` | Change the organization’s settings, members, invites and designations; mint, rotate and revoke access tokens and service accounts (implies org:read). |
| `webhooks:read` | Read the organization’s webhooks and their delivery logs (owner / admin, or a service account). |
| `webhooks:write` | Create, change, pause, test, rotate and delete webhooks and replay deliveries (implies webhooks:read). |
| `admin` | Every scope, including the audit log. |

**Security scheme type:** http

**Bearer format:** tm\_live\_… / tm\_test\_…

### oauth2

For third-party apps acting for a TasksMate user: the authorization-code flow with PKCE (S256, required). The access token it returns is a `tm_live_…` token for one organization, valid 1 hour; refresh tokens rotate on every use.

**Security scheme type:** oauth2

**Flow type:** authorizationCode

**Authorization URL:** [https://tasksmate-fdfsarhnf5gacfb7.eastus-01.azurewebsites.net/oauth/authorize](https://tasksmate-fdfsarhnf5gacfb7.eastus-01.azurewebsites.net/oauth/authorize)

**Token URL:** [https://tasksmate-fdfsarhnf5gacfb7.eastus-01.azurewebsites.net/oauth/token](https://tasksmate-fdfsarhnf5gacfb7.eastus-01.azurewebsites.net/oauth/token)

**Refresh URL:** [https://tasksmate-fdfsarhnf5gacfb7.eastus-01.azurewebsites.net/oauth/token](https://tasksmate-fdfsarhnf5gacfb7.eastus-01.azurewebsites.net/oauth/token)

**Scopes:**

-   tasks:read - Read tasks, their comments, attachments, history, sections and saved views.
-   tasks:write - Create, update and delete tasks, comments, attachments, sections and saved views (implies tasks:read).
-   projects:read - Read projects, their members, resources, statistics, goals and roadmaps.
-   projects:write - Create, update and delete projects, their members, resources and goals (implies projects:read).
-   teams:read - Read teams, their members, sprints, milestones and availability.
-   teams:write - Create, update and delete teams, their members, sprints, milestones and availability (implies teams:read).
-   org:read - Read the organization, its settings, members, invites, designations, access tokens and access review.
-   org:write - Change the organization's settings, members, invites and designations; mint, rotate and revoke access tokens and service accounts (implies org:read).
-   webhooks:read - Read the organization's webhooks and their delivery logs (owner / admin, or a service account).
-   webhooks:write - Create, change, pause, test, rotate and delete webhooks and replay deliveries (implies webhooks:read).
-   admin - Every scope, including the audit log.

---
Source: https://developers.tasksmate.indrasol.com/reference/
