List boards
Page through the boards you can see, filtered by access level, owner, name, or date.
On this page
A board holds an ordered set of nodes. This returns the boards the credential can see on the account it acts as, newest first.
https://api2.rundiffusion.com/api/v2/boardsWhich boards those are depends on the account. On a personal account it is your own boards, and nothing else. On a team it follows the same rules the app does:
| Access level | Who sees it |
|---|---|
SHARED | everyone on the team |
RESTRICTED | the members listed on it, the owner always among them |
PRIVATE | the owner alone |
A member holding Can manage everyone's generations and boards
(MANAGE_ALL_GENERATIONS) sees every board on the team regardless of level. See
Identity for reading your own permissions.
This listing reads one account at a time: omit team_id for your own boards, or
name a single team.
Request
Headers
AuthorizationstringRequired- Bearer token. This endpoint accepts an OAuth device flow token, a Personal API Access Token, or a Company API Access Token. See Authentication.
Authorization: Bearer eyJhbGciOi…
Query parameters
team_idstringoptional- The team whose boards to read, one per request. Omit it to read your personal account. Part of the account selection rather than a filter, so it behaves identically on every endpoint.
https://api2.rundiffusion.com/api/v2/boards?team_id=Tq8vNc… limitintegeroptional- Boards per page, 1 to 100. Defaults to 24.
limit=50 cursorstringoptional- The next_cursor from a previous response. Keep every other parameter identical between pages: the cursor is a position within one filtered listing, so changing a filter mid-walk returns 400 INVALID_CURSOR rather than a silently different page.
access_levelstringoptional- Return only boards at this access level.
access_level=SHARED owner_user_idstringoptional- Return only boards created by one user. Useful on a team; on a personal account every board is already yours.
owner_user_id=k3PqV9… start_utcstring (ISO 8601)optional- Start of the window, inclusive, in UTC. A board created at exactly this instant is included.
https://api2.rundiffusion.com/api/v2/boards?start_utc=2026-07-01T00:00:00Z end_utcstring (ISO 8601)optional- End of the window, exclusive, in UTC. A board created at exactly this instant is NOT included.
https://api2.rundiffusion.com/api/v2/boards?end_utc=2026-08-01T00:00:00Z
curl -G https://api2.rundiffusion.com/api/v2/boards \
-H "Authorization: Bearer $RUNDIFFUSION_TOKEN" \
--data-urlencode "limit=24"const page = await fetch(
'https://api2.rundiffusion.com/api/v2/boards?limit=24',
{
headers: {
Authorization: `Bearer ${process.env.RUNDIFFUSION_TOKEN}`,
},
},
).then(r => r.json());
for (const board of page.data) {
console.log(board.id, board.title, board.access_level);
}page = requests.get(
f"{BASE}/boards",
headers=HEADERS,
params={"limit": 24},
).json()
for board in page["data"]:
print(board["id"], board["title"], board["access_level"])Response
200 OK with one page of boards.
{
"data": [
{
"id": "Tq8vNc…",
"created_at": "2026-07-30T14:02:11+00:00",
"title": "Hero shots",
"description": "Landing page art",
"access_level": "SHARED",
"owner_user_id": "k3PqV9…",
"team_id": "Kp7mZq…",
"avatar_url": "https://rundiffusion.com/..."
}
],
"next_cursor": "Tq8vNc…",
"has_more": true
}Top level
dataarray- One page of boards, newest first. See Board object below.
next_cursorstring | null- Pass as cursor for the next page. Null on the last page.
has_moreboolean- Whether another page exists. Prefer this over checking whether data is short.
Board object
idstring- Board ID. Send it as board_id on the board endpoints, and as board_id on Library to filter that board's generations. Example: Tq8vNc….
createdstring (ISO 8601)- When it was created, in UTC.
titlestring | null- Board name. Example: Hero shots.
descriptionstring | null- Optional description, null when unset.
access_levelstring- Who can reach the board. Always PRIVATE on a personal account, where there is nobody to share with.
owner_user_idstring- The user who created the board.
team_idstring | null- The team the board belongs to, or null for a personal board.
avatar_urlstring | null- The board's picture, as a png URL you can render directly. Assigned automatically when the board is created, so it is normally set; null only where a board was created without one.
This listing carries the board itself, not its contents. For the nodes on a board, and its members, fetch one board with Get a board.
Errors
Status codes
400INVALID_REQUEST- A parameter failed validation, such as a limit outside 1 to 100 or a malformed datetime.
400INVALID_CURSOR- The cursor does not belong to this listing. It usually means a filter changed between pages, or the board it pointed at is gone. Restart without a cursor.
401TOKEN_INVALID- Missing or invalid credential.
403ACCOUNT_HEADER_INVALID- The selected account is not one this credential may act on.
429RATE_LIMITED- Too many requests. See Rate limits.
