Перейти к содержимому

Фильтрация задач

GET /public/v1/tasks возвращает все задачи в рамках доступа (тот же набор, что и табличный вид проекта в веб-приложении) и сужает выборку query-фильтрами. На этой странице — как фильтры комбинируются и готовые рецепты типовых запросов.

Во всех примерах:

Terminal window
BASE="https://api.bordio.com/public/v1"
AUTH='Authorization: Bearer brd_sk_live_...'
PROJECT="proj_6594a1b2c3d4e5f6a7b8c9d1"
  • Разные параметры → AND. Каждый добавленный параметр сужает результат.
  • Несколько значений в одном параметре → OR. Значения через запятую: priority=high,critical совпадает с любым из двух.
  • Не переданные параметры ничего не ограничивают — без фильтров вернутся все задачи.
Параметр Значения Примечания
priority CSV из lowest, low, medium, high, critical и/или none none = задачи без приоритета
task_status_id CSV из id task_status_… Id берутся из Definitions
state open | closed Группирует статусы по состоянию — не нужно перечислять их поимённо
task_type_id CSV из id task_type_…
assignee_id CSV из id user_… и/или none none = задачи без исполнителя
due_date_from YYYY-MM-DD или ISO-8601 datetime Нижняя граница диапазона дедлайна (включительно)
due_date_to YYYY-MM-DD или ISO-8601 datetime Верхняя граница диапазона дедлайна (включительно)
due_date none Только задачи без дедлайна; несовместим с границами диапазона
tag_id CSV из id tag_… Совпадают задачи, у которых есть любой из тегов

Спец-значение none совпадает с задачами, у которых нет исполнителя:

Terminal window
curl "$BASE/tasks?project_id=$PROJECT&assignee_id=none" -H "$AUTH"

none можно смешивать с id пользователей в одном CSV; внутри параметра значения объединяются по OR:

Terminal window
curl "$BASE/tasks?project_id=$PROJECT&assignee_id=user_6594a1b2c3d4e5f6a7b8c9d1,none" -H "$AUTH"

Приоритет опционален, поэтому priority принимает спец-значение none для задач, где он не задан. Как и любое CSV-значение, оно объединяется с остальными по OR — «нет приоритета или low» выражается одним параметром:

Terminal window
curl "$BASE/tasks?project_id=$PROJECT&priority=none,low" -H "$AUTH"

Открытые задачи с высоким или критичным приоритетом

Заголовок раздела «Открытые задачи с высоким или критичным приоритетом»
Terminal window
curl "$BASE/tasks?project_id=$PROJECT&state=open&priority=high,critical" -H "$AUTH"

state — простейший способ разделить открытую и закрытую работу. Если нужны конкретные статусы («В работе», но не «Новая») — используйте task_status_id с id из эндпоинтов definitions.

Обе границы включительны; date-only значения разворачиваются в начало / конец суток (UTC):

Terminal window
curl "$BASE/tasks?project_id=$PROJECT&due_date_from=2026-07-01&due_date_to=2026-07-31" -H "$AUTH"

Можно передать и одну границу — например, всё с дедлайном от сегодня (due_date_from без второй границы) или «просроченные» — открытые задачи, чей срок уже прошёл:

Terminal window
curl "$BASE/tasks?project_id=$PROJECT&state=open&due_date_to=2026-07-17" -H "$AUTH"

Диапазон никогда не совпадёт с задачей, у которой дедлайна нет, поэтому это отдельный фильтр:

Terminal window
curl "$BASE/tasks?project_id=$PROJECT&due_date=none" -H "$AUTH"
Terminal window
curl "$BASE/tasks?project_id=$PROJECT&tag_id=tag_65dcc9c66f2e4e001ab18859,tag_66446ff2dc01cb59f6cbf7a6" -H "$AUTH"

Открытые, высокоприоритетные, ничьи, с дедлайном в этом месяце:

Terminal window
curl "$BASE/tasks?project_id=$PROJECT&state=open&priority=high&assignee_id=none&due_date_from=2026-07-01&due_date_to=2026-07-31" -H "$AUTH"

Фильтры сочетаются с пагинацией как обычно — limit и cursor применяются к отфильтрованному результату (см. Соглашения).

due_date_from / due_date_to / due_date — почему три параметра?

Заголовок раздела «due_date_from / due_date_to / due_date — почему три параметра?»

Они отвечают на два разных вопроса:

  • due_date_from / due_date_to выбирают задачи, чей дедлайн попадает в диапазон. Используйте одну границу или обе.
  • due_date=none выбирает задачи, у которых дедлайна нет вовсе. Никаким диапазоном «поле пустое» не выразить, поэтому это отдельный параметр, а не магическое значение диапазона.

Поскольку «нет дедлайна» и «дедлайн в диапазоне» взаимоисключающи, сочетание due_date=none с любой границей вернёт 400 validation_error.

  • Некорректное значение (неизвестный приоритет, кривой формат id, не-дата) → 400 validation_error.
  • Корректный id, которому ничего не соответствует (тег из чужого workspace, удалённый статус) → не ошибка: просто не совпадёт ни одна задача, вернётся пустая страница.
  • Исключение — project_id: проект вне доступа вашего ключа → 404 not_found_error.