API reference

Boards and sprints

Boards, backlogs, sprint planning, sprint reports and velocity.
GET/v1/orgs/:orgId/issues/boards

Boards the caller can see (space narrows to boards showing that space).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Query parameters

  • spacestring

    Up to 64 characters.

curl 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/boards' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  boards: {
    boardId: string
    name: string
    ownerId?: string
    config: {
      type: "scrum" | "kanban"
      spaceIds: string[]
      query?: string
      columns: {
        id: string
        name: string
        statusIds: string[]
        min?: number
        max?: number
      }[]
      swimlanes: "query" | "none" | "parent" | "assignee" | "priority" | "epic"
      swimlaneQueries?: {
        id: string
        name: string
        query: string
      }[]
      quickFilters: {
        id: string
        name: string
        query: string
      }[]
      cardFields: string[]
      estimation: "count" | "storyPoints" | "originalEstimate"
      hideDoneAfterDays?: number
      kanbanBacklog?: boolean
      wipExcludesSubtasks?: boolean
      sharing: {
        org: boolean
        teams: string[]
        users: string[]
      }
    }
    version: number
    createdAt: number
    updatedAt: number
  }[]
}
POST/v1/orgs/:orgId/issues/boards

Creates a board over one or more spaces, with columns from their workflows' statuses.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Request body

  • namestringrequired

    1–80 characters. Trimmed.

  • type"scrum" | "kanban"required
  • spacesstring[]required

    1–20 items. Each up to 64 characters.

  • querystring

    Up to 2,000 characters.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/boards' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Example",
    "type": "scrum",
    "spaces": [
      "example"
    ]
  }'
Send it from this page with your session or a key.

Response 201

{
  board: {
    boardId: string
    name: string
    ownerId?: string
    config: {
      type: "scrum" | "kanban"
      spaceIds: string[]
      query?: string
      columns: {
        id: string
        name: string
        statusIds: string[]
        min?: number
        max?: number
      }[]
      swimlanes: "query" | "none" | "parent" | "assignee" | "priority" | "epic"
      swimlaneQueries?: {
        id: string
        name: string
        query: string
      }[]
      quickFilters: {
        id: string
        name: string
        query: string
      }[]
      cardFields: string[]
      estimation: "count" | "storyPoints" | "originalEstimate"
      hideDoneAfterDays?: number
      kanbanBacklog?: boolean
      wipExcludesSubtasks?: boolean
      sharing: {
        org: boolean
        teams: string[]
        users: string[]
      }
    }
    version: number
    createdAt: number
    updatedAt: number
  }
}
GET/v1/orgs/:orgId/issues/boards/:boardId

A board's configuration.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • boardId

    Board id: a Tasks board (brd_…), or under /leaderboards a Mirage leaderboard (lbd_…).

curl 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/boards/{boardId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  board: {
    boardId: string
    name: string
    ownerId?: string
    config: {
      type: "scrum" | "kanban"
      spaceIds: string[]
      query?: string
      columns: {
        id: string
        name: string
        statusIds: string[]
        min?: number
        max?: number
      }[]
      swimlanes: "query" | "none" | "parent" | "assignee" | "priority" | "epic"
      swimlaneQueries?: {
        id: string
        name: string
        query: string
      }[]
      quickFilters: {
        id: string
        name: string
        query: string
      }[]
      cardFields: string[]
      estimation: "count" | "storyPoints" | "originalEstimate"
      hideDoneAfterDays?: number
      kanbanBacklog?: boolean
      wipExcludesSubtasks?: boolean
      sharing: {
        org: boolean
        teams: string[]
        users: string[]
      }
    }
    version: number
    createdAt: number
    updatedAt: number
  }
}
PATCH/v1/orgs/:orgId/issues/boards/:boardId

Changes a board's name, columns (status mapping, WIP limits), swimlanes, quick filters, card fields and sharing.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • boardId

    Board id: a Tasks board (brd_…), or under /leaderboards a Mirage leaderboard (lbd_…).

