Skip to content

Get bookmarks

GET
/api/browser/bookmarks

Retrieve bookmarks with optional filtering by project and tags.

Queries ChromaDB bookmarks collection with optional project and tag filters, returning bookmarks sorted by creation date (newest first). Includes AI-generated tags, summaries, and suggestions for each bookmark.

Query Parameters:

  • project: Optional filter by project name
  • tag: Optional filter by tag (matches user tags and AI tags)
  • limit: Maximum number of bookmarks to return (default: 50)

Returns:

  • bookmarks: List of bookmark objects
    • id: Unique bookmark identifier
    • url: Bookmarked URL
    • title: Page title
    • project: Project context
    • user_tags: User-defined tags
    • ai_tags: AI-generated tags
    • ai_summary: AI-generated summary
    • suggestions: AI usage suggestions
    • created_at: Bookmark creation timestamp
  • total: Number of bookmarks returned
  • filters: Applied filter values for reference

Raises:

  • HTTPException 500: For unexpected errors during retrieval

Example Response:

{
    "bookmarks": [
        {
            "id": "bookmark_1702905000",
            "url": "https://example.com/vector-db-intro",
            "title": "Introduction to Vector Databases",
            "project": "research",
            "user_tags": ["database", "ai"],
            "ai_tags": ["vector-database", "semantic-search", "embeddings"],
            "ai_summary": "Guide to vector databases for semantic search",
            "suggestions": ["Reference for AI projects"],
            "created_at": "2024-12-18T10:30:00"
        }
    ],
    "total": 1,
    "filters": {
        "project": "research",
        "tag": null,
        "limit": 50
    }
}
project
Any of:
string
tag
Any of:
string
limit
Limit
integer
default: 50

Successful Response

BrowserAutomationResponse

Generic response model for browser automation endpoints.

Flexible response structure for browser automation operations including content processing, bookmark retrieval, and automation status responses. All fields are optional to support different endpoint response formats while maintaining type safety.

Fields:

  • status: Operation status (e.g., “processing”, “success”, “deleted”)
  • message: Human-readable message about the operation
  • url: Related URL (for content processing endpoints)
  • title: Related page title (for content processing endpoints)
  • bookmarks: List of bookmark objects (for bookmark retrieval endpoints)
  • total: Count of returned items (for listing endpoints)
  • filters: Dictionary containing applied filter values (for query endpoints)
  • bookmark_id: Bookmark identifier (for deletion endpoints)

Usage: Used across multiple browser automation endpoints:

  • POST /api/browser/process-content: Returns status, message, url, title
  • GET /api/browser/bookmarks: Returns bookmarks, total, filters
  • DELETE /api/browser/bookmarks/{bookmark_id}: Returns status, bookmark_id

JSON Example (Content Processing):

{
  "status": "processing",
  "message": "Content queued for AI analysis",
  "url": "https://example.com/page",
  "title": "Example Page"
}

JSON Example (Bookmark Listing):

{
  "bookmarks": [
    {
      "id": "bookmark_123",
      "url": "https://example.com",
      "title": "Example Page",
      "project": "research"
    }
  ],
  "total": 1,
  "filters": {"project": "research", "tag": null, "limit": 50}
}

JSON Example (Bookmark Deletion):

{
  "status": "deleted",
  "bookmarkId": "bookmark_123"
}
object
status
Any of:
string
message
Any of:
string
url
Any of:
string
title
Any of:
string
bookmarks
Any of:
Array<object>
BookmarkResponse

Response model for bookmark creation results - COMPLETE BOOKMARK DATA.

Contains the complete bookmark including all user-provided data, AI-generated tags, summary, and usage suggestions for knowledge organization. This is the SINGLE SOURCE OF TRUTH for bookmark structure - frontend consumes this schema.

Fields:

  • bookmark_id: Unique identifier for the bookmark
  • url: Bookmarked URL
  • title: Page title
  • content: Page content
  • category: Bookmark category (research/reference/documentation/inspiration/other)
  • description: User-provided description or notes
  • project: Project context
  • user_tags: User-defined tags
  • ai_tags: AI-generated tags for categorization
  • ai_summary: AI-generated summary of the content
  • suggestions: AI-generated suggestions for usage
  • created_at: ISO 8601 timestamp of bookmark creation

AI Tags: Generated based on content analysis, typically 3-7 tags capturing:

  • Primary topics
  • Technologies mentioned
  • Content type (tutorial, reference, etc.)
  • Difficulty level

AI Summary: 2-3 sentence summary of bookmark content and utility.

Suggestions: Actionable recommendations like:

  • “Use for React performance optimization reference”
  • “Apply patterns to Ishvana frontend components”
  • “Share with team for TypeScript best practices”

Usage: Returned from POST /api/browser/bookmark endpoint.

JSON Example:

{
  "bookmarkId": "bm_abc123",
  "url": "https://example.com/typescript-guide",
  "title": "TypeScript Best Practices",
  "content": "TypeScript is a typed superset...",
  "category": "documentation",
  "description": "Comprehensive guide to TypeScript best practices",
  "project": "ishvana_docs",
  "userTags": ["typescript", "reference"],
  "aiTags": ["typescript", "best-practices", "type-safety", "tutorial"],
  "aiSummary": "Comprehensive guide to TypeScript best practices focusing on "
    "type safety and modern patterns",
  "suggestions": [
    "Apply type narrowing patterns to Ishvana codebase",
    "Use as reference for strict TypeScript configuration",
    "Share with development team"
  ],
  "createdAt": "2024-12-20T10:30:00Z"
}
object
bookmarkId
required
Bookmarkid

