Skip to main content
Instagram is a social media platform for sharing photos, videos, and stories. The Instagram Business API provides access to insights and analytics about your business account’s performance and audience engagement.

Requirements

Before setting up Instagram as a data source, ensure your account meets these requirements:
  • The Instagram account must be a Business account (personal accounts are not supported)
  • The Instagram profile must have at least 100 followers
  • The Instagram profile must be linked to a Facebook page
  • The user connecting the account must have one of these roles on the Facebook page:
    • Owner
    • Administrator
    • Editor
Instagram Limitations:
  1. Media insights (such as views and engagement metrics) are only available for content that has received at least 5 views.
  2. Stories data is only available for 24 hours after posting. If your pipeline runs during this window, the data will be captured and stored in your destination, but new pipelines won’t be able to fetch stories older than 24 hours.
  3. Business Discovery (competitor data) only provides public profile information and post-level metrics (likes, comments). Private insights such as reach, impressions, saves, and follower demographics are not available for competitor accounts.

Configuring Instagram as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Instagram option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

You’ll need to add the following information to connect to Instagram:
  • Facebook Authorization: Complete Facebook authorization with an account that has access to the page you want to get data from.
  • Instagram Page: Select the Instagram Page you’d like to extract data from.
  • Start Date: The earliest date from which records will be synced. Used for the first full sync and when no previous state exists.
  • Lookback Window: The number of days to look in the past for new updates in Media (such as Comments and Likes). What the lookback does is check data from X days ago to ensure it captures all new updates. You can use the default value if you are not sure about it.
    1. (Optional) Competitor Usernames: Add a list of Instagram usernames of competitor Business or Creator accounts you want to monitor. This uses the Instagram Business Discovery API to fetch public profile data and posts from those accounts using your own authentication. The competitor accounts must be public Business or Creator accounts.
Click Next.

2. Select streams

Choose which data streams you want to sync - you can select all streams or pick specific ones that matter most to you.
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will contain the fetched data), and the type of sync.
  • Layer: Choose between the existing layers on your catalog. This is where you will find your new extracted tables once the extraction runs successfully.
  • Folder: A folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: We suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: You can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: Every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
    • Full table: Every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
  • Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Below you’ll find all available data streams from Instagram and their corresponding fields:
Stream for basic account information about your Instagram Business account.
Stream for posts, stories, and reels published on your account.
Stream for media performance metrics. Insights are only available for media with at least 5 views.
Stream for comments on your posts. Comments are extracted as a child stream of Media.
Stream for replies to comments. Replies are extracted as a child stream of Comments.
Daily account-level insights with a 1-day rolling window (insights_rolling_day).
Account-level insights with a 7-day rolling window (insights_rolling_week).
Account-level insights with a 28-day rolling window (insights_rolling_days28).
Lifetime follower demographics broken down by country (follower_demographics_country_lifetime).
Lifetime follower demographics broken down by age range (follower_demographics_age_lifetime).
Lifetime follower demographics broken down by gender (follower_demographics_gender_lifetime).
Lifetime follower demographics broken down by city (follower_demographics_city_lifetime).
Stream that tracks historical absolute follower counts (follower_count_historical).On the first run (no bookmark), this stream reconstructs the last 30 days of follower counts by querying exact daily follows and unfollows from the Instagram Insights API and working backwards from the current total. On subsequent incremental runs, it simply records today’s current follower count as a snapshot, optimizing API usage.
The historical reconstruction is limited to a maximum of 30 days of data due to Instagram API constraints on the insights endpoint. Running regular incremental syncs allows you to build a continuous snapshot history beyond that limit.
Stream for public profile data of competitor Instagram Business/Creator accounts (business_discovery_profiles). Requires competitor_usernames to be configured.This stream uses the Instagram Business Discovery API to fetch publicly available profile information from other Business or Creator accounts, authenticating with your own account.Key Fields:
  • id - Competitor account ID (Primary Key)
  • ig_id - Instagram internal numeric ID
  • username - Competitor account username
  • name - Competitor account display name
Profile Information:
  • biography - Account bio text
  • website - Account website URL
  • profile_picture_url - Profile picture URL
Metrics:
  • follows_count - Number of accounts being followed
  • followers_count - Number of followers
  • media_count - Total number of media posts
