List endpoints let you group nodes into named, ordered collections. Lists support per-node ratings and integer position values so members can be arranged in any order. Pass a list ID asDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/DrDigett/Babel/llms.txt
Use this file to discover all available pages before exploring further.
?listId=<id> in the graph view URL to restrict the graph to only that list’s nodes — useful for curating reading lists, film selections, or any thematic subset of your library.
GET /api/lists
Retrieve all lists ordered by creation date ascending. Node members are not included in this response; useGET /api/lists/:id to fetch a list with its nodes.
Response
Returns a JSON array ofList objects.
POST /api/lists
Create a new list. List IDs are 4-character lowercase alphanumeric strings (e.g.,ab3x) generated automatically, with a retry loop to guarantee uniqueness. If name is omitted the generated ID is used as the list name.
Request body
Display name for the list. Maximum 200 characters. Whitespace is trimmed. Defaults to the generated ID if omitted.
Optional longer description. Maximum 2000 characters.
Response
Returns201 Created with the created List object.
GET /api/lists/:id
Fetch a single list along with all of its member nodes, ordered by position ascending.Path parameters
The 4-character list ID.
Response
Returns aListWithNodes object: all List fields plus a nodes array. Each element in nodes is a full Node object with two additional list-specific fields:
Zero-based integer index of the node within the list.
Optional integer rating assigned to this node within the list context.
null if no rating has been set.404 if the list does not exist.
PUT /api/lists/:id
Update the name and/or description of an existing list.Path parameters
The 4-character list ID.
Request body
New display name. Maximum 200 characters, trimmed. Cannot be an empty string.
New description. Maximum 2000 characters. Pass
null to clear.Response
Returns the updatedList object, or 404 if the list does not exist.
DELETE /api/lists/:id
Delete a list and all of its membership records. The nodes themselves are not deleted — they remain in the database and graph.Path parameters
The 4-character list ID.
Response
Returns{ "success": true } on success, or 404 if the list does not exist.
POST /api/lists/:id/nodes
Add a node to a list. The node is appended at the end: itsposition is set to the current maximum position in the list plus one (starting from 0 for the first member).
Path parameters
The 4-character list ID.
Request body
UUID of the node to add.
Response
Returns201 Created with the new list-node membership entry. Returns 409 Conflict if the node is already a member of the list. Returns 404 if the list or the node does not exist.
DELETE /api/lists/:id/nodes/:nodeId
Remove a node from a list. The node itself is not deleted from the database — only the list membership is removed.Path parameters
The 4-character list ID.
UUID of the node to remove.
Response
Returns{ "success": true } on success, or 404 if the membership does not exist.
PUT /api/lists/:id/nodes/:nodeId/rating
Set or clear the rating for a specific node within a list. Ratings are scoped to the list — the same node can have different ratings in different lists.Path parameters
The 4-character list ID.
UUID of the node to rate.
Request body
Integer rating to assign. Pass
null to clear an existing rating.Response
Returns{ "success": true } on success, or 404 if the node is not a member of the list.
PUT /api/lists/:id/nodes/reorder
Reorder all nodes in a list by supplying the complete ordered array of node IDs. Each node’sposition is set to its index in the supplied array.
Path parameters
The 4-character list ID.
Request body
Fully ordered array of node UUIDs. The node at index
0 receives position: 0, index 1 receives position: 1, and so on.Response
Returns{ "success": true } on success, or 404 if the list does not exist.
TypeScript interfaces
TheList and ListWithNodes types returned by these endpoints are defined in @babel-plus/shared: