Skip to main content
Groups let you organize bookmarks into named collections — think folders or boards. Groups can be nested by setting a parentId, so you can build a hierarchy like Engineering → Frontend → React. A bookmark can belong to multiple groups at once. All endpoints require a Bearer token in the Authorization header.
Groups are distinct from tags. Tags are flat labels applied directly to bookmarks; groups are containers that you can nest and assign icons and colors to for richer organization.

GET /api/v1/groups

List all groups for the authenticated user. The response includes each group’s metadata and bookmark count.
array
Array of group objects.

POST /api/v1/groups

Create a new group. Only name is required. Use parentId to nest the group inside an existing one.
string
required
Display name for the group.
string
A short description of what this group contains.
string
A hex color string (e.g. #3B82F6) to visually distinguish the group in the UI.
string
An icon identifier string for the group (e.g. briefcase, code-bracket, star).
string
UUID of an existing group to nest this group under. Omit for a top-level group.
Returns 201 Created with the new group object.

GET /api/v1/groups/:id

Retrieve a single group by its UUID.
string
required
The UUID of the group to retrieve.

PATCH /api/v1/groups/:id

Update a group’s name, description, color, icon, or parent. All body fields are optional — send only what you want to change.
string
required
The UUID of the group to update.
string
New display name for the group.
string
Updated description. Send null to clear it.
string
Updated hex color string. Send null to remove the color.
string
Updated icon identifier. Send null to remove the icon.
string
UUID of a new parent group to reparent this group. Send null to promote it to a top-level group.
Returns 200 OK with the updated group object.

DELETE /api/v1/groups/:id

Delete a group. By default, bookmarks inside the group are not deleted — they remain in your library without a group assignment. Use ?moveBookmarksTo=<uuid> to reassign them to another group atomically before the delete completes.
string
required
The UUID of the group to delete.
string
UUID of a destination group. All bookmarks in the deleted group are moved here before deletion. The destination group must exist and belong to the authenticated user.
Use ?moveBookmarksTo when you’re consolidating groups to avoid leaving bookmarks orphaned. It’s a single atomic operation — either the move and delete both succeed, or neither does.
Returns 204 No Content on success.