Tracks

Task/goal の create/update/search/delete/bulk apply です。


進行中の作業は track endpoint で扱います。

Create a task

POST /v1/tracks
Authorization: Bearer <token>
Content-Type: application/json
 
{
  "type": "task",
  "title": "Review docs",
  "scope": { "type": "personal" },
  "task": { "status": "todo", "dueDate": "2026-06-05" }
}

Create a goal

{
	"type": "goal",
	"title": "Ship documentation v1",
	"scope": { "type": "projects", "ids": ["project-id"] },
	"goal": { "status": "on_track", "progress": 40 }
}

Task filter には status, assignee, goalId, parentId, dependsOn, date ranges, doneAt ranges があります。Goal filter には status, progressMin, progressMax, date ranges があります。

typetask の場合、progressMinprogressMax のような goal-only filter は invalid です。typegoal の場合、assignee, goalId, parentId, dependsOn, doneAtFrom / doneAtTo のような task-only filter は invalid です。

POST /v1/tracks/search は search call として credit を消費します。Search result で対象を絞ってから、必要な track だけ個別に取得してください。

Bulk apply

{
	"scope": { "type": "personal" },
	"updateDrafts": [
		{ "id": "t001", "title": "Task A", "task": { "status": "todo" } },
		{ "id": "t002", "title": "Task B", "task": { "status": "todo", "dependsOn": ["t001"] } }
	]
}

非 UUID の draft ID は新規作成、UUID の draft ID は既存更新です。

updateDrafts では task または goal から type を推論します。両方を渡すと invalid です。New draft には title が必要です。UUID draft は省略 fields を維持します。