Request body

  • namestring

    1–80 characters. Trimmed.

  • configobject
  • config.spaceIdsstring[]

    1–20 items. Each up to 64 characters.

  • config.querystring

    Up to 2,000 characters.

  • config.columnsobject[]

    1–20 items.

  • config.columns[].idstringrequired

    Up to 40 characters.

  • config.columns[].namestringrequired

    1–60 characters. Trimmed.

  • config.columns[].statusIdsstring[]required

    Up to 50 items. Each up to 32 characters.

  • config.columns[].mininteger

    0–999.

  • config.columns[].maxinteger

    0–999.

  • config.swimlanes"none" | "assignee" | "epic" | "parent" | "priority" | "query"
  • config.swimlaneQueriesobject[]

    Up to 20 items.

  • config.swimlaneQueries[].idstringrequired

    Up to 40 characters.

  • config.swimlaneQueries[].namestringrequired

    1–60 characters. Trimmed.

  • config.swimlaneQueries[].querystringrequired

    Up to 2,000 characters.

  • config.quickFiltersobject[]

    Up to 30 items.

  • config.quickFilters[].idstringrequired

    Up to 40 characters.

  • config.quickFilters[].namestringrequired

    1–60 characters. Trimmed.

  • config.quickFilters[].querystringrequired

    Up to 2,000 characters.

  • config.cardFieldsstring[]

    Up to 6 items. Each up to 64 characters.

  • config.estimation"storyPoints" | "originalEstimate" | "count"
  • config.hideDoneAfterDaysinteger

    0–365.

  • config.kanbanBacklogboolean
  • config.wipExcludesSubtasksboolean
  • config.sharingobject
  • config.sharing.orgbooleanrequired
  • config.sharing.teamsstring[]required

    Up to 50 items. Each up to 64 characters.

  • config.sharing.usersstring[]required

    Up to 200 items. Each up to 64 characters.

  • baseVersioninteger

    ≥ 0.

curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/boards/{boardId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Example",
    "config": {
      "spaceIds": [
        "example"
      ],
      "query": "example",
      "columns": [
        {
          "id": "<id>",
          "name": "Example",
          "statusIds": [
            "example"
          ]
        }
      ]
    },
    "baseVersion": 1
  }'
Send it from this page with your session or a key.

Response 200

{
  board: {
    boardId: string
    name: string
    ownerId?: string
    config: {
      type: "scrum" | "kanban"
      spaceIds: string[]
      query?: string
      columns: {
        id: string
        name: string
        statusIds: string[]
        min?: number
        max?: number
      }[]
      swimlanes: "query" | "none" | "parent" | "assignee" | "priority" | "epic"
      swimlaneQueries?: {
        id: string
        name: string
        query: string
      }[]
      quickFilters: {
        id: string
        name: string
        query: string
      }[]
      cardFields: string[]
      estimation: "count" | "storyPoints" | "originalEstimate"
      hideDoneAfterDays?: number
      kanbanBacklog?: boolean
      wipExcludesSubtasks?: boolean
      sharing: {
        org: boolean
        teams: string[]
        users: string[]
      }
    }
    version: number
    createdAt: number
    updatedAt: number
  }
}
DELETE/v1/orgs/:orgId/issues/boards/:boardId

Deletes a board without an active sprint; issues in its future sprints return to the backlog.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • boardId

    Board id: a Tasks board (brd_…), or under /leaderboards a Mirage leaderboard (lbd_…).

curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/boards/{boardId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  boardId: string
}
GET/v1/orgs/:orgId/issues/boards/:boardId/issues

The board's cards: the active sprints' issues (scrum) or the flow (kanban), with quick filters (comma-separated ids).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • boardId

    Board id: a Tasks board (brd_…), or under /leaderboards a Mirage leaderboard (lbd_…).

Query parameters

  • quickFiltersstring

    Up to 400 characters.

  • sprintstring

    Up to 64 characters.

curl 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/boards/{boardId}/issues' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  board: {
    boardId: string
    name: string
    ownerId?: string
    config: {
      type: "scrum" | "kanban"
      spaceIds: string[]
      query?: string
      columns: {
        id: string
        name: string
        statusIds: string[]
        min?: number
        max?: number
      }[]
      swimlanes: "query" | "none" | "parent" | "assignee" | "priority" | "epic"
      swimlaneQueries?: {
        id: string
        name: string
        query: string
      }[]
      quickFilters: {
        id: string
        name: string
        query: string
      }[]
      cardFields: string[]
      estimation: "count" | "storyPoints" | "originalEstimate"
      hideDoneAfterDays?: number
      kanbanBacklog?: boolean
      wipExcludesSubtasks?: boolean
      sharing: {
        org: boolean
        teams: string[]
        users: string[]
      }
    }
    version: number
    createdAt: number
    updatedAt: number
  }
  issues: {
    orgId: string
    issueId: string
    spaceId: string
    number: number
    key: string
    typeId: string
    summary: string
    statusId: string
    statusCategory: "done" | "todo" | "inprogress"
    statusChangedAt?: number
    resolutionId?: string
    resolvedAt?: number
    priorityId?: string
    assigneeId?: string
    reporterId?: string
    creatorId?: string
    labels: string[]
    componentIds: string[]
    fixVersionIds: string[]
    affectsVersionIds: string[]
    dueDate?: string
    startDate?: string
    storyPoints?: number
    originalEstimate?: number
    remainingEstimate?: number
    timeSpent?: number
    environment?: string
    location?: {
      lat: number
      lon: number
      label?: string
    }
    parentId?: string
    sprintId?: string
    closedSprintIds: string[]
    rank: string
    watchers: string[]
    voters: string[]
    securityLevelId?: string
    fields: {
      [key: string]: boolean | null | string | number | string[] | {
        parent: string
        child?: string
      }
    }
    excerpt: string
    statusLog: [string, number][]
    commentCount: number
    attachmentCount: number
    requestTypeId?: string
    channel?: string
    participants: string[]
    requesterEmail?: string
    emailParticipants: string[]
    approvals: {
      id: string
      statusId: string
      approvers: string[]
      needed: "all" | "one"
      decisions: {
        userId: string
        decision: "approved" | "declined"
        at: number
      }[]
      state: "pending" | "approved" | "declined"
      createdAt: number
      decidedAt?: number
    }[]
    satisfaction?: number
    satisfactionComment?: string
    sla: {
      [key: string]: {
        runningSince?: number
        elapsed: number
        paused?: boolean
        stopped?: boolean
        goal?: number
        calendar: "business" | "always"
        breached?: boolean
        startedAt?: number
        stoppedAt?: number
      }
    }
    version: number
    createdAt: number
    updatedAt: number
  }[]
  sprints: {
    sprintId: string
    boardId: string
    name: string
    goal: string
    state: "active" | "closed" | "future"
    startDate?: number
    endDate?: number
    completedAt?: number
    position: number
    data: {
      capacity?: number
      report?: {
        committed: number
        added: number
        removed: number
        completed: number
        incomplete: number
        completedIssueIds: string[]
        incompleteIssueIds: string[]
        carriedTo?: string
      }
    }
    createdAt: number
  }[]
  lanes: {
    [key: string]: string
  }
  parents: {
    [key: string]: {
      issueId: string
      key: string
      summary: string
      typeId: string
      statusId: string
      parentId?: string
    }
  }
  subtasks: {
    [key: string]: {
      total: number
      done: number
    }
  }
  spaces: {
    spaceId: string
    key: string
    name: string
  }[]
}
GET/v1/orgs/:orgId/issues/boards/:boardId/backlog

