Documentation
Link Types
Types for link (bookmark) operations with Open Graph metadata
CreateLinkResult
Result of link creation
@dataclass(frozen=True)class CreateLinkResult: id: str # Unique link identifier url: str # The saved URL domain: str # Extracted domain crawl_status: str # pending | processing | completed | failed title: Optional[str] = None # User-provided or OG metadata title tags: Optional[list[str]] = None folder_id: Optional[str] = None og_metadata: Optional[LinkOGMetadata] = None # Open Graph metadata (if crawled) created_at: Optional[datetime] = NoneLinkDetails
Full link details (from get response)
@dataclass(frozen=True)class LinkDetails: id: str url: str domain: str title: Optional[str] = None tags: Optional[list[str]] = None folder_id: Optional[str] = None crawl_status: Optional[str] = None crawl_error: Optional[str] = None crawled_at: Optional[datetime] = None og_metadata: Optional[LinkOGMetadata] = None favicon_url: Optional[str] = None extracted_images: Optional[list[dict[str, Any]]] = None extracted_images_count: Optional[int] = None created_at: Optional[datetime] = None updated_at: Optional[datetime] = None
# Properties is_crawl_complete: bool # crawl_status == "completed" is_crawl_failed: bool # crawl_status == "failed" is_crawling: bool # crawl_status in ("pending", "queued", "processing")LinkItem
Link summary for list responses (lightweight)
@dataclass(frozen=True)class LinkItem: id: str url: str domain: str title: Optional[str] = None tags: Optional[list[str]] = None folder_id: Optional[str] = None crawl_status: Optional[str] = None og_metadata: Optional[LinkOGMetadata] = None favicon_url: Optional[str] = None created_at: Optional[datetime] = NoneLinkList
Paginated list of links
@dataclass(frozen=True)class LinkList: links: list[LinkItem] # Link summaries total_count: int # Total links matching query has_more: bool # More links availableLinkOGMetadata
Open Graph metadata extracted from a link
@dataclass(frozen=True)class LinkOGMetadata: title: Optional[str] = None # og:title or <title> description: Optional[str] = None # og:description or meta description image_url: Optional[str] = None # og:image site_name: Optional[str] = None # og:site_name type: Optional[str] = None # og:type locale: Optional[str] = None # og:localeRecrawlLinkResult
Result of link recrawl operation
@dataclass(frozen=True)class RecrawlLinkResult: id: str # Link identifier status: str # queued | completed | failed message: str = "" og_metadata: Optional[LinkOGMetadata] = None # Updated metadata (if available) next_allowed_recrawl: Optional[datetime] = None # Rate limit reset timeLinkUpdateResult
Result of link update operation
@dataclass(frozen=True)class LinkUpdateResult: id: str title: Optional[str] = None tags: Optional[list[str]] = None updated_at: Optional[datetime] = NoneLinkDeleteResult
Result of link deletion
@dataclass(frozen=True)class LinkDeleteResult: id: str # Deleted link ID deleted_at: Optional[datetime] = None message: str = ""LinkCrawlStatus
Enum for link crawl status
class LinkCrawlStatus(str, Enum): PENDING = "pending" QUEUED = "queued" PROCESSING = "processing" COMPLETED = "completed" FAILED = "failed"