---
title: "Update an existing bucket"
method: POST
path: "/projects/{projectID}/views/{view}/buckets/{bucketID}"
tags: ["project"]
---

# Update an existing bucket

`POST /projects/{projectID}/views/{view}/buckets/{bucketID}`

Updates an existing kanban bucket.

## Path parameters

- `projectID` integer, required
- `bucketID` integer, required
- `view` integer, required

## Request body

- ModelsBucket
  - `count` integer — The number of tasks currently in this bucket
  - `created` string — A timestamp when this bucket was created. You cannot change this value.
  - `created_by` UserUser
    - `bot_owner_id` integer — BotOwnerID is the ID of the owning (human) user if this user is a bot. A non-zero value means this user is a bot and cannot authenticate via password.
    - `created` string — A timestamp when this task was created. You cannot change this value.
    - `email` string — The user's email address.
    - `id` integer — The unique, numeric id of this user.
    - `name` string — The full name of the user.
    - `updated` string — A timestamp when this task was last updated. You cannot change this value.
    - `username` string — The username of the user. Is always unique.
  - `id` integer — The unique, numeric id of this bucket.
  - `limit` integer — How many tasks can be at the same time on this board max
  - `position` number — The position this bucket has when querying all buckets. See the tasks.position property on how to use this.
  - `project_view_id` integer — The project view this bucket belongs to.
  - `tasks` ModelsTask[] — All tasks which belong to this bucket.
    - `assignees` UserUser[] — An array of users who are assigned to this task
      - `bot_owner_id` integer — BotOwnerID is the ID of the owning (human) user if this user is a bot. A non-zero value means this user is a bot and cannot authenticate via password.
      - `created` string — A timestamp when this task was created. You cannot change this value.
      - `email` string — The user's email address.
      - `id` integer — The unique, numeric id of this user.
      - `name` string — The full name of the user.
      - `updated` string — A timestamp when this task was last updated. You cannot change this value.
      - `username` string — The username of the user. Is always unique.
    - `attachments` ModelsTaskAttachment[] — All attachments this task has. This property is read-onlym, you must use the separate endpoint to add attachments to a task.
      - `created` string
      - `created_by` UserUser
        - `bot_owner_id` integer — BotOwnerID is the ID of the owning (human) user if this user is a bot. A non-zero value means this user is a bot and cannot authenticate via password.
        - `created` string — A timestamp when this task was created. You cannot change this value.
        - `email` string — The user's email address.
        - `id` integer — The unique, numeric id of this user.
        - `name` string — The full name of the user.
        - `updated` string — A timestamp when this task was last updated. You cannot change this value.
        - `username` string — The username of the user. Is always unique.
      - `file` FilesFile
        - `created` string
        - `id` integer
        - `mime` string
        - `name` string
        - `size` integer
      - `id` integer
      - `task_id` integer
    - `bucket_id` integer — The bucket id. Will only be populated when the task is accessed via a view with buckets. Can be used to move a task between buckets. In that case, the new bucket must be in the same view as the old one.
    - `buckets` ModelsBucket[] — All buckets across all views this task is part of. Only present when fetching tasks with the `expand` parameter set to `buckets`.
    - `comment_count` integer — Comment count of this task. Only present when fetching tasks with the `expand` parameter set to `comment_count`.
    - `comments` ModelsTaskComment[] — All comments of this task. Only present when fetching tasks with the `expand` parameter set to `comments`.
      - `author` UserUser
        - `bot_owner_id` integer — BotOwnerID is the ID of the owning (human) user if this user is a bot. A non-zero value means this user is a bot and cannot authenticate via password.
        - `created` string — A timestamp when this task was created. You cannot change this value.
        - `email` string — The user's email address.
        - `id` integer — The unique, numeric id of this user.
        - `name` string — The full name of the user.
        - `updated` string — A timestamp when this task was last updated. You cannot change this value.
        - `username` string — The username of the user. Is always unique.
      - `comment` string
      - `created` string
      - `id` integer
      - `reactions` ModelsReactionMap
      - `updated` string
    - `cover_image_attachment_id` integer — If this task has a cover image, the field will return the id of the attachment that is the cover image.
    - `created` string — A timestamp when this task was created. You cannot change this value.
    - `created_by` UserUser
      - `bot_owner_id` integer — BotOwnerID is the ID of the owning (human) user if this user is a bot. A non-zero value means this user is a bot and cannot authenticate via password.
      - `created` string — A timestamp when this task was created. You cannot change this value.
      - `email` string — The user's email address.
      - `id` integer — The unique, numeric id of this user.
      - `name` string — The full name of the user.
      - `updated` string — A timestamp when this task was last updated. You cannot change this value.
      - `username` string — The username of the user. Is always unique.
    - `deleted_at` string — A timestamp when this task was deleted. Soft-deleted tasks are kept for 30 days before they are removed permanently. omitzero keeps the field out of the JSON of regular tasks — it only ever appears on soft-deleted ones (the later trash listing).
    - `description` string — The task description.
    - `done` boolean — Whether a task is done or not.
    - `done_at` string — The time when a task was marked as done. This field is system-controlled and cannot be set via API.
    - `due_date` string — The time when the task is due.
    - `end_date` string — When this task ends.
    - `hex_color` string — The task color in hex
    - `id` integer — The unique, numeric id of this task.
    - `identifier` string — The task identifier, based on the project identifier and the task's index
    - `index` integer — The task index, calculated per project
    - `is_favorite` boolean — True if a task is a favorite task. Favorite tasks show up in a separate "Important" project. This value depends on the user making the call to the api.
    - `is_unread` boolean
    - `labels` ModelsLabel[] — An array of labels which are associated with this task. This property is read-only, you must use the separate endpoint to add labels to a task.
      - `created` string — A timestamp when this label was created. You cannot change this value.
      - `created_by` UserUser
        - `bot_owner_id` integer — BotOwnerID is the ID of the owning (human) user if this user is a bot. A non-zero value means this user is a bot and cannot authenticate via password.
        - `created` string — A timestamp when this task was created. You cannot change this value.
        - `email` string — The user's email address.
        - `id` integer — The unique, numeric id of this user.
        - `name` string — The full name of the user.
        - `updated` string — A timestamp when this task was last updated. You cannot change this value.
        - `username` string — The username of the user. Is always unique.
      - `description` string — The label description.
      - `hex_color` string — The color this label has in hex format.
      - `id` integer — The unique, numeric id of this label.
      - `title` string — The title of the label. You'll see this one on tasks associated with it.
      - `updated` string — A timestamp when this label was last updated. You cannot change this value.
    - `percent_done` number — Determines how far a task is left from being done
    - `position` number — The position of the task - any task project can be sorted as usual by this parameter. When accessing tasks via views with buckets, this is primarily used to sort them based on a range. Positions are always saved per view. They will automatically be set if you request the tasks through a view endpoint, otherwise they will always be 0. To update them, take a look at the Task Position endpoint.
    - `priority` integer — The task priority. Can be anything you want, it is possible to sort by this later.
    - `project_id` integer — The project this task belongs to.
    - `reactions` ModelsReactionMap
    - `related_tasks` ModelsRelatedTaskMap
    - `reminders` ModelsTaskReminder[] — An array of reminders that are associated with this task.
      - `relative_period` integer — A period in seconds relative to another date argument. Negative values mean the reminder triggers before the date. Default: 0, tiggers when RelativeTo is due.
      - `relative_to` 'due_date' | 'start_date' | 'end_date'
      - `reminder` string — The absolute time when the user wants to be reminded of the task.
    - `repeat_after` integer — An amount in seconds this task repeats itself. If this is set, when marking the task as done, it will mark itself as "undone" and then increase all remindes and the due date by its amount.
    - `repeat_mode` 0 | 1 | 2
    - `start_date` string — When this task starts.
    - `subscription` ModelsSubscription
      - `created` string — A timestamp when this subscription was created. You cannot change this value.
      - `entity` integer
      - `entity_id` integer — The id of the entity to subscribe to.
      - `id` integer — The numeric ID of the subscription
    - `time_entries_count` integer — Time entry count of this task. Only present when fetching tasks with the `expand` parameter set to `time_entries_count`.
    - `title` string — The task text. This is what you'll see in the project.
    - `updated` string — A timestamp when this task was last updated. You cannot change this value.
  - `title` string — The title of this bucket.
  - `updated` string — A timestamp when this bucket was last updated. You cannot change this value.

