API Reference

Projects & Issues API

Agile projects, boards, issues, sprints, and JQL/VQL queries. Auto-generated from the platform OpenAPI schema so it matches the running API.

REST API for this feature — 140 operations across 77 resource paths, auto-generated from the platform's live OpenAPI schema (drf-spectacular).

Base URL https://<your-versus-host>/api · Auth Authorization: Bearer <JWT> (from POST /api/auth/token/) · 📄 Download the OpenAPI spec for Postman/Insomnia/Swagger · see the API overview for pagination, filtering, and errors.

Automation rules

GET /api/agile/automation-rules/

VS-SPEC-AGILE-WORKFLOWS-001 §7.3 — CRUD for event→workflow automation rules.

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedAutomationRuleList

POST /api/agile/automation-rules/

VS-SPEC-AGILE-WORKFLOWS-001 §7.3 — CRUD for event→workflow automation rules.

Request body (application/json): AutomationRuleRequest

Responses: 201 → AutomationRule

GET /api/agile/automation-rules/{id}/

VS-SPEC-AGILE-WORKFLOWS-001 §7.3 — CRUD for event→workflow automation rules.

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this automation rule.

Responses: 200 → AutomationRule

PUT /api/agile/automation-rules/{id}/

VS-SPEC-AGILE-WORKFLOWS-001 §7.3 — CRUD for event→workflow automation rules.

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this automation rule.

Request body (application/json): AutomationRuleRequest

Responses: 200 → AutomationRule

PATCH /api/agile/automation-rules/{id}/

VS-SPEC-AGILE-WORKFLOWS-001 §7.3 — CRUD for event→workflow automation rules.

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this automation rule.

Request body (application/json): PatchedAutomationRuleRequest

Responses: 200 → AutomationRule

DELETE /api/agile/automation-rules/{id}/

VS-SPEC-AGILE-WORKFLOWS-001 §7.3 — CRUD for event→workflow automation rules.

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this automation rule.

Responses: 204


Boards

GET /api/agile/boards/

List boards

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedBoardList

POST /api/agile/boards/

Create board

Request body (application/json): BoardRequest

Responses: 201 → Board

GET /api/agile/boards/{id}/

Retrieve board

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this board.

Responses: 200 → Board

PUT /api/agile/boards/{id}/

Update board

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this board.

Request body (application/json): BoardRequest

Responses: 200 → Board

PATCH /api/agile/boards/{id}/

Update board

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this board.

Request body (application/json): PatchedBoardRequest

Responses: 200 → Board

DELETE /api/agile/boards/{id}/

Delete board

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this board.

Responses: 204

GET /api/agile/boards/{id}/issues/

Return the board's issues grouped into swimlanes -> columns. A

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this board.

Responses: 200 → Board

GET /api/agile/boards/{id}/sprints/

Sprints: board

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this board.

Responses: 200 → Board

POST /api/agile/boards/{id}/sprints/

Sprints: board

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this board.

Request body (application/json): BoardRequest

Responses: 200 → Board


Components

GET /api/agile/components/

List components

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedProjectComponentList

POST /api/agile/components/

Create component

Request body (application/json): ProjectComponentRequest

Responses: 201 → ProjectComponent

GET /api/agile/components/{id}/

Retrieve component

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this project component.

Responses: 200 → ProjectComponent

PUT /api/agile/components/{id}/

Update component

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this project component.

Request body (application/json): ProjectComponentRequest

Responses: 200 → ProjectComponent

PATCH /api/agile/components/{id}/

Update component

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this project component.

Request body (application/json): PatchedProjectComponentRequest

Responses: 200 → ProjectComponent

DELETE /api/agile/components/{id}/

Delete component

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this project component.

Responses: 204


Custom fields

GET /api/agile/custom-fields/

List custom fields

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedCustomFieldDefList

POST /api/agile/custom-fields/

Create custom field

Request body (application/json): CustomFieldDefRequest

Responses: 201 → CustomFieldDef

GET /api/agile/custom-fields/{id}/

Retrieve custom field

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this custom field def.

Responses: 200 → CustomFieldDef

