Trello API list pagination limit change in v1.0: Managing large boards
0 reputation · 29 Nov 2025, 10:03 UTC
0 reputation · 29 Nov 2025, 10:03 UTC
The Trello REST API exposes the /boards/{id}/lists endpoint for retrieving lists belonging to a board. In v1.0 the documented maximum limit value is 1,000, yet many organizations experience boards with far more lists or cards. The API uses cursor‑based pagination via start and before parameters, but the official guidance on how to combine these with large limit values remains ambiguous.
Determine a reliable strategy to retrieve all lists from a board that exceeds the 1,000‑list threshold while respecting rate limits and avoiding timeouts.
limit is 1,000 but practical pagination often uses smaller page sizes.limit=1000 and successive start cursors, or is a smaller limit (e.g., 200) recommended to reduce the risk of timeouts?before cursor in the context of list pagination, especially when lists are frequently added or removed during retrieval?Use the maximum allowed limit=1000 and follow the cursor returned in _links.next (the start or before parameter) until the link disappears. Insert a short pause of about 35 ms between calls to stay well under the 300‑request/10‑second rate limit, and deduplicate results by list ID to guard against occasional duplicates caused by concurrent board changes.
limit=1000 for /boards/{id}/lists._links.next URL that encodes the needed start (or before) token for the next page.Because the endpoint can return up to 1,000 items per call, using the highest limit minimizes the number of round‑trips. The cursor mechanism guarantees that each page starts where the previous one ended, so iterating through _links.next yields the complete set without gaps, assuming the board does not change dramatically during the fetch.
limit=1000 and request GET /boards/{boardId}/lists?limit=1000 with your auth token._links.next field, parse its URL to obtain the next start (or before) value._links.next; the accumulated set now holds all lists on the board.If the board is actively modified (lists added or removed) during the retrieval, the simple deduplication approach may still miss a list that was deleted after it was read or duplicate a list that was added twice. In that case, please confirm whether the board is subject to concurrent changes; if yes, consider re‑fetching the board’s list count via /boards/{id} and comparing it to the unique IDs collected, then retrying any missing pages.
# Example curl loop (bash)
#!/usr/bin/env bash
BOARD_ID="your_board_id"
TOKEN="your_token"
KEY="your_key"
URL="https://api.trello.com/1/boards/${BOARD_ID}/lists"
LIMIT=1000
CURSOR=""
ALL_IDS=()
while true; do
QUERY="${URL}?key=${KEY}&token=${TOKEN}&limit=${LIMIT}"
if [[ -n "${CURSOR}" ]]; then
QUERY+="&start=${CURSOR}"
fi
RESP=$(curl -sS "${QUERY}")
# extract IDs (jq example)
IDS=$(echo "${RESP}" | jq -r '.[].id')
while read -r id; do
ALL_IDS+=("$id")
done <<< "$IDS"
NEXT=$(echo "${RESP}" | jq -r '._links.next // empty')
if [[ -z "${NEXT}" ]]; then break; fi
# parse start cursor from next URL (simplistic)
CURSOR=$(echo "${NEXT}" | sed -n 's/.*start=\([^&]*\).*/\1/p')
sleep 0.035 # ~35 ms
done
printf "Unique lists: %d\n" "${#ALL_IDS[@]}"
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.