Интеграции
Справочник REST API v1
Все методы, права, форматы запросов и примеры curl из действующей OpenAPI-схемы.
Справочник собирается из действующей схемы приложения. Адрес: https://tracker.18d.ru/api/v1. Все методы требуют Authorization: Bearer TOKEN, кроме скачивания OpenAPI.
Скачать OpenAPI JSON · Как подключиться к API
GET /api/v1/me
Текущий пользователь и его пространство.
Права: Действующий токен.
curl -X GET 'https://tracker.18d.ru/api/v1/me' \
-H "Authorization: Bearer $TRACKER_TOKEN"Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
GET /api/v1/queues
Доступные очереди и эффективные права на них.
Права: Любой участник; только доступные очереди.
curl -X GET 'https://tracker.18d.ru/api/v1/queues' \
-H "Authorization: Bearer $TRACKER_TOKEN"Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
POST /api/v1/queues
Создать очередь со стандартными статусами.
Права: Администратор пространства.
Тело: Queue.
curl -X POST 'https://tracker.18d.ru/api/v1/queues' \
-H "Authorization: Bearer $TRACKER_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"key": "DEV", "name": "Разработка", "description": "Задачи продукта"}'Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
GET /api/v1/statuses
Статусы доступных очередей.
Права: Право чтения соответствующей очереди.
curl -X GET 'https://tracker.18d.ru/api/v1/statuses' \
-H "Authorization: Bearer $TRACKER_TOKEN"Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
GET /api/v1/users
Участники текущего пространства.
Права: Участник пространства.
curl -X GET 'https://tracker.18d.ru/api/v1/users' \
-H "Authorization: Bearer $TRACKER_TOKEN"Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
POST /api/v1/issues/search
Поиск задач по тексту и фильтрам, до 2000 результатов.
Права: Чтение выбранных очередей.
Тело: Filters.
curl -X POST 'https://tracker.18d.ru/api/v1/issues/search' \
-H "Authorization: Bearer $TRACKER_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"queue_ids": [42], "category": "progress", "mine": true}'Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
GET /api/v1/issues/{key}
Задача с комментариями, временем, историей, доступными связями и подзадачами.
Права: Чтение очереди задачи.
curl -X GET 'https://tracker.18d.ru/api/v1/issues/{key}' \
-H "Authorization: Bearer $TRACKER_TOKEN"Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
PATCH /api/v1/issues/{key}
Изменить поля задачи или переместить в статус её очереди.
Права: Read-write или admin очереди.
Тело: IssueUpdate.
curl -X PATCH 'https://tracker.18d.ru/api/v1/issues/{key}' \
-H "Authorization: Bearer $TRACKER_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"version": 3, "status_id": 17, "position": 2048}'Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
POST /api/v1/issues
Создать задачу в указанной очереди.
Права: Read-write или admin очереди.
Тело: IssueCreate.
curl -X POST 'https://tracker.18d.ru/api/v1/issues' \
-H "Authorization: Bearer $TRACKER_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"queue_id": 42, "title": "Подготовить релиз", "priority": "high", "labels": ["release"]}'Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
POST /api/v1/issues/{key}/comments
Добавить комментарий от имени владельца токена.
Права: Read-write или admin очереди.
Тело: Comment.
curl -X POST 'https://tracker.18d.ru/api/v1/issues/{key}/comments' \
-H "Authorization: Bearer $TRACKER_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"body": "Проверка завершена"}'Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
POST /api/v1/issues/{key}/worklogs
Записать от 1 до 1440 целых минут работы.
Права: Read-write или admin очереди.
Тело: Worklog.
curl -X POST 'https://tracker.18d.ru/api/v1/issues/{key}/worklogs' \
-H "Authorization: Bearer $TRACKER_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"minutes": 45, "description": "Проверка релиза"}'Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
POST /api/v1/statistics
Статистика доступных задач: прогресс, время, очереди, исполнители; truncated сообщает об усечении.
Права: Чтение соответствующих очередей.
Тело: Filters.
curl -X POST 'https://tracker.18d.ru/api/v1/statistics' \
-H "Authorization: Bearer $TRACKER_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"queue_ids": [42]}'Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
GET /api/v1/dashboards
Доступные общие дашборды с конфигурацией виджетов.
Права: Участник; дашборды со скрытыми очередями не выдаются.
curl -X GET 'https://tracker.18d.ru/api/v1/dashboards' \
-H "Authorization: Bearer $TRACKER_TOKEN"Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
POST /api/v1/dashboards
Создать дашборд, максимум 30 виджетов.
Права: Участник, только доступные очереди в фильтрах.
Тело: Dashboard.
curl -X POST 'https://tracker.18d.ru/api/v1/dashboards' \
-H "Authorization: Bearer $TRACKER_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"name": "Релиз", "widgets": [{"type": "stats", "title": "Обзор", "filters": {"queue_ids": [42]}}]}'Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
PUT /api/v1/dashboards/{dashboard_id}
Заменить название и конфигурацию собственного дашборда.
Права: Владелец дашборда; доступ к очередям фильтра.
Тело: Dashboard.
curl -X PUT 'https://tracker.18d.ru/api/v1/dashboards/{dashboard_id}' \
-H "Authorization: Bearer $TRACKER_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"name": "Релиз обновлён", "widgets": []}'Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
GET /api/v1/queues/{queue_id}/permissions
Участники, явные/наследуемые роли и история прав очереди.
Права: Admin очереди или пространства.
curl -X GET 'https://tracker.18d.ru/api/v1/queues/{queue_id}/permissions' \
-H "Authorization: Bearer $TRACKER_TOKEN"Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
PUT /api/v1/queues/{queue_id}/permissions/{user_id}
Выдать или изменить роль на очереди. Роль применяется сразу.
Права: Admin очереди или пространства; пользователь того же пространства.
Тело: QueuePermission.
curl -X PUT 'https://tracker.18d.ru/api/v1/queues/{queue_id}/permissions/{user_id}' \
-H "Authorization: Bearer $TRACKER_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"role": "read-only"}'Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
DELETE /api/v1/queues/{queue_id}/permissions/{user_id}
Отозвать явный доступ. Администраторы пространства сохраняют наследуемый admin.
Права: Admin очереди или пространства.
curl -X DELETE 'https://tracker.18d.ru/api/v1/queues/{queue_id}/permissions/{user_id}' \
-H "Authorization: Bearer $TRACKER_TOKEN"Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
PATCH /api/v1/queues/{queue_id}
Изменить название и описание очереди.
Права: Admin очереди или пространства.
Тело: QueueSettings.
curl -X PATCH 'https://tracker.18d.ru/api/v1/queues/{queue_id}' \
-H "Authorization: Bearer $TRACKER_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"name": "Разработка продукта", "description": "Рабочий процесс"}'Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
PATCH /api/v1/users/{user_id}
Изменить имя, роль или активность пользователя. Последний активный admin защищён.
Права: Только администратор пространства.
Тело: UserChanges.
curl -X PATCH 'https://tracker.18d.ru/api/v1/users/{user_id}' \
-H "Authorization: Bearer $TRACKER_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"role": "member"}'Замените параметры в фигурных скобках реальными значениями. Ответ: JSON.
Форматы запросов
Неизвестные поля отклоняются. В PATCH отправляйте только изменяемые поля; отсутствие поля и null различаются. Для удаления исполнителя, родителя или срока можно передать null. Обязательная версия не навязывается, но для защиты от потери изменений передавайте version.
Comment
| Поле | Тип | Обязательно | Ограничения и значение по умолчанию |
|---|---|---|---|
| body | string | Да | {"maxLength": 50000, "minLength": 1} |
Dashboard
| Поле | Тип | Обязательно | Ограничения и значение по умолчанию |
|---|---|---|---|
| name | string | Да | {"maxLength": 500, "minLength": 1} |
| widgets | array | Да | {"maxItems": 30, "items": {"$ref": "#/components/schemas/Widget"}} |
Filters
| Поле | Тип | Обязательно | Ограничения и значение по умолчанию |
|---|---|---|---|
| search | string / null | Нет | {} |
| queue_ids | array | Нет | {"items": {"type": "integer", "exclusiveMinimum": 0.0}} |
| status_ids | array | Нет | {"items": {"type": "integer", "exclusiveMinimum": 0.0}} |
| assignee_ids | array | Нет | {"items": {"type": "integer", "exclusiveMinimum": 0.0}} |
| mine | boolean | Нет | {"default": false} |
| priority | string / null | Нет | {} |
| category | string / null | Нет | {} |
| overdue | boolean | Нет | {"default": false} |
| label | string / null | Нет | {} |
IssueCreate
| Поле | Тип | Обязательно | Ограничения и значение по умолчанию |
|---|---|---|---|
| assignee_id | integer / null | Нет | {} |
| parent_id | integer / null | Нет | {} |
| priority | string | Нет | {"enum": ["low", "normal", "high", "critical"], "default": "normal"} |
| type | string | Нет | {"default": "task"} |
| labels | array | Нет | {"items": {"type": "string"}} |
| due_date | string / null | Нет | {} |
| estimate_minutes | integer | Нет | {"minimum": 0.0, "default": 0} |
| queue_id | integer | Да | {} |
| title | string | Да | {"maxLength": 500, "minLength": 1} |
| description | string | Нет | {"default": ""} |
IssueUpdate
| Поле | Тип | Обязательно | Ограничения и значение по умолчанию |
|---|---|---|---|
| version | integer | Нет | {} |
| title | string | Нет | {"maxLength": 500, "minLength": 1} |
| description | string | Нет | {} |
| status_id | integer | Нет | {} |
| position | number | Нет | {} |
| assignee_id | integer / null | Нет | {} |
| parent_id | integer / null | Нет | {} |
| priority | string | Нет | {"enum": ["low", "normal", "high", "critical"]} |
| type | string | Нет | {} |
| labels | array | Нет | {"items": {"type": "string"}} |
| due_date | string / null | Нет | {} |
| estimate_minutes | integer | Нет | {"minimum": 0.0} |
Queue
| Поле | Тип | Обязательно | Ограничения и значение по умолчанию |
|---|---|---|---|
| key | string | Да | {"maxLength": 12, "minLength": 2} |
| name | string | Да | {"maxLength": 100, "minLength": 1} |
| description | string | Нет | {"default": ""} |
QueuePermission
| Поле | Тип | Обязательно | Ограничения и значение по умолчанию |
|---|---|---|---|
| role | string | Да | {"enum": ["read-only", "read-write", "admin"]} |
QueueSettings
| Поле | Тип | Обязательно | Ограничения и значение по умолчанию |
|---|---|---|---|
| name | string | Нет | {"maxLength": 100, "minLength": 1} |
| description | string | Нет | {} |
UserChanges
| Поле | Тип | Обязательно | Ограничения и значение по умолчанию |
|---|---|---|---|
| name | string | Нет | {"maxLength": 100, "minLength": 1} |
| role | string | Нет | {"enum": ["admin", "member"]} |
| active | boolean | Нет | {} |
Widget
| Поле | Тип | Обязательно | Ограничения и значение по умолчанию |
|---|---|---|---|
| type | string | Да | {"enum": ["stats", "issues", "statuses", "queues", "time", "assignees"]} |
| title | string | Нет | {"default": ""} |
| filters | Filters | Нет | {} |
Worklog
| Поле | Тип | Обязательно | Ограничения и значение по умолчанию |
|---|---|---|---|
| minutes | integer | Да | {"maximum": 1440.0, "minimum": 1.0} |
| description | string | Нет | {"default": ""} |