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
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:- Complete Facebook authorization with an account that has access to the page you want to get data from.
- Select the Instagram Page you’d like to extract data from.
- Define a date to be the starting point of the data retrival.
- The lookback window parameter allows you to define the 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 default value if you are not sure about it.
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 a name for each table (which will contain the fetched data) and the type of sync.- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix 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.
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 determine when to execute a 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.Streams and Fields
Below you’ll find all available data streams from Instagram and their corresponding fields:User Details
User Details
Stream for basic account information about your Instagram Business account.Key Fields:
id- Account ID (Primary Key)ig_id- Instagram internal numeric IDusername- Account usernamename- Account display name
biography- Account bio textwebsite- Account website URLprofile_picture_url- Profile picture URL
follows_count- Number of accounts being followedfollowers_count- Number of followersmedia_count- Total number of media posts
Media
Media
Stream for posts, stories, and reels published on your account.Key Fields:
id- Media ID (Primary Key)ig_id- Instagram internal IDcaption- Post caption textmedia_type- Type of media (IMAGE, VIDEO, CAROUSEL_ALBUM)media_product_type- Product type (FEED, STORY, REELS)timestamp- When the media was posted (Replication Key)
media_url- URL to the media contentpermalink- Permanent link to the postthumbnail_url- Thumbnail image URL (for videos)shortcode- Short code for the media
comments_count- Number of commentslike_count- Number of likes
is_comment_enabled- Whether comments are enabledis_shared_to_feed- Whether shared to feed (for Reels)username- Username who postedowner- Owner object containing:id- Owner account ID
boost_eligibility_info- Boost eligibility object:eligible_to_boost- Whether the post can be boosted
Media Insights
Media Insights
Stream for media performance metrics. Insights are only available for media with at least 5 views.Key Fields:
media_id- Media ID (Primary Key)media_type- Type of media (IMAGE, VIDEO, CAROUSEL_ALBUM)media_product_type- Product type (FEED, STORY, REELS)timestamp- When the media was posted (Replication Key)
comments- Number of commentslikes- Number of likesshares- Number of sharessaved- Number of savestotal_interactions- Total engagement countreplies- Number of replies (Stories)
reach- Number of unique accounts that saw the postviews- Number of viewsfollows- Number of new follows from this mediaprofile_visits- Profile visits from this media
ig_reels_avg_watch_time- Average watch time in millisecondsig_reels_video_view_total_time- Total view time in milliseconds
Comments
Comments
Comment Replies
Comment Replies
Stream for replies to comments. Replies are extracted as a child stream of Comments.Key Fields:
id- Reply ID (Primary Key)parent_comment_id- ID of the parent commenttext- Reply text contenttimestamp- When the reply was posted
like_count- Number of likes on the replyhidden- Whether the reply is hidden
User Insights (Rolling Day)
User Insights (Rolling Day)
Daily account-level insights with a 1-day rolling window (
insights_rolling_day).Key Fields:date- Date of the metrics (Primary Key, Replication Key)
reach- Number of unique accounts reachedtotal_interactions- Total engagement countaccounts_engaged- Number of accounts that engagedlikes- Number of likes receivedshares- Number of sharesreplies- Number of replies
follows_and_unfollows- Net follow/unfollow activityprofile_links_taps- Profile link clickswebsite_clicks- Website clicksprofile_views- Profile views
User Insights (Rolling Week)
User Insights (Rolling Week)
Account-level insights with a 7-day rolling window (
insights_rolling_week).Key Fields:date- Date of the metrics (Primary Key, Replication Key)
reach,total_interactions,accounts_engaged,likes,shares,repliesfollows_and_unfollows,profile_links_taps,website_clicks,profile_views
User Insights (Rolling 28 Days)
User Insights (Rolling 28 Days)
Account-level insights with a 28-day rolling window (
insights_rolling_days28).Key Fields:date- Date of the metrics (Primary Key, Replication Key)
reach,total_interactions,accounts_engaged,likes,shares,repliesfollows_and_unfollows,profile_links_taps,website_clicks,profile_views
Follower Demographics - Country
Follower Demographics - Country
Lifetime follower demographics broken down by country (
follower_demographics_country_lifetime).Key Fields:dimension_value- Country code (e.g., “US”, “BR”, “GB”) (Primary Key)value- Number of followers from this country
Follower Demographics - Age
Follower Demographics - Age
Lifetime follower demographics broken down by age range (
follower_demographics_age_lifetime).Key Fields:dimension_value- Age range (e.g., “18-24”, “25-34”, “35-44”) (Primary Key)value- Number of followers in this age range
Follower Demographics - Gender
Follower Demographics - Gender
Lifetime follower demographics broken down by gender (
follower_demographics_gender_lifetime).Key Fields:dimension_value- Gender (e.g., “M”, “F”, “U”) (Primary Key)value- Number of followers of this gender
Follower Demographics - City
Follower Demographics - City
Lifetime follower demographics broken down by city (
follower_demographics_city_lifetime).Key Fields:dimension_value- City name (e.g., “São Paulo, Brazil”) (Primary Key)value- Number of followers from this city
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
SQL query
- AWS
- GCP
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
SQL query
- AWS
- GCP
Audience Engagement Analysis
3. Account Growth and Engagement Trends
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
SQL query
- AWS
- GCP
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
SQL query
- AWS
- GCP
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
SQL query
- AWS
- GCP
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
SQL query
- AWS
- GCP
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
SQL query
- AWS
- GCP
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
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)
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
reachmetric 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
Engagement:id- Comment ID (Primary Key)media_id- ID of the media being commented ontext- Comment text contenttimestamp- When the comment was postedlike_count- Number of likes on the commenthidden- Whether the comment is hidden