> ## Documentation Index
> Fetch the complete documentation index at: https://docs.opigno.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bookmarks

> Learn how to manage user bookmarks for learning paths and calendar events using the Opigno Enterprise API

The Opigno bookmark system allows users to save and organize their favorite learning content for quick access. Users can bookmark learning paths and calendar events, creating a personalized collection of important educational resources.

## Supported Entity Types

The bookmark system supports the following entity types:

<CardGroup cols={2}>
  <Card title="Learning Paths" icon="route" iconType="regular" href="/OpignoEnterpriseAPI/LearningPath">
    Bookmark learning paths for easy access to ongoing or planned education.
  </Card>

  <Card title="Calendar Events" icon="calendar" iconType="regular" href="/OpignoEnterpriseAPI/GetCalendarEvents">
    Save important events to your personal bookmark collection.
  </Card>
</CardGroup>

## Authentication Requirements

<Warning>
  The API user context should be associated with the AUTHENTICATED scope in order to access the bookmark functionality.
</Warning>

<Snippet file="authentication-prerequisites.mdx" />

## Available Operations

The bookmark API provides two main operations:

<CardGroup cols={2}>
  <Card title="Toggle Bookmark" icon="toggle-on" href="/OpignoEnterpriseAPI/ToggleBookmark">
    Add or remove bookmarks for learning paths and calendar events
  </Card>

  <Card title="Bookmarked Calendar Events" icon="calendar-check" href="/OpignoEnterpriseAPI/GetBookmarkedCalendarEvents">
    Query bookmarked calendar events with advanced filtering and pagination
  </Card>
</CardGroup>

## Integration Features

### Call to Action (CTA) Integration

The bookmark system automatically integrates with the CTA system to provide interactive bookmark buttons in catalog and entity interfaces. Bookmark CTAs are automatically generated for learning paths and calendar events with action ID `TOGGLE_BOOKMARK`. The button labels dynamically change between "Add to bookmarks" and "Remove from bookmarks" based on the current bookmark status.

<Card title="Learning Path CTA" icon="cursor-click" href="/OpignoEnterpriseAPI/LearningPathCTA">
  See how bookmark CTAs are integrated with learning path actions
</Card>

### Catalog Filtering

The bookmark system extends the standard [**Filtering Catalog Items**](/OpignoEnterpriseAPI/FilteringCatalogItems#bookmark-filter) functionality with a specialized bookmark filter (`filter_bookmark`) that allows authenticated users to filter catalog results to show only bookmarked learning paths.

## Data Structure

### Bookmark Object

Each bookmark contains the following information:

| Field        | Type                      | Description                                                               |
| ------------ | ------------------------- | ------------------------------------------------------------------------- |
| `id`         | `ID!`                     | Unique identifier for the bookmark record                                 |
| `entityId`   | `ID!`                     | The ID of the entity that is bookmarked (learning path or calendar event) |
| `entityType` | `BookmarkableEntityType!` | The type of entity bookmarked. Can be `LEARNING_PATH` or `EVENT`          |

### BookmarkableEntityType Enum

| Value           | Type   | Description                                               |
| --------------- | ------ | --------------------------------------------------------- |
| `LEARNING_PATH` | `Enum` | Represents a learning path entity that can be bookmarked  |
| `EVENT`         | `Enum` | Represents a calendar event entity that can be bookmarked |
