response = self.client.feeds.add_bookmark(
activity_id,
user_id=self.test_user_id,
new_folder=AddFolderRequest(name="test-bookmarks1"),
)Bookmarks
Overview
The API includes built-in support for bookmarking activities. Here's a quick example of how to use the bookmark API.
Adding Bookmarks
Removing Bookmarks
bookmark_data = bookmark_response.data
folder_id = bookmark_data.bookmark.folder.id
response = self.client.feeds.update_bookmark(
activity_id, folder_id=folder_id, user_id=self.test_user_id
)Querying Bookmarks
response = self.client.feeds.query_bookmarks(
limit=10, filter={"user_id": self.test_user_id}
)Bookmarks Queryable Built-In Fields
| name | type | description | supported operations | example |
|---|---|---|---|---|
user_id | string or list of strings | The ID of the user who owns the bookmark | $in, $eq | { user_id: { $eq: 'user_123' } } |
activity_id | string or list of strings | The ID of the activity that was bookmarked | $in, $eq | { activity_id: { $eq: 'activity_123' } } |
folder_id | string or list of strings | The ID of the folder containing the bookmark | $eq, $in, $exists | { folder_id: { $exists: true } } |
created_at | string, must be formatted as an RFC3339 timestamp | The time the bookmark was created | $eq, $gt, $gte, $lt, $lte | { created_at: { $gte: '2023-12-04T09:30:20.45Z' } } |
updated_at | string, must be formatted as an RFC3339 timestamp | The time the bookmark was last updated | $eq, $gt, $gte, $lt, $lte | { updated_at: { $gte: '2023-12-04T09:30:20.45Z' } } |
Querying Bookmark Folders
response = self.client.feeds.query_bookmarks(
limit=10, filter={"user_id": self.test_user_id}
)Bookmark Folders Queryable Built-In Fields
| name | type | description | supported operations | example |
|---|---|---|---|---|
user_id | string or list of strings | The ID of the user who owns the folder | $in, $eq | { user_id: { $eq: 'user_123' } } |
folder_name | string or list of strings | The name of the bookmark folder | $eq, $in, $contains | { folder_name: { $contains: 'work' } } |
created_at | string, must be formatted as an RFC3339 timestamp | The time the folder was created | $eq, $gt, $gte, $lt, $lte | { created_at: { $gte: '2023-12-04T09:30:20.45Z' } } |
updated_at | string, must be formatted as an RFC3339 timestamp | The time the folder was last updated | $eq, $gt, $gte, $lt, $lte | { updated_at: { $gte: '2023-12-04T09:30:20.45Z' } } |
Managing Bookmark Folders
Update bookmark folder
The endpoint performs a partial update: only the fields you include in the request are changed, and each of those fields is completely overwritten.
Updating a bookmark folder sends feeds.bookmark_folder.updated event to the clients of the user who owns the folder. There are no default client-side SDK handlers for this event, but you can add a custom handler if your UI needs to be updated.
Delete bookmark folder
Use the delete bookmark folder endpoint to remove a folder by ID. All bookmarks in that folder are removed.
Deleting a bookmark folder sends feeds.bookmark_folder.deleted event to the clients of the user who owns the folder. There are no default client-side SDK handlers for this event, but you can add a custom handler if your UI needs to be updated.
# Add a bookmark with a new folder
add_response = self.client.feeds.add_bookmark(
activity_id,
user_id=self.test_user_id,
new_folder=AddFolderRequest(
name="Breakfast recipes",
custom={"icon": "🍳"},
),
)
folder_id = add_response.data.bookmark.folder.id
# Update the folder
update_response = self.client.feeds.update_bookmark_folder(
folder_id,
name="Sweet Breakfast Recipes",
custom={"icon": "🥞"},
)
# Delete the folder (and all bookmarks in it)
self.client.feeds.delete_bookmark_folder(update_response.data.bookmark_folder.id)