PUT /api/agile/custom-fields/{id}/

Update custom field

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this custom field def.

Request body (application/json): CustomFieldDefRequest

Responses: 200 → CustomFieldDef

PATCH /api/agile/custom-fields/{id}/

Update custom field

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this custom field def.

Request body (application/json): PatchedCustomFieldDefRequest

Responses: 200 → CustomFieldDef

DELETE /api/agile/custom-fields/{id}/

Delete custom field

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this custom field def.

Responses: 204


Dashboards

GET /api/agile/dashboards/

VS-SPEC-DESK-AGILE-DASHBOARDS-001 — Jira-style dashboards whose gadgets are

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedDashboardList

POST /api/agile/dashboards/

VS-SPEC-DESK-AGILE-DASHBOARDS-001 — Jira-style dashboards whose gadgets are

Request body (application/json): DashboardRequest

Responses: 201 → Dashboard

GET /api/agile/dashboards/{id}/

VS-SPEC-DESK-AGILE-DASHBOARDS-001 — Jira-style dashboards whose gadgets are

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this dashboard.

Responses: 200 → Dashboard

PUT /api/agile/dashboards/{id}/

VS-SPEC-DESK-AGILE-DASHBOARDS-001 — Jira-style dashboards whose gadgets are

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this dashboard.

Request body (application/json): DashboardRequest

Responses: 200 → Dashboard

PATCH /api/agile/dashboards/{id}/

VS-SPEC-DESK-AGILE-DASHBOARDS-001 — Jira-style dashboards whose gadgets are

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this dashboard.

Request body (application/json): PatchedDashboardRequest

Responses: 200 → Dashboard

DELETE /api/agile/dashboards/{id}/

VS-SPEC-DESK-AGILE-DASHBOARDS-001 — Jira-style dashboards whose gadgets are

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this dashboard.

Responses: 204

POST /api/agile/dashboards/{id}/delete-gadget/

VS-SPEC-DESK-AGILE-DASHBOARDS-001 — Jira-style dashboards whose gadgets are

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this dashboard.

Request body (application/json): DashboardRequest

Responses: 200 → Dashboard

POST /api/agile/dashboards/{id}/gadgets/

Add a gadget. {kind, title?, config?, position?}

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this dashboard.

Request body (application/json): DashboardRequest

Responses: 200 → Dashboard

GET /api/agile/dashboards/{id}/resolve/

Render every gadget on the dashboard from live data.

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this dashboard.

Responses: 200 → Dashboard

POST /api/agile/dashboards/{id}/update-gadget/

Update a gadget. {gadget_id, title?, config?, position?, order?}

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this dashboard.

Request body (application/json): DashboardRequest

Responses: 200 → Dashboard


Filters

GET /api/agile/filters/

List filters

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedSavedFilterList

POST /api/agile/filters/

Create filter

Request body (application/json): SavedFilterRequest

Responses: 201 → SavedFilter

GET /api/agile/filters/{id}/

Retrieve filter

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this saved filter.

Responses: 200 → SavedFilter

PUT /api/agile/filters/{id}/

Update filter

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this saved filter.

Request body (application/json): SavedFilterRequest

Responses: 200 → SavedFilter

PATCH /api/agile/filters/{id}/

Update filter

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this saved filter.

Request body (application/json): PatchedSavedFilterRequest

Responses: 200 → SavedFilter

DELETE /api/agile/filters/{id}/

Delete filter

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this saved filter.

Responses: 204


Import jira

POST /api/agile/import-jira/

POST a Jira export JSON (REST search shape) to import projects + issues.

Responses: 200


Issue types

GET /api/agile/issue-types/

List issue types

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedIssueTypeList

POST /api/agile/issue-types/

Create issue type

Request body (application/json): IssueTypeRequest

Responses: 201 → IssueType

GET /api/agile/issue-types/{id}/

Retrieve issue type

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this issue type.

Responses: 200 → IssueType

PUT /api/agile/issue-types/{id}/

Update issue type

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this issue type.

Request body (application/json): IssueTypeRequest

Responses: 200 → IssueType