Active and future sprints with their issues, the backlog and the epics of the board's spaces.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • boardId

    Board id: a Tasks board (brd_…), or under /leaderboards a Mirage leaderboard (lbd_…).

Query parameters

  • quickFiltersstring

    Up to 400 characters.

curl 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/boards/{boardId}/backlog' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  board: {
    boardId: string
    name: string
    ownerId?: string
    config: {
      type: "scrum" | "kanban"
      spaceIds: string[]
      query?: string
      columns: {
        id: string
        name: string
        statusIds: string[]
        min?: number
        max?: number
      }[]
      swimlanes: "query" | "none" | "parent" | "assignee" | "priority" | "epic"
      swimlaneQueries?: {
        id: string
        name: string
        query: string
      }[]
      quickFilters: {
        id: string
        name: string
        query: string
      }[]
      cardFields: string[]
      estimation: "count" | "storyPoints" | "originalEstimate"
      hideDoneAfterDays?: number
      kanbanBacklog?: boolean
      wipExcludesSubtasks?: boolean
      sharing: {
        org: boolean
        teams: string[]
        users: string[]
      }
    }
    version: number
    createdAt: number
    updatedAt: number
  }
  sprints: {
    issueIds: string[]
    sprintId: string
    boardId: string
    name: string
    goal: string
    state: "active" | "closed" | "future"
    startDate?: number
    endDate?: number
    completedAt?: number
    position: number
    data: {
      capacity?: number
      report?: {
        committed: number
        added: number
        removed: number
        completed: number
        incomplete: number
        completedIssueIds: string[]
        incompleteIssueIds: string[]
        carriedTo?: string
      }
    }
    createdAt: number
  }[]
  issues: {
    orgId: string
    issueId: string
    spaceId: string
    number: number
    key: string
    typeId: string
    summary: string
    statusId: string
    statusCategory: "done" | "todo" | "inprogress"
    statusChangedAt?: number
    resolutionId?: string
    resolvedAt?: number
    priorityId?: string
    assigneeId?: string
    reporterId?: string
    creatorId?: string
    labels: string[]
    componentIds: string[]
    fixVersionIds: string[]
    affectsVersionIds: string[]
    dueDate?: string
    startDate?: string
    storyPoints?: number
    originalEstimate?: number
    remainingEstimate?: number
    timeSpent?: number
    environment?: string
    location?: {
      lat: number
      lon: number
      label?: string
    }
    parentId?: string
    sprintId?: string
    closedSprintIds: string[]
    rank: string
    watchers: string[]
    voters: string[]
    securityLevelId?: string
    fields: {
      [key: string]: boolean | null | string | number | string[] | {
        parent: string
        child?: string
      }
    }
    excerpt: string
    statusLog: [string, number][]
    commentCount: number
    attachmentCount: number
    requestTypeId?: string
    channel?: string
    participants: string[]
    requesterEmail?: string
    emailParticipants: string[]
    approvals: {
      id: string
      statusId: string
      approvers: string[]
      needed: "all" | "one"
      decisions: {
        userId: string
        decision: "approved" | "declined"
        at: number
      }[]
      state: "pending" | "approved" | "declined"
      createdAt: number
      decidedAt?: number
    }[]
    satisfaction?: number
    satisfactionComment?: string
    sla: {
      [key: string]: {
        runningSince?: number
        elapsed: number
        paused?: boolean
        stopped?: boolean
        goal?: number
        calendar: "business" | "always"
        breached?: boolean
        startedAt?: number
        stoppedAt?: number
      }
    }
    version: number
    createdAt: number
    updatedAt: number
  }[]
  backlogIds: string[]
  epics: {
    issueId: string
    key: string
    summary: string
    statusCategory: "done" | "todo" | "inprogress"
    progress: {
      total: number
      done: number
      points: number
    }
  }[]
  subtaskCounts: {
    [key: string]: {
      total: number
      done: number
      points: number
    }
  }
}
POST/v1/orgs/:orgId/issues/boards/:boardId/move

