API: Filtering get all kanban buckets of a project by bucket_id

The webhook when a task is created/updated only contains the bucket ID whilst I would like to access the bucket name.

Therefore I’m trying to use a call to the /projects/{id}/buckets API endpoint, filtered by the bucket_id:

https://my-vikunja-host/api/v1/projects/9/buckets?filter_by=bucket_id&filter_value=15&filter_comparator=equals

However, this returns all buckets in project 9. I’m guessing some syntax issue?

On closer inspection, I think my search is “working” - but it doesn’t do what I’m aiming for.

What gets returned is:

  • The bucket I searched for, and all its tasks
  • All other buckets (but not their tasks)

In other words, I’m expecting filter_by in this context to filter the buckets, but it’s actually filtering the tasks (which is a little unexpected on “get all kanban buckets of a project” - but I can see in the code that it makes sense).

Is there another way I can get the answer to my question of “what is the name of the bucket with ID 15”?

Or am I left with the ugly choice of needing to parse the response of “get all kanban buckets of a project” and figure out which one corresponds to ID 15? (I realise it’s not the world’s most difficult challenge, but I’m trying to do this in n8n as an n8n noob, so simple things feel difficult for me right now).

While I’m not entire sure how to cover your use case, I’d recommend you to have a look at the API in the current unstable build. You can see that on the public instance try.vikunja.io, specifically have a look at this part.

Significant amount of work was invested to decouple the views from the projects, making it more flexible and allowing you to even define buckets per view. This however changes the way the current API works, more specifically, buckets are no longer a attached to the project, but rather attached to a view of the project (and there may be more than one Kanban view for example).

Regarding the actual question I think your best choice would be to get all buckets and get the name based on the ID (there is no use case within Vikunja I could think about that requires returning the buckets themselves), but please bear in mind that this part of the API is likely going to change significantly within the next release (presumably).

Hmm. That complicates things.

I’m trying to feed our chat system (Zulip) via webhooks when tasks are created/updated/commented etc.

The kanban buckets are used to indicate task status, and therefore it’s useful to include in the message we post on Zulip.

If I understood correctly, tasks will no longer have a bucket, so the webhook about a task cannot be expected to contain information about which bucket the task is in.

Seems to be quite a substantial paradigm shift, which might unfortunately make Vikunja unsuitable for us.

Maybe if there was a way to discover which bucket a task is in within the scope of a specific known view?

For example:

  • Webhook indicating something happened to task #52
  • API query to find out which bucket (ideally including the bucket’s name!) task #52 sits in for view #3

Does something like that sound potentially within scope for the redesign of this area of Vikunja?

Hi, sorry if I expressed myself incorrectly. There will still be buckets, they’re however not defined per project anymore, but per project view. As long as you’re only using one view for the project, there should be no change, except for the API call.

You could try to filter the task list from the project view by the id of the task. That will still return all buckets, but the only one with a task in them is the one you’re looking for.

Another option would be to use labels to set the task status and then use the filter bucket to create buckets based on the status.