PATCH /api/agile/issue-types/{id}/

Update issue type

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this issue type.

Request body (application/json): PatchedIssueTypeRequest

Responses: 200 → IssueType

DELETE /api/agile/issue-types/{id}/

Delete issue type

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this issue type.

Responses: 204


Issues

GET /api/agile/issues/

List issues

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedIssueListList

POST /api/agile/issues/

Create issue

Request body (application/json): IssueDetailRequest

Responses: 201 → IssueDetail

GET /api/agile/issues/{key}/

Retrieve issue

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 200 → IssueDetail

PUT /api/agile/issues/{key}/

Update issue

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): IssueDetailRequest

Responses: 200 → IssueDetail

PATCH /api/agile/issues/{key}/

Update issue

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): PatchedIssueDetailRequest

Responses: 200 → IssueDetail

DELETE /api/agile/issues/{key}/

Delete issue

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 204

POST /api/agile/issues/{key}/comments/

Comments: issue

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): IssueDetailRequest

Responses: 200 → IssueDetail

POST /api/agile/issues/{key}/custom-field/

Set (or clear) a custom field value on the issue. {field_id, value}

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): IssueDetailRequest

Responses: 200 → IssueDetail

POST /api/agile/issues/{key}/estimate/

Set original/remaining estimate (seconds).

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): IssueDetailRequest

Responses: 200 → IssueDetail

POST /api/agile/issues/{key}/rank/

Rank: issue

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): IssueDetailRequest

Responses: 200 → IssueDetail

POST /api/agile/issues/{key}/schedule/

Set an issue's timeline dates (drag-reschedule on the roadmap).

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): IssueDetailRequest

Responses: 200 → IssueDetail

POST /api/agile/issues/{key}/set_sprint/

Move an issue into a sprint (sprint_id) or back to the backlog (null).

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): IssueDetailRequest

Responses: 200 → IssueDetail

POST /api/agile/issues/{key}/sync_run/

Run→issue callback: read the bound WorkflowRun's status and, on a

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): IssueDetailRequest

Responses: 200 → IssueDetail

POST /api/agile/issues/{key}/transition/

Transition: issue

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): IssueDetailRequest

Responses: 200 → IssueDetail

GET /api/agile/issues/{key}/transitions/

Transitions: issue

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 200 → IssueDetail

GET /api/agile/issues/{key}/worklog/

GET worklogs; POST {seconds, comment} logs work and rolls up time_spent /

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 200 → IssueDetail

POST /api/agile/issues/{key}/worklog/

GET worklogs; POST {seconds, comment} logs work and rolls up time_spent /

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): IssueDetailRequest

Responses: 200 → IssueDetail


Notifications

GET /api/agile/notifications/

The current user's in-app agile notifications.

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedNotificationList

GET /api/agile/notifications/count/

The current user's in-app agile notifications.

Responses: 200 → Notification

POST /api/agile/notifications/read-all/

The current user's in-app agile notifications.

Responses: 200 → Notification

GET /api/agile/notifications/{id}/

The current user's in-app agile notifications.

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this notification.

Responses: 200 → Notification

POST /api/agile/notifications/{id}/read/

The current user's in-app agile notifications.

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this notification.

Responses: 200 → Notification


Plans

GET /api/agile/plans/

Cross-project portfolio plans (Advanced-Roadmaps-lite).

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedPlanList

POST /api/agile/plans/

Cross-project portfolio plans (Advanced-Roadmaps-lite).

Request body (application/json): PlanRequest

Responses: 201 → Plan

GET /api/agile/plans/{id}/

Cross-project portfolio plans (Advanced-Roadmaps-lite).

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this plan.

Responses: 200 → Plan

PUT /api/agile/plans/{id}/

Cross-project portfolio plans (Advanced-Roadmaps-lite).

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this plan.

Request body (application/json): PlanRequest

Responses: 200 → Plan

PATCH /api/agile/plans/{id}/

Cross-project portfolio plans (Advanced-Roadmaps-lite).

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this plan.

Request body (application/json): PatchedPlanRequest

Responses: 200 → Plan

