Columns belong to boards and hold cards in an ordered, named list. You create columns through the board endpoint (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/cryguy/hashboard/llms.txt
Use this file to discover all available pages before exploring further.
POST /api/v1/boards/{id}/columns — documented on the Boards page); the routes here cover everything that happens to a column after creation: renaming, reordering, and archiving.
Positions are maintained with fractional-index text keys (lexicographic, Figma-style): a single pos field on the column row is all that needs updating on a reorder, regardless of how many other columns exist. The move endpoint takes neighbor IDs rather than raw positions, so callers never have to generate or read position keys directly.
All write operations require the caller to be in the board creator’s household. Archiving a column is board-creator-only.
PATCH /api/v1/columns/{id}
Rename a column. Thename field is the only mutable property on a column outside of position and archive state.
PATCH /api/v1/columns/{id}
Path Parameters
Column ID.
Request Body
New display name for the column.
Response
Returns the updatedColumn object.
Column UUID.
Parent board ID.
Updated display name.
Fractional-index position key (lexicographic). Reflects the column’s current order among its siblings.
ISO 8601 creation timestamp.
ISO 8601 timestamp when the column was archived, or
null if it is live.POST /api/v1/columns/{id}/move
Reorder a column by placing it between two neighbor columns. The server computes the new fractional-index position from the neighbors’ current positions — you never read or writepos values directly.
POST /api/v1/columns/{id}/move
Path Parameters
ID of the column to move.
Request Body
ID of the column that should be immediately before this one after the move. Pass
null (or omit) to indicate there is no predecessor (i.e. move to the start).ID of the column that should be immediately after this one. Pass
null (or omit) to indicate there is no successor (i.e. move to the end).Response
Returns the updatedColumn object with the new pos value.
Ordering semantics:
prevId and nextId are the IDs of the column’s intended neighbors in the final order — fetch the current column list first to resolve them. Pass both as null (or omit both) to append the column at the end of its board.The two IDs must belong to the same board as the column being moved. Out-of-board or non-existent IDs return 400.POST /api/v1/columns/{id}/archive
Archive a column. Board-creator-only. Archived columns (and any cards inside them) are excluded from the default board view but remain accessible viaGET /api/v1/boards/{boardId}/archived. The column can be restored with the unarchive action below.
POST /api/v1/columns/{id}/archive
Path Parameters
Column ID.
Response
Returns the updatedColumn object with archivedAt set to the current timestamp.
POST /api/v1/columns/{id}/unarchive
Restore an archived column to active status. Board-creator-only. Cards inside the column remain in their individual archived/unarchived state — unarchiving the column does not bulk-unarchive its cards.POST /api/v1/columns/{id}/unarchive
Path Parameters
Column ID.
Response
Returns the updatedColumn object with archivedAt set to null.
Creating columns
Columns are created through the board endpoint, not through a standalonePOST /api/v1/columns route. New columns are always appended at the end; use POST /api/v1/columns/{id}/move immediately after creation if a different position is needed.
Reorder workflow
A typical drag-and-drop reorder involves three steps:Call the move endpoint
null for prevId to move to the first position, or null for nextId to move to the last.