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

# Instagram Integration

> Connect your Instagram account and automatically sync posts into your knowledge base.

The Instagram connector lets you ingest your Instagram content — posts, captions, and images — into a knowledge base so your agent can reference and cite your social media content in conversations.

## How It Works

The Instagram connector is part of Brainstormer's unified content pipeline. It follows the same ContentConnector pattern as all other source types, meaning Instagram content goes through the same processing, embedding, and indexing steps as any uploaded document.

When you connect an Instagram source:

1. Public posts are fetched from the specified profile or post URL
2. Captions are extracted as text content
3. Images are processed through vision text extraction and multimodal embedding
4. Content is chunked, embedded, and stored for vector search
5. Your agent can then retrieve and cite Instagram content in conversations

## Connecting Instagram

<Steps>
  <Step title="Open your knowledge base">
    Navigate to **Knowledge** in the sidebar and select the knowledge base where you want to add Instagram content.
  </Step>

  <Step title="Add an Instagram source">
    Click **Add Source** and select **Instagram** (or paste an Instagram URL directly). You can add:

    * **Profile URL** — Ingests posts from a public Instagram profile
    * **Individual post URL** — Ingests a single specific post
  </Step>

  <Step title="Start ingestion">
    Click **Sync** to begin fetching and processing the Instagram content. The connector will:

    * Fetch post content (captions, images, metadata)
    * Extract text from images using vision models
    * Generate multimodal embeddings for both text and images
    * Store everything in your vector database
  </Step>
</Steps>

<Note>
  The Instagram connector currently works with **public profiles and posts**. Private accounts cannot be ingested. The connector uses a rendering-based approach to access public content.
</Note>

## What Gets Ingested

For each Instagram post, the following content is captured:

| Content           | How It Is Used                                                                      |
| ----------------- | ----------------------------------------------------------------------------------- |
| **Caption text**  | Extracted as primary text content, chunked and embedded                             |
| **Images**        | Processed through vision extraction for text/descriptions, then multimodal embedded |
| **Post metadata** | Stored as source metadata (author, date, engagement metrics)                        |
| **Hashtags**      | Included in text content for searchability                                          |

## Auto-Sync

You can configure Instagram sources for automatic synchronization:

* Set a **sync schedule** to periodically check for new posts
* New content is automatically processed and added to the knowledge base
* Existing content is updated if changes are detected (using content hash comparison)

Auto-sync runs through BullMQ repeatable jobs, so it happens in the background without any manual intervention.

## Image Processing

Instagram is a visual platform, so image processing is a key part of the connector. Each image goes through:

1. **Vision text extraction** — An OpenRouter vision model analyzes the image and extracts any visible text, descriptions, and context
2. **Multimodal embedding** — The image is embedded using Gemini Embedding 2's multimodal capability (3072-dimensional vectors)
3. **Dual search** — The embedded image is searchable through both text queries (via extracted descriptions) and image similarity (via multimodal vectors)

<Tip>
  For creator agents, Instagram integration is particularly powerful. Your agent can reference specific posts, quote captions, and even describe visual content when answering questions about your work.
</Tip>

## Deduplication

The connector uses content hashing (SHA-256) to detect duplicate and updated content:

* Each post gets an `externalId` (the Instagram post ID) and a `contentHash`
* If a post is re-synced and the content hash has not changed, it is skipped
* If the hash changes (caption edited, for example), the content is re-processed

This ensures you do not end up with duplicate entries in your knowledge base even with frequent sync schedules.

## Limitations

* Only **public** Instagram profiles and posts can be ingested
* Instagram API access is subject to rate limits
* Video content from Instagram is processed for its thumbnail and caption; full video transcription support varies by post type
* Engagement metrics (likes, comments) are captured as metadata but not embedded as searchable content

## Other Social Connectors

Brainstormer supports additional social and content platform connectors that work the same way:

| Connector          | Source Types                                                |
| ------------------ | ----------------------------------------------------------- |
| **YouTube**        | Video/channel/playlist URLs (transcript + frame extraction) |
| **Twitter/X**      | Profile/post URLs (tweet text + images)                     |
| **RSS**            | Any RSS/Atom feed (articles, blog posts)                    |
| **Blog platforms** | Substack, Medium, Ghost (full article content)              |
| **Generic URL**    | Any publicly accessible web page                            |

All connectors produce the same normalized content format and go through the same processing pipeline.