Unique bookmark identifier

string
url
required
Url

Bookmarked URL

string
title
required
Title

Page title

string
content
required
Content

Page content

string
category
required
Category

Bookmark category

string
description
required
Description

User-provided description or notes

string
project
required
Project

Project context

string
userTags
Usertags

User-defined tags

Array<string>
aiTags
Aitags

AI-generated tags

Array<string>
aiSummary
Any of:
string
suggestions
Suggestions

Usage suggestions

Array<string>
createdAt
required
Createdat

ISO 8601 bookmark creation timestamp

string
contentAnalysis
Any of:
Array<object>
ContentAnalysisResponse

Response model for content analysis results.

Contains the structured results of AI-powered content analysis including summary, key points, entities, and relevance scoring.

Fields:

  • summary: Concise summary of the content
  • key_points: List of important points extracted
  • entities: List of important entities mentioned
  • project_relevance: Analysis of relevance to the project
  • reading_time: Estimated reading time
  • content_type: Type of content analyzed
  • analysis_timestamp: When the analysis was performed
  • word_count: Number of words in the original content

Summary Format: 2-3 sentence concise summary capturing main points and purpose.

Key Points Format: Bullet-point style extractive summary (5-10 points for long content).

Entities Examples:

  • React, TypeScript, Webpack (technologies)
  • Facebook, Microsoft (organizations)
  • Dan Abramov, Kent C. Dodds (people)

Project Relevance: Explanation of why content is useful for the current project with specific use case recommendations.

Reading Time: Human-readable format: “5 minutes”, “15 minutes”, “1 hour”

Content Types:

  • webpage: General webpage
  • tutorial: Step-by-step tutorial
  • documentation: Technical documentation
  • blog_post: Blog or article
  • research_paper: Academic or research content
  • news: News article

Usage: Returned from POST /api/browser/analyze endpoint.

JSON Example:

{
  "summary": "Guide to optimizing React performance using memoization and virtualization",
  "keyPoints": [
    "Use React.memo for expensive components",
    "Implement virtualization for long lists",
    "Optimize re-renders with useMemo"
  ],
  "entities": ["React", "useMemo", "React.memo", "virtualization"],
  "projectRelevance": "Directly applicable to Ishvana frontend optimization",
  "readingTime": "8 minutes",
  "contentType": "tutorial",
  "analysisTimestamp": "2024-12-20T10:30:00Z",
  "wordCount": 2000
}
object
summary
Any of:
string
keyPoints
Keypoints

Extracted key points

Array<string>
entities
Entities

Important entities

Array<string>
projectRelevance
Any of:
string
readingTime
Any of:
string
contentType
Contenttype

Content type

string
default: webpage
analysisTimestamp
required
Analysistimestamp

Analysis timestamp

string
wordCount
required
Wordcount

Word count

integer
recentAnalysis
Any of:
Array<object>
ContentAnalysisResponse

Response model for content analysis results.

Contains the structured results of AI-powered content analysis including summary, key points, entities, and relevance scoring.

Fields:

  • summary: Concise summary of the content
  • key_points: List of important points extracted
  • entities: List of important entities mentioned
  • project_relevance: Analysis of relevance to the project
  • reading_time: Estimated reading time
  • content_type: Type of content analyzed
  • analysis_timestamp: When the analysis was performed
  • word_count: Number of words in the original content

Summary Format: 2-3 sentence concise summary capturing main points and purpose.

Key Points Format: Bullet-point style extractive summary (5-10 points for long content).

Entities Examples:

  • React, TypeScript, Webpack (technologies)
  • Facebook, Microsoft (organizations)
  • Dan Abramov, Kent C. Dodds (people)

Project Relevance: Explanation of why content is useful for the current project with specific use case recommendations.

Reading Time: Human-readable format: “5 minutes”, “15 minutes”, “1 hour”

Content Types:

  • webpage: General webpage
  • tutorial: Step-by-step tutorial
  • documentation: Technical documentation
  • blog_post: Blog or article
  • research_paper: Academic or research content
  • news: News article

Usage: Returned from POST /api/browser/analyze endpoint.

JSON Example:

{
  "summary": "Guide to optimizing React performance using memoization and virtualization",
  "keyPoints": [
    "Use React.memo for expensive components",
    "Implement virtualization for long lists",
    "Optimize re-renders with useMemo"
  ],
  "entities": ["React", "useMemo", "React.memo", "virtualization"],
  "projectRelevance": "Directly applicable to Ishvana frontend optimization",
  "readingTime": "8 minutes",
  "contentType": "tutorial",
  "analysisTimestamp": "2024-12-20T10:30:00Z",
  "wordCount": 2000
}
object
summary
Any of:
string
keyPoints
Keypoints

Extracted key points

Array<string>
entities
Entities

Important entities

Array<string>
projectRelevance
Any of:
string
readingTime
Any of:
string
contentType
Contenttype

Content type

string
default: webpage
analysisTimestamp
required
Analysistimestamp

Analysis timestamp

string
wordCount
required
Wordcount

Word count

integer
total
Any of:
integer
filters
Any of:
object
key
additional properties
Any of:
string
bookmarkId
Any of:
string
categoryId
Any of:
string

Validation Error

HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object