DELETE /api/agile/plans/{id}/

Cross-project portfolio plans (Advanced-Roadmaps-lite).

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this plan.

Responses: 204

GET /api/agile/plans/{id}/capacity/

Cross-project portfolio plans (Advanced-Roadmaps-lite).

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this plan.

Responses: 200 → Plan

GET /api/agile/plans/{id}/timeline/

Cross-project portfolio plans (Advanced-Roadmaps-lite).

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this plan.

Responses: 200 → Plan


Projects

GET /api/agile/projects/

List projects

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedProjectList

POST /api/agile/projects/

Create project

Request body (application/json): ProjectRequest

Responses: 201 → Project

GET /api/agile/projects/{key}/

Retrieve project

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 200 → Project

PUT /api/agile/projects/{key}/

Update project

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): ProjectRequest

Responses: 200 → Project

PATCH /api/agile/projects/{key}/

Update project

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): PatchedProjectRequest

Responses: 200 → Project

DELETE /api/agile/projects/{key}/

Delete project

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 204

GET /api/agile/projects/{key}/backlog/

Backlog: project

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 200 → Project

GET /api/agile/projects/{key}/components/

Components: project

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 200 → Project

POST /api/agile/projects/{key}/components/

Components: project

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): ProjectRequest

Responses: 200 → Project

GET /api/agile/projects/{key}/releases/

Releases: project

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 200 → Project

POST /api/agile/projects/{key}/releases/

Releases: project

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): ProjectRequest

Responses: 200 → Project

GET /api/agile/projects/{key}/reports/{kind}/

Retrieve report

ParameterInRequiredTypeDescription
keypathyesstring
kindpathyesstring

Responses: 200 → Project

GET /api/agile/projects/{key}/settings/

Settings: project

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 200 → Project

PATCH /api/agile/projects/{key}/settings/

Settings: project

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): PatchedProjectRequest

Responses: 200 → Project

GET /api/agile/projects/{key}/shortcuts/

Shortcuts: project

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 200 → Project

POST /api/agile/projects/{key}/shortcuts/

Shortcuts: project

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): ProjectRequest

Responses: 200 → Project

POST /api/agile/projects/{key}/star/

Star: project

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): ProjectRequest

Responses: 200 → Project

GET /api/agile/projects/{key}/summary/

Summary: project

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 200 → Project

GET /api/agile/projects/{key}/timeline/

Timeline: project

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 200 → Project

POST /api/agile/projects/{key}/unstar/

Unstar: project

ParameterInRequiredTypeDescription
keypathyesstring

Request body (application/json): ProjectRequest

Responses: 200 → Project

GET /api/agile/projects/{key}/workflow/

Workflow: project

ParameterInRequiredTypeDescription
keypathyesstring

Responses: 200 → Project


Releases

GET /api/agile/releases/

List releases

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedReleaseList

POST /api/agile/releases/

Create release

Request body (application/json): ReleaseRequest

Responses: 201 → Release

GET /api/agile/releases/{id}/

Retrieve release

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this release.

Responses: 200 → Release

PUT /api/agile/releases/{id}/

Update release

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this release.

Request body (application/json): ReleaseRequest

Responses: 200 → Release

PATCH /api/agile/releases/{id}/

Update release

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this release.

Request body (application/json): PatchedReleaseRequest

Responses: 200 → Release

DELETE /api/agile/releases/{id}/

Delete release

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this release.

Responses: 204

POST /api/agile/releases/{id}/release/

Mark a version released. Warns (does not block) on unresolved issues.

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this release.

Request body (application/json): ReleaseRequest

Responses: 200 → Release


Search

GET /api/agile/search/

POST /agile/search {jql, startAt, maxResults} and GET ?jql= — the

Responses: 200

POST /api/agile/search/

POST /agile/search {jql, startAt, maxResults} and GET ?jql= — the

Responses: 201

POST /api/agile/search/validate/

POST /agile/search {jql, startAt, maxResults} and GET ?jql= — the

Responses: 200


Sprints

GET /api/agile/sprints/

List sprints

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedSprintList

POST /api/agile/sprints/