Stream for public media posts of competitor Instagram Business/Creator accounts (business_discovery_media). This is a child stream of Business Discovery Profiles. Requires competitor_usernames to be configured.Paginates through competitor media from newest to oldest, stopping when reaching the configured start_date.
Only publicly available metrics are returned for competitor posts. Private insights such as reach, impressions, saves, shares, and follower demographics are not available through the Business Discovery API.
Key Fields:
  • id - Media ID (Primary Key)
  • caption - Post caption text
  • media_type - Type of media (IMAGE, VIDEO, CAROUSEL_ALBUM)
  • media_product_type - Product type (FEED, REELS)
  • timestamp - When the media was posted (Replication Key)
URLs and References:
  • media_url - URL to the media content
  • permalink - Permanent link to the post
Engagement Metrics:
  • comments_count - Number of comments
  • like_count - Number of likes
Additional Information:
  • username - Username of the competitor account

Data Model

The following diagram illustrates the relationships between the core data streams in Instagram. The arrows indicate the join keys that link the different entities.

Use Cases for Data Analysis

This guide outlines valuable business intelligence use cases when consolidating Instagram data, along with ready-to-use SQL queries that you can run on Explorer.

Content Performance Analysis

1. Media Performance Overview

Track the overall performance of your posts, stories, and reels to identify top-performing content. Business Value:
  • Identify which content types drive the most engagement
  • Understand what content resonates best with your audience
  • Optimize your content strategy based on performance data
  • Track reach and engagement trends over time

SQL query

2. Top Performing Content

Identify your best-performing posts based on engagement metrics to replicate successful content strategies. Business Value:
  • Discover content patterns that drive high engagement
  • Identify optimal content formats and topics
  • Inform future content creation decisions
  • Benchmark new content against top performers

SQL query

Audience Engagement Analysis

Track your account’s growth and engagement metrics over time to monitor performance trends. Business Value:
  • Monitor account health and growth trajectory
  • Identify periods of high or low engagement
  • Correlate engagement with content posting patterns
  • Track progress toward growth goals

SQL query

4. Comment Engagement Analysis

Analyze comment activity on your posts to understand audience sentiment and engagement patterns. Business Value:
  • Measure audience engagement depth
  • Identify posts that spark conversations
  • Track comment response rates
  • Monitor community health and sentiment

SQL query

Audience Demographics Analysis

5. Follower Geographic Distribution

Understand where your followers are located to optimize content timing and targeting. Business Value:
  • Identify key markets and geographic audiences
  • Optimize posting times for primary time zones
  • Inform localization and content strategies
  • Support geo-targeted campaigns

SQL query

6. Audience Demographics Summary

Get a complete view of your audience demographics including age, gender, and location. Business Value:
  • Build comprehensive audience personas
  • Align content with audience preferences
  • Support ad targeting decisions
  • Identify growth opportunities in demographics

SQL query

Time-Based Analysis

7. Best Days and Times for Posting

Identify the best days of the week for engagement to optimize your posting schedule. Business Value:
  • Optimize posting schedule for maximum reach
  • Identify peak engagement periods
  • Improve content planning and scheduling
  • Maximize return on content creation efforts

SQL query

Competitor Analysis

8. Competitor Benchmarking

Compare your account’s performance against competitors using Business Discovery data. This requires competitor_usernames to be configured. Business Value:
  • Benchmark engagement rates against industry competitors
  • Identify competitor content strategies that drive high engagement
  • Track competitor follower growth over time
  • Discover gaps and opportunities in your content strategy

SQL query

Implementation Notes

Data Quality Considerations

  • Media insights are only available for content with at least 5 views
  • Stories data is only available for 24 hours after posting - ensure your pipeline runs frequently to capture this data
  • User insights have a maximum lookback of 2 years from the Instagram API
  • Follower demographics require a minimum of 100 followers
  • Historical follower counts are reconstructed up to 30 days initially due to API constraints, but running regular incremental syncs allows you to build a continuous daily snapshot history beyond that limit.

API Limitations

  • The Instagram API has rate limits that may affect extraction times for accounts with large amounts of content
  • The lookback window parameter helps re-fetch updated metrics for recent content
  • Some metrics may not be available for all media types (e.g., Reels-specific metrics only apply to Reels)
  • Business Discovery (competitor data) only works with public Business or Creator accounts. Personal or private accounts cannot be queried
  • Competitor media only includes public engagement metrics (likes and comments). Private insights like reach, impressions, saves, and shares are not available

Best Practices

  • Schedule extractions at least daily to capture Stories data before it expires
  • Use incremental sync for media and comments to efficiently track updates
  • Monitor the reach metric alongside engagement to understand true content performance
  • Consider the 28-day rolling insights for trend analysis over the daily insights for day-to-day fluctuations

Skills for agents

Download Instagram skills file

Instagram connector documentation as plain markdown, for use in AI agent contexts.