Moves a card to a column (through the workflow) and optionally ranks it next to another card. 409 names the fields a transition asks for.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • boardId

    Board id: a Tasks board (brd_…), or under /leaderboards a Mirage leaderboard (lbd_…).

Request body

  • issuestringrequired

    1–64 characters.

  • columnIdstringrequired

    1–40 characters.

  • beforestring

    Up to 64 characters.

  • afterstring

    Up to 64 characters.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/boards/{boardId}/move' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "issue": "example",
    "columnId": "<columnId>"
  }'
Send it from this page with your session or a key.

Response 200

{
  issue: {
    orgId: string
    issueId: string
    spaceId: string
    number: number
    key: string
    typeId: string
    summary: string
    statusId: string
    statusCategory: "done" | "todo" | "inprogress"
    statusChangedAt?: number
    resolutionId?: string
    resolvedAt?: number
    priorityId?: string
    assigneeId?: string
    reporterId?: string
    creatorId?: string
    labels: string[]
    componentIds: string[]
    fixVersionIds: string[]
    affectsVersionIds: string[]
    dueDate?: string
    startDate?: string
    storyPoints?: number
    originalEstimate?: number
    remainingEstimate?: number
    timeSpent?: number
    environment?: string
    location?: {
      lat: number
      lon: number
      label?: string
    }
    parentId?: string
    sprintId?: string
    closedSprintIds: string[]
    rank: string
    watchers: string[]
    voters: string[]
    securityLevelId?: string
    fields: {
      [key: string]: boolean | null | string | number | string[] | {
        parent: string
        child?: string
      }
    }
    excerpt: string
    statusLog: [string, number][]
    commentCount: number
    attachmentCount: number
    requestTypeId?: string
    channel?: string
    participants: string[]
    requesterEmail?: string
    emailParticipants: string[]
    approvals: {
      id: string
      statusId: string
      approvers: string[]
      needed: "all" | "one"
      decisions: {
        userId: string
        decision: "approved" | "declined"
        at: number
      }[]
      state: "pending" | "approved" | "declined"
      createdAt: number
      decidedAt?: number
    }[]
    satisfaction?: number
    satisfactionComment?: string
    sla: {
      [key: string]: {
        runningSince?: number
        elapsed: number
        paused?: boolean
        stopped?: boolean
        goal?: number
        calendar: "business" | "always"
        breached?: boolean
        startedAt?: number
        stoppedAt?: number
      }
    }
    version: number
    createdAt: number
    updatedAt: number
  }
}
GET/v1/orgs/:orgId/issues/boards/:boardId/velocity

Committed and completed estimates of the last closed sprints.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • boardId

    Board id: a Tasks board (brd_…), or under /leaderboards a Mirage leaderboard (lbd_…).

Query parameters

  • countinteger

    1–30. Coerced from a string.

curl 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/boards/{boardId}/velocity' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  board: {
    boardId: string
    name: string
    estimation: "count" | "storyPoints" | "originalEstimate"
  }
  sprints: {
    sprintId: string
    name: string
    committed: number
    completed: number
  }[]
  average: number
}
GET/v1/orgs/:orgId/issues/sprints

Sprints of the boards the caller can see: active first, then future, then closed (newest first).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Query parameters

  • spacestring

    Up to 64 characters.

  • boardstring

    Up to 64 characters.

  • state"future" | "active" | "closed"
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/sprints' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  sprints: {
    sprintId: string
    boardId: string
    name: string
    goal: string
    state: "active" | "closed" | "future"
    startDate?: number
    endDate?: number
    completedAt?: number
    position: number
    data: {
      capacity?: number
      report?: {
        committed: number
        added: number
        removed: number
        completed: number
        incomplete: number
        completedIssueIds: string[]
        incompleteIssueIds: string[]
        carriedTo?: string
      }
    }
    createdAt: number
  }[]
}
POST/v1/orgs/:orgId/issues/sprints

