For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
SupportDeveloper ForumLogin
  • Overview
    • Introduction
    • Getting Started
    • Integration Example (PSA)
    • Authentication
    • Error Handling
    • Pagination
    • Filtering
    • Ordering
    • Rate Limits
    • Permissions
    • Webhooks
    • MCP Server
    • Versioning
    • Changelog
    • Support
  • API v1 Reference
    • Projects Overview
    • Tasks Overview
      • POSTCreates a new project or private task.
      • POSTInvites a user by email and assigns them to a task.
      • POSTEdits multiple tasks using the specified operation.
      • POSTChanges the base type for multiple tasks.
      • POSTChanges the lists of tasks.
      • POSTChanges statuses of tasks.
      • POSTChanges the parent task and the order of subtasks.
      • POSTConvert subtasks to a parent task.
      • POSTChanges the type of work for a batch of tasks.
      • POSTDeletes tasks and optionally related time entries.
      • GETReturns the task with the specified key.
      • POSTSets the priority flag for a task.
      • GETReturns the task with the specified id.
      • PUTUpdates the task with the specified id.
      • POSTCreates a copy of the specified task.
      • POSTDeletes the recurrence rule for a task.
      • GETGets the recurrence rule of a task.
      • POSTAssigns a list of users to a task.
      • POSTModifies planned efforts for the given task assignments.
      • POSTAdds or updates a recurrence rule for a task.
      • POSTUpdates the order of a task within its list.
    • Time Tracking Overview
    • Documents Overview
    • Search Overview
    • Companies Overview
    • Users Overview
    • Files & Images Overview
    • Custom Fields Overview
    • Workload & Planning Overview
    • Project Templates Overview
    • Workflows Overview
    • Login & Access Overview
    • API Management Overview
LogoLogo
SupportDeveloper ForumLogin
API v1 ReferenceTasks

Edits multiple tasks using the specified operation.

POST
https://api.awork.com/api/v1/tasks/batch/:operation
POST
/api/v1/tasks/batch/:operation
$curl -X POST https://api.awork.com/api/v1/tasks/batch/operation \
> -H "Authorization: Bearer <token>" \
> -H "Content-Type: application/json" \
> -d '{
> "taskIds": [
> "a3f1c9e2-4b7d-4f8a-9c2e-1d2f3b4a5c6d"
> ]
>}'
1{
2 "ok": {
3 "ids": [
4 "a3f1c9e2-4b7d-4f8a-9c2e-1d2f3b4a5c6d"
5 ]
6 },
7 "notFound": {
8 "ids": [
9 "b4e2d3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f"
10 ]
11 },
12 "unauthorized": {
13 "ids": [
14 "c5d6e7f8-9a0b-1c2d-3e4f-5a6b7c8d9e0f"
15 ]
16 },
17 "badRequest": {
18 "ids": [
19 "d6e7f8a9-0b1c-2d3e-4f5a-6b7c8d9e0f1a"
20 ]
21 }
22}
Returns MultiStatus including the list of successful and failed tasks. Supported Operations: <ul>&gt; <li>movetoproject: Moves all tasks to a new project.</li><li>movetotasklist: Moves all tasks to a new task list inside the same project.</li><li>moveundertask: Moves every selected task (and their subtasks) under the specified parent task, validating project boundaries.</li><li>setdates: Sets the due and optionally start date for all tasks.</li><li>adjustdates: Offsets start and due dates by the specified number of days while respecting the user's timezone.</li><li>addtags: Adds a list of tags to all tasks in the list that don't already have the tag.</li><li>delete: Deletes all tasks. Optional including time trackings.</li><li>changetypeofwork: Changes the type of work for a list of tasks. Optionally also for the related timetrackings.</li><li>assignusers: Assigns a list of users to a list of tasks.</li><li>unassignusers: Unassigns a list of users from a list of tasks. If the UserIds are not provided, all users are unassigned.</li><li>setprio: Sets the prio flag for a list of tasks.</li><li>changetaskstatus: Sets the task status for a list of tasks.</li><li>copy: Creates copies of all specified tasks (including subtasks) and reorders them to maintain hierarchy.</li><li>plannerbatch: Multiple operations to a single task. Used in the planner.</li></ul><Check title="Required Permissions" icon="key">The user must have `write` permissions on all tasks as well as related entities modified by the operation.</Check>
Was this page helpful?
Previous

Changes the base type for multiple tasks.

Next
Built with

Returns MultiStatus including the list of successful and failed tasks.

