Skip to main content

 

  • arrow icon
Planview Customer Success Center

Get Planning Increment Card Counts

GET /io/board/:boardId/planningIncrementCardCount

Get card counts and sizes for planning increments on a board. Returns counts per planning increment plus an unplanned bucket for cards not assigned to any PI.

Query Params

Param Type Usage Default
planningIncrements string Filter to comma-separated planning increment ids all PIs on board
includeEmpty boolean Include PIs with zero cards false
groupBy enumeration Break down counts within each PI by priority, cardType, customIcon, parentCard, assignedTeam, or customField (no grouping)
customFieldId string (numeric) Required when groupBy=customField. Must be a dropdown custom field

Example Requests

Get counts for all planning increments on a board:

curl -X GET \
https://myaccount.leankit.com/io/board/943188457/planningIncrementCardCount \
-H 'Authorization: Bearer <token>'

Include PIs that have no cards:

curl -X GET \
https://myaccount.leankit.com/io/board/943188457/planningIncrementCardCount?includeEmpty=1 \
-H 'Authorization: Bearer <token>'

Filter to specific PIs:

curl -X GET \
https://myaccount.leankit.com/io/board/943188457/planningIncrementCardCount?planningIncrements=1000,1001,1003 \
-H 'Authorization: Bearer <token>'

Group by card type:

curl -X GET \
https://myaccount.leankit.com/io/board/943188457/planningIncrementCardCount?groupBy=cardType \
-H 'Authorization: Bearer <token>'

Group by custom field (must be a choice-type field):

curl -X GET \
https://myaccount.leankit.com/io/board/943188457/planningIncrementCardCount?groupBy=customField&customFieldId=777 \
-H 'Authorization: Bearer <token>'

Example Successful Responses

200 — without groupBy

{
  "planningIncrements": {
    "1000": { "cardCount": 1, "cardSize": "10" },
    "1001": { "cardCount": 2, "cardSize": "11" },
    "1002": { "cardCount": 1, "cardSize": "15" }
  },
  "unplanned": { "cardCount": 1, "cardSize": "20" }
}

200 — groupBy=priority

{
  "planningIncrements": {
    "1000": {
      "cardCount": 1,
      "cardSize": "10",
      "groups": {
        "normal": { "cardCount": 1, "cardSize": "10" }
      }
    },
    "1001": {
      "cardCount": 2,
      "cardSize": "11",
      "groups": {
        "normal": { "cardCount": 1, "cardSize": "10" },
        "high": { "cardCount": 1, "cardSize": "1" }
      }
    }
  },
  "unplanned": {
    "cardCount": 1,
    "cardSize": "20",
    "groups": {
      "low": { "cardCount": 1, "cardSize": "20" }
    }
  }
}

200 — groupBy=cardType (includes groupNames mapping ids to display names)

{
  "planningIncrements": {
    "1000": {
      "cardCount": 1,
      "cardSize": "10",
      "groups": {
        "10": { "cardCount": 1, "cardSize": "10" }
      }
    }
  },
  "unplanned": { "cardCount": 0, "cardSize": "0", "groups": {} },
  "groupNames": { "10": "Feature", "20": "Defect" }
}

200 — groupBy=customIcon or groupBy=parentCard or groupBy=assignedTeam (includes ungrouped for items not matched to any group, and groupNames)

{
  "planningIncrements": {
    "1001": {
      "cardCount": 2,
      "cardSize": "11",
      "groups": {
        "200": {
          "cardCount": 1,
          "cardSize": "1"
        }
      },
      "ungrouped": {
        "cardCount": 1,
        "cardSize": "10"
      }
    }
  },
  "unplanned": {
    "cardCount": 1,
    "cardSize": "20",
    "groups": {},
    "ungrouped": {
      "cardCount": 1,
      "cardSize": "20"
    }
  },
  "groupNames": {
    "200": "Expedite"
  }
}

Error Responses

Status Code Reason
401 Unauthorized Missing or invalid JWT
403 Forbidden Caller lacks boardReader permission on the board
422 Unprocessable Entity groupBy value is not one of the allowed enums, groupBy=customField is missing customFieldId, customFieldId is non-numeric, or the referenced custom field does not exist or is not a dropdown type



Updated 2026-04-16 @ 13:04 PM