---
title: "Update several tasks in one request"
method: POST
path: "/tasks/bulk-update"
tags: ["tasks"]
---

# Update several tasks in one request

`POST /tasks/bulk-update`

## Request

- Base URL: `https://api.onplana.com/api`
- URL: `https://api.onplana.com/api/tasks/bulk-update`
- Auth: one of:
  - HTTP bearer
  - API key in header `Authorization`

Each `data` is exactly what PUT /tasks/{id} takes, applied by the same rules, one task at a time in the order given. There is no transaction across tasks: a task that cannot be updated is reported in its own result and the others still land. At most 500 tasks per request, each at most once.

## Headers

- `X-Organization-Id` string, required

## Request body

- object
  - `updates` object[], required
    - `id` string, required: Task id
    - `data` object, required: Fields to change, as PUT /tasks/{id} takes them

## Response `200`

One result per task, in the order sent. A failed task carries the status and error PUT would have returned for it.

- object
  - `updated` integer
  - `failed` integer
  - `results` object[]
    - `id` string
    - `ok` boolean
    - `status` integer
    - `task` object: The updated task, when ok
    - `error` unknown
    - `code` string

## Other responses

- `400`: Validation error
- `401`: Unauthorized - missing or invalid JWT

---

[API](https://skmtc.dev/onplana/apis/onplana-api.md) · [All operations](https://skmtc.dev/onplana/apis/onplana-api/llms.txt) · [OpenAPI document](https://skmtc.dev/onplana/apis/onplana-api/revisions/c3d6c89e9dc8?raw)
