Skip to content

Reorder board nodes

Set the display order of every node on a board in one atomic write.

On this page

Set the order of a board's nodes. You send the whole order, not one node's new place, and the board is rewritten in a single write.

PUThttps://api2.rundiffusion.com/api/v2/boards/{board_id}/nodes/position
AcceptsOAuth device flowPersonal API Access TokenCompany API Access Token

Needs edit access to the board, described under Who can edit a board.

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 reorder.Tq8vNc…

Body

node_idsarrayRequired
Every node ID on the board, in the order you want them. The list must be complete and contain no duplicates: anything else is a 409, described below.["Nd7mQp…", "Nd4kWs…"]

Read the board, move the IDs, send them back:

curl -X PUT https://api2.rundiffusion.com/api/v2/boards/$BOARD_ID/nodes/position \
  -H "Authorization: Bearer $RUNDIFFUSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"node_ids": ["Nd7mQp…", "Nd4kWs…"]}'

Response

200 OK with every node in its new order, each carrying its new position.list_view_index. The array is the board, so you can render from it without refetching.

json
[
  {
    "id": "Nd7mQp…",
    "created_at": "2026-07-30T14:05:44+00:00",
    "title": "Upscale",
    "description": null,
    "tool_id": "Tl2cRn…",
    "position": { "list_view_index": 0 }
  },
  {
    "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": 1 }
  }
]

Why the whole list

Sending one node's new index would look simpler and would be unsafe. An index only means something against a particular set of nodes, so if somebody adds or removes a node between your read and your write, "move this to index 3" lands somewhere you did not intend, and nothing detects it.

The full list makes that impossible to miss. It has to match the board exactly, so if the board changed under you the request is refused rather than applied to a board you have not seen:

Every node is rewritten on each call, so the order is always dense and 0-based afterwards, whatever state it was in before.

Errors

Status codes

400INVALID_REQUEST
node_ids missing or empty.
401TOKEN_INVALID
Missing or invalid credential.
403PERMISSION_DENIED
You can see the board but may not change what is on it.
404BOARD_NOT_FOUND
No such board, or not one this credential can see.
409BOARD_CHANGED
node_ids is not exactly the board's current nodes. Refetch the board and retry with the new list.
429RATE_LIMITED
Too many requests. See Rate limits.

View as Markdown