Supported Operations:
    >
  • movetoproject: Moves all tasks to a new project.
  • movetotasklist: Moves all tasks to a new task list inside the same project.
  • moveundertask: Moves every selected task (and their subtasks) under the specified parent task, validating project boundaries.
  • setdates: Sets the due and optionally start date for all tasks.
  • adjustdates: Offsets start and due dates by the specified number of days while respecting the user’s timezone.
  • addtags: Adds a list of tags to all tasks in the list that don’t already have the tag.
  • delete: Deletes all tasks. Optional including time trackings.
  • changetypeofwork: Changes the type of work for a list of tasks. Optionally also for the related timetrackings.
  • assignusers: Assigns a list of users to a list of tasks.
  • unassignusers: Unassigns a list of users from a list of tasks. If the UserIds are not provided, all users are unassigned.
  • setprio: Sets the prio flag for a list of tasks.
  • changetaskstatus: Sets the task status for a list of tasks.
  • copy: Creates copies of all specified tasks (including subtasks) and reorders them to maintain hierarchy.
  • plannerbatch: Multiple operations to a single task. Used in the planner.
Required Permissions
The user must have write permissions on all tasks as well as related entities modified by the operation.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

operationstringRequired
The operation to perform on all tasks.

Request

The model describing the batch task operation.
taskIdslist of stringsRequired
The list of task ids to perform the batch operation on.
newTaskListIdstring or nullOptionalformat: "uuid"
The id of the new task list. Needed if operation is 'movetotasklist'. Optional if operation is 'movetoproject'.
removeFromCurrentListboolean or nullOptional
Whether to remove the task from all its current task lists. Optional for operation 'movetotasklist'.
newProjectIdstring or nullOptionalformat: "uuid"
The id of the new project to move the tasks to. Needed if operation is 'movetoproject'.
newParentTaskIdstring or nullOptionalformat: "uuid"
The id of the task that will be the new parent of the selected tasks. Needed if operation is 'moveundertask'.
taskStatusMappinglist of objects or nullOptional
The task status mapping from old task status to new task status. Optional for operation 'movetoproject'.
newDueDatestring or nullOptionalformat: "date-time"
The new due date for the tasks. Optional for operation 'setdates'. If not set, due and start date will be removed.
newStartDatestring or nullOptionalformat: "date-time"
The new start date for the tasks. Optional for operation 'setdates'. Only gets used when NewDueDate is set.
removeDueDateboolean or nullOptional
Whether to remove the due date. Required for operation 'setdates'.
removeStartDateboolean or nullOptional
Whether to remove the start date. Required for operation 'setdates'.
tagslist of objects or nullOptional
List of tags to add to the tasks. If task already has tag, tag is skipped.
deleteTimeTrackingsboolean or nullOptional
Whether to delete the timetrackings of each task when deleting tasks. Optional for operation 'delete'.
newTypeOfWorkIdstring or nullOptionalformat: "uuid"
The new type of work id for the tasks. Required if operation is 'changetypeofwork'.
changeTimeEntriesboolean or nullOptional
Whether to change the type of work of the timeentries for each task aswell. Optional for operation 'changetypeofwork'.
userIdslist of strings or nullOptional

Depending on the batch operation, it can be either the ids of the user to assign (‘assignusers’, required) or the ids of the user to remove (‘unassignusers’, optional, if not provided unassigns all users).

removeOldAssignmentsboolean or nullOptional
Whether to replace or add user assignments to a task that has users already assigned. Optional for operation 'assignusers'.
isPrioboolean or nullOptional
Whether to set the tasks to be prio or not. Required for operation 'setprio'.
daysOffsetdouble or nullOptional

In case of an adjust date operation, define the number (positive or negative) of days that will be added/subtracted to the task dates. It can be a decimal number (fraction of day)

adjustSuccessorsboolean or nullOptional
If set to true, it will adjust the dates of successor tasks as well.
adjustSubtasksboolean or nullOptional
If set to true, it will adjust the dates of subtasks of selected tasks. If set to false, it will only adjust the dates of the selected tasks.
plannerDataobjectOptional
Data specific to planner batch operations for handling drag and drop in the planner UI.
newTaskStatusIdstring or nullOptionalformat: "uuid"Deprecated

Deprecated for ‘movetoproject’: use TaskStatusMapping instead. The id of the new task status id to change the tasks to. Needed if operation is ‘movetoproject’ or ‘changetaskstatus’.

Response

Multi-Status

okobject
notFoundobject
unauthorizedobject
badRequestobject

Errors

400
Bad Request Error
401
Unauthorized Error