{"openapi":"3.1.0","info":{"title":"Issuelane API","version":"1.0.0","description":"The Issuelane public API.\n\nAuthenticate with an API token in the `Authorization: Bearer <token>` header. An agent token is created by a workspace admin in Settings, Agents; a personal token is created by a person in Settings, MCP, acts as that person, and reaches only the workspace it was made in. Both carry scopes: `workspace:read` for every read, `tasks:write` for creating and changing tasks and comments.\n\nLists answer `{ \"data\": [...], \"nextCursor\": \"...\" }`. Pass `nextCursor` as `cursor`, with the same filters, for the next page; it is null on the last page.\n\nEvery error answers `{ \"error\": { \"type\", \"message\", \"requestId\", \"errors\" } }`. Switch on `type`; show `message`; quote `requestId` when reporting a problem.\n\nWrites accept an `Idempotency-Key` header holding a UUID. Retrying a write with the same key returns the first result; the same key on a different request is a 409.\n\nEach token may make 600 requests and 60 writes a minute, and all the tokens of one workspace 300 writes a minute between them, in fixed 60-second windows. Over a limit the answer is 429 with a `Retry-After` header in seconds."},"servers":[{"url":"/v1"}],"components":{"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer","description":"An API token: an agent token (`isl_at_...`) or a personal token (`isl_pt_...`)."}},"schemas":{"TaskOrder":{"type":"string","enum":["MANUAL","FOCUS","PRIORITY","CREATED","UPDATED","DUE_DATE","IDENTIFIER","TITLE","STATE","ASSIGNEE","ESTIMATE"],"title":"TaskOrder","description":"How a task list is ordered. CREATED is oldest first and the best order to sync from; MANUAL is the order people arranged by hand."},"Workspace":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","slug","createdAt"]},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","unauthorized","forbidden","not_found","conflict","payload_too_large","validation_failed","rate_limited","internal_error","unavailable"]},"message":{"type":"string"},"requestId":{"type":["string","null"]},"errors":{"type":"array","items":{"$ref":"#/components/schemas/FieldError"}}},"required":["type","message","requestId"]}},"required":["error"],"description":"Every refusal and failure the public API answers."},"FieldError":{"type":"object","properties":{"field":{"type":["string","null"],"description":"The field refused, or null for the request as a whole."},"message":{"type":"string"}},"required":["field","message"]},"MemberList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Member"}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pass as `cursor` for the next page; null on the last."}},"required":["data","nextCursor"]},"Member":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"$ref":"#/components/schemas/MemberRole"},"joinedAt":{"type":"string","format":"date-time"}},"required":["id","name","email","role","joinedAt"],"description":"A person in the workspace. Agents are not members."},"MemberRole":{"type":"string","enum":["OWNER","ADMIN","MEMBER","GUEST"],"title":"MemberRole","description":"A person's role in the workspace."},"ProjectList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Project"}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pass as `cursor` for the next page; null on the last."}},"required":["data","nextCursor"]},"Project":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"name":{"type":"string"},"key":{"type":"string","description":"The prefix of the project's task identifiers."},"slug":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"startsAt":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}]},"targetAt":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}]},"leadId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"archivedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","workspaceId","name","key","slug","description","startsAt","targetAt","leadId","archivedAt","createdAt"]},"StateList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/State"}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pass as `cursor` for the next page; null on the last."}},"required":["data","nextCursor"]},"State":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"name":{"type":"string"},"category":{"$ref":"#/components/schemas/StateCategory"},"position":{"type":"integer"},"isDefault":{"type":"boolean"},"color":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","workspaceId","projectId","name","category","position","isDefault","color","createdAt"],"description":"One step of a project's workflow."},"StateCategory":{"type":"string","enum":["BACKLOG","UNSTARTED","STARTED","COMPLETED","CANCELED"],"title":"StateCategory","description":"The fixed category every workflow state maps onto. States are named freely per project; read the category, never the name, to tell open work from done."},"SprintList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Sprint"}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pass as `cursor` for the next page; null on the last."}},"required":["data","nextCursor"]},"Sprint":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"startsAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"endsAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"status":{"$ref":"#/components/schemas/SprintStatus"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","workspaceId","projectId","name","description","startsAt","endsAt","status","createdAt","updatedAt"]},"SprintStatus":{"type":"string","enum":["PLANNED","ACTIVE","COMPLETED"],"title":"SprintStatus","description":"Where a sprint is in its life."},"LabelList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Label"}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pass as `cursor` for the next page; null on the last."}},"required":["data","nextCursor"]},"Label":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"projectId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Null for a label every project shares."},"name":{"type":"string"},"color":{"anyOf":[{"type":"string"},{"type":"null"}]},"groupId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","workspaceId","projectId","name","color","groupId","createdAt"]},"TaskList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Task"}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pass as `cursor` for the next page; null on the last."}},"required":["data","nextCursor"]},"Task":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"identifier":{"type":"string","description":"The human key, such as `WEB-42`."},"number":{"type":"integer"},"title":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Markdown."},"acceptanceCriteria":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Markdown."},"stateId":{"type":"string","format":"uuid"},"priority":{"$ref":"#/components/schemas/TaskPriority"},"estimate":{"anyOf":[{"type":"integer"},{"type":"null"}]},"assigneeId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Always a person."},"delegateId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"The agent working on it, if any."},"creatorId":{"type":"string","format":"uuid"},"teamId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"sprintId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"dueDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}]},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"}},"startedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"canceledAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"archivedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","workspaceId","projectId","identifier","number","title","description","acceptanceCriteria","stateId","priority","estimate","assigneeId","delegateId","creatorId","teamId","parentId","sprintId","dueDate","labelIds","startedAt","completedAt","canceledAt","archivedAt","createdAt","updatedAt"]},"TaskPriority":{"type":"string","enum":["NONE","URGENT","HIGH","MEDIUM","LOW"],"title":"TaskPriority","description":"How urgent a task is. NONE is the default for a task nobody has ranked."},"TaskCreate":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"maxLength":500},"description":{"anyOf":[{"type":"string","maxLength":100000},{"type":"null"}]},"acceptanceCriteria":{"anyOf":[{"type":"string","maxLength":100000},{"type":"null"}]},"stateId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Defaults to the project's default state."},"priority":{"$ref":"#/components/schemas/TaskPriority","default":"NONE"},"estimate":{"anyOf":[{"type":"integer","minimum":0,"maximum":2147483647},{"type":"null"}]},"assigneeId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"sprintId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"dueDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}]},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100}},"required":["projectId","title"],"additionalProperties":false,"title":"TaskCreate"},"TaskUpdate":{"type":"object","properties":{"title":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":100000},{"type":"null"}]},"acceptanceCriteria":{"anyOf":[{"type":"string","maxLength":100000},{"type":"null"}]},"stateId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"priority":{"anyOf":[{"$ref":"#/components/schemas/TaskPriority"},{"type":"null"}]},"estimate":{"anyOf":[{"type":"integer","minimum":0,"maximum":2147483647},{"type":"null"}]},"assigneeId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"sprintId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"dueDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}]},"labelIds":{"anyOf":[{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100},{"type":"null"}],"description":"Replaces the whole set."},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"additionalProperties":false,"title":"TaskUpdate","description":"Only the fields sent change. Null clears a field that may be empty; title, state, priority, labels and archived cannot be null."},"CommentList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Comment"}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pass as `cursor` for the next page; null on the last."}},"required":["data","nextCursor"]},"Comment":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"taskId":{"type":"string","format":"uuid"},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"The comment this replies to."},"authorId":{"type":"string","format":"uuid"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Markdown; null once deleted."},"editedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"deletedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","workspaceId","taskId","parentId","authorId","body","editedAt","deletedAt","createdAt","updatedAt"]},"CommentCreate":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":100000,"description":"Markdown."},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"The comment to reply to."}},"required":["body"],"additionalProperties":false,"title":"CommentCreate"}},"parameters":{}},"paths":{"/workspaces/{workspace_id}":{"get":{"operationId":"getWorkspace","tags":["Workspace"],"summary":"Get the workspace","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{workspace_id}/members":{"get":{"operationId":"listMembers","tags":["Workspace"],"summary":"List members","description":"Every person in the workspace, by name. Not paged.","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberList"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{workspace_id}/projects":{"get":{"operationId":"listProjects","tags":["Projects"],"summary":"List projects","description":"Not paged. Archived projects only when `include_archived` is true.","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"},{"schema":{"type":"boolean","title":"Include Archived","default":false},"required":false,"name":"include_archived","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectList"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{workspace_id}/projects/{project_id}":{"get":{"operationId":"getProject","tags":["Projects"],"summary":"Get a project","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Project Id"},"required":true,"name":"project_id","in":"path"},{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{workspace_id}/projects/{project_id}/states":{"get":{"operationId":"listStates","tags":["Projects"],"summary":"List a project's workflow states","description":"In workflow order. Not paged.","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Project Id"},"required":true,"name":"project_id","in":"path"},{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateList"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{workspace_id}/projects/{project_id}/sprints":{"get":{"operationId":"listSprints","tags":["Projects"],"summary":"List a project's sprints","description":"The latest start first, undated sprints last. Not paged.","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Project Id"},"required":true,"name":"project_id","in":"path"},{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SprintList"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{workspace_id}/labels":{"get":{"operationId":"listLabels","tags":["Projects"],"summary":"List labels","description":"Every label, or with `project_id` the shared labels plus that project's own. Not paged.","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"},{"schema":{"type":"string","title":"Project Id","format":"uuid"},"required":false,"name":"project_id","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelList"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{workspace_id}/tasks":{"get":{"operationId":"listTasks","tags":["Tasks"],"summary":"List tasks","description":"Tasks across the workspace, narrowed by every filter given (they are ANDed) and paged by an opaque cursor. Filters narrow the whole workspace, not the page. A filter naming something the workspace does not have is a 422, not an empty page. To page, send the same filters and order with each `cursor`; a cursor from a different list is refused.","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"},{"schema":{"type":"string","title":"Project Id","format":"uuid","description":"Only tasks in this project."},"required":false,"description":"Only tasks in this project.","name":"project_id","in":"query"},{"schema":{"type":"string","title":"State Id","format":"uuid","description":"Only tasks in this workflow state."},"required":false,"description":"Only tasks in this workflow state.","name":"state_id","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"title":"State Category","$ref":"#/components/schemas/StateCategory","description":"Only tasks whose state is in this category."},"required":false,"description":"Only tasks whose state is in this category.","name":"state_category","in":"query"},{"schema":{"type":"string","title":"Assignee Id","format":"uuid","description":"Only tasks assigned to this person."},"required":false,"description":"Only tasks assigned to this person.","name":"assignee_id","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"title":"Priority","$ref":"#/components/schemas/TaskPriority"},"required":false,"name":"priority","in":"query"},{"schema":{"type":"string","title":"Label Id","format":"uuid","description":"Only tasks carrying this label."},"required":false,"description":"Only tasks carrying this label.","name":"label_id","in":"query"},{"schema":{"type":"string","title":"Parent Id","format":"uuid","description":"Only the sub-tasks of this task."},"required":false,"description":"Only the sub-tasks of this task.","name":"parent_id","in":"query"},{"schema":{"type":"string","title":"Updated Since","format":"date-time","description":"Only tasks changed at or after this instant. Include an offset."},"required":false,"description":"Only tasks changed at or after this instant. Include an offset.","name":"updated_since","in":"query"},{"schema":{"type":"boolean","title":"Include Archived","default":false},"required":false,"name":"include_archived","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"default":"CREATED","title":"Order","$ref":"#/components/schemas/TaskOrder"},"required":false,"name":"order","in":"query"},{"schema":{"type":"integer","title":"Limit","minimum":1,"maximum":100,"default":50,"description":"How many items a page holds, 1 to 100."},"required":false,"description":"How many items a page holds, 1 to 100.","name":"limit","in":"query"},{"schema":{"type":"string","title":"Cursor","maxLength":400,"description":"The `nextCursor` of the previous page. Send the same filters with it."},"required":false,"description":"The `nextCursor` of the previous page. Send the same filters with it.","name":"cursor","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskList"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createTask","tags":["Tasks"],"summary":"Create a task","description":"Needs the `tasks:write` scope. Send an `Idempotency-Key` to make retries safe.","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"},{"schema":{"type":"string","format":"uuid","description":"A UUID naming this write. Retrying with the same key returns the first result instead of writing again."},"required":false,"description":"A UUID naming this write. Retrying with the same key returns the first result instead of writing again.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Task"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{workspace_id}/tasks/{task_id}":{"get":{"operationId":"getTask","tags":["Tasks"],"summary":"Get a task","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Task Id"},"required":true,"name":"task_id","in":"path"},{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Task"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateTask","tags":["Tasks"],"summary":"Update a task","description":"Changes only the fields sent. Archive with `archived: true`; the public API does not delete. Needs the `tasks:write` scope.","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Task Id"},"required":true,"name":"task_id","in":"path"},{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"},{"schema":{"type":"string","format":"uuid","description":"A UUID naming this write. Retrying with the same key returns the first result instead of writing again."},"required":false,"description":"A UUID naming this write. Retrying with the same key returns the first result instead of writing again.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Task"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{workspace_id}/tasks/{task_id}/comments":{"get":{"operationId":"listComments","tags":["Comments"],"summary":"List a task's comments","description":"Oldest first, paged by cursor. A deleted comment stays in the list with a null body.","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Task Id"},"required":true,"name":"task_id","in":"path"},{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"},{"schema":{"type":"integer","title":"Limit","minimum":1,"maximum":100,"default":50,"description":"How many items a page holds, 1 to 100."},"required":false,"description":"How many items a page holds, 1 to 100.","name":"limit","in":"query"},{"schema":{"type":"string","title":"Cursor","maxLength":400,"description":"The `nextCursor` of the previous page. Send the same filters with it."},"required":false,"description":"The `nextCursor` of the previous page. Send the same filters with it.","name":"cursor","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentList"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createComment","tags":["Comments"],"summary":"Comment on a task","description":"Needs the `tasks:write` scope. Mentions in the body notify people as they do in the app.","security":[{"HTTPBearer":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","title":"Task Id"},"required":true,"name":"task_id","in":"path"},{"schema":{"type":"string","format":"uuid","title":"Workspace Id"},"required":true,"name":"workspace_id","in":"path"},{"schema":{"type":"string","format":"uuid","description":"A UUID naming this write. Retrying with the same key returns the first result instead of writing again."},"required":false,"description":"A UUID naming this write. Retrying with the same key returns the first result instead of writing again.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"webhooks":{}}