Creates a future sprint on a scrum board.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Request body

  • boardIdstringrequired

    1–64 characters.

  • namestring

    Up to 80 characters.

  • goalstring

    Up to 1,000 characters.

  • startDateinteger
  • endDateinteger
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/sprints' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "boardId": "<boardId>"
  }'
Send it from this page with your session or a key.

Response 201

{
  sprint: {
    sprintId: string
    boardId: string
    name: string
    goal: string
    state: "active" | "closed" | "future"
    startDate?: number
    endDate?: number
    completedAt?: number
    position: number
    data: {
      capacity?: number
      report?: {
        committed: number
        added: number
        removed: number
        completed: number
        incomplete: number
        completedIssueIds: string[]
        incompleteIssueIds: string[]
        carriedTo?: string
      }
    }
    createdAt: number
  }
}
POST/v1/orgs/:orgId/issues/sprints/move

Puts issues into a sprint (sprint: null for the backlog), optionally ranked before or after another issue.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Request body

  • issuesstring[]required

    1–200 items. Each up to 64 characters.

  • sprintstringrequiredor null

    Up to 64 characters.

  • beforestring

    Up to 64 characters.

  • afterstring

    Up to 64 characters.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/sprints/move' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "issues": [
      "example"
    ],
    "sprint": "example"
  }'
Send it from this page with your session or a key.

Response 200

{
  issues: {
    issueId: string
    key: string
    sprintId?: string
    rank: string
  }[]
}
PATCH/v1/orgs/:orgId/issues/sprints/:sprintId

Changes a sprint's name, goal, dates, order or capacity.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • sprintId

    Sprint id (spr_…).

Request body

  • namestring

    Up to 80 characters.

  • goalstring

    Up to 1,000 characters.

  • startDateintegeror null
  • endDateintegeror null
  • positioninteger

    ≥ 0.

  • capacitynumberor null

    0–100000.

curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/sprints/{sprintId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Example",
    "goal": "example",
    "startDate": 1
  }'
Send it from this page with your session or a key.

Response 200

{
  sprint: {
    sprintId: string
    boardId: string
    name: string
    goal: string
    state: "active" | "closed" | "future"
    startDate?: number
    endDate?: number
    completedAt?: number
    position: number
    data: {
      capacity?: number
      report?: {
        committed: number
        added: number
        removed: number
        completed: number
        incomplete: number
        completedIssueIds: string[]
        incompleteIssueIds: string[]
        carriedTo?: string
      }
    }
    createdAt: number
  }
}
POST/v1/orgs/:orgId/issues/sprints/:sprintId/start

Starts a future sprint; its issues become the committed scope.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • sprintId

    Sprint id (spr_…).

Request body

  • namestring

    Up to 80 characters.

  • goalstring

    Up to 1,000 characters.

  • startDateinteger
  • endDateintegerrequired
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/sprints/{sprintId}/start' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "endDate": 1
  }'
Send it from this page with your session or a key.

Response 200

{
  sprint: {
    sprintId: string
    boardId: string
    name: string
    goal: string
    state: "active" | "closed" | "future"
    startDate?: number
    endDate?: number
    completedAt?: number
    position: number
    data: {
      capacity?: number
      report?: {
        committed: number
        added: number
        removed: number
        completed: number
        incomplete: number
        completedIssueIds: string[]
        incompleteIssueIds: string[]
        carriedTo?: string
      }
    }
    createdAt: number
  }
  issues: number
}
POST/v1/orgs/:orgId/issues/sprints/:sprintId/complete

Completes an active sprint; open issues move to moveTo (a sprint id, new or backlog).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • sprintId

    Sprint id (spr_…).

Request body

  • moveTostringrequired

    1–64 characters.

curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/sprints/{sprintId}/complete' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "moveTo": "example"
  }'
Send it from this page with your session or a key.

Response 200

{
  sprint: {
    sprintId: string
    boardId: string
    name: string
    goal: string
    state: "active" | "closed" | "future"
    startDate?: number
    endDate?: number
    completedAt?: number
    position: number
    data: {
      capacity?: number
      report?: {
        committed: number
        added: number
        removed: number
        completed: number
        incomplete: number
        completedIssueIds: string[]
        incompleteIssueIds: string[]
        carriedTo?: string
      }
    }
    createdAt: number
  }
  completed: number
  carried: number
  movedTo: string
}
GET/v1/orgs/:orgId/issues/sprints/:sprintId/report

Burndown, scope changes and outcome of a sprint.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • sprintId

    Sprint id (spr_…).

curl 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/sprints/{sprintId}/report' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  sprint: {
    sprintId: string
    boardId: string
    name: string
    goal: string
    state: "active" | "closed" | "future"
    startDate?: number
    endDate?: number
    completedAt?: number
    position: number
    data: {
      capacity?: number
      report?: {
        committed: number
        added: number
        removed: number
        completed: number
        incomplete: number
        completedIssueIds: string[]
        incompleteIssueIds: string[]
        carriedTo?: string
      }
    }
    createdAt: number
  }
  start: number
  end: number
  completedAt?: number
  estimation: "count" | "storyPoints" | "originalEstimate"
  burndown: {
    at: number
    remaining: number
    scope: number
    done: number
  }[]
  summary: {
    committed: number
    added: number
    removed: number
    completed: number
    incomplete: number
    completedIssueIds: string[]
    incompleteIssueIds: string[]
  }
  committedIssueIds: string[]
  issues: {
    orgId: string
    issueId: string
    spaceId: string
    number: number
    key: string
    typeId: string
    summary: string
    statusId: string
    statusCategory: "done" | "todo" | "inprogress"
    statusChangedAt?: number
    resolutionId?: string
    resolvedAt?: number
    priorityId?: string
    assigneeId?: string
    reporterId?: string
    creatorId?: string
    labels: string[]
    componentIds: string[]
    fixVersionIds: string[]
    affectsVersionIds: string[]
    dueDate?: string
    startDate?: string
    storyPoints?: number
    originalEstimate?: number
    remainingEstimate?: number
    timeSpent?: number
    environment?: string
    location?: {
      lat: number
      lon: number
      label?: string
    }
    parentId?: string
    sprintId?: string
    closedSprintIds: string[]
    rank: string
    watchers: string[]
    voters: string[]
    securityLevelId?: string
    fields: {
      [key: string]: boolean | null | string | number | string[] | {
        parent: string
        child?: string
      }
    }
    excerpt: string
    statusLog: [string, number][]
    commentCount: number
    attachmentCount: number
    requestTypeId?: string
    channel?: string
    participants: string[]
    requesterEmail?: string
    emailParticipants: string[]
    approvals: {
      id: string
      statusId: string
      approvers: string[]
      needed: "all" | "one"
      decisions: {
        userId: string
        decision: "approved" | "declined"
        at: number
      }[]
      state: "pending" | "approved" | "declined"
      createdAt: number
      decidedAt?: number
    }[]
    satisfaction?: number
    satisfactionComment?: string
    sla: {
      [key: string]: {
        runningSince?: number
        elapsed: number
        paused?: boolean
        stopped?: boolean
        goal?: number
        calendar: "business" | "always"
        breached?: boolean
        startedAt?: number
        stoppedAt?: number
      }
    }
    version: number
    createdAt: number
    updatedAt: number
  }[]
}
DELETE/v1/orgs/:orgId/issues/sprints/:sprintId

Deletes a future sprint; its issues return to the backlog.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • sprintId

    Sprint id (spr_…).

curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/issues/sprints/{sprintId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  sprintId: string
}