ghl_project_set_task_home_list
Move a task's home list to a different list. Returns success, or 409 if the task already belongs to the destination list or is not on the current home list.
Instructions
PROJECT MANAGEMENT API — hierarchy is spaces -> folders -> lists -> tasks (+ comments, space statuses, recurring tasks). Task batch-get is RBAC-filtered (inaccessible ids are omitted, not errors) and omits embedded subtasks. position is an opaque server-assigned lexorank string; there is no public reorder endpoint. Recurring tasks use owners/contactIds and rruleOptions.intervalType (task create uses assignees/contactId). Task search supports updatedAt filtering/sorting for incremental sync. The docs do not describe what a delete cascades to — treat every delete as destructive.
Move Task
Moves the task’s home list to another list. Response: { "success": true }. 409 has two causes and one status: the task is already on the destination list (including as an additional list), or it is not on the current home list. If it is already an additional member of the destination, DELETE /projects/lists/{listId}/tasks/{taskId} on that list, then call Move Task. There is no separate error code for the two causes.
Endpoint: PUT /projects/tasks/{taskId}/home-list (Version header: v3; source: v3/projects-v3.json)
OAuth scopes: projects/tasks.write
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Request body (schema carried verbatim from the official OpenAPI spec). | |
| taskId | Yes | Task id | |
| locationId | No | Location id. Required for APP channel (`?locationId=`). Ignored for OAuth/PIT (token location is used). Do not send in path, body, or headers. |