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.
Request Body required
Section titled “Request Body required ”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 identificationurl: The webpage URL for referencecontent: The main text content of the pagemeta: Additional page metadata (headers, tags, etc.)project: Project context for organizationword_count: Number of words in the contentextracted_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
Page title
Page URL
Page text content
Page metadata
object
Project context
Word count
Extraction timestamp
Responses
Section titled “ Responses ”Successful Response
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 operationurl: 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
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 bookmarkurl: Bookmarked URLtitle: Page titlecontent: Page contentcategory: Bookmark category (research/reference/documentation/inspiration/other)description: User-provided description or notesproject: Project contextuser_tags: User-defined tagsai_tags: AI-generated tags for categorizationai_summary: AI-generated summary of the contentsuggestions: AI-generated suggestions for usagecreated_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
Unique bookmark identifier
Bookmarked URL
Page title
Page content
Bookmark category
User-provided description or notes
Project context
User-defined tags
AI-generated tags
Usage suggestions
ISO 8601 bookmark creation timestamp
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 contentkey_points: List of important points extractedentities: List of important entities mentionedproject_relevance: Analysis of relevance to the projectreading_time: Estimated reading timecontent_type: Type of content analyzedanalysis_timestamp: When the analysis was performedword_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 webpagetutorial: Step-by-step tutorialdocumentation: Technical documentationblog_post: Blog or articleresearch_paper: Academic or research contentnews: 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
Extracted key points
Important entities
Content type
Analysis timestamp
Word count
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 contentkey_points: List of important points extractedentities: List of important entities mentionedproject_relevance: Analysis of relevance to the projectreading_time: Estimated reading timecontent_type: Type of content analyzedanalysis_timestamp: When the analysis was performedword_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 webpagetutorial: Step-by-step tutorialdocumentation: Technical documentationblog_post: Blog or articleresearch_paper: Academic or research contentnews: 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
Extracted key points
Important entities
Content type
Analysis timestamp
Word count
Validation Error