## Response `200`

The created bucket object.

- ModelsBucket
  - `count` integer — The number of tasks currently in this bucket
  - `created` string — A timestamp when this bucket was created. You cannot change this value.
  - `created_by` UserUser
    - `bot_owner_id` integer — BotOwnerID is the ID of the owning (human) user if this user is a bot. A non-zero value means this user is a bot and cannot authenticate via password.
    - `created` string — A timestamp when this task was created. You cannot change this value.
    - `email` string — The user's email address.
    - `id` integer — The unique, numeric id of this user.
    - `name` string — The full name of the user.
    - `updated` string — A timestamp when this task was last updated. You cannot change this value.
    - `username` string — The username of the user. Is always unique.
  - `id` integer — The unique, numeric id of this bucket.
  - `limit` integer — How many tasks can be at the same time on this board max
  - `position` number — The position this bucket has when querying all buckets. See the tasks.position property on how to use this.
  - `project_view_id` integer — The project view this bucket belongs to.
  - `tasks` ModelsTask[] — All tasks which belong to this bucket.
    - `assignees` UserUser[] — An array of users who are assigned to this task
      - `bot_owner_id` integer — BotOwnerID is the ID of the owning (human) user if this user is a bot. A non-zero value means this user is a bot and cannot authenticate via password.
      - `created` string — A timestamp when this task was created. You cannot change this value.
      - `email` string — The user's email address.
      - `id` integer — The unique, numeric id of this user.
      - `name` string — The full name of the user.
      - `updated` string — A timestamp when this task was last updated. You cannot change this value.
      - `username` string — The username of the user. Is always unique.
    - `attachments` ModelsTaskAttachment[] — All attachments this task has. This property is read-onlym, you must use the separate endpoint to add attachments to a task.
      - `created` string
      - `created_by` UserUser
        - `bot_owner_id` integer — BotOwnerID is the ID of the owning (human) user if this user is a bot. A non-zero value means this user is a bot and cannot authenticate via password.
        - `created` string — A timestamp when this task was created. You cannot change this value.
        - `email` string — The user's email address.
        - `id` integer — The unique, numeric id of this user.
        - `name` string — The full name of the user.
        - `updated` string — A timestamp when this task was last updated. You cannot change this value.
        - `username` string — The username of the user. Is always unique.
      - `file` FilesFile
        - `created` string
        - `id` integer
        - `mime` string
        - `name` string
        - `size` integer
      - `id` integer
      - `task_id` integer
    - `bucket_id` integer — The bucket id. Will only be populated when the task is accessed via a view with buckets. Can be used to move a task between buckets. In that case, the new bucket must be in the same view as the old one.
    - `buckets` ModelsBucket[] — All buckets across all views this task is part of. Only present when fetching tasks with the `expand` parameter set to `buckets`.
    - `comment_count` integer — Comment count of this task. Only present when fetching tasks with the `expand` parameter set to `comment_count`.
    - `comments` ModelsTaskComment[] — All comments of this task. Only present when fetching tasks with the `expand` parameter set to `comments`.
      - `author` UserUser
        - `bot_owner_id` integer — BotOwnerID is the ID of the owning (human) user if this user is a bot. A non-zero value means this user is a bot and cannot authenticate via password.
        - `created` string — A timestamp when this task was created. You cannot change this value.
        - `email` string — The user's email address.
        - `id` integer — The unique, numeric id of this user.
        - `name` string — The full name of the user.
        - `updated` string — A timestamp when this task was last updated. You cannot change this value.
        - `username` string — The username of the user. Is always unique.
      - `comment` string
      - `created` string
      - `id` integer
      - `reactions` ModelsReactionMap
      - `updated` string
    - `cover_image_attachment_id` integer — If this task has a cover image, the field will return the id of the attachment that is the cover image.
    - `created` string — A timestamp when this task was created. You cannot change this value.
    - `created_by` UserUser
      - `bot_owner_id` integer — BotOwnerID is the ID of the owning (human) user if this user is a bot. A non-zero value means this user is a bot and cannot authenticate via password.
      - `created` string — A timestamp when this task was created. You cannot change this value.
      - `email` string — The user's email address.
      - `id` integer — The unique, numeric id of this user.
      - `name` string — The full name of the user.
      - `updated` string — A timestamp when this task was last updated. You cannot change this value.
      - `username` string — The username of the user. Is always unique.
    - `deleted_at` string — A timestamp when this task was deleted. Soft-deleted tasks are kept for 30 days before they are removed permanently. omitzero keeps the field out of the JSON of regular tasks — it only ever appears on soft-deleted ones (the later trash listing).
    - `description` string — The task description.
    - `done` boolean — Whether a task is done or not.
    - `done_at` string — The time when a task was marked as done. This field is system-controlled and cannot be set via API.
    - `due_date` string — The time when the task is due.
    - `end_date` string — When this task ends.
    - `hex_color` string — The task color in hex
    - `id` integer — The unique, numeric id of this task.
    - `identifier` string — The task identifier, based on the project identifier and the task's index
    - `index` integer — The task index, calculated per project
    - `is_favorite` boolean — True if a task is a favorite task. Favorite tasks show up in a separate "Important" project. This value depends on the user making the call to the api.
    - `is_unread` boolean
    - `labels` ModelsLabel[] — An array of labels which are associated with this task. This property is read-only, you must use the separate endpoint to add labels to a task.
      - `created` string — A timestamp when this label was created. You cannot change this value.
      - `created_by` UserUser
        - `bot_owner_id` integer — BotOwnerID is the ID of the owning (human) user if this user is a bot. A non-zero value means this user is a bot and cannot authenticate via password.
        - `created` string — A timestamp when this task was created. You cannot change this value.
        - `email` string — The user's email address.
        - `id` integer — The unique, numeric id of this user.
        - `name` string — The full name of the user.
        - `updated` string — A timestamp when this task was last updated. You cannot change this value.
        - `username` string — The username of the user. Is always unique.
      - `description` string — The label description.
      - `hex_color` string — The color this label has in hex format.
      - `id` integer — The unique, numeric id of this label.
      - `title` string — The title of the label. You'll see this one on tasks associated with it.
      - `updated` string — A timestamp when this label was last updated. You cannot change this value.
    - `percent_done` number — Determines how far a task is left from being done
    - `position` number — The position of the task - any task project can be sorted as usual by this parameter. When accessing tasks via views with buckets, this is primarily used to sort them based on a range. Positions are always saved per view. They will automatically be set if you request the tasks through a view endpoint, otherwise they will always be 0. To update them, take a look at the Task Position endpoint.
    - `priority` integer — The task priority. Can be anything you want, it is possible to sort by this later.
    - `project_id` integer — The project this task belongs to.
    - `reactions` ModelsReactionMap
    - `related_tasks` ModelsRelatedTaskMap
    - `reminders` ModelsTaskReminder[] — An array of reminders that are associated with this task.
      - `relative_period` integer — A period in seconds relative to another date argument. Negative values mean the reminder triggers before the date. Default: 0, tiggers when RelativeTo is due.
      - `relative_to` 'due_date' | 'start_date' | 'end_date'
      - `reminder` string — The absolute time when the user wants to be reminded of the task.
    - `repeat_after` integer — An amount in seconds this task repeats itself. If this is set, when marking the task as done, it will mark itself as "undone" and then increase all remindes and the due date by its amount.
    - `repeat_mode` 0 | 1 | 2
    - `start_date` string — When this task starts.
    - `subscription` ModelsSubscription
      - `created` string — A timestamp when this subscription was created. You cannot change this value.
      - `entity` integer
      - `entity_id` integer — The id of the entity to subscribe to.
      - `id` integer — The numeric ID of the subscription
    - `time_entries_count` integer — Time entry count of this task. Only present when fetching tasks with the `expand` parameter set to `time_entries_count`.
    - `title` string — The task text. This is what you'll see in the project.
    - `updated` string — A timestamp when this task was last updated. You cannot change this value.
  - `title` string — The title of this bucket.
  - `updated` string — A timestamp when this bucket was last updated. You cannot change this value.

## Other responses

- `400` — Invalid bucket object provided.
- `404` — The bucket does not exist.
- `500` — Internal error

---

[API](https://skmtc.net/go-vikunja/apis/vikunja-api.md) · [All operations](https://skmtc.net/go-vikunja/apis/vikunja-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/go-vikunja/vikunja-api/versions/feb3f68bbdf1/schema)
