Skip to content

Process browser content

POST
/api/browser/process-content

Acknowledge receipt of browser content for future processing.

Accepts webpage content metadata. Currently returns an acknowledgment; actual AI analysis is performed on-demand via the /analyze endpoint.

BrowserContentRequest

Request model for browser content processing.

Used for submitting webpage content to the browser processing system for AI analysis, storage, and semantic indexing in ChromaDB.

Fields:

  • title: The page title for identification
  • url: The webpage URL for reference
  • content: The main text content of the page
  • meta: Additional page metadata (headers, tags, etc.)
  • project: Project context for organization
  • word_count: Number of words in the content
  • extracted_at: ISO timestamp of content extraction

Metadata Structure:

{
  "author": "John Doe",
  "published": "2024-12-20",
  "tags": ["technical", "tutorial"],
  "description": "Page meta description"
}

Usage: POST /api/browser/process-content for ingesting webpage content.

JSON Example:

{
  "title": "TypeScript Best Practices",
  "url": "https://example.com/typescript-guide",
  "content": "TypeScript is a typed superset of JavaScript...",
  "meta": {"author": "Tech Writer", "tags": ["typescript", "tutorial"]},
  "project": "ishvana_docs",
  "wordCount": 1500,
  "extractedAt": "2024-12-20T10:30:00Z"
}

Integration:

  • Browser Service: Processes and stores content
  • ChromaDB: Indexes content for semantic search
  • AI Analysis: Extracts entities and generates summaries
  • Frontend Extension: Sends content from browser
object
title
required
Title

Page title

string
url
required
Url

Page URL

string format: uri
>= 1 characters <= 2083 characters
content
required
Content

Page text content

string
meta

Page metadata

object
key
additional properties
any
project
Project

Project context

string
default: general
wordCount
Wordcount

Word count

integer
0
extractedAt
required
Extractedat

Extraction timestamp

string

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