Get a board
Read one board with its nodes in display order, and its members.
One board, with the two things a listing leaves out: the nodes on it, in the order they appear, and who it is shared with.
GET
https://api2.rundiffusion.com/api/v2/boards/{board_id}AcceptsOAuth device flowPersonal API Access TokenCompany API Access Token
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…
Path parameters
board_idstringRequired- The board to read, from List boards or from a Library item's board_id.
Tq8vNc…
curl https://api2.rundiffusion.com/api/v2/boards/$BOARD_ID \
-H "Authorization: Bearer $RUNDIFFUSION_TOKEN"const board = await fetch(
`https://api2.rundiffusion.com/api/v2/boards/${boardId}`,
{
headers: {
Authorization: `Bearer ${process.env.RUNDIFFUSION_TOKEN}`,
},
},
).then(r => r.json());
for (const node of board.nodes) {
console.log(node.position.list_view_index, node.title, node.tool_id);
}board = requests.get(
f"{BASE}/boards/{board_id}",
headers=HEADERS,
).json()
for node in board["nodes"]:
print(node["position"]["list_view_index"], node["title"], node["tool_id"])Response
200 OK with the board, its nodes, and its members.
{
"id": "Tq8vNc…",
"created_at": "2026-07-30T14:02:11+00:00",
"title": "Hero shots",
"description": "Landing page art",
"access_level": "RESTRICTED",
"owner_user_id": "k3PqV9…",
"team_id": "Kp7mZq…",
"avatar_url": "https://rundiffusion.com/...",
"nodes": [
{
"id": "Nd4kWs…",
"created_at": "2026-07-30T14:03:02+00:00",
"title": "Flux Dev",
"description": "Text to image",
"tool_id": "Tl9xBv…",
"position": { "list_view_index": 0 }
},
{
"id": "Nd7mQp…",
"created_at": "2026-07-30T14:05:44+00:00",
"title": "Upscale",
"description": null,
"tool_id": "Tl2cRn…",
"position": { "list_view_index": 1 }
}
],
"members": [
{
"user_id": "k3PqV9…",
"email": "sam@example.com",
"created_at": "2026-07-30T14:02:11+00:00"
}
]
}Board object
The board's own fields are the same ones List boards returns, plus two arrays this endpoint adds:
nodesarray- The nodes on the board, already in display order. Empty on a new board. See Node object below.
membersarray- Who the board is shared with. Empty at PRIVATE and SHARED, where membership is not what decides access. See Board member object below.
Node object
idstring- Node ID, unique within the board. Send it as node_id on the node endpoints. Example: Nd4kWs….
createdstring (ISO 8601)- When it was created, in UTC.
titlestring | null- The node's name on this board. Starts as the tool's name and can be renamed per board, so two nodes running the same tool can be told apart.
descriptionstring | null- Optional description, null when unset.
tool_idstring- The tool this node runs. Pass it to Get a tool for the field schema, and to Generate to run it. Example: Tl9xBv….
positionobject- Where the node sits on the board. See Position object below.
Position object
list_view_indexinteger- The node's place in the board's list, starting at 0 and counting up by 1 with no gaps. It always matches the index of the node in the nodes array, so you can rely on either.
Board member object
user_idstring- The member's user ID. Matches uid from Identity.
emailstring | null- The board member's email. Null when this user is no longer on the team the board belongs to.
createdstring (ISO 8601)- When it was created, in UTC.
Errors
Status codes
401TOKEN_INVALID- Missing or invalid credential.
404BOARD_NOT_FOUND- No such board, or not one this credential can see. A board you lack access to is reported the same way as one that does not exist, deliberately: a 403 would confirm it exists, which is what PRIVATE and RESTRICTED are for.
429RATE_LIMITED- Too many requests. See Rate limits.