Create sprint

Request body (application/json): SprintRequest

Responses: 201 → Sprint

GET /api/agile/sprints/{id}/

Retrieve sprint

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this sprint.

Responses: 200 → Sprint

PUT /api/agile/sprints/{id}/

Update sprint

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this sprint.

Request body (application/json): SprintRequest

Responses: 200 → Sprint

PATCH /api/agile/sprints/{id}/

Update sprint

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this sprint.

Request body (application/json): PatchedSprintRequest

Responses: 200 → Sprint

DELETE /api/agile/sprints/{id}/

Delete sprint

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this sprint.

Responses: 204

POST /api/agile/sprints/{id}/complete/

Complete: sprint

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this sprint.

Request body (application/json): SprintRequest

Responses: 200 → Sprint

POST /api/agile/sprints/{id}/issues/

Move issues into (or out of) this sprint. {issue_keys:[...]}

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this sprint.

Request body (application/json): SprintRequest

Responses: 200 → Sprint

POST /api/agile/sprints/{id}/start/

Start: sprint

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this sprint.

Request body (application/json): SprintRequest

Responses: 200 → Sprint


Statuses

GET /api/agile/statuses/

List statuses

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedStatusDefList

GET /api/agile/statuses/{id}/

Retrieve statuse

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this status def.

Responses: 200 → StatusDef


Webhooks

GET /api/agile/webhooks/

List webhooks

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedWebhookList

POST /api/agile/webhooks/

Create webhook

Request body (application/json): WebhookRequest

Responses: 201 → Webhook

GET /api/agile/webhooks/{id}/

Retrieve webhook

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this webhook.

Responses: 200 → Webhook

PUT /api/agile/webhooks/{id}/

Update webhook

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this webhook.

Request body (application/json): WebhookRequest

Responses: 200 → Webhook

PATCH /api/agile/webhooks/{id}/

Update webhook

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this webhook.

Request body (application/json): PatchedWebhookRequest

Responses: 200 → Webhook

DELETE /api/agile/webhooks/{id}/

Delete webhook

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this webhook.

Responses: 204

POST /api/agile/webhooks/{id}/test/

Send a ping payload to the webhook now.

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this webhook.

Request body (application/json): WebhookRequest

Responses: 200 → Webhook


Workflows

GET /api/agile/workflows/

List workflows

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedWorkflowList

POST /api/agile/workflows/

Create workflow

Request body (application/json): WorkflowRequest

Responses: 201 → Workflow

GET /api/agile/workflows/{id}/

Retrieve workflow

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this workflow.

Responses: 200 → Workflow

PUT /api/agile/workflows/{id}/

Update workflow

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this workflow.

Request body (application/json): WorkflowRequest

Responses: 200 → Workflow

PATCH /api/agile/workflows/{id}/

Update workflow

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this workflow.

Request body (application/json): PatchedWorkflowRequest

Responses: 200 → Workflow

DELETE /api/agile/workflows/{id}/

Delete workflow

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this workflow.

Responses: 204

POST /api/agile/workflows/{id}/add_status/

Add a status node to the workflow. {name, category, color?}

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this workflow.

Request body (application/json): WorkflowRequest

Responses: 200 → Workflow

POST /api/agile/workflows/{id}/add_transition/

{name, from_status(id or null=any), to_status(id), versus_workflow_binding?}

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this workflow.

Request body (application/json): WorkflowRequest

Responses: 200 → Workflow

POST /api/agile/workflows/{id}/delete-status/

Delete status: workflow

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this workflow.

Request body (application/json): WorkflowRequest

Responses: 200 → Workflow

POST /api/agile/workflows/{id}/delete-transition/

Delete transition: workflow

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this workflow.

Request body (application/json): WorkflowRequest

Responses: 200 → Workflow

POST /api/agile/workflows/{id}/update-transition/

Update transition: workflow

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this workflow.

Request body (application/json): WorkflowRequest

Responses: 200 → Workflow


Auto-generated from drf-spectacular OpenAPI. Endpoint descriptions come from viewset docstrings/serializers; enriching those improves